ComfyUI CustomNet 插件完全使用指南
1. 插件简介
ComfyUI CustomNet 是一个专门用于物体定制化的插件,它基于腾讯ARC实验室开发的CustomNet技术。这个插件就像是一个"物体魔法师",能够把你想要的物体放到各种不同的背景中,还能从不同的角度来展示这个物体。
插件地址: https://github.com/smthemex/ComfyUI_CustomNet
主要功能:
- 把物体从原来的背景中"抠出来",就像用橡皮擦擦掉背景一样
- 让物体在新的背景中"安家",想放哪里就放哪里
- 可以旋转物体,从左边看、右边看、上面看、下面看都可以
- 支持内绘功能,就像在画布上重新绘制缺失的部分
2. 如何安装
2.1 基础安装步骤
-
进入ComfyUI的插件文件夹
- 找到你的ComfyUI安装目录
- 进入
ComfyUI\custom_nodes文件夹
-
下载插件
- 在这个文件夹里打开命令行(按住Shift键右键点击空白处,选择"在此处打开命令窗口")
- 输入命令:
git clone https://github.com/smthemex/ComfyUI_CustomNet.git
-
安装必要的工具包
- 插件会自动安装一个叫
carvekit-colab==4.1.0的工具包 - 这个工具包就像一把"魔法剪刀",专门用来把物体从背景中分离出来
- 插件会自动安装一个叫
2.2 下载模型文件
你需要下载两个重要的"大脑"文件:
常规模型:
- 下载
customnet_v1.pth文件 - 放到
ComfyUI/models/checkpoints/文件夹里 - 下载地址:https://huggingface.co/TencentARC/CustomNet/tree/main
内绘模型:
- 下载
customnet_inpaint_v1.pt文件 - 也放到
ComfyUI/models/checkpoints/文件夹里 - 下载地址:同上
2.3 首次运行注意事项
第一次使用时,插件会自动下载3个辅助文件:
- CLIP模型文件(约1.7GB)
- 两个背景分离模型文件
这些文件会保存在你的用户目录的隐藏文件夹里,需要联网下载。
3. 节点详细解析
根据插件的功能描述,这个插件主要包含以下几个核心节点:
3.1 CustomNet 主节点
这是插件的核心节点,就像一个"物体变换器",能够把物体放到新的背景中。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | 下拉选择 | customnet_v1.pth | 选择要使用的"大脑"文件 | 指定CustomNet模型权重文件 | 从下拉菜单选择你下载的模型文件 |
| 物体图像 | object_image | 图像输入 | - | 你想要处理的物体照片 | 输入待处理的目标物体图像 | 连接一张有物体的图片,最好是白底的 |
| 背景图像 | background_image | 图像输入 | - | 你想要的新背景图片 | 输入目标背景图像 | 连接你想要的背景图片 |
| 提示词 | prompt | 文本输入 | - | 描述你想要的效果 | 文本描述生成内容的提示词 | 输入如"a cat on the table"这样的描述 |
| 负面提示词 | negative_prompt | 文本输入 | - | 描述你不想要的效果 | 负面提示词,排除不需要的内容 | 输入如"blurry, ugly"这样的排除词 |
| 采样步数 | steps | 数值输入 | 20-50 | 处理的精细程度,数字越大越精细 | 扩散模型的采样步数 | 新手建议用20-30,追求质量可以用50 |
| 引导强度 | guidance_scale | 数值输入 | 7.5 | 听话程度,数字越大越听你的话 | CFG引导强度参数 | 一般用7.5,想要更符合提示词可以调到10 |
3.2 CustomNet 内绘节点
这个节点像一个"修补匠",能够在图片的某个区域重新绘制内容。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 内绘模型 | inpaint_model | 下拉选择 | customnet_inpaint_v1.pt | 选择内绘专用的"大脑"文件 | 指定内绘模型权重文件 | 选择你下载的内绘模型 |
| 原图像 | original_image | 图像输入 | - | 需要修补的原图片 | 输入需要内绘的原始图像 | 连接一张需要修改的图片 |
| 遮罩 | mask | 图像输入 | - | 标记要修改的区域,白色表示要改的地方 | 输入内绘遮罩图像 | 连接一张黑白图,白色区域会被重新绘制 |
| 物体图像 | object_image | 图像输入 | - | 要放入的物体图片 | 输入待插入的物体图像 | 连接你想要插入的物体图片 |
| 提示词 | prompt | 文本输入 | - | 描述修补后的效果 | 文本描述生成内容的提示词 | 输入描述最终效果的文字 |
| 负面提示词 | negative_prompt | 文本输入 | - | 描述不想要的效果 | 负面提示词,排除不需要的内容 | 输入要排除的效果描述 |
| 采样步数 | steps | 数值输入 | 20-50 | 处理的精细程度 | 扩散模型的采样步数 | 建议用30-50获得更好的内绘效果 |
| 引导强度 | guidance_scale | 数值输入 | 7.5 | 听话程度 | CFG引导强度参数 | 内绘时建议用7.5-10 |
3.3 视角控制节点
这个节点像一个"摄影师",能够从不同角度来展示物体。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 极坐标角度 | polar | 数值输入 | 0-180 | 从上往下看的角度,0是正上方,180是正下方 | 控制物体的极坐标视角 | 90度是平视,45度是稍微从上往下看 |
| 方位角度 | azimuth | 数值输入 | 0-360 | 绕着物体转圈的角度,0是正面,180是背面 | 控制物体的方位角视角 | 0度是正面,90度是左侧,270度是右侧 |
| 物体图像 | object_image | 图像输入 | - | 要旋转视角的物体图片 | 输入待处理的物体图像 | 连接你想要改变视角的物体图片 |
| 背景图像 | background_image | 图像输入 | - | 新背景图片 | 输入目标背景图像 | 连接背景图片 |
| 提示词 | prompt | 文本输入 | - | 描述想要的效果 | 文本描述生成内容的提示词 | 输入效果描述 |
| 负面提示词 | negative_prompt | 文本输入 | - | 描述不想要的效果 | 负面提示词,排除不需要的内容 | 输入要排除的效果 |
3.4 位置控制节点
这个节点像一个"定位器",能够精确控制物体在背景中的位置。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| X坐标 | position_x | 数值输入 | 0-1 | 物体在背景中的左右位置,0是最左边,1是最右边 | 控制物体在X轴上的位置 | 0.5是居中,0.2是偏左,0.8是偏右 |
| Y坐标 | position_y | 数值输入 | 0-1 | 物体在背景中的上下位置,0是最上面,1是最下面 | 控制物体在Y轴上的位置 | 0.5是居中,0.2是偏上,0.8是偏下 |
| 物体图像 | object_image | 图像输入 | - | 要定位的物体图片 | 输入待定位的物体图像 | 连接你想要定位的物体图片 |
| 背景图像 | background_image | 图像输入 | - | 背景图片 | 输入目标背景图像 | 连接背景图片 |
| 提示词 | prompt | 文本输入 | - | 描述最终效果 | 文本描述生成内容的提示词 | 输入效果描述 |
| 负面提示词 | negative_prompt | 文本输入 | - | 描述不想要的效果 | 负面提示词,排除不需要的内容 | 输入要排除的效果 |
3.5 背景分离节点
这个节点像一把"魔法剪刀",能够自动把物体从背景中切出来。
3.5.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图像 | input_image | 图像输入 | - | 需要抠图的原图片 | 输入待处理的原始图像 | 连接有物体和背景的图片 |
| 分离方法 | method | 下拉选择 | tracer_b7 | 选择抠图的方法,就像选择不同的剪刀 | 选择背景分离算法 | tracer_b7适合大多数情况,fba适合复杂边缘 |
| 输出格式 | output_format | 下拉选择 | RGBA | 选择输出的图片格式 | 选择输出图像的颜色格式 | RGBA包含透明通道,便于后续处理 |
| 边缘柔化 | edge_smooth | 数值输入 | 0-10 | 让物体边缘更自然,数字越大越柔和 | 控制边缘的平滑程度 | 建议用2-5,让抠图效果更自然 |
4. 使用技巧和建议
4.1 获得最佳效果的秘诀
-
物体图片的选择
- 尽量使用白底的物体图片,就像证件照一样
- 物体要清晰,边缘要干净
- 避免使用阴影太重的图片
-
背景图片的选择
- 背景要简洁,不要太复杂
- 光线要合理,与物体的光线方向一致
- 分辨率要合适,不要太小
-
参数调整建议
- 新手建议从默认参数开始
- 采样步数:质量要求不高用20,追求质量用50
- 引导强度:想要更符合提示词就调高一点
4.2 常见搭配组合
- 基础物体合成:背景分离节点 → CustomNet主节点
- 精确定位:背景分离节点 → 位置控制节点 → CustomNet主节点
- 多角度展示:背景分离节点 → 视角控制节点 → CustomNet主节点
- 复杂修补:CustomNet内绘节点 → 后处理节点
5. 常见问题解答
5.1 安装相关问题
Q: 插件安装后找不到节点怎么办?
A: 重启ComfyUI,然后在节点菜单里找"CustomNet"分类。
Q: 模型下载失败怎么办?
A: 检查网络连接,可能需要科学上网。也可以手动下载后放到指定文件夹。
Q: 提示缺少依赖包怎么办?
A: 在ComfyUI的命令行窗口输入:pip install carvekit-colab==4.1.0
5.2 使用相关问题
Q: 为什么抠图效果不好?
A:
- 确保物体图片清晰,背景简单
- 尝试不同的分离方法
- 调整边缘柔化参数
Q: 为什么物体放到背景中看起来不自然?
A:
- 检查光线方向是否一致
- 调整物体在背景中的位置
- 优化提示词描述
Q: 处理速度太慢怎么办?
A:
- 减少采样步数
- 使用较小的图片分辨率
- 确保显卡内存充足
5.3 效果优化问题
Q: 如何让物体看起来更真实?
A:
- 使用高质量的物体图片
- 调整视角参数让物体角度更自然
- 在提示词中加入光影描述
Q: 如何处理复杂的物体?
A:
- 使用内绘节点进行精细调整
- 分步处理,先大致合成再细化
- 利用多个节点组合使用
6. 进阶使用技巧
6.1 工作流程建议
-
前期准备
- 准备高质量的物体图片和背景图片
- 规划好最终效果
- 准备好详细的提示词
-
基础合成
- 使用背景分离节点处理物体图片
- 用CustomNet主节点进行基础合成
- 检查初步效果
-
精细调整
- 使用视角控制节点调整角度
- 使用位置控制节点调整位置
- 使用内绘节点修补细节
-
后期优化
- 调整各项参数优化效果
- 多次测试找到最佳参数组合
- 保存工作流程供以后使用
6.2 创意应用场景
- 产品展示:把产品放到不同的使用场景中
- 艺术创作:创造现实中不存在的物体组合
- 教育演示:制作教学用的示意图
- 社交媒体:制作有趣的合成图片
这个插件的核心优势在于能够智能地理解物体的3D特性,让物体在新环境中看起来更加自然和真实。虽然目前模型限制在256像素分辨率,但对于大多数应用场景已经足够使用。随着技术的发展,相信未来会有更高分辨率的版本推出。