局部重绘工作流
修复图像的特定区域。
工作流结构
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ LoadImage │ → │ MaskComposit│ → │ VAEEncode │
│ (原图) │ │ e │ │ (带Mask) │
└─────────────┘ └──────┬──────┘ └─────────────┘
↑ │
│ ┌─────────────┐
│ │ CreateMask │
│ │ 或 LoadMask │
│ └─────────────┘
│
┌──────┴──────┐
│ VAEEncode │
│ (原图,无Mask)│
└─────────────┘
↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ CLIPTextEn │ → │ KSampler │ ← │ CheckpointL │
│ code │ │ │ │ oader │
└─────────────┘ └──────┬──────┘ └─────────────┘
↓
┌─────────────┐ ┌─────────────┐
│ VAEDecode │ → │ ImageBlend │
│ │ │ (合并原图) │
└─────────────┘ └─────────────┘节点说明
LoadImage
加载原图:
输入: 原图
用途: 保留非重绘区域Mask 处理
| 节点 | 说明 |
|---|---|
| CreateMask | 创建空白遮罩 |
| LoadMask | 加载遮罩图像 |
| MaskDraw | 绘制遮罩 |
| MaskCompsite | 合并遮罩 |
VAEEncode
编码到潜在空间:
- 原图编码(保留)
- 带 Mask 编码(重绘区域)KSampler
采样生成:
denoise: 0.6-0.9(高值用于重绘)ImageBlend
混合图像:
- 重绘结果
- 原图
- 使用 alpha 通道混合Mask 创建方法
方法一:绘制 Mask
1. 创建空白 Mask
2. 使用 MaskDraw 绘制白色区域
3. 设置笔刷大小和硬度
4. 白色 = 要重绘的区域方法二:加载 Mask
1. 在图像软件中创建黑白图像
2. 白色 = 重绘区域
3. 导入 Mask方法三:自动检测
1. 使用 SAM 检测
2. 选择目标区域
3. 生成 MaskMask 技巧
羽化边缘
使用 Mask > Feather Border
blur_amount: 10-30px
效果: 更自然的过渡,避免硬边精确选择
1. 使用 MaskDraw 细化边缘
2. 使用 MaskToBoundingBox 获取范围
3. 适当扩展区域多次重绘
重绘顺序:
1. 大致轮廓 (denoise=0.8)
2. 整体结构 (denoise=0.6)
3. 细节调整 (denoise=0.4)应用场景
移除物体
目标: 移除图片中的杂物
Mask: 物体所在区域
提示词: 描述周围环境,物体消失
denoise: 0.7-0.9添加元素
目标: 在图片中添加新元素
Mask: 要添加元素的位置
提示词: 详细描述要添加的内容
denoise: 0.6-0.8面部修复
目标: 修复面部细节
Mask: 面部区域
提示词: 清晰的面部特征,高质量
denoise: 0.5-0.7背景替换
目标: 更换背景
Mask: 背景区域(保留人物)
提示词: 新背景描述
denoise: 0.6-0.8参数设置
Denoise 推荐
| 场景 | Denoise |
|---|---|
| 细节调整 | 0.3-0.5 |
| 元素替换 | 0.5-0.7 |
| 物体移除 | 0.7-0.9 |
采样设置
Steps: 20-30
CFG: 7-10
Sampler: DPM++ 2M Karras配合 ControlNet
保持结构
1. 使用 Canny 检测原图结构
2. 应用 ControlNet 权重 0.3-0.5
3. 保持非重绘区域结构推荐组合
| ControlNet | 效果 |
|---|---|
| Canny | 保持边缘 |
| Depth | 保持深度 |
| SoftEdge | 柔和过渡 |
常见问题
Q: 重绘区域有接缝
A:
- 羽化 Mask 边缘
- 提高 denoise
- 使用 MaskBlur
Q: 生成内容不自然
A:
- 调整提示词
- 多次尝试
- 参考周围环境
Q: 部分区域没变化
A:
- 检查 Mask 是否正确
- 提高 denoise
- 扩展 Mask 范围