跳转到主要内容

什么是预处理器?

这些工作流包含自定义节点。在运行工作流之前,你需要使用 ComfyUI 管理器 安装这些自定义节点。
预处理器是从图像中提取结构信息的基础工具。它们将图像转换为条件信号,如边缘图、深度图、姿态骨架和表面法线。这些输出在 ControlNet、图生图和视频工作流中提供精确的控制和一致性。 将预处理器作为独立工作流使用可以实现:
  • 无需重新运行完整图表即可快速迭代
  • 预处理和生成的清晰分离
  • 更容易调试和调优
  • 更可预测的图像和视频结果

预处理器与 ControlNet 的关系

预处理器本身不生成图像,它们的作用是将原始图像转换为 ControlNet 模型能够理解的条件图。典型的工作流程为:
  1. 输入图像预处理器条件图(如边缘图、深度图)
  2. 条件图ControlNet引导扩散模型生成
不同类型的 ControlNet 模型需要对应类型的预处理结果。例如,Canny ControlNet 需要 Canny 边缘图,Depth ControlNet 需要深度图。

ComfyUI 中的预处理器节点

ComfyUI 核心内置了 Canny 边缘检测节点。要使用其他预处理器(如深度估计、姿态检测等),你需要安装以下自定义节点包:

Canny 边缘检测

Canny 是最经典的边缘检测算法之一,也是 ComfyUI 核心内置的唯一预处理器节点。它通过检测图像中的亮度梯度变化来提取清晰的边缘轮廓。

工作原理

Canny 边缘检测包含以下步骤:
  1. 高斯模糊降噪 — 减少图像噪声对边缘检测的干扰
  2. 梯度计算 — 使用 Sobel 算子计算每个像素的亮度梯度强度和方向
  3. 非极大值抑制 — 沿梯度方向只保留局部最大值,使边缘变细
  4. 双阈值过滤 — 使用高阈值和低阈值确定强边缘和弱边缘
  5. 边缘连接 — 将与强边缘相连的弱边缘保留,丢弃孤立的弱边缘

关键参数

参数说明
low_threshold低阈值,低于此值的像素被认为不是边缘。典型值:100
high_threshold高阈值,高于此值的像素被认为是强边缘。典型值:200
  • 降低阈值 → 检测更多细节边缘,但可能引入噪声
  • 提高阈值 → 只保留最明显的边缘,输出更干净

适用场景

  • 需要精确轮廓控制的图像生成(建筑、产品、机械零件)
  • 线稿风格的图像重绘
  • Canny ControlNet 配合使用
  • 快速提取图像的结构信息作为生成参考

使用建议

  • 对于高对比度图像,使用较高的阈值(如 150/300)
  • 对于低对比度或细节丰富的图像,使用较低的阈值(如 50/150)
  • Canny 对噪声敏感,建议在输入前对图像进行适当降噪

深度估计(Depth estimation)

深度估计将平面图像转换为深度图,用灰度值表示场景中物体的相对距离。这种结构信号是空间感知生成、重新打光和 3D 感知编辑的基础。

常用深度估计模型

Depth Anything V2

目前最推荐的深度估计模型,由 TikTok 和港大团队开发。相比前代有显著的精度提升。
  • 优势:精度高、泛化能力强、支持多种分辨率
  • 模型规模:提供 Small/Base/Large/Giant 多个版本,可根据速度和精度需求选择
  • 适用场景:通用深度估计,适合绝大多数场景

MiDaS

Intel 开发的经典深度估计模型,历史悠久,社区支持广泛。
  • 优势:运行速度快,资源占用低
  • 适用场景:对速度要求高但精度要求适中的场景

ZoeDepth

结合了相对深度和绝对深度估计的模型,可以输出具有真实尺度的深度信息。
  • 优势:支持度量深度估计(metric depth),不仅是相对深度
  • 适用场景:需要真实深度信息的应用(如 3D 重建辅助)

深度图输出说明

  • 白色区域:距离相机较近的物体
  • 黑色区域:距离相机较远的物体
  • 深度图是单通道灰度图像,通常会归一化到 0-255 范围

适用场景

  • 控制图像中的空间层次关系(前景/中景/背景)
  • Depth ControlNet 配合控制 3D 空间布局
  • 建筑可视化、场景构图
  • 视频工作流中保持帧间深度一致性

深度估计工作流

在 Comfy Cloud 上运行

下载工作流

下载 JSON

OpenPose 姿态检测

OpenPose 是由卡内基梅隆大学开发的实时多人姿态估计系统。它从图像中检测人体关键点(如头部、肩膀、手肘、膝盖等),输出骨骼结构图,用于精确控制生成图像中的人物姿态。

工作原理

OpenPose 使用深度学习模型同时预测:
  1. 关键点置信图(Confidence Maps) — 每个身体部位在图像中的位置概率
  2. 部位亲和场(Part Affinity Fields) — 描述不同关键点之间的连接关系
通过这两类信息,OpenPose 可以在多人场景中正确地将关键点组合为完整的骨骼。

检测类型

类型说明关键点数量
Body(身体)检测全身主要关节点18 个
Hand(手部)检测手指和手腕的精细关节每只手 21 个
Face(面部)检测面部特征点(眼睛、鼻子、嘴巴、脸部轮廓)70 个
在 ComfyUI 的 ControlNet aux 中,你可以选择不同的检测模式:
  • OpenPose — 仅身体关键点
  • OpenPose + Face — 身体 + 面部
  • OpenPose + Hand — 身体 + 手部
  • OpenPose Full — 身体 + 面部 + 手部(最完整但速度较慢)

输出颜色编码

OpenPose 的输出使用颜色编码表示不同的骨骼连接:
  • 不同颜色的线段代表不同的身体部位连接
  • 圆点代表关键点位置
  • 黑色背景上绘制彩色骨架图

