实战 SOP
实战 SOP

ComfyUI 一致风格工作流搭建 SOP

从安装 ComfyUI、放对底模、搭基础 txt2img 工作流并用固定 seed 锁结果,到叠加 LoRA 锁风格、IPAdapter 引参考图迁移风格,五步打通一致风格复现全链路,附真实命令、KSampler 参数表、工作流 JSON、踩坑记录与 FAQ。

发布于 2026年7月30日8 分钟阅读
<!-- comfyui-consistent-style-sop | sop | ComfyUI 一致风格工作流搭建 SOP -->

用网页版生图工具最头疼的不是出图慢,是"下一张就不一样了"。好不容易调出一个满意的构图和画风,换个 prompt 或重新生成,角色长相变了、风格漂了,没法复现。Midjourney 的 --seed 能做一定程度的锁定,但一旦要精细控制角色五官、固定画师笔触、跨多张图保持同一主角,网页版基本无解。这也是为什么专业玩家绕开网页版直接上 ComfyUI——它把生图拆成可连接的节点,每个参数都握在自己手里,配上固定 seed 和参考图,能做到"同参数同结果"。

这篇是和本站 ComfyUI 资源篇(专业玩家为什么不用网页版生图)配着的实战 SOP,走一遍从安装到复现一致风格的全流程:装 ComfyUI、放对模型、搭基础 txt2img 工作流、用固定 seed 锁结果、再用 LoRA 和 IPAdapter 进一步锁定风格和角色。每步给真实命令和可复制的参数,最后附踩坑记录和 FAQ。读到这篇说明你已经受够了网页版的随机性,准备把控制权拿回自己手里--下面每一步都能照着敲,跑不通的地方看踩坑。


一、一致风格为什么难:定位与思路

先把问题讲透,免得选错技术路线。生图工具的"不一致"分三层,解决手段不同:

  • 结果不可复现:同样 prompt 跑两次出两张完全不同的图。根因是采样起始噪声随机,解法是固定 seed。这是最底层的一致性,任何工作流都要先做。
  • 风格漂移:换 prompt 主题后画风跟着变,比如从写实滑向卡通。解法是 LoRA(锁画风)或 IPAdapter(用参考图迁风格)。
  • 角色不固定:同一角色在多张图里长相、发色、服饰不一致。这是最难的一层,解法是训练角色专属 LoRA,或用 IPAdapter FaceID 把一张参考脸"贴"到每张图上。

本 SOP 按难度递进:先打通"固定 seed 复现",再加 LoRA 锁风格,最后上 IPAdapter 引参考图。三层叠加,才能真正做到"一个角色、一种画风、跨图稳定"。


二、装:ComfyUI 安装三选一

前置条件:NVIDIA 显卡(A 卡也能跑但生态差一截)、Python 3.10 以上、Git。ComfyUI 官方提供三种装法,按你技术水平选:

bash
# 方式一:comfy-cli(官方命令行,跨平台,推荐给有 Python 基础的人)
pip install comfy-cli
comfy install        # 自动装 ComfyUI 本体、依赖、虚拟环境
comfy launch         # 启动,默认开在 http://127.0.0.1:8188

# 方式二:Windows 便携版(自带 Python 3.11,零环境配置,推荐小白)
# 从 docs.comfy.org 下载 ComfyUI_portable_windows,解压后双击运行
# run_nvidia_gpu.bat 即可启动

# 方式三:ComfyUI Desktop(官方桌面客户端,带模型管理界面)
# 从官网下载安装包,一键安装,适合不想碰命令行的人

启动后浏览器打开 http://127.0.0.1:8188,看到节点画布就说明装通了。第一件事是装 ComfyUI Manager——它是后续装自定义节点(IPAdapter 等)的入口。装法:进入 ComfyUI/custom_nodes 目录,git clone Manager 仓库,重启 ComfyUI;之后右侧菜单栏会多出 "Manager" 按钮,点进去就能用 "Install Custom Nodes" 搜索安装任意社区节点。

踩坑提醒:便携版解压路径不要含中文和空格,否则加载模型时偶发报错;comfy-cli 和便携版不要装在同一目录混用,配置会打架。


三、载:放对模型与底模选型

ComfyUI 不会自己找模型,你得手动把底模(checkpoint)放进正确目录:

