ComfyUI线稿上色教程
好,老师好!这一课我们一起来学习如何实现线稿上色。
接下来,我们将构建一个 ControlNet 链路。ControlNet 是 ComfyUI 中极为关键的功能模块,赋予了用户对图像生成过程进行精细控制的能力,我们常简称为“控图”。
首先,进入默认工作流界面,为后续的 ControlNet 节点预留空间。双击空白处,搜索 `ControlNet`,选择“ControlNetLoaderAdvanced(旧版高级)”节点。
这个节点是 ControlNet 功能的核心载体。接下来我们按标准方式连接节点:正面提示词连接正面提示词输入,负面提示词连接负面提示词输入;正负输出同样接入 KSampler 节点。然后从 ControlNet 节点拖出“ControlNet 输入”,选择“ControlNetLoader”节点。
点击后可以看到多种 ControlNet 模型类型,它们分别适用于不同控制目标——如姿势控制、边缘线条控制、空间深度控制等。本节课聚焦于“线稿上色”,因此我们选择 `lineart` 类型(中文即“线稿”)。
接着,在图像输入端按住 Shift 键搜索“lineart”预处理器,会出现多个相关选项。若处理对象为动漫角色,选择“Anime LineArt”;若为现实物体(如建筑、汽车等),则选择“Realistic LineArt”。本例以动漫女生为例,选用“Anime LineArt”预处理器。
将该预处理器的图像输入端口拖出,连接一个“Load Image”节点,并上传事先准备好的动漫线稿图像。
ControlNet 的应用节点还需连接 VAE 输出,而 VAE 自然连接至 Checkpoint Loader 节点。考虑到本次任务是动漫风格线稿上色,所选大模型也应为动漫类模型。
完成模型选择后,编写正负向提示词。例如,设定头发为红色、上衣为白色、瞳孔为绿色;背景可设为“操场”,风格注明“动漫风格”。提示词需用英文表达,格式如下:
正面提示词示例:
`masterpiece, best quality, ultra-detailed, a girl with red hair, white top, green eyes, school playground background, anime style`
负面提示词可沿用通用方案,如 `easy negative`。
设置完毕后点击生成。初次运行时可能出现短暂卡顿(例如持续半分钟),此时可查看后台日志,常见原因为自动下载缺失的 ControlNet 模型或工作流依赖模型。待下载完成后即可正常出图。
生成结果基本符合预期:红色头发、绿色瞳孔、白色上衣,且与原始线稿结构高度一致。但会发现输出图像比例异常——原始线稿为竖屏构图,而输出却是正方形,导致上下部分被裁切。
如何解决?有同学可能想到直接修改 KSampler 的宽高参数。思路正确,但关键在于:必须准确获取原始图像尺寸,才能还原匹配比例。ComfyUI 提供了“Get Image Size”节点来实现这一功能。
在 Load Image 节点输出端按住 Shift 键搜索 `get image size`,任选一个可用节点即可。该节点输出包括宽度、高度和图像数量三个参数。
接下来,在 KSampler 节点上右键 → “Convert Control to Input” → 分别选择“Convert Width to Input”和“Convert Height to Input”。此时 KSampler 的宽、高参数即变为可连接输入项。
最后,将 Get Image Size 节点输出的 width 和 height 分别连接至 KSampler 对应的 width 和 height 输入端口。如此一来,每张输入图像的原始尺寸都会自动适配输出,无需手动调整。
验证效果:再次执行生成,输出图像已正确还原为竖屏比例。若输入为正方形或横屏图像,输出也将自动匹配对应比例。这正是 ComfyUI 自动化工作流的优势所在——搭建一次,即可批量处理各类尺寸的线稿,省去反复调节参数的操作。
再更换一张线稿(例如红发双马尾萝莉线稿),点击执行,同样能快速生成符合提示词要求的结果。整个流程清晰、稳定、可复用。
以上即为 ComfyUI 中实现线稿上色的完整操作步骤。