适用场景

  • 控制人物姿态和动作(如指定站姿、坐姿、舞蹈动作)
  • Pose ControlNet 配合使用
  • 多人场景中分别控制每个人的姿态
  • 动画和视频工作流中保持角色动作一致性

使用建议

  • 输入图像中人物越清晰,检测结果越准确
  • 遮挡严重的部位可能检测失败,可以手动编辑骨骼图进行修正
  • 对于需要精细手部控制的场景,务必启用 Hand 检测
  • 处理速度与选择的检测模式相关,Full 模式最慢但最完整

姿态检测工作流

在 Comfy Cloud 上运行

下载工作流

下载 JSON

线稿提取(Lineart)

线稿预处理器将图像提炼为边缘和轮廓,去除纹理和颜色,同时保留结构信息。与 Canny 不同,线稿预处理器使用深度学习模型,能够理解图像的语义信息,输出更接近人工手绘线稿的结果。

常用线稿模型

Lineart(标准线稿)

使用深度学习模型提取图像的线稿表示,输出干净、连续的线条。
  • 优势:线条连续性好,接近手绘效果
  • 适用场景:角色设计、插画风格转换、漫画/动画制作

Lineart Anime(动漫线稿)

专门针对动漫/二次元风格优化的线稿提取模型。
  • 优势:更适合动漫角色的线条特征,眼睛、头发等细节处理更好
  • 适用场景:动漫风格图像处理、二次元角色重绘

Lineart Coarse(粗线稿)

提取更粗、更简洁的线条,适合需要大致结构而不需要过多细节的场景。
  • 优势:线条更粗犷,结构更简洁
  • 适用场景:草图级别的结构控制、风格化生成

Lineart vs Canny 对比

特性LineartCanny
方法深度学习模型传统算法
语义理解有,理解物体结构无,仅检测亮度变化
线条连续性好,类似手绘一般,可能有断裂
噪声敏感度
速度较慢(需要 GPU)
参数调节需要调节阈值

适用场景

  • 风格化和重绘工作流
  • 漫画/动画角色设计
  • 与深度和姿态配合提供多层次的结构约束
  • 保留结构的同时改变画风

线稿转换工作流

在 Comfy Cloud 上运行

下载工作流

下载 JSON

法线提取(Normal map)

法线估计将平面图像转换为表面法线图——一个描述表面每个部分朝向的逐像素方向场(通常编码为 RGB)。这种信号对于重新打光、材质感知风格化和高度结构化的编辑非常有用。

工作原理

法线图使用 RGB 三个通道分别编码表面在三个轴向的法线方向:
  • R(红色)通道 — 表面在 X 轴方向的倾斜(左右)
  • G(绿色)通道 — 表面在 Y 轴方向的倾斜(上下)
  • B(蓝色)通道 — 表面在 Z 轴方向的倾斜(前后)
平坦表面在法线图中显示为统一的蓝紫色(因为法线指向正 Z 方向),而有起伏的表面会显示出丰富的颜色变化。

适用场景

  • 在保持几何形状的同时驱动重新打光/着色变化
  • 为风格化和重绘管道添加更强的 3D 结构
  • 与姿态/深度配合用于动画工作时提高跨帧一致性
  • 材质和纹理相关的精细控制

使用建议

  • 法线图对光照变化非常敏感,输入图像的光照越均匀,结果越准确
  • 可以与深度图配合使用,提供互补的 3D 结构信息
  • ControlNet-ready 的输出可直接用于重新打光、优化和保持结构的编辑

法线提取工作流

在 Comfy Cloud 上运行

下载工作流

下载 JSON

其他常用预处理器

Scribble(涂鸦/草图)

将图像转换为简单的涂鸦风格线条,或者直接使用手绘草图作为控制条件。
  • 适用场景:快速草图指导生成、概念设计阶段
  • 特点:对输入要求最低,手绘草图即可使用

SoftEdge / HED

使用 HED(Holistically-Nested Edge Detection)算法提取柔和的边缘。相比 Canny,HED 的边缘更柔和、更自然。
  • 适用场景:需要柔和边缘控制的场景,如自然风景、人像
  • 特点:边缘过渡自然,不会产生硬边

Segmentation(语义分割)

将图像分割为不同的语义区域(如天空、建筑、道路、人物等),每个区域用不同的颜色表示。
  • 适用场景:需要按区域控制生成内容的场景,如城市街景、室内设计
  • 特点:提供最高层次的语义控制,但不保留细节结构

MLSD(线段检测)

检测图像中的直线段,特别适合建筑和室内场景。
  • 适用场景:建筑设计、室内设计、需要直线结构的场景
  • 特点:只检测直线段,忽略曲线和有机形状

预处理器选择指南

预处理器控制类型最佳场景内置/自定义
Canny边缘轮廓产品、建筑、机械内置
Depth空间深度场景构图、3D 布局自定义节点
OpenPose人体姿态人物动作控制自定义节点
Lineart线稿结构角色设计、插画自定义节点
Normal表面法线重新打光、材质自定义节点
Scribble草图概念设计自定义节点
SoftEdge柔和边缘自然场景自定义节点
Segmentation语义区域区域内容控制自定义节点
MLSD直线段建筑、室内自定义节点

组合使用建议

多种预处理器可以组合使用,通过 混合 ControlNet 实现多层次的精细控制:
  • Depth + Lineart:保持空间关系的同时强化轮廓,适合建筑和产品设计
  • Depth + OpenPose:控制人物姿态并保持正确的空间关系,适合人物场景
  • OpenPose + Lineart:精确控制人物姿态和服装细节
  • Canny + Depth:边缘精度与空间感兼得,适合需要严格结构控制的场景