ComfyUI-Inpaint-CropAndStitch 插件完全教程
1. 插件简介
插件地址: https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch
这个插件就像是给你的修图工具箱添加了一把超级精准的"手术刀"!它专门用来做局部修复(修补图片),让你只修改图片中需要改动的小区域,而不用重新生成整张图片。
这个插件能给我们带来什么效果?
- 速度飞快:只处理需要修改的小区域,比重新生成整张图快很多倍
- 精准控制:就像用放大镜做手术一样,只改你想改的地方
- 完美融合:修改后的区域和原图无缝衔接,看不出修改痕迹
- 智能缩放:可以把小区域放大处理,增加细节,然后再缩回去
- 保护原图:没有遮罩的地方绝对不会被改动,100%保持原样
想象一下:你有一张很棒的照片,但是某个角落有个不想要的东西。用这个插件,你就像用橡皮擦一样,只擦掉那个角落,然后让AI重新画一个更好的内容填进去,其他地方完全不动!
2. 如何安装
方法一:通过 ComfyUI-Manager 安装(推荐)
- 打开 ComfyUI
- 点击 Manager 按钮
- 搜索 "Inpaint-CropAndStitch"
- 点击安装
方法二:手动安装
- 打开 ComfyUI 的
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch.git - 重启 ComfyUI
- 在节点菜单的 "inpaint" 分类中找到带有 ✂️ 标记的节点
3. 节点详细解析
3.1 ✂️ Inpaint Crop (Improved) - 智能裁剪器(新版推荐)
这个节点就像一个智能的"放大镜+剪刀",它能找到你想修改的区域,把那块区域剪出来,调整到合适的大小,准备给AI进行修复。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | 必填 | 要修复的原始图片 | 输入图像 | 连接你要修改的图片 |
| mask | mask | MASK | 可选 | 遮罩,标记哪里需要修改 | 遮罩输入 | 白色=要修改,黑色=不动 |
| optional_context_mask | optional_context_mask | MASK | 可选 | 额外的上下文区域,提供更多参考信息 | 可选上下文遮罩 | 标记需要作为参考的区域 |
| downscale_algorithm | downscale_algorithm | 算法选项 | bilinear | 缩小图片时用什么方法,就像选择画笔类型 | 下采样算法 | bilinear比较平滑 |
| upscale_algorithm | upscale_algorithm | 算法选项 | bicubic | 放大图片时用什么方法 | 上采样算法 | bicubic质量更好 |
| preresize | preresize | True/False | False | 是否先调整原图大小再处理 | 预调整大小开关 | True开启预处理 |
| preresize_mode | preresize_mode | 模式选项 | ensure minimum resolution | 预调整的方式 | 预调整模式 | 确保最小分辨率 |
| preresize_min_width | preresize_min_width | 整数 | 1024 | 预调整时的最小宽度 | 预调整最小宽度 | 1024像素宽度 |
| preresize_min_height | preresize_min_height | 整数 | 1024 | 预调整时的最小高度 | 预调整最小高度 | 1024像素高度 |
| preresize_max_width | preresize_max_width | 整数 | 最大值 | 预调整时的最大宽度 | 预调整最大宽度 | 防止图片过大 |
| preresize_max_height | preresize_max_height | 整数 | 最大值 | 预调整时的最大高度 | 预调整最大高度 | 防止图片过高 |
| mask_fill_holes | mask_fill_holes | True/False | True | 是否填补遮罩中的小洞 | 遮罩填洞 | True会填补遮罩内的空洞 |
| mask_expand_pixels | mask_expand_pixels | 整数 | 0 | 把遮罩向外扩大多少像素 | 遮罩扩展像素 | 32会让遮罩边缘向外扩32像素 |
| mask_invert | mask_invert | True/False | False | 是否反转遮罩(黑白颠倒) | 遮罩反转 | True让黑色变白色,白色变黑色 |
| mask_blend_pixels | mask_blend_pixels | 整数 | 32 | 边缘融合的像素数,让修复更自然 | 遮罩混合像素 | 32像素的渐变融合 |
| mask_hipass_filter | mask_hipass_filter | 0.0-1.0 | 0.1 | 忽略太淡的遮罩部分 | 遮罩高通滤波 | 0.1忽略透明度低于10%的区域 |
| extend_for_outpainting | extend_for_outpainting | True/False | False | 是否扩展图片边缘用于外绘 | 外绘扩展开关 | True可以在图片外面画新内容 |
| extend_up_factor | extend_up_factor | 浮点数 | 1.0 | 向上扩展的倍数 | 上方扩展因子 | 2.0表示向上扩展一倍高度 |
| extend_down_factor | extend_down_factor | 浮点数 | 1.0 | 向下扩展的倍数 | 下方扩展因子 | 1.5表示向下扩展一半高度 |
| extend_left_factor | extend_left_factor | 浮点数 | 1.0 | 向左扩展的倍数 | 左侧扩展因子 | 1.2表示向左扩展20%宽度 |
| extend_right_factor | extend_right_factor | 浮点数 | 1.0 | 向右扩展的倍数 | 右侧扩展因子 | 1.3表示向右扩展30%宽度 |
| context_from_mask_extend_factor | context_from_mask_extend_factor | 浮点数 | 1.2 | 上下文区域扩展倍数,给AI更多参考信息 | 上下文扩展因子 | 1.5表示在遮罩周围多取50%的区域作参考 |
| output_resize_to_target_size | output_resize_to_target_size | True/False | True | 是否强制输出特定尺寸 | 输出尺寸调整开关 | True强制输出指定大小 |
| output_target_width | output_target_width | 整数 | 512 | 输出图片的目标宽度 | 目标输出宽度 | 512像素宽,适合SD1.5 |
| output_target_height | output_target_height | 整数 | 512 | 输出图片的目标高度 | 目标输出高度 | 512像素高,适合SD1.5 |
| output_padding | output_padding | 选项 | 32 | 输出尺寸的对齐数,确保AI模型正常工作 | 输出填充 | 32表示宽高都是32的倍数 |
3.2 ✂️ Inpaint Stitch (Improved) - 智能拼接器(新版推荐)
这个节点就像一个精密的"拼图大师",它把AI修复好的小区域完美地贴回原图,让你看不出任何修改痕迹。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| stitcher | stitcher | STITCHER | 必填 | 拼接信息,来自Crop节点 | 拼接器数据 | 连接Crop节点的stitcher输出 |
| inpainted_image | inpainted_image | IMAGE | 必填 | AI修复后的图片 | 修复后图像 | 连接AI生成的修复结果 |
3.3 InpaintCrop - 旧版裁剪器(已过时)
这是旧版本的裁剪节点,功能类似新版但不够完善,建议使用新版。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | 必填 | 要修复的原始图片 | 输入图像 | 连接你要修改的图片 |
| mask | mask | MASK | 必填 | 遮罩,标记哪里需要修改 | 遮罩输入 | 白色=要修改,黑色=不动 |
| optional_context_mask | optional_context_mask | MASK | 可选 | 额外的上下文区域 | 可选上下文遮罩 | 标记需要作为参考的区域 |
| context_expand_pixels | context_expand_pixels | 整数 | 20 | 上下文区域向外扩展的像素数 | 上下文扩展像素 | 20像素的扩展 |
| context_expand_factor | context_expand_factor | 浮点数 | 1.0 | 上下文区域扩展倍数 | 上下文扩展因子 | 1.5表示扩展50% |
| fill_mask_holes | fill_mask_holes | True/False | True | 是否填补遮罩中的小洞 | 遮罩填洞 | True会填补遮罩内的空洞 |
| blur_mask_pixels | blur_mask_pixels | 浮点数 | 16.0 | 遮罩边缘模糊像素数 | 遮罩模糊像素 | 16像素的模糊边缘 |
| invert_mask | invert_mask | True/False | False | 是否反转遮罩 | 遮罩反转 | True让黑白颠倒 |
| blend_pixels | blend_pixels | 浮点数 | 16.0 | 边缘融合像素数 | 混合像素 | 16像素的渐变融合 |
| rescale_algorithm | rescale_algorithm | 算法选项 | bicubic | 缩放算法 | 重缩放算法 | bicubic质量较好 |
| mode | mode | 模式选项 | ranged size | 尺寸控制模式 | 尺寸模式 | 范围尺寸模式 |
| force_width | force_width | 整数 | 1024 | 强制宽度(强制模式下) | 强制宽度 | 1024像素宽 |
| force_height | force_height | 整数 | 1024 | 强制高度(强制模式下) | 强制高度 | 1024像素高 |
| rescale_factor | rescale_factor | 浮点数 | 1.0 | 缩放倍数(自由模式下) | 重缩放因子 | 2.0表示放大一倍 |
| min_width | min_width | 整数 | 512 | 最小宽度(范围模式下) | 最小宽度 | 512像素最小宽度 |
| min_height | min_height | 整数 | 512 | 最小高度(范围模式下) | 最小高度 | 512像素最小高度 |
| max_width | max_width | 整数 | 768 | 最大宽度(范围模式下) | 最大宽度 | 768像素最大宽度 |
| max_height | max_height | 整数 | 768 | 最大高度(范围模式下) | 最大高度 | 768像素最大高度 |
| padding | padding | 选项 | 32 | 尺寸对齐数 | 填充值 | 32的倍数对齐 |
3.4 InpaintStitch - 旧版拼接器(已过时)
这是旧版本的拼接节点,建议使用新版。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| stitch | stitch | STITCH | 必填 | 拼接信息,来自旧版Crop节点 | 拼接数据 | 连接旧版Crop节点的stitch输出 |
| inpainted_image | inpainted_image | IMAGE | 必填 | AI修复后的图片 | 修复后图像 | 连接AI生成的修复结果 |
| rescale_algorithm | rescale_algorithm | 算法选项 | bislerp | 缩放算法 | 重缩放算法 | bislerp是双线性插值 |
3.5 Extend Image for Outpainting - 图片扩展器(已过时)
这个节点用来扩展图片边缘,为外绘做准备。新版本已经把这个功能集成到Crop节点里了。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | 必填 | 要扩展的原始图片 | 输入图像 | 连接你要扩展的图片 |
| mask | mask | MASK | 必填 | 遮罩 | 遮罩输入 | 标记扩展区域 |
| optional_context_mask | optional_context_mask | MASK | 可选 | 可选上下文遮罩 | 可选上下文遮罩 | 额外的参考区域 |
| mode | mode | 模式选项 | factors | 扩展模式 | 扩展模式 | factors用倍数,pixels用像素 |
| expand_up_pixels | expand_up_pixels | 整数 | 0 | 向上扩展像素数 | 上方扩展像素 | 100表示向上扩展100像素 |
| expand_up_factor | expand_up_factor | 浮点数 | 1.0 | 向上扩展倍数 | 上方扩展因子 | 2.0表示向上扩展一倍高度 |
| expand_down_pixels | expand_down_pixels | 整数 | 0 | 向下扩展像素数 | 下方扩展像素 | 100表示向下扩展100像素 |
| expand_down_factor | expand_down_factor | 浮点数 | 1.0 | 向下扩展倍数 | 下方扩展因子 | 1.5表示向下扩展一半高度 |
| expand_left_pixels | expand_left_pixels | 整数 | 0 | 向左扩展像素数 | 左侧扩展像素 | 50表示向左扩展50像素 |
| expand_left_factor | expand_left_factor | 浮点数 | 1.0 | 向左扩展倍数 | 左侧扩展因子 | 1.2表示向左扩展20%宽度 |
| expand_right_pixels | expand_right_pixels | 整数 | 0 | 向右扩展像素数 | 右侧扩展像素 | 80表示向右扩展80像素 |
| expand_right_factor | expand_right_factor | 浮点数 | 1.0 | 向右扩展倍数 | 右侧扩展因子 | 1.3表示向右扩展30%宽度 |
3.6 Resize Image Before Inpainting - 预处理缩放器(已过时)
这个节点用来在修复前调整图片大小。新版本已经把这个功能集成到Crop节点里了。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | 必填 | 要调整的原始图片 | 输入图像 | 连接你要调整的图片 |
| mask | mask | MASK | 必填 | 遮罩 | 遮罩输入 | 对应的遮罩 |
| optional_context_mask | optional_context_mask | MASK | 可选 | 可选上下文遮罩 | 可选上下文遮罩 | 额外的参考区域 |
| rescale_algorithm | rescale_algorithm | 算法选项 | bicubic | 缩放算法 | 重缩放算法 | bicubic质量较好 |
| mode | mode | 模式选项 | ensure minimum size | 调整模式 | 调整模式 | 确保最小尺寸模式 |
| min_width | min_width | 整数 | 1024 | 最小宽度 | 最小宽度 | 1024像素最小宽度 |
| min_height | min_height | 整数 | 1024 | 最小高度 | 最小高度 | 1024像素最小高度 |
| rescale_factor | rescale_factor | 浮点数 | 1.0 | 缩放倍数 | 重缩放因子 | 2.0表示放大一倍 |
3.7 前端JavaScript功能
插件还包含一个前端JavaScript文件 showcontrol.js,它的作用是:
- 智能界面:根据你的选择自动显示或隐藏相关参数
- 简化操作:不需要的参数会自动隐藏,界面更清爽
- 防止错误:避免设置冲突的参数组合
比如当你选择"强制尺寸"模式时,只会显示宽度和高度设置;选择"自由尺寸"时,只显示缩放倍数设置。
4. 使用技巧和建议
4.1 新手入门建议
- 从简单开始:先用基础的 Crop → AI生成 → Stitch 流程
- 遮罩要准确:用白色标记要修改的区域,黑色标记保持不变的区域
- 适当的上下文:context_extend_factor 设置为 1.2-1.5,给AI足够的参考信息
- 选对尺寸:SD1.5用512x512,SDXL用1024x1024
4.2 常用工作流程
基础修复流程
- Load Image → 加载要修复的图片
- 创建遮罩 → 用画图软件或ComfyUI的遮罩工具标记要修改的区域
- ✂️ Inpaint Crop → 裁剪出需要修复的区域
- AI采样 → 用你喜欢的AI模型生成新内容
- ✂️ Inpaint Stitch → 把修复结果贴回原图
高质量修复流程
- 基础流程 + 在Crop和AI采样之间加入放大节点
- 用4x放大模型把裁剪区域放大
- 在高分辨率下进行AI修复
- Stitch会自动缩回原尺寸
4.3 参数调节技巧
-
mask_blend_pixels
- 16-32:适合大部分情况
- 64:用于需要很自然融合的场景
- 0:用于需要硬边缘的情况
-
context_extend_factor
- 1.0:只处理遮罩区域
- 1.2-1.5:给AI适量的上下文信息(推荐)
- 2.0+:给AI很多上下文,但处理会变慢
-
output_target_size
- SD1.5:512x512 或 768x768
- SDXL:1024x1024
- Flux:1024x1024
5. 常见问题解答
Q1: 为什么修复后的区域和原图不匹配?
A: 检查以下几点:
- 遮罩是否准确(白色=要修改,黑色=保持)
- mask_blend_pixels 是否设置合适(建议32)
- context_extend_factor 是否太小(建议1.2-1.5)
Q2: 修复区域太小,细节不够怎么办?
A: 使用高分辨率修复流程:
- 在Crop后加入放大节点(如4x-UltraSharp)
- 在高分辨率下进行AI采样
- Stitch会自动处理尺寸匹配
Q3: 修复边缘有明显接缝怎么办?
A: 调整融合参数:
- 增加 mask_blend_pixels 到 64
- 确保 mask_expand_pixels 不为0
- 检查遮罩边缘是否过于锐利
Q4: 什么时候用新版节点,什么时候用旧版?
A: 强烈建议使用新版:
- ✂️ Inpaint Crop (Improved):功能更强,精度更高
- ✂️ Inpaint Stitch (Improved):拼接更精确
- 旧版节点只是为了兼容老工作流
Q5: 如何做外绘(扩展图片边缘)?
A: 使用新版Crop节点:
- 开启 extend_for_outpainting
- 设置各方向的 extend_factor(如2.0表示扩展一倍)
- 创建对应的遮罩标记扩展区域
6. 实际应用案例
案例1:去除图片中的不想要物体
- 用画图工具在不想要的物体上画白色遮罩
- Crop节点设置:context_extend_factor=1.3, mask_blend_pixels=32
- 用inpainting模型采样,提示词描述想要的背景
- Stitch拼接回原图
案例2:修复老照片的破损部分
- 在破损区域画遮罩
- Crop节点设置:mask_fill_holes=True(填补小洞)
- 用修复专用模型,提示词描述照片内容
- 适当增加 mask_blend_pixels 让修复更自然
案例3:扩展图片画布(外绘)
- 开启 extend_for_outpainting
- 设置扩展方向和倍数(如向右扩展:extend_right_factor=1.5)
- 在扩展区域画遮罩
- 用outpainting模型生成新内容
7. 最佳实践建议
7.1 遮罩制作技巧
- 边缘要柔和:避免过于锐利的边缘
- 覆盖完整:确保要修改的区域完全被白色覆盖
- 适当扩展:可以稍微超出目标区域边界
7.2 模型选择建议
- 修复任务:使用专门的inpainting模型
- 外绘任务:使用outpainting模型
- 高质量需求:选择更大的模型(如SDXL)
7.3 性能优化
- 小区域优先:只修复必要的区域,不要贪大
- 合适分辨率:不要盲目追求超高分辨率
- 批量处理:多个小修复可以批量进行
8. 总结
ComfyUI-Inpaint-CropAndStitch 插件就像给你的修图工具箱装上了一套精密的"显微镜手术设备"。它让你能够:
- 精准修复:只改需要改的地方,其他地方纹丝不动
- 高效处理:比重新生成整张图快很多倍
- 完美融合:修复结果和原图无缝衔接
- 灵活控制:从简单修复到复杂外绘都能胜任
记住核心流程:
- Crop(裁剪) → 找到并切出要修改的区域
- AI处理 → 让AI在小区域上发挥魔法
- Stitch(拼接) → 把结果完美贴回原图
掌握了这个插件,你就能像专业修图师一样,对图片进行精确的局部调整,而不用担心破坏其他完美的部分!