text
ComfyUI/
├── models/
│   ├── checkpoints/      # 底模放这里(.safetensors)
│   ├── loras/            # LoRA 放这里
│   ├── ipadapter/       # IPAdapter 模型放这里
│   └── vae/             # VAE(部分模型自带可不放)
└── custom_nodes/        # 自定义节点(如 ComfyUI_IPAdapter_plus)

底模选型直接决定风格上限,现在主流两个:

  • SDXL:1024×1024 原生,生态最成熟,LoRA 和 IPAdapter 模型多,显存 8G 可跑,是一致风格工作流的首选起步。推荐 sd_xl_base_1.0 或其微调版。
  • Flux:画质和 prompt 理解强于 SDXL,但显存吃紧(12G 起步,1.0 优化版可压到 8G),且 Flux 的 LoRA / IPAdapter 生态比 SDXL 晚一截,适合画质优先、愿意折腾的人。

选型建议:第一套一致风格工作流用 SDXL 打通全链路,跑顺了再迁 Flux。别一上来就 Flux,模型少、显存吃紧,调参时多一倍变量。另外底模放对目录只是第一步,VAE 也要配齐--SDXL 自带 VAE 但部分微调版会抽离 VAE 需要单独放 models/vae/,缺 VAE 出图会发灰发糊,这是新手常踩的第一个坑。


四、搭:基础 txt2img 工作流 + 固定 seed

这一步搭出能复现的最小工作流。ComfyUI 默认画布就自带一个 txt2img 模板,我们基于它改。节点连线顺序如下:

  1. CheckpointLoaderSimple(加载底模)→ 输出 MODEL、CLIP、VAE
  2. CLIPTextEncode ×2(正向 / 负向 prompt)→ 接 CLIP
  3. EmptyLatentImage(设宽高,如 1024×1024)→ 输出空 latent
  4. KSampler(核心采样)← 接 MODEL、正向、负向、latent
  5. VAEDecode ← 接 KSampler 的 latent + VAE → 输出图像
  6. SaveImage ← 接图像

关键在 KSampler 的六个参数,这是复现一致性的核心旋钮:

参数推荐值作用
seed固定一个数(如 42)采样起点,固定 = 结果可复现
steps20-30步数,越多越细但越慢,25 是平衡点
cfg5-8提示词遵循强度,太高过曝,太低跑偏
sampler_namedpmpp_2m采样器,dpmpp_2m 出图稳;euler 快;euler_ancestral 细节多但更随机
schedulerkarras噪声衰减计划,karras 配 dpmpp_2m 是口碑最稳组合
denoise1.0txt2img 固定 1.0;img2img 改图用 0.3-0.7

记住一句话:想要复现,seed 必须固定。 默认 KSampler 的 seed 是随机的(点 "randomize"),生成完一张满意的图,记下它的 seed,把控制项从 "randomize" 改成 "fixed",填回这个 seed,重跑就能出几乎一样的图。这是所有一致性工作的地基。

下面是这套基础工作流的 API JSON 片段(可直接保存为 .json 后用 ComfyUI 的 "Load" 拖入,节点 ID 对应默认模板):

json
{
  "3": {
    "class_type": "KSampler",
    "inputs": {
      "seed": 42,
      "steps": 25,
      "cfg": 7,
      "sampler_name": "dpmpp_2m",
      "scheduler": "karras",
      "denoise": 1.0,
      "model": ["4", 0],
      "positive": ["6", 0],
      "negative": ["7", 0],
      "latent_image": ["5", 0]
    }
  },
  "4": { "class_type": "CheckpointLoaderSimple", "inputs": { "ckpt_name": "sd_xl_base_1.0.safetensors" } },
  "5": { "class_type": "EmptyLatentImage", "inputs": { "width": 1024, "height": 1024, "batch_size": 1 } },
  "6": { "class_type": "CLIPTextEncode", "inputs": { "clip": ["4", 1], "text": "a girl with red hair, cinematic photo, highly detailed" } },
  "7": { "class_type": "CLIPTextEncode", "inputs": { "clip": ["4", 1], "text": "blurry, lowres, deformed" } },
  "8": { "class_type": "VAEDecode", "inputs": { "samples": ["3", 0], "vae": ["4", 2] } },
  "9": { "class_type": "SaveImage", "inputs": { "images": ["8", 0], "filename_prefix": "consistent_style" } }
}

