【免费下载链接】AnySD
AnySD 是一个基于 Stable Diffusion 1.5 的统一图像编辑模型(AnyEdit Stable Diffusion),单个模型即可同时支持通用编辑、视角变换、深度编辑、材质迁移、涂鸦、分割、草图、框选、参考图等9 种图像编辑任务。本文带你完整解析 AnySD 的 9 种任务类型、模型文件结构与推理上手步骤,帮你快速掌握这套开源图像编辑方案。
📌 为什么需要一个"统一"的图像编辑模型
传统的图像编辑往往"一个任务一个模型":换视角一个模型、深度编辑一个模型、草图上色又一个模型,部署和维护成本很高。
AnySD 的思路是:用一个 UNet + 多个可切换的专家适配器(adapter),配合三类条件输入,统一处理各种编辑场景:
| 条件输入 | 作用 | 说明 |
|---|---|---|
| 原图(original image) | 编辑的基础 | 待编辑的输入图像 |
| 编辑指令(prompt) | 告诉模型"改成什么样" | 自然语言文本,如 "Put on a pair of sunglasses" |
| 视觉提示(visual prompt) | 告诉模型"改哪里" | 深度图、涂鸦、分割掩码、草图、参考图等,视任务而定 |
这种"一模型多专家"的架构,既避免了多模型之间的语义对齐难题,也通过任务嵌入(task embedding)区分了 9 种任务的编辑粒度和范围。
🗂️ 模型文件结构:下载后都有什么
本仓库是 AnySD 的官方模型权重仓库,目录结构非常清晰,只有 3 个模块:
| 路径 | 内容 | 作用 |
|---|---|---|
| experts/ | 9 个专家适配器 + 任务嵌入 | 每个编辑任务一个.bin适配器文件,task_embs.bin存储 9 种任务的e_code嵌入 |
| image_encoder/ | CLIP 视觉编码器 | ViT-bigG结构(48 层、hidden_size 1664),用于编码参考图像,权重见 model.safetensors |
| unet/ | UNet 去噪网络 | UNet2DConditionModel,8 通道输入——把原图 latent 与噪声 latent 拼接后一起送入网络,是"图生图编辑"的关键 |
| README.md | 项目说明 | 含推理脚本示例与引用信息 |
💡 小提示:
unet/config.json中"in_channels": 8正是"条件图拼接"设计的体现;普通文生图 UNet 只有 4 通道。
🎯 AnySD 的 9 种编辑任务全解析
每种任务对应 experts/ 目录下的一个适配器文件,推理时通过adapter_name参数切换。先看总览表:
| 任务 | edit_type | 适配器文件 | 需要的视觉提示 |
|---|---|---|---|
| 通用编辑 | general | global.bin | 无,纯文本指令 |
| 视角编辑 | viewpoint | viewpoint.bin | 无(改视角) |
| 框选编辑 | visual_bbox | visual_bbox.bin | 目标区域边框 |
| 深度编辑 | visual_depth | visual_dep.bin | 深度图 |
| 材质迁移 | visual_material_transfer | visual_mat.bin | 材质参考图 |
| 参考图编辑 | visual_reference | visual_ref.bin | 参考图 |
| 涂鸦编辑 | visual_scribble | visual_scr.bin | 自由涂鸦 |
| 分割编辑 | visual_segment | visual_seg.bin | 分割掩码 |
| 草图编辑 | visual_sketch | visual_ske.bin | 线稿草图 |
1️⃣ 通用编辑(general):一句话改图
最常用、门槛最低的任务。只需一张原图 + 一句自然语言指令,即可完成开放式编辑,官方示例指令包括:
Put on a pair of sunglasses(戴上一副墨镜)Make her a wizard(把她变成巫师)
通用编辑走独立的general分支,不需要e_code任务嵌入,只需要prompt和原图。
2️⃣ 视角编辑(viewpoint):换个角度看世界
viewpoint适配器用于保持主体不变、只改变观察视角,比如把正面人像变成 45° 侧脸、把正视图变成透视图。适合做 3D 感增强、多角度素材生成。
3️⃣ 深度编辑(visual_depth):用深度图控制空间
提供一张深度图作为视觉提示,模型会按照深度信息重新组织画面的空间结构和远近关系,常用于场景重建、视角合成的辅助控制。
4️⃣ 材质迁移(visual_material_transfer):换材质不换形状
visual_mat适配器把参考图中的材质(如木纹、大理石、金属)迁移到目标物体上,只改变材质表面,不改变物体几何结构,是产品渲染、游戏资产制作的实用工具。
5️⃣ 涂鸦编辑(visual_scribble):随手画几笔就能出图
在图片上画几笔粗糙的涂鸦(不必规整),模型会按涂鸦的轮廓和位置生成对应内容,并保留原图的背景风格。适合快速创意验证。
6️⃣ 分割编辑(visual_segment):精准圈定编辑区域
提供语义分割掩码(mask),明确指定"编辑这个区域"。相比涂鸦更精确,适合需要像素级定位的场景,比如只替换某个人物的衣服而不影响其他部分。
7️⃣ 草图编辑(visual_sketch):线稿变照片
visual_ske适配器接受线稿草图作为视觉提示,将草图"翻译"成照片级图像。相比涂鸦,草图更强调清晰的线条结构,出图结构更稳定。
8️⃣ 框选编辑(visual_bbox):画个框就改
最简单的视觉提示——只需一个矩形框(bounding box)圈出目标区域,再配合文本指令完成区域级编辑,交互成本极低。
9️⃣ 参考图编辑(visual_reference):借鉴另一张图
提供一张参考图(reference image),模型会综合参考图的内容/风格信息对原图进行编辑。这是唯一会用到 CLIP 视觉编码器(image_encoder/model.safetensors)来编码参考图的任务,因此该任务下还需要设置reference_image_guidance_scale。
🚀 快速上手:运行 AnySD 图像编辑推理
推理脚本(anysd/infer.py)由配套代码仓库提供,模型权重即本仓库文件。运行命令(来自 README.md):
CUDA_VISIBLE_DEVICES=0 PYTHONPATH='./' python3 anysd/infer.py核心流程分两步:
- 选择专家:
choose_expert(mode=任务名)把任务名映射为适配器名,choose_book('all')加载 9 种任务的e_code嵌入; - 执行管线:
AnySDPipeline接收prompt、原图,以及按任务可选的参考图,输出编辑后的图像。
🔧 9 种任务的推荐参数速查
README 示例中的默认参数已经过作者调优,新手建议直接照抄:
| 参数 | 通用编辑(general) | 其余 8 种任务 | 说明 |
|---|---|---|---|
guidance_scale | 3 | 1.5 | 文本指令引导强度 |
original_image_guidance_scale | 3 | 2 | 保持原图的强度 |
reference_image_guidance_scale | — | 0.8 | 参考图影响强度 |
num_inference_steps | 100 | 100 | 去噪步数 |
e_code | 不需要 | book[任务名] | 任务嵌入,来自 task_embs.bin |
参数调节经验:
- 改得不够明显→ 调大
guidance_scale; - 背景被破坏、不够稳→ 调大
original_image_guidance_scale; - 出图过饱和/伪影→ 适当调小
guidance_scale。
⚠️ 注意:
e_code与adapter_name必须对应同一种任务(如e_code=book['visual_depth']配adapter_name='visual_depth'),否则编辑效果会异常。
❓ 新手常见问题(FAQ)
Q1:9 个专家适配器可以同时加载吗?
可以。AnySDPipeline在初始化时一次性接收全部 9 个适配器文件(见 README.md 的adapter_checkpoints字典),推理时按任务切换adapter_name即可,无需反复加载模型。
Q2:AnySD 和 Stable Diffusion 是什么关系?
AnySD 基于 SD 1.5 的 UNet 和文本/图像编码器改造而来:UNet 输入从 4 通道扩展为 8 通道以融合原图信息(见 unet/config.json),并通过 LoRA 式多专家适配器承载 9 种任务能力。
Q3:为什么我的效果和论文里的不一样?
官方在发布模型前重新整理过 AnyEdit 数据集并重训过权重,结果与论文略有差异属正常现象;同时超参数(guidance 系列参数)对最终效果影响较大,建议按上文速查表起步再微调。
📝 总结
AnySD 用"一个 UNet + 9 个专家适配器"的架构,把通用编辑、视角变换、深度、材质迁移、涂鸦、分割、草图、框选、参考图编辑9 种图像编辑任务统一到一个开源模型里,对新手非常友好:
- 选任务 → 在 experts/ 中找到对应适配器文件;
- 配参数 → 按上文速查表设置三个 guidance 参数;
- 跑推理 → 一句
python3 anysd/infer.py即可出图。
如果你想深入理解架构细节或查看引用信息,可阅读 README.md。
【免费下载链接】AnySD
相关推荐
OpenUSD材质节点图可视化:Usdview材质编辑器使用技巧
OpenUSD材质节点图可视化:Usdview材质编辑器使用技巧 在3D资产制作流程中,材质网络的复杂度往往成为效率瓶颈。你是否曾面对嵌套多层的节点关系感到无从
图形学3D渲染序列化多角度AI图像编辑终极指南:一键实现8种视角自由切换
多角度AI图像编辑终极指南:一键实现8种视角自由切换 还在为产品拍摄多角度图而烦恼?多角度AI图像编辑技术正在彻底改变传统图像创作流程。这款仅13MB的轻量级工
计算机视觉大模型QwenAnyEdit数据集深度解读:海量编辑指令数据如何训练出AnySD统一编辑模型
AnyEdit数据集深度解读:海量编辑指令数据如何训练出AnySD统一编辑模型 AnySD 是一个基于 Stable Diffusion 1.5 的 统一图像编
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考