物体移除模板

专门用于移除图像中不需要物体的工作流模板。

模板概述

工作流结构

节点流程图(Mermaid)

graph TD
    A[CheckpointLoaderSimple] -->|MODEL| B[KSampler]
    A -->|CLIP| C[CLIPTextEncode]
    A -->|CLIP| D[CLIPTextEncode]
    A -->|VAE| E[VAEDecode]

    C -->|CONDITIONING| B
    D -->|CONDITIONING| B

    F[LoadImage] -->|IMAGE| G[VAEEncode]
    F -->|MASK| G
    G -->|LATENT| B

    B -->|LATENT| E
    E -->|IMAGE| H[SaveImage]

    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#ffe1f5
    style D fill:#ffe1f5
    style E fill:#e1ffe1
    style F fill:#e1ffe1
    style G fill:#e1ffe1
    style H fill:#ffe1e1

物体移除流程

graph LR
    A[输入图像] --> B[创建物体掩码]
    B --> C[采样移除]
    C --> D[VAE解码]
    D --> E[移除后图像]

    style A fill:#e1ffe1
    style B fill:#fff4e1
    style C fill:#fff4e1
    style D fill:#fff4e1
    style E fill:#fff4e1

节点配置

1. CheckpointLoaderSimple

{
  "inputs": {
    "ckpt_name": "v1-5-pruned-emaonly.ckpt"
  },
  "class_type": "CheckpointLoaderSimple"
}

2. LoadImage

{
  "inputs": {
    "image": "input.png"
  },
  "class_type": "LoadImage"
}

3. VAEEncode

{
  "inputs": {
    "pixels": ["2", 0],
    "vae": ["1", 2],
    "for_mask": ["2", 1]
  },
  "class_type": "VAEEncode"
}

4. CLIPTextEncode (正向)

{
  "inputs": {
    "text": "background, natural, seamless, detailed",
    "clip": ["1", 1]
  },
  "class_type": "CLIPTextEncode"
}

5. CLIPTextEncode (负向)

{
  "inputs": {
    "text": "object, person, animal, blurry, low quality",
    "clip": ["1", 1]
  },
  "class_type": "CLIPTextEncode"
}

6. KSampler

{
  "inputs": {
    "seed": 123456789,
    "steps": 30,
    "cfg": 8.0,
    "sampler_name": "dpmpp_2m",
    "scheduler": "karras",
    "denoise": 0.5,
    "model": ["1", 0],
    "positive": ["4", 0],
    "negative": ["5", 0],
    "latent_image": ["3", 0]
  },
  "class_type": "KSampler"
}

7. VAEDecode

{
  "inputs": {
    "samples": ["6", 0],
    "vae": ["1", 2]
  },
  "class_type": "VAEDecode"
}

8. SaveImage

{
  "inputs": {
    "filename_prefix": "remove_object_",
    "images": ["7", 0]
  },
  "class_type": "SaveImage"
}

完整工作流JSON

{
  "1": {
    "inputs": {
      "ckpt_name": "v1-5-pruned-emaonly.ckpt"
    },
    "class_type": "CheckpointLoaderSimple"
  },
  "2": {
    "inputs": {
      "image": "input.png"
    },
    "class_type": "LoadImage"
  },
  "3": {
    "inputs": {
      "pixels": ["2", 0],
      "vae": ["1", 2],
      "for_mask": ["2", 1]
    },
    "class_type": "VAEEncode"
  },
  "4": {
    "inputs": {
      "text": "background, natural, seamless, detailed",
      "clip": ["1", 1]
    },
    "class_type": "CLIPTextEncode"
  },
  "5": {
    "inputs": {
      "text": "object, person, animal, blurry, low quality",
      "clip": ["1", 1]
    },
    "class_type": "CLIPTextEncode"
  },
  "6": {
    "inputs": {
      "seed": 123456789,
      "steps": 30,
      "cfg": 8.0,
      "sampler_name": "dpmpp_2m",
      "scheduler": "karras",
      "denoise": 0.5,
      "model": ["1", 0],
      "positive": ["4", 0],
      "negative": ["5", 0],
      "latent_image": ["3", 0]
    },
    "class_type": "KSampler"
  },
  "7": {
    "inputs": {
      "samples": ["6", 0],
      "vae": ["1", 2]
    },
    "class_type": "VAEDecode"
  },
  "8": {
    "inputs": {
      "filename_prefix": "remove_object_",
      "images": ["7", 0]
    },
    "class_type": "SaveImage"
  }
}

掩码创建

物体掩码

graph TD
    A[物体掩码] --> B[标记物体]
    A --> C[扩展边界]
    A --> D[羽化边缘]

    B --> B1[精确标记]
    C --> C1[覆盖边缘]
    D --> D1[平滑过渡]

    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#ffe1f5
    style D fill:#e1ffe1

掩码创建步骤

graph LR
    A[打开图像] --> B[选择物体]
    B --> C[创建掩码]
    C --> D[扩展边界]
    D --> E[羽化边缘]
    E --> F[保存掩码]

    style A fill:#e1ffe1
    style B fill:#fff4e1
    style C fill:#fff4e1
    style D fill:#fff4e1
    style E fill:#fff4e1
    style F fill:#fff4e1

提示词设置

正向提示词

background, natural, seamless, detailed, high quality

负向提示词

object, person, animal, blurry, low quality, ugly

参数说明

物体移除参数

graph TD
    A[物体移除] --> B[denoise=0.5]
    A --> C[steps=30]
    A --> D[cfg=8.0]
    A --> E[sampler=dpmpp_2m]

    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#ffe1f5
    style D fill:#e1ffe1
    style E fill:#ffe1e1

使用步骤

移除流程

graph LR
    A[准备图像] --> B[创建物体掩码]
    B --> C[设置背景提示词]
    C --> D[执行移除]
    D --> E[查看结果]

    style A fill:#e1ffe1
    style B fill:#fff4e1
    style C fill:#fff4e1
    style D fill:#fff4e1
    style E fill:#fff4e1

示例结果

示例1: 移除人物

示例2: 移除物体

常见问题

Q1: 物体移除不干净?

A: 扩大掩码区域,增加denoise值,改进提示词。

Q2: 背景不自然?

A: 使用更自然的背景提示词,降低denoise值。

Q3: 有明显边界?

A: 羽化掩码边缘,扩展掩码区域。

Q4: 可以移除多个物体?

A: 可以,创建包含所有物体的掩码。

Q5: 如何提高质量?

A: 增加steps,使用高质量采样器,改进提示词。

相关模板

更新日志