ComfyUI-DSD 插件完整保姆级教程
1. 插件简介
ComfyUI-DSD 是一个专门用来生成特定人物或物品图片的超级神器!插件地址:https://github.com/irreveloper/ComfyUI-DSD
想象一下,你有一张小猫的照片,想让这只小猫出现在各种不同的场景里 - 比如在沙滩上、在雪地里、在太空中。传统方法需要训练很久,但 DSD 插件可以直接根据你的一张照片,瞬间生成这只小猫在任何场景中的图片,而且猫咪的样子完全不变!
主要功能:
- 保持主体不变:就像复制粘贴一样,把照片里的人物或物品"搬"到新环境里
- 零训练生成:不需要花时间训练,直接用就能出效果
- 智能提示词优化:自动帮你写出更好的描述文字
- 自动下载模型:不用手动找文件,一键搞定
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 打开 ComfyUI,点击右下角的 "Manager" 按钮
- 选择 "Install Custom Nodes"
- 搜索 "ComfyUI-DSD"
- 点击 "Install" 安装
- 重启 ComfyUI
方法二:手动安装
- 找到你的 ComfyUI 文件夹
- 进入
ComfyUI/custom_nodes目录 - 在这里打开命令行,输入:
git clone https://github.com/irreveloper/ComfyUI-DSD.git - 安装依赖文件:
pip install -r requirements.txt - 重启 ComfyUI
3. 节点详细解析
3.1 DSD Model Downloader 节点 - 模型下载器
这个节点就像一个智能搬运工,专门负责从网上下载 DSD 模型文件到你的电脑里。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型仓库地址 | repo_id | 文本输入 | primecai/dsd_model | 就像网购时的商品链接,告诉程序从哪里下载模型 | 指定Hugging Face上的模型仓库路径 | 默认用官方地址即可,除非你想用其他版本 |
| 模型精度 | precision | 下拉选择 | bfloat16 | 就像照片质量设置,影响生成效果和占用内存大小 | 控制模型权重的数据精度 | 显卡内存小选 bfloat16,大显卡可选 float32 |
| 低内存使用 | low_cpu_mem_usage | 勾选框 | True | 就像省电模式,让程序少占用内存 | 启用内存优化加载策略 | 内存不够时勾选,会下载慢一点但更稳定 |
| 模型CPU卸载 | model_cpu_offload | 勾选框 | False | 把模型暂时存到内存里,给显卡腾地方 | 将模型组件动态在CPU和GPU间切换 | 显卡内存不够时勾选 |
| 顺序CPU卸载 | sequential_cpu_offload | 勾选框 | False | 像排队一样,一个个处理模型部件 | 按顺序将模型层在CPU和GPU间切换 | 显卡内存严重不足时勾选 |
| HuggingFace令牌 | hf_token | 文本输入 | 空 | 就像会员卡号,下载某些模型时需要 | 访问私有或受限模型仓库的授权令牌 | 一般留空,除非下载需要授权的模型 |
3.2 DSD Model Loader 节点 - 模型加载器
这个节点就像一个智能管家,负责把已经下载好的模型文件装载到内存里,准备开始工作。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型路径 | model_path | 文件路径 | 自动检测 | 告诉程序模型文件放在哪个文件夹里 | 指定DSD模型文件的本地存储路径 | 用默认路径即可,除非你把模型放在其他地方 |
| LoRA路径 | lora_path | 文件路径 | 自动检测 | 告诉程序增强文件放在哪里,就像游戏补丁 | 指定LoRA权重文件的本地存储路径 | 用默认路径即可,这个文件让效果更好 |
| 模型精度 | precision | 下拉选择 | bfloat16 | 就像照片质量设置,影响生成效果和占用内存大小 | 控制模型运行时的数据精度 | 显卡内存小选 bfloat16,大显卡可选 float32 |
| 低内存使用 | low_cpu_mem_usage | 勾选框 | True | 就像省电模式,让程序少占用内存 | 启用内存优化加载策略 | 内存不够时勾选 |
| 模型CPU卸载 | model_cpu_offload | 勾选框 | False | 把模型暂时存到内存里,给显卡腾地方 | 将模型组件动态在CPU和GPU间切换 | 显卡内存不够时勾选 |
| 顺序CPU卸载 | sequential_cpu_offload | 勾选框 | False | 像排队一样,一个个处理模型部件 | 按顺序将模型层在CPU和GPU间切换 | 显卡内存严重不足时勾选 |
3.3 DSD Model Selector 节点 - 模型选择器
这个节点就像一个智能档案管理员,帮你从电脑里找到所有可用的 DSD 模型文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型选择 | model_name | 下拉选择 | 第一个可用模型 | 从找到的所有模型中选择一个来使用 | 从检测到的模型列表中选择要加载的模型 | 如果你有多个模型,可以在这里切换 |
| 自动检测路径 | auto_detect | 勾选框 | True | 让程序自己去找模型文件在哪里 | 启用自动路径检测功能 | 建议勾选,除非你想手动指定路径 |
| 验证模型存在 | verify_exists | 勾选框 | True | 检查选中的模型文件是否真的存在 | 验证所选模型文件的完整性和可用性 | 建议勾选,避免选了个不存在的模型 |
3.4 DSD Gemini Prompt Enhancer 节点 - 智能提示词优化器
这个节点就像一个文案高手,把你写的简单描述变成专业的、效果更好的提示词。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | input_image | 图片接口 | 必填 | 给智能助手看的参考图片 | 作为上下文分析的输入图像 | 连接你要处理的原图 |
| 原始提示词 | original_prompt | 文本输入 | 必填 | 你自己写的简单描述 | 用户提供的初始文本提示 | 比如写"一只猫在海边",它会帮你扩展成更详细的描述 |
| Gemini API密钥 | gemini_api_key | 文本输入 | 空 | 就像会员卡号,使用谷歌AI服务需要 | 访问Google Gemini API的授权密钥 | 在谷歌AI Studio申请,建议设置为环境变量 |
| 增强模式 | enhancement_mode | 下拉选择 | 标准 | 选择优化的强度和风格 | 控制提示词增强的策略和程度 | 标准模式适合大多数情况 |
| 最大输出长度 | max_output_length | 数字输入 | 500 | 限制优化后提示词的长度 | 控制生成提示词的最大字符数 | 太长会影响生成速度,太短可能信息不够 |
3.5 DSD Image Generator 节点 - 图片生成器
这是整个插件的核心,就像一个神奇的画师,根据你的要求创作出保持主体特征的新图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 已加载模型 | loaded_model | 模型接口 | 必填 | 从模型加载器传来的已准备好的模型 | 预加载的DSD模型管道对象 | 连接 Model Loader 节点的输出 |
| 参考图片 | reference_image | 图片接口 | 必填 | 你想要保持不变的主体图片 | 包含目标主体的输入参考图像 | 比如一张猫咪的照片 |
| 提示词 | prompt | 文本输入 | 必填 | 描述你想要的场景和效果 | 描述期望生成场景的文本提示 | 比如"在雪地里玩耍的猫咪" |
| 负面提示词 | negative_prompt | 文本输入 | 推荐填写 | 描述你不想要的内容 | 指定要避免的元素或特征 | 比如"模糊,低质量,变形" |
| 使用Gemini提示词 | use_gemini_prompt | 勾选框 | False | 是否使用AI优化后的提示词 | 启用Gemini增强的提示词输入 | 如果连接了Gemini节点就勾选 |
| 整体引导强度 | guidance_scale | 数字滑块 | 7.5 | 控制生成图片与提示词的匹配程度 | 控制分类器自由引导的强度 | 数值越高越严格按提示词生成,但可能缺乏创意 |
| 图片引导强度 | image_guidance_scale | 数字滑块 | 1.5 | 控制生成图片与参考图片的相似程度 | 控制图像条件引导的强度 | 数值越高越像原图,但可能场景变化不明显 |
| 文本引导强度 | text_guidance_scale | 数字滑块 | 7.5 | 控制生成图片与文字描述的匹配程度 | 控制文本条件引导的强度 | 数值越高越严格按文字生成内容 |
| 推理步数 | num_inference_steps | 数字输入 | 20 | 就像画画的笔触次数,影响图片质量和生成时间 | 扩散过程的迭代步数 | 步数越多质量越好但时间越长,20-50比较合适 |
| 图片宽度 | width | 数字输入 | 512 | 生成图片的宽度像素 | 输出图像的宽度尺寸 | 建议512或768,太大可能内存不够 |
| 图片高度 | height | 数字输入 | 512 | 生成图片的高度像素 | 输出图像的高度尺寸 | 建议512或768,保持与宽度相同比例 |
| 随机种子 | seed | 数字输入 | 0 | 控制随机性的数字,相同种子产生相同结果 | 控制随机数生成的种子值 | 0表示随机,固定数字可以重复相同效果 |
| 批量大小 | batch_size | 数字输入 | 1 | 一次生成多少张图片 | 单次推理生成的图像数量 | 1张就够了,多张会占用更多内存 |
3.6 DSD Resize Selector 节点 - 图片尺寸调整器
这个节点就像一个智能裁缝,帮你把图片调整到合适的尺寸和比例。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图片 | input_image | 图片接口 | 必填 | 要调整尺寸的原图 | 需要调整尺寸的输入图像 | 连接你要处理的图片 |
| 目标宽度 | target_width | 数字输入 | 512 | 调整后图片的宽度 | 目标输出图像的宽度像素 | 建议512或768 |
| 目标高度 | target_height | 数字输入 | 512 | 调整后图片的高度 | 目标输出图像的高度像素 | 建议512或768 |
| 调整模式 | resize_mode | 下拉选择 | resize_and_center_crop | 选择如何调整图片尺寸 | 图像尺寸调整的处理策略 | 不同模式适合不同需求 |
| 插值方法 | interpolation | 下拉选择 | LANCZOS | 选择图片缩放时的算法 | 图像缩放使用的插值算法 | LANCZOS质量最好,BILINEAR速度快 |
| 填充颜色R | padding_color_r | 数字输入 | 0 | 填充区域的红色分量 | 填充区域RGB颜色值的红色通道 | 0-255,0是黑色,255是纯红 |
| 填充颜色G | padding_color_g | 数字输入 | 0 | 填充区域的绿色分量 | 填充区域RGB颜色值的绿色通道 | 0-255,0是黑色,255是纯绿 |
| 填充颜色B | padding_color_b | 数字输入 | 0 | 填充区域的蓝色分量 | 填充区域RGB颜色值的蓝色通道 | 0-255,0是黑色,255是纯蓝 |
调整模式说明:
resize_and_center_crop:先缩放再从中心裁剪,保持比例但可能丢失边缘center_crop:直接从中心裁剪到目标尺寸pad:保持原图比例,不够的地方用指定颜色填充fit:直接拉伸到目标尺寸,可能变形
4. 使用技巧和建议
4.1 内存优化建议
- 显卡内存不足时:启用
model_cpu_offload或sequential_cpu_offload - 系统内存不足时:使用
bfloat16精度,启用low_cpu_mem_usage - 生成尺寸调整:从 512x512 开始,稳定后再尝试更大尺寸
4.2 参数调优技巧
- 引导强度调整:
- 想要更像原图:增加
image_guidance_scale - 想要更符合描述:增加
text_guidance_scale - 想要更有创意:降低
guidance_scale
- 想要更像原图:增加
- 质量与速度平衡:
- 快速预览:10-15步
- 正常质量:20-30步
- 高质量:40-50步
4.3 Gemini API 使用建议
- 强烈建议设置环境变量
GEMINI_API_KEY而不是在节点中直接输入 - 优化后的提示词通常效果更好,但也会增加生成时间
- 如果API调用失败,会自动使用原始提示词
5. 常见问题解答
Q1: 下载模型时出现网络错误怎么办?
A1:
- 检查网络连接是否稳定
- 如果在国内,可能需要科学上网
- 可以尝试手动下载模型文件
Q2: 生成图片时显示显卡内存不足?
A2:
- 降低图片分辨率到 512x512
- 启用
model_cpu_offload选项 - 使用
bfloat16精度 - 减少推理步数
Q3: 生成的图片效果不好?
A3:
- 检查参考图片质量,确保主体清晰
- 优化提示词描述,使用 Gemini 增强
- 调整各种引导强度参数
- 增加推理步数
Q4: Gemini API 不可用?
A4:
- 检查 API Key 是否正确设置
- 确认网络可以访问 Google 服务
- 可以不使用 Gemini,直接用原始提示词
Q5: 模型加载失败?
A5:
- 检查模型文件是否完整下载
- 确认路径设置正确
- 尝试重新下载模型文件
6. 工作流程示例
基础工作流程:
- DSD Model Downloader → 下载模型
- DSD Model Loader → 加载模型
- DSD Image Generator → 生成图片
- PreviewImage → 预览结果
高级工作流程:
- DSD Model Downloader → 下载模型
- DSD Model Loader → 加载模型
- DSD Resize Selector → 调整参考图片尺寸
- DSD Gemini Prompt Enhancer → 优化提示词
- DSD Image Generator → 生成图片
- PreviewImage → 预览结果
7. 总结
ComfyUI-DSD 插件是一个强大的主体保持图片生成工具,特别适合需要在不同场景中保持人物或物品特征的创作需求。通过合理配置参数和优化工作流程,可以获得高质量的生成效果。
记住最重要的几点:
- 选择合适的模型精度和内存设置
- 使用清晰的参考图片
- 写好提示词描述
- 根据硬件配置调整参数
- 善用 Gemini API 提升效果
希望这个教程能帮助你快速掌握 ComfyUI-DSD 插件的使用方法!