纯新手向ComfyUI系列十七:Krea2 进阶工作流,局部重绘、无损扩图,一键生成角色四视图设定图!
做游戏角色设定的同学,应该都经历过这个场景:先用AI生成一张好看的人设图,然后导进PS里,手动补侧面、补背面,再拼成一张四视图。一次两次还能接受,项目一旦要换风格、换服装、换姿势,那点耐心就直接被消磨干净了。
而另一类更常见的痛苦是:AI直出的图只有正面能用,想让角色转过头、换套衣服,或者把一张半身像扩成完整的全身设定图,结果细节崩、脸变形、袖子连到背上。问题不在于AI画不好,而在于你不会把AI放在一条可控的流程里。
最近圈子里经常提到的Krea2,配合ComfyUI使用后,恰好可以把局部重绘、无损扩图、角色四视图设定图这三件事串成一条完整工作流。这篇文章不是做产品预告,而是把它拆成具体能用的步骤:Krea2在这个流程里到底提供了什么能力,环境要怎么搭,节点缺失报错怎么解决,以及如何从一张草图直接生成一张能交付的角色四视图设定图。
1. 这篇文章真正要解决的问题
先说结论:Krea2进阶工作流真正改变的,不是“AI能不能出图”,而是“AI出图之后,你还有没有控制权”。
传统AI出图的流程是:写提示词、点生成、挑一张能用的,不满意就重抽。这种方式在前期灵感阶段很爽,但一旦进入角色设计的中后期,问题就暴露了。你要的不是一张随机发挥的好看图片,而是同一个角色在多张图中保持统一,面部、服装、姿态、视角都朝着确定的方向收敛。
局部重绘解决的是“哪里坏了改哪里”,无损扩图解决的是“构图不够补外部”,四视图设定图解决的是“一个角色要有多个标准视角”。这三件事单独拆开,每一件都有不少AI工具能做到,但它们的问题是各自为战。你在A工具里修脸,到B工具里扩图,最后再去C工具里拼版,流程一多,风格和精度都会打折。
ComfyUI这套方案把三件事放进同一个节点图里,用Krea2作为核心生成模型,通过节点串联完成一次完整的角色设定图生产。这才是它区别于“随手玩一玩”的关键。
这篇文章适合这几类读者:
- 已经装了ComfyUI,但只停留在“生成图片然后复制粘贴”阶段的人;
- 做角色设计、立绘、虚拟主播皮套、漫画分镜,需要把AI出图纳入正式流程的人;
- 想理解局�部重绘和无损扩图原理,却看了一堆概念解释仍然不知道从哪下手的新手。
2. Krea2 是什么?先理解三个核心概念
2.1 Krea2 在流程里的角色
Krea2是一个图像生成与编辑能力更强的AI模型。相比直接依赖基础大模型,Krea2在“按指令修改图像”的场景下表现更稳定,尤其适合做局部重绘和结构编辑。在ComfyUI里,它通常通过自定义节点方式接入,工作方式类似于一个“更聪明的图生图模型”。
不过要提醒一点:ComfyUI工作流本身是模型无关的。这意味着你不一定非要绑定某个具体版本,关键是理解它在节点图中承担的功能。Krea2被引入到工作流中后,主要承担的是“忠实执行重绘指令”这个任务。
2.2 局部重绘(Inpainting)
局部重绘的意思是:告诉AI“这张图里的某个区域需要重新画,其他区域保持不变”。这在ComfyUI里通常通过蒙版(Mask)实现。
传统做法是把图导进PS,用套索选出区域,再涂抹、修复。局部重绘的AI方案则要处理一个核心难点:如何让重绘区域与周围像素在纹理、光影、色彩上衔接自然。很多人初次尝试时发现重绘区域像一块补丁,颜色对不上,边缘生硬,原因往往不是模型不行,而是重绘强度、蒙版羽化、采样步数这几个参数没有配合好。
这部分在第5节会有完整示例。
2.3 无损扩图(Outpainting)
无损扩图与局部重绘是相反方向的操作:局部重绘是修改图片内部的某个区域,无损扩图是扩展图片边界之外的内容。
比如现有素材是一张半身照,你想把它扩成全身立绘。算法需要根据图片内部的角色特征、光影方向和环境风格,推理出画面之外的服装、背景和肢体结构。“无损”两个字用在这里,意思是尽量不损失原始图片的内容质量,不改变画风。
真正容易出错的地方在于:扩图时如果只给一个简单提示词“继续画完整”,模型很容易自由发挥,导致扩展部分与原始画面不衔接。正确做法是给出角色描述、环境描述和镜头高度等显式约束。
2.4 角色四视图设定图
角色四视图设定图是动画、游戏行业常用的标准交付物,通常包含角色的正面、侧面、背面三视图,有时会加上1/4侧面视角,统一摆放在一张设定图面板中。它的核心要求是:同一个角色在不同视角下保持一致的人体结构、服装细节和配色。
过去生成四视图的方式是逐视角生成,然后在后期软件里拼接对齐。现在用Krea2进阶工作流,可以在一个工作流中完成:先生成一个基准形象,再利用局部重绘修正细节,再通过结构控制节点生成其他视角,最后无损扩图扩展画布并排版输出。
三者的关系可以这样理解:
| 功能 | 作用于 | 核心目标 | 常见用途 |
|---|---|---|---|
| 局部重绘 | 图片内部区域 | 局部替换或修复 | 修脸、改服装、去杂物 |
| 无损扩图 | 图片边界外区域 | 扩展画布内容 | 半身变全身、竖图变方形 |
| 四视图生成 | 同一角色多视角 | 保持角色一致性 | 人设图、三视图、立绘参考 |
3. 环境准备:ComfyUI、模型与资源清单
3.1 ComfyUI 安装方式选择
ComfyUI的安装方式主要分两种:官方源码安装和整合包安装。
如果你是纯新手,建议优先选择整合包,比如秋叶ComfyUI整合包。整合包的好处是:Python环境、PyTorch、常用节点、启动器都打包好了,不需要自己折腾依赖关系。如果你已经有一定经验,或者项目后期需要频繁改代码,再切换到官方源码版也不迟。
这里给一个中立的建议:不要盲目追求“用官方版显得专业”。ComfyUI的日常使用绝大部分操作都在界面和节点图里完成,整合包和官方版在功能上没有本质区别。真正重要的,是你能不能在遇到依赖问题时快速定位并解决。
3.2 基础运行环境
ComfyUI本质上是Python程序,依赖PyTorch做模型推理。环境要求如下,但版本请以实际项目为准:
- 操作系统:Windows 10/11、Ubuntu 20.04及以上、macOS;
- Python:官方版建议使用3.10或3.11,整合包一般自带;
- GPU:NVIDIA独立显卡,显存建议8GB以上,4GB也能跑,但需要控制分辨率;
- CUDA:建议对应PyTorch版本安装,通常11.8或12.x均可;
- 磁盘空间:基础模型加常用节点至少预留50GB以上。
如果你不确定自己的环境是否满足,可以先运行ComfyUI自带的启动脚本,能正常打开浏览器界面就说明基础环境没问题。
3.3 Krea2 模型与自定义节点准备
把Krea2跑起来,核心是模型文件和自定义节点两块。
模型文件通常是.safetensors或.gguf格式。如果你使用的是Krea2相关的ComfyUI自定义节点,安装完成后模型一般放在:
ComfyUI/ ├── models/ │ ├── checkpoints/ # 基础大模型 │ ├── loras/ # LoRA 模型 │ ├── controlnet/ # ControlNet 模型 │ └── vae/ # VAE 模型推荐先通过ComfyUI Manager搜索并安装Krea2相关的自定义节点。ComfyUI Manager是管理自定义节点的利器,可以搜索、安装、更新节点,还能检测缺失节点。
# 在 ComfyUI 根目录下执行(示例路径) git clone https://github.com/<你的Krea2节点仓库地址>.git custom_nodes/ComfyUI-Krea2 # 安装该节点所需的 Python 依赖 cd custom_nodes/ComfyUI-Krea2 pip install -r requirements.txt请留意,实际使用时节点仓库地址以你在ComfyUI Manager或官方社区中搜索到的为准。搜不到时,也可以使用“Qwen-Image-Edit”等支持局部重绘的模型替代,工作流逻辑不变,只是底座模型不同。
3.4 工作流提示缺失包怎么处理
“请安装缺失的包以使用此工作流。要安装缺失的节点,请先在你的 python 环境中运行……”这是ComfyUI新手最常遇到的报错之一。出现这个提示,说明工作流中引用了当前环境没有的Python包或自定义节点。
处理顺序建议如下:
- 先看工作流里有没有写清依赖文件名,通常是
requirements.txt; - 找到对应节点目录,在ComfyUI的Python环境中安装依赖;
- 如果使用整合包,一定要在整合包自带的 Python 环境中执行,而不是系统 Python 环境;
- 安装完成后重启 ComfyUI。
常见缺失包包括ultralytics、insightface、onnxruntime、cv2等,这些多用于ControlNet预处理、人脸修复、姿态检测等功能。
4. 核心流程拆解:把四视图生成拆成五个动作
在动手搭工作流之前,建议在脑子里面先建立一个整体流程。直接从零开始拖节点,很容易迷失。
一次完整的Krea2角色四视图工作流,可以拆成五个动作:
动作一:生成或导入基准形象。基准形象是后续所有视角的基础。可以先用提示词生成一张正面半身像,也可以导入已有的设计草图。
动作二:局部重绘修正细节。基准形象生成后,脸部、服装、配饰不一定完全符合设定。这时通过局部重绘,把不满意的区域标记出来,输入修改描述,重新生成。这一步的核心价值是:不需要整张重画,只动需要动的地方。
动作三:无损扩图扩展构图。基准形象修正后,如果需要全身立绘或者增加画面留白,就使用无损扩图。原始角色的关键特征会作为条件输入,模型推理出扩展区域的内容。
动作四:多视角生成与一致性约束。正面确定以后,通过ControlNet或IPAdapter这类条件控制节点,对角色进行背面、侧面的多视角生成,并把当前的角色特征作为参考图传入。这样能显著降低“换一个视角就换了一个人”的概率。
动作五:拼版与后处理。多视角图生成后,在ComfyUI内部完成画布拼接,或者导出到绘图软件排版。四视图最终输出一般会统一尺寸、统一底色、统一光照方向。
这五个动作,在ComfyUI里分别对应不同的节点组。新手最容易犯的错误是:期望一个节点完成所有工作。实际上ComfyUI的价值正在于把复杂任务拆成小节点,每个节点只干一件事,并且可以随时替换。
5. 完整示例:从单张半身像到四视图设定图
下面进入实操部分。这里不会追求把所有节点都截图标注出来,而是用三个最小可复现的示例,把局部重绘、无损扩图、四视图生成串起来。掌握了这三种能力,你就能组合出自己的工作流。
5.1 局部重绘:修正角色脸部偏差
假设你已经生成了一张正面半身像,整体满意,但眼睛位置偏了、嘴角不对。这种情况不需要重新生成,使用局部重绘即可。
在ComfyUI中,局部重绘的关键节点组是:
LoadImage -> VAEEncodeForInpaint -> KSampler -> VAEDecode -> SaveImage LoadImage + Mask ^ 使用提示词约束重绘内容实际操作时,本地Mask来源有三种:
- 使用图像编辑器手工制作黑白蒙版,白色为需要重绘区域;
- 使用SAM(Segment Anything)类模型自动生成蒙版;
- 使用FaceDetailer等高级节点,自动检测人脸区域并执行重绘。
一个标准的局部重绘API调用参数如下:
{ "class_type": "VAEEncodeForInpaint", "inputs": { "pixels": ["LoadImage", 0], "vae": ["VAELoader", 0], "mask": ["LoadImage", 1] } }关键是KSampler里的denoise参数。局部重绘时,denoise建议控制在0.5到0.7之间。太低,重绘区域变化不明显;太高,重绘区域会脱离周围风格,像贴了一张补丁。
5.2 无损扩图:半身像扩展为全身立绘
无损扩图的原理,是把原图放入一个更大的画布,并在画布之外的区域执行类局部重绘操作。扩展区域没有原始像素,模型需要根据已有的角色描述来推理。
在ComfyUI中,无损扩图的一个主流做法是使用ControlNet的Inpaint模型配合大画布完成。核心操作是:
LoadImage 原图 | v Pad Image(四周扩充画布) | v Set Latent Noise Mask(只对应扩充区域) | v KSampler + ControlNet Inpaint(约束扩展内容与原始图像一致) | v VAEDecode -> 输出这里有一个很多人忽略的细节:扩图时提示词不能只写“全身、完整”,要把角色描述完整重写一遍。因为扩充区域没有像素参考,模型只能靠提示词判断衣物、发型、鞋子长什么样。
反面提示词建议加入:
bad anatomy, bad proportions, extra limbs, duplicate torso, deformed clothes, watermark, text5.3 四视图生成:利用参考图保持角色一致
四视图生成阶段,最核心的问题是“一致性”。同一个角色,不同视角要让人一看就是同一个人。
我的建议是采用“一张基准图 + ControlNet + IPAdapter”的组合方案:
- IPAdapter负责把基准图中的人物特征(脸部、服装、配色)迁移到新视角;
- ControlNet负责约束新视角的姿势和人体结构;
- Krea2则负责最终的图像生成。
IPAdapter节点组的基本链路如下:
LoadImage 基准图 -> IPAdapterPlus -> KSampler ^ ControlNet 姿势图 -> |新视角的正面提示词建议使用如下格式,留出修改空间:
full body character turnaround, back view, same character as reference image, navy blue military jacket with gold buttons, white shirt, black pants, brown leather boots, standing pose, front-facing lighting, plain gray background, consistent character design, game concept art, highly detailed“same character as reference image”这类描述虽然不能完全保证一致性,但可以给模型一个明确的任务提示,与IPAdapter配合使用效果更好。
5.4 用Python API提交工作流
如果你不想每次都在界面里手动点,ComfyUI也提供了HTTP API模式。下面是一个最小Python提交示例,用于演示如何把工作流JSON发送给ComfyUI并获取结果:
import json import urllib.request def queue_workflow(workflow_json, server_addr="127.0.0.1:8188"): # 将工作流包装成 API 请求 request_data = json.dumps({"prompt": workflow_json}).encode("utf-8") req = urllib.request.Request( f"http://{server_addr}/prompt", data=request_data, headers={"Content-Type": "application/json"} ) with urllib.request.urlopen(req) as resp: return json.loads(resp.read().decode("utf-8")) if __name__ == "__main__": # 这里的 workflow_json 可以从 ComfyUI 界面导出 # 也可以手工构造节点图数据 with open("workflow_krea2.json", "r", encoding="utf-8") as f: workflow = json.load(f) result = queue_workflow(workflow) print("任务已提交,任务ID:", result.get("prompt_id"))第一次跑通后,你就可以把常用工作流保存为JSON模板,后续批量生成时直接改提示词和种子即可,不需要每次重新拖节点。
6. 运行结果与效果验证
运行工作流后,判断是否成功,不能只看“图片生成出来了”。建议按以下顺序检查:
第一步,检查节点是否全部执行成功。如果有任一节点报错,使用日志中的节点名称定位问题。比如日志里出现node ...报错,通常与该节点的依赖包或输入参数有关。
第二步,检查局部重绘区域是否自然。把局部重绘结果与原图对比,重点看边缘过渡、色彩匹配、纹理一致性。如果重绘区域边缘明显,说明denoise过高或蒙版未做羽化。
第三步,检查扩图部分是否与原图风格统一。无损扩图容易出现扩出来的背景灯光方向不一致,或者角色延伸部分的服装细节与原图完全不同。发现问题后,回到提示词和ControlNet权重上调整。
第四步,检查四视图的一致性。多视角图是否保持相同的服装配色、发型、脸型。人物设定图的一致性验证,可以把几个视角缩小并排查看,一目了然。
验证成功的标准是:这张四视图设定图,可以直接作为角色模型的表情包参考、3D建模参考或漫画人设参考,而不是一张“看起来漂亮但无法复用”的AI图。
7. 常见问题与排查思路
以下是Krea2进阶工作流中频率最高的问题,强烈建议收藏备用。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 启动后报缺失包 | 节点依赖未安装,或当前Python环境不是ComfyUI实际使用的环境 | 查看报错中的包名,确认ComfyUI实际Python路径 | 激活ComfyUI对应的Python环境,安装requirements.txt |
| 节点执行过程中发生错误 | 自定义节点版本冲突,或输入参数为None | 打开ComfyUI日志,找到node对应的节点类 | 更新节点到最新版,检查节点输入是否已连接 |
| 局部重绘结果像贴了补丁 | denoise过高,蒙版无羽化 | 检查KSampler的denoise参数 | 降低到0.5-0.7,蒙版增加羽化半径 |
| 扩图后角色服装变化 | 提示词未完整描述角色外观 | 对比原始角色细节列表 | 在扩展提示词中重写全部角色外观特征 |
| 四视图角色不像同一个人 | 缺少IPAdapter或ControlNet约束 | 查看工作流中是否接入参考图条件 | 接入IPAdapter,并降低Krea2的CFG值 |
| 显存不足导致生成失败 | 分辨率过高,或同时加载模型过多 | 查看任务管理器GPU显存占用 | 降低分辨率,开启ComfyUI的分块处理,使用--lowvram模式 |
| 模型加载速度很慢 | 模型体积大,磁盘读取慢 | 查看启动时模型加载耗时 | 使用SSD,或使用FP8/GGUF量化模型 |
| 工作流导入后提示节点不存在 | 缺少对应的自定义节点 | 使用ComfyUI Manager检测缺失节点 | 一键安装缺失节点,或从节点Git仓库手动安装 |
如果你看到的是完整错误报告,格式类似:
# comfyui error report ## error details - **node**: [节点名称] - **exception**: [异常类型]那么优先搜索那个节点名称,而不是整个报错。大部分情况下,都是该节点的依赖包没装全,或节点版本与ComfyUI本体不兼容。
8. 最佳实践与工程建议
8.1 建立自己的工作流版本管理
ComfyUI工作流本质上是一个JSON文件。建议把每个阶段的工作流分开保存,例如01_基准形象.json、02_局部重绘.json、03_扩图.json、04_四视图合成.json,而不是只保留一个包含全部节点的终极版本。这样出了问题可以回到上一阶段重新调整,不会“牵一发动全身”。
8.2 固定种子,保持可复现性
角色设计过程中,当某一轮生成效果很好时,记得把种子(seed)固定下来。所谓种子,就是控制随机噪声的初始值。同一个提示词、同一个种子、同一个模型,生成结果可以稳定复现。在团队协作中,分享工作流的同时把种子一起发出去,可以大幅减少沟通成本。
8.3 使用LoRA固定风格
如果你经常生成同一风格的角色,建议训练或者下载对应风格的LoRA模型。LoRA体积小、加载快,能在不改变基础大模型的前提下,把角色画风往同一方向拉。Krea2与LoRA的配合,等于给工作流加了一个“风格锁”。
8.4 干净的角色描述模板
角色四视图最忌提示词混杂。建议把“角色描述”和“环境描述”分开维护一份模板。
角色描述:年轻男性,银白色短发,红色眼睛,深蓝色军装外套,黑色长裤 环境描述:纯灰色背景,均匀正面光,全身入镜,站立姿势 负面提示词:bad hands, extra fingers, deformed face, mismatched clothes, inconsistent colors每次修改角色或环境时,只改对应区域,不要在整段提示词里反复堆词,否则容易造成风格漂移。
8.5 生产与草稿分离
正式出图前,先用小尺寸、快速采样方案跑草稿。草稿确认构图和角色方向后,再在最终输出时提高分辨率、增加采样步数。这种“先粗后精”的节奏,能在同样的硬件条件下提升产出效率。
8.6 合规提醒
使用Krea2进行角色重绘或换装时,务必确认原始素材的版权和使用授权。仅对你有权修改的图片执行局部重绘,不要对真实人物的照片进行未经授权的换脸、换装等操作。模型生成内容也应遵守平台和模型许可协议,不要用于违法违规用途。
9. 总结与后续学习方向
这篇文章把Krea2进阶工作流拆解成了三件事:局部重绘解决细节修正,无损扩图解决构图扩展,四视图生成解决角色一致性。它不是一个单独功能,而是一套从单张基准图到最终交付物的完整路径。
你可以先把三件小事分别跑通:先做一次局部重绘,体验蒙版和denoise参数对结果的影响;再做一次无损扩图,理解提示词对扩展区域的控制力;最后再组合成四视图工作流。这种由小到大的方法,比一上来就复制一个几百个节点的“一键工作流”要有效得多。
后续值得继续深入的方向有三个:一是用ControlNet配合Krea2做更精确的姿态控制;二是用IPAdapter统一多个角色之间的画风;三是把工作流封装成API,接入批量生成流程,让角色设定图生产真正变成工程化流水线。
建议把本文中提到的排查表和数据流图收藏起来,下次搭工作流时对照着操作。ComfyUI这套工具的上限很高,但它的下限也取决于你对基础概念的掌握程度。把局部重绘、扩图和一致性控制这三块地基打牢,剩下的就只是时间问题。