先问一个实际问题:现在的 AI 写真工作流很多,但真正能做到“角色一致 + 唯美画质 + 本地部署”三者兼得的方案并不多。要么角色一致性需要额外训练 LoRA,要么画质依赖在线 API,要么整套流程拆得七零八落,操作起来非常折腾。本文将分享一套基于 ComfyUI 的 Krea2 套系写真生成工作流,在本地环境中完成从角色参考到写真成片的全流程搭建。内容会覆盖环境准备、模型选择、角色参考模块接法、工作流节点拆解、常见报错排查和工程化建议,适合对 ComfyUI 有一定基础、想落地写真类项目的读者。
1. Krea2 写真工作流能解决什么问题
1.1 “写真生成”在 ComfyUI 里到底是什么
写真生成并不是某个单独模型能完成的事,而是一条由多个节点串联起来的图像生产链路。在 ComfyUI 中,它至少包含角色参考图解析、正向提示词控制、采样器出图、细节修复或放大、最终编码输出这几个环节。Krea2 套系写真工作流的设计目标,是把这些环节封装成一套可复用的流程,让用户只需准备一张角色面部参考图,再输入场景和服装描述,就能批量生成风格统一、角色相似度较高的写真图。
相比直接用文生图,写真的难点在于“同一张脸”。文生图只能靠提示词描述五官,效果不稳定。使用角色参考模块后,工作流会先提取参考图中的面部特征或整体人物特征,再在生成时把这些特征约束进潜空间,从而大幅提高多张图之间的角色一致性。这也是 Krea2 工作流被称为“套系写真”的核心原因:适合生成同一人物在不同场景下的系列图。
1.2 Krea2、白玉模型、角色参考之间的关系
从工作流的角度来看,可以这样理解三者:
| 部分 | 作用 | 启用的模块 |
|---|---|---|
| Krea2 | 工作流主体,规定 出图节奏、节点连接方式、放大策略 | 整套 json 流程 |
| 白玉模型 | 负责画风与审美,影响“唯美”的质感 | Checkpoint、LoRA |
| 角色参考 | 保证脸型、五官、气质在不同场景下保持一致 | InstantID / IPAdapter / ReActor 等参考节点 |
“白玉模型”在社区中通常被归类为人像摄影向的模型,擅长柔和光影和通透肤色,比较适合古风、时装、清冷感写真这类视觉风格。它不一定是唯一的模型选择,如果你的出图场景偏商业精修或二次元,可以替换为其他模型,工作流骨架仍然通用。
1.3 适合谁用、常见使用场景
这套工作流适合以下三类读者:
- 想快速产出小红书、朋友圈风格写真图的摄影师和设计师。
- 在 ComfyUI 中折腾过基本文生图,但还没系统搭建过“角色一致 + 套系出图”流程的玩家。
- 需要在本地完成私密人像生成的用户,不依赖在线 API,数据不出本机。
典型使用场景包括古风套系写真、生日纪念照、职场形象照、情侣合照风格统一化、同一模特的多场景服装方案预览等。
2. 环境准备与基础安装
在开始搭建工作流之前,先检查你的运行环境。Krea2 工作流对硬件有一定要求,尤其是启用角色参考节点后,显存占用会明显上升。
2.1 硬件与系统建议
- 操作系统:Windows 10/11、Ubuntu 20.04 及以上均可。
- 显卡:NVIDIA 显卡,建议显存 8GB 以上。角色参考 + SD1.5 模型建议 8GB;如果直接跑 SDXL 系列,建议 12GB 以上。
- 内存:建议 16GB 以上。
- 磁盘:预留 30GB 以上空间,用于存放模型、工作流 json 和临时缓存。
如果你使用的是 A 卡或纯 CPU 环境,理论上可以运行,但角色参考节点和放大节点会比较吃力,出图速度也会慢很多。
2.2 ComfyUI 安装方式
ComfyUI 的安装主要分为“整合包”和“官方源码”两种方式。对大多数新手来说,整合包更省心,常用的有社区维护的秋叶整合包,内置了启动器、依赖管理、模型目录和常用节点,适合快速上手。对需要频繁更新版本或自定义修改源码的开发者,建议使用官方源码。
以官方源码方式为例:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI python -m venv venv source venv/bin/activate # Windows 下使用 venv\Scripts\activate pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install -r requirements.txt启动方式:
python main.py启动成功后,浏览器访问http://127.0.0.1:8188即可打开 ComfyUI 界面。
如果你使用的是整合包,则直接打开启动器,点击“一键启动”即可,不需要手动配置 Python 环境。整合包通常已经装好了 cuDNN、Torch、常见节点等运行依赖,适合不想折腾环境的人。
2.3 额外节点准备
Krea2 工作流如果包含角色参考功能,通常需要以下自定义节点中的一部分:
- ComfyUI Manager:社区节点的安装和管理工具,强烈建议优先安装。
- ControlNet Auxiliary:用于预处理参考图,例如提取深度图、姿态、线稿。
- InstantID 相关节点:用于面部特征保持。
- ReActor 节点:用于人脸检测、人脸替换和面部相似度增强。
- Impact Pack:提供面部修复、检测器、采样器封装等能力。
在缺少自定义节点的情况下,加载工作流 json 时往往会看到红色节点,这表示对应节点不存在。使用 ComfyUI Manager 可以一键搜索并安装缺失节点。
遇到“请安装缺失的包以使用此工作流”的提示时,优先检查节点缺失,而不是重新安装整个 ComfyUI。
3. 模型选择与下载思路
3.1 白玉模型放哪里
白玉模型如果是 Checkpoint 类型,则放入ComfyUI/models/checkpoints/目录。如果是 LoRA 类型,则放入ComfyUI/models/loras/目录。如果是 VAE 结构,则放入ComfyUI/models/vae/目录。
放置完成后,在 ComfyUI 界面中点击“刷新”按钮,节点里的模型下拉列表才会出现新模型。
3.2 Checkpoint、LoRA、VAE 的分工
Checkpoint 是整个出图流程的基座,决定了画风、光影、人体结构的起点。它内部通常已经包含了 UNet、CLIP 和 VAE。理论上一个 Checkpoint 就能完成文生图,但想要更好的效果,可以叠加 LoRA 做风格微调。
白玉模型如果作为 LoRA 使用,它的作用是“在基础模型之上,强化唯美写真的表现特征”。比如让肤色更通透、光影更柔和、发丝更细腻。它不会改变模型的基本能力,而是在出图时通过权重干预风格走向。
VAE 的作用是负责潜空间与像素空间之间的转换。部分模型需要搭配专用 VAE 才能获得更好的色彩表现。如果出图颜色发灰发白,优先考虑更换 VAE。
3.3 角色参考模型怎么选
角色参考功能的模型需要根据你使用的节点决定:
- 如果走 InstantID 路线,需要 InstantID 专用 ControlNet 模型和 face_embedding。
- 如果走 IPAdapter 路线,需要 IPAdapter 模型和对应图像编码器。
- 如果走 ReActor 路线,需要 inswapper_128.onnx 这种人脸替换模型。
不同路线的效果差异较大。InstantID 在“保持面部身份”上表现更强,适合严肃写真;IPAdapter 更偏向风格迁移,适合氛围感人像;ReActor 则是硬性换脸,适合在生成图上直接替换面部。
Krea2 工作流如果已经内置了角色参考模块,那么通常它会指定使用哪条路线。如果你只是套用模板,建议优先按原工作流的要求准备模型,不要随意替换,否则连接方式和参数都会有差异。
4. 核心工作流节点拆解
很多人在网上下载了 Krea2 工作流 json,导入 ComfyUI 后看到密密麻麻的节点就不知道从哪里下手。这一节我们从“功能分区”的角度拆解整套工作流,理解每个模块的作用。
4.1 输入与模型加载区
这是工作流的起点,通常包含 CheckpointLoaderSimple、VAELoader 和 LoraLoader。节点内部负责加载模型权重并输出给后续节点使用。
# 对应节点逻辑(伪代码,用于理解,非实际运行代码) checkpoint = load_checkpoint("白玉.safetensors") vae = load_vae("vae-ft-mse-840000") unet, clip = extract_components(checkpoint)在实际工作流中,你不需要写代码,只需要选择对应模型文件即可。确保“白玉模型”出现在 Checkpoint 下拉框中。
4.2 角色参考模块
这是整套工作流的重点。以 IPAdapter 路线为例,参考图输入节点会接收一张角色照片,经过图像编码器后生成图像 embedding,再通过 IPAdapter 节点把该 embedding 注入生成过程。
# IPAdapter 接入流程(伪代码) reference_image = load_image("ref.png") embedding = image_encoder.encode(reference_image) result = ipadapter.apply( model=unet, image_embedding=embedding, weight=0.8, start_at=0.0, end_at=1.0 )这里的 weight 参数很关键。权重太高会导致生成图与参考图几乎一样,但动作和背景变化受限;权重太低则角色相似度不足,人物会“变脸”。实际使用时建议从 0.6 到 0.9 之间调整。
如果使用 InstantID 路线,则在角色参考前通常会接入一个 InsightFace 预处理节点,提取面部 embedding。如果你的参考图是多人合照,还需要先做人脸检测和裁剪,确保只提取目标人物。
4.3 提示词处理区
ComfyUI 中可以用 CLIPTextEncode 节点,也可以外接 Qwen、GPT 等大语言模型节点自动生成提示词。Krea2 工作流如果面向写真场景,建议把提示词分成几个固定组成部分:
- 主体描述:一位中国年轻女性、长发、清冷气质。
- 服装描述:白色吊带裙、薄纱外搭。
- 场景与情绪:黄昏海边、逆光、温柔氛围。
- 画质词:唯美写真、柔和光影、胶片感、高细节。
正向提示词: (best quality:1.2), masterpiece, 1girl, solo, long hair, white slip dress, seaside, golden hour, backlight, soft lighting, dreamy atmosphere, photorealistic, delicate skin, film grain反向提示词:
lowres, bad anatomy, bad hands, extra fingers, blurry, jpeg artifacts, watermark, text, deformed提示词不需要很长,但每个词都要有实际控制作用。写真的关键是保留足够的“摄影语言”,而不是堆一堆形容词。
4.4 采样与出图区
采样器决定了潜空间转换质量。常见参数如下:
- sampler_name:推荐
dpmpp_2m或euler_a。 - scheduler:推荐
karras。 - steps:18 到 30 之间。
- cfg:7 左右。写真人像建议在 6-8 之间测试,过高会发腻。
- denoise:整图生成时通常为 1.0;图生图重绘时根据需求调整。
不同模型适合的采样器组合不同,白玉模型的具体偏好需要实测。建议在第一次使用时固定其他参数,只换 sampler 做横向对比。
4.5 放大与细节修复区
套系写真不仅要脸像,还要画质经得起放大。常见做法是“低分辨率生成 + 二次放大”。先在 512 或 768 分辨率下快速出图,然后通过 UltimateSDUPSCALE 或 Tiled Diffusion 进行放大。
放大过程中有两个关键操作:
- 开启面部修复(face restore),使用 codeformer 或 gfpgan 修复五官边缘。
- 对脸部区域进行局部重绘,让放大后的脸依然保持自然质感。
如果显存充足,可以配合 ControlNet Tile 模型,在放大时保持更多细节不丢失。
5. 完整实战:搭建一套可用的 Krea2 写真工作流
这一节我们手动搭建一套最小的“角色参考写真工作流”。虽然每个节点的细节会因为模型和插件版本不同而有所变化,但整体流程思路是通用的。
5.1 工作流结构预览
完整流程按顺序分为四段:
- 加载模型和白玉 LoRA。
- 读取角色参考图并提取特征。
- 提示词控制 + 采样生成。
- 放大 + 面部修复 + 输出。
5.2 模型加载节点配置
在工作流画布中添加 CheckpointLoaderSimple,选择基础模型。如果你手头有唯美写真向模型,建议选择该类;如果没有,SD1.5 写实模型也可以作为替代。
如果白玉模型是以 LoRA 形式存在,则在 CheckpointLoader 后连接 LoraLoader,并填写 LoRA 文件名。权重建议从 0.5 开始尝试,LoRA 权重过高会让整个画面出现明显风格扭曲。
5.3 角色参考节点配置
这里以 IPAdapter 为例进行说明,因为它对新手最友好。需要准备:
- 一张清晰、正面或微侧面的角色面部照片。
- IPAdapter 模型文件,放到
ComfyUI/models/ipadapter/。 - CLIP Vision 模型文件,放到
ComfyUI/models/clip_vision/。
在 ComfyUI 中添加 LoadImage 节点,载入角色参考图;添加 IPAdapter 节点,连接模型、参考图 embedding,并设置 weight 为 0.7 到 0.85。
5.4 采样生成区配置
添加 KSampler 节点,将 LoraLoader 输出的 MODEL 连接到 KSampler 的 model 输入。将 CLIPTextEncode 生成的 cond 和 uncond 分别连接到正向和负向提示词输入。
关键参数参考:
seed: 随机种子,出图满意后可固定复现 steps: 25 cfg: 7 sampler_name: dpmpp_2m scheduler: karras denoise: 1.0生成尺寸建议从 512x768 或 576x768 开始。这个分辨率虽然不高,但能快速验证构图和角色相似度。确认效果后再进入放大环节。
5.5 放大与输出
添加 UltimateSDUPSCALE 节点,将 KSampler 输出的图片传入。放大倍数设置为 2,模型选择为当前基础模型,重绘幅度 denoise 设置为 0.3 到 0.4。这样可以在放大时保持角色一致,不至于因为过度重绘而“变脸”。
在最终输出前,连接 SaveImage 节点保存成片。
5.6 运行与验证
点击“运行”后,观察进度条。首次运行时会有模型加载过程,耗时较长。生成完成后,检查以下几点:
- 面部五官是否与参考图保持一致。
- 光影质感是否符合“唯美写真”预期。
- 放大后的细节是否出现涂抹或崩坏。
- 手指、发丝、服装边缘是否有明显畸形。
如果角色相似度偏低,调高 IPAdapter 的 weight;如果画面整体僵硬,略微降低 weight,并检查提示词是否过于具体、限制了动作和构图。
6. 常见问题与排查思路
6.1 缺少节点或报错
工作中最常见的错误是“节点在执行过程中发生错误”或“请安装缺失的包以使用此工作流”。
这两个报错通常不是同一个原因:
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 节点红色、json 加载后显示一堆缺失节点 | 缺少自定义节点插件 | 用 ComfyUI Manager 搜索并安装缺失节点 |
| 执行时报错 ModuleNotFoundError | Python 环境缺少依赖包 | 在 ComfyUI 的 Python 环境中执行 pip install |
| 报错信息指向 CUDA 或 out of memory | 显存不足或驱动异常 | 降低批量大小、关闭放大重绘、检查驱动版本 |
在遇到节点执行错误时,点击报错节点查看完整错误信息。常见为缺少insightface、onnxruntime、tqdm等包。安装缺失包的命令:
pip install insightface onnxruntime需要注意的是,要在 ComfyUI 所使用的 Python 环境中安装,而不是系统全局环境。整合包用户可以直接在启动器中点击“打开命令行”再执行安装。
6.2 角色相似度低
原因通常有:
- 权重设置过低。
- 参考图不清晰或人脸占比太小。
- 使用了多人之类的复杂参考图,节点提取到错误目标。
- 基础模型的画风跟参考图五官风格差异太大。
排查顺序建议:
- 先确认参考图中人物面部裁剪是否合适。
- 再逐步提高参考权重。
- 最后尝试更换风格更接近写真的基础模型。
6.3 画面太“假”或太“油”
表现是皮肤过度光滑、塑料感强、细节丢失。常见原因是:
- LoRA 权重过高。
- 提示词中添加了过多“smooth”、“perfect”类词汇。
- 放大时 denoise 设置偏高,重绘导致质感丢失。
建议降低唯美类 LoRA 的权重到 0.4 左右,同时把正向提示词中的画质词改为“胶片颗粒、自然皮肤纹理”:
natural skin texture, film grain, realistic light6.4 显存不足
角色参考 + 放大对显存有压力。如果出现 CUDA out of memory,可以尝试:
- 将 latent 尺寸从 768 降到 512。
- 关闭或延后放大节点,先出小图验证。
- 降低 batch size 到 1。
- 在启动命令中增加
--lowvram参数。
python main.py --lowvram7. 最佳实践与工程化建议
7.1 工作流模块化管理
不要把整套 Krea2 工作流堆在一个画布里。推荐拆成几个子工作流,例如“角色参考子流程”、“文生图子流程”、“放大子流程”,用 Workflow 节点或直接分组管理。这样后续修改某个环节时,不会影响其他节点。
7.2 提示词分段固化
写真人像的项目往往需要批量产出。建议用一个文本文件管理“固定提示词”和“可变提示词”。固定部分包括画质词、镜头语言、反向词;可变部分包括服装、场景、动作描述。
# prompt_template.txt [固定] best quality, masterpiece, photorealistic, soft lighting, film grain, natural skin texture [可变] 1girl, long hair, {clothes}, {location}, {action}这样可以避免不同批次出图风格漂移,也让没有经验的使用者能直接上手。
7.3 注意隐私与合规边界
本地部署的一个优势就是不需要把人物照片上传到第三方服务器。但要注意,角色参考图本质上是真实人物的肖像数据。在做测试和分享时,建议使用 AI 生成的基础图或已获授权的模特图,不要上传未经许可的他人照片。生成内容也应遵守平台规范,不制作违反公序良俗的图片。
7.4 定期备份和版本记录
工作流 json 本身很小,建议按日期归档到 Git 仓库或网盘。模型文件一般体积较大,不需要每天备份,但应把下载地址、模型文件哈希值记录在文本文档中。当模型更新或重新拉取时,可以方便追溯版本。
7.5 出图质量管理
批量出图时不要只看缩略图。建议对每一批结果做局部放大检查,重点关注眼睛、手指、发丝。人的视觉对脸部细节非常敏感,一旦五官出现畸变,整套写真的质感都会崩塌。可以考虑在流程最后加一个“质量检查”环节,人工筛选后再进入修图软件。
8. 总结与后续学习方向
从整体来看,Krea2 套系写真工作流并不是一个神秘的“一键式黑盒”,而是一套由模型、参考模块、提示词、采样参数和放大策略共同组成的图像生产管线。掌握它的关键在于理解每个节点的职责,而不是机械地复制 json。角色参考模块让“同一张脸”出现在不同场景成为可能;白玉模型为画风提供了良好的唯美质感基础;而整套工作流的价值,则在于把这些能力有序地组织在一起。
接下来你可以继续深入的方向包括:
- 尝试不同的角色参考实现方式,对比 InstantID、IPAdapter 和 ReActor 的优缺点。
- 引入 ControlNet 的姿态控制,让写真图的人物姿势不再依赖提示词随机。
- 学习 LCM 或 Turbo 加速采样,在牺牲少量画质的情况下大幅度提升出图速度。
- 用 API 方式调用 ComfyUI,把本地工作流封装成可批量调用的服务。
写真生成是一个很吃“细节调优”的领域,没有一套参数能适用于所有模型和参考图。建议你以本文的工作流骨架为基础,用自己常用的模型和参考图反复测试,记录每次调整对结果的影响,逐步形成一套属于自己的出图配方。