跑通这一步,你已经能复现单张图。但换 prompt(比如把红发换成金发),画风仍可能漂。下一节解决这个。


五、锁:LoRA 固定风格或角色

LoRA(Low-Rank Adaptation)是挂载在底模上的轻量微调,几十到几百 MB,能把特定画风或角色"焊"在模型上。用对 LoRA,换 prompt 换构图,画风都纹丝不动。

装 LoRA:把 .safetensors 文件放进 models/loras/ 目录,刷新 ComfyUI 即可。在画布上加一个 Load LoRA 节点,插在 CheckpointLoaderSimple 和 KSampler 之间:

text
CheckpointLoaderSimple → Load LoRA → KSampler

Load LoRA 的关键参数:

  • lora_name:选你放的 LoRA 文件
  • strength_model / strength_clip:强度,1.0 是原效果,0.8 偏弱,1.2 过强;通常 0.7-1.0,调太高会出现伪影、画面崩坏

想锁画风,就找一个画风 LoRA(如油画、赛博朋克、水墨);想锁角色,就找一个特定角色 LoRA(CivitAI 上大量现成角色 LoRA)。prompt 里再带上 LoRA 对应的触发词(LoRA 页面会标明,如 chara_aria),效果更稳。

踩坑提醒:LoRA 要和底模版本匹配——SDXL 的 LoRA 只能配 SDXL 底模,SD1.5 的只能配 1.5,混用直接报错或出废图。下模型前先看清它给哪个底模。


六、引:IPAdapter 用参考图迁移风格

LoRA 解决"我要这个画风",但有时候你只有一张参考图,没有现成 LoRA,想让它"就照着这张图的风格/角色来画"。这时上 IPAdapter。它的工作原理是提取参考图的图像特征,注入到生成过程里,引导模型朝参考图的风格或角色靠拢,不需要训练。

装 IPAdapter

  1. 经 ComfyUI Manager 搜索 ComfyUI_IPAdapter_plus(作者 cubiq),点 Install,装完重启 ComfyUI。
  2. 下载 IPAdapter 模型(如 ip-adapter-plus_sdxl_vit-h.safetensors),放进 models/ipadapter/ 目录。

注意:IPAdapter 模型要和底模版本对应——SDXL 的底模配 SDXL 版 IPAdapter,SD1.5 配 1.5 版,版本错配会报错或效果归零。

搭工作流:在第四步基础流程上加一个 Load Image(载入参考图)和 Apply IPAdapter 节点:

text
Load Image → Apply IPAdapter → KSampler (MODEL 输入端)

Apply IPAdapter 的核心参数 weight(权重)控制参考图影响强度,0.5-0.8 是稳妥起点;太高会让生成图变成参考图的复制粘贴,太低又没效果。

进阶玩法:锁角色五官用 IPAdapter FaceID(专门提取人脸特征),比通用 IPAdapter 角色一致性强得多。配合固定 seed,能做到同一角色在不同场景下长相高度统一——这正是网页版做不到的。实际操作中,IPAdapter 的权重和 LoRA 的强度会叠加影响,两者同时开时建议各自调低 0.2 左右,否则风格信号过载,画面容易出现伪影或过度饱和。先单独调通 IPAdapter 再加 LoRA,比两个一起开更省事。


七、踩坑记录

坑一:seed 没固定就以为是"稳定风格"。 很多新手出图满意后直接改 prompt 重生成,发现全变了,以为是模型不行。其实是 seed 在 randomize 模式下每次都变。第一步永远是:满意一张,记 seed,改 fixed,重跑验证。

坑二:LoRA 和底模版本不匹配。 SDXL 的 LoRA 挂到 SD1.5 底模上,要么报维度错误,要么出废图。下模型前在 CivitAI / 页面看清它标注的底模版本,别只看缩略图好看就下。

坑三:IPAdapter 模型放错目录或版本错配。 必须放 models/ipadapter/(不是 models/loras/),且 SDXL 底模只能配 SDXL 版 IPAdapter。装完没效果,九成是路径或版本问题。

坑四:显存爆掉(Out of Memory)。 SDXL 在 8G 卡上跑 1024×1024 已接近极限,再加 LoRA 和 IPAdapter 容易爆。解法:在 KSampler 后接一个 VAEDecode 前的 Latent 上开 --lowvram 启动参数,或把分辨率降到 768×768 再放大,别硬扛大分辨率。

坑五:装完自定义节点不重启。 ComfyUI Manager 装完 IPAdapter 等节点,必须重启 ComfyUI 才能加载新节点。不重启就去找 Apply IPAdapter 节点,发现搜索不到,以为装失败又重装一遍——其实就差一个重启。

坑六:sampler 和 scheduler 乱搭。 不是所有采样器都配 karras。dpmpp_2m + karras 是公认稳的组合;euler_ancestral + normal 也常见。但乱搭(如 ancestral 配 karras)有时出图噪点异常。没把握就用 dpmpp_2m + karras 这个默认组合。


八、常见问题 FAQ

Q1:跑 ComfyUI 最低要多大显存? SDXL 底模 8G 显存可起步(1024×1024,25 步),但加 LoRA 和 IPAdapter 后建议 12G 以上。Flux 1.0 优化版 8G 能跑,全量版要 16G+。显存不够就用低显存启动参数或降分辨率,别硬扛。

Q2:不会写代码能用 ComfyUI 吗? 能。ComfyUI 是可视化拖拽连节点,不写代码。门槛在理解节点关系,不在编程。建议用 Windows 便携版零环境配置启动,再从默认 txt2img 模板改起,跟着本 SOP 走一遍就入门了。

Q3:怎么固定一个角色的长相,跨多张图都不变? 最稳的是训练一个该角色的专属 LoRA(CivitAI 上有大量现成角色 LoRA 可直接用),配合固定 seed 和触发词。没有 LoRA 就用 IPAdapter FaceID,喂一张该角色的参考脸,每张图都注入这张脸的特征。两者叠加效果最好。

Q4:出图模糊怎么办? 三查:一查 steps 是否太低(低于 15 偏糊,建议 20-25);二查 cfg 是否过低(低于 4 会模糊发散);三查分辨率——512×512 在 SDXL 上必然糊,SDXL 原生 1024×1024,至少 768。另外 VAE 没接对也会糊,确认 VAEDecode 接的是底模自带的 VAE。

Q5:用 ComfyUI 出的图能商用吗? 看你用的底模和 LoRA 的授权。SDXL 基础模型(Stability AI 发布的 sd_xl_base)允许商用,但社区 LoRA 各有授权,CivitAI 上会标注 "Commercial" 或 "Non-Commercial",下之前看清楚。Flux 的 dev 版限非商用,pro 版商用。涉及商用务必查每个模型的许可,别想当然。


参考来源

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-07-30

常见问题

跑 ComfyUI 最低要多大显存?
SDXL 底模 8G 显存可起步(1024×1024,25 步),但加 LoRA 和 IPAdapter 后建议 12G 以上。Flux 1.0 优化版 8G 能跑,全量版要 16G+。显存不够就用 --lowvram 启动参数或降分辨率,别硬扛。
不会写代码能用 ComfyUI 吗?
能。ComfyUI 是可视化拖拽连节点,不写代码,门槛在理解节点关系不在编程。用 Windows 便携版零环境配置启动,从默认 txt2img 模板改起,跟着本 SOP 走一遍就入门了。
怎么固定一个角色的长相,跨多张图都不变?
最稳的是训练一个该角色的专属 LoRA(CivitAI 上有大量现成角色 LoRA 可直接用),配合固定 seed 和触发词。没有 LoRA 就用 IPAdapter FaceID,喂一张参考脸,每张图都注入这张脸的特征。两者叠加效果最好。
出图模糊怎么办?
三查:一查 steps 是否太低(低于 15 偏糊,建议 20-25);二查 cfg 是否过低(低于 4 会模糊发散);三查分辨率--512×512 在 SDXL 上必然糊,至少 768。另外 VAE 没接对也会糊,确认 VAEDecode 接的是底模自带的 VAE。
用 ComfyUI 出的图能商用吗?
看你用的底模和 LoRA 的授权。SDXL 基础模型(Stability AI 发布的 sd_xl_base)允许商用,但社区 LoRA 各有授权,CivitAI 上会标注 Commercial 或 Non-Commercial,下之前看清楚。Flux 的 dev 版限非商用,pro 版商用。涉及商用务必查每个模型的许可。

相关文章