AIGC 控制工具栈
三个旋钮,各干各的
你 prompt 写到一定地步会撞墙——这画面的 结构、风格、人物身份 这仨事儿,光靠文字根本说不清。让模特摆个具体姿势?说不准。让 10 张图风格统一?做不到。让每张里都是同一个人?保不齐。三件套就是仨旋钮:ControlNet 管"形"、IP-Adapter 管"像"、LoRA 管"是谁"。各管一摊,互不打架——单凭 prompt 干不了的事儿,合起来能干。
六站走完一遍这事儿
先说为什么 prompt 不够使,再一个一个拆三件套——形、像、是谁。然后摞起来看一个完整的商业广告活儿是怎么干的。最后给个决策小抄,告诉你手头这事儿该用哪个、用几个。
Prompt 一根筋,管不过来
你写 prompt 写到一定地步,会撞一面看不见的墙。咒语再长,模型该乱还是乱。这事儿出在哪儿呢?
问题出在 prompt 这东西本质上是一句话。一句话能告诉模型"画一个穿西装的女人",但它没办法同时告诉模型三件事——你想想:
- 她得是 这个具体姿势:左手叉腰,右手指向远方,身体侧 30 度。你描述得出来吗?写出来就成裹脚布了,模型也听不准。
- 整张图得 看着像 Saul Leiter 那张街拍——你心里有一张参考图。文字怎么把那张图的味儿传过去?
- 她得是 你的模特,不是别人。模型 default 出来的脸有它自己的偏好,你文字描述得再细,模型也认不出"她"是谁。
这就是 prompt 的天花板。文字是一根筋,画面有好几条道——单凭文字管不住。所以三个工具应运而生,各管一摊12:
说白了:
- ControlNet 给画面装上一副 骨架——你画一个姿势 / 线稿 / 深度图,喂进去,模型就按这骨架长肉1。
- IP-Adapter 给画面装上一个 参考——你塞一张图进去,模型就照这张图的色调 / 质感 / 构图照葫芦画瓢3。
- LoRA 给模型 记住一个具体的人或东西——你拿 20-50 张照片训一个小模块,以后这模型一调用就出那个具体的人6。
"我把 prompt 写得再细一点就行了,不用这些工具。"——这事儿你试试就知道。Prompt 再细,你也描不出"45 度侧身、左手在胸前比 OK"这种具体姿势——文字描述穷尽到这种地步,信息量还不如一张随手画的火柴人,而且模型还听不准。文字的边界不是写得多细的问题,是文字这条道本来就管不了空间结构。
ControlNet——给画面装骨架
ControlNet 翻译过来是"控制网络",说人话就是 给模型一副"必须长成这样"的骨架,模型只能在骨架上添肉填色。这是 2023 年初张吕敏放出来的,改写了整个 SD 生态——之前模型出图基本随机,之后才有"精确控形"这回事儿1 🟢 high。
它怎么工作的
你给它一张 参考图。这张图先过一道 预处理器(preprocessor)——这道工序把参考图里的结构信息抽出来,做成一张专门的图,叫 detectmap。然后 detectmap 喂给 ControlNet,ControlNet 在 diffusion 过程里头每一步都拽着模型一把:"按这个长,别乱跑"2。
关键就在预处理器这一步——你选哪种预处理器,决定了你"锁"的是什么1:
| 预处理器 | 抽出来什么 | 用来锁什么 |
|---|---|---|
| Canny | 硬边缘 / 轮廓线 | 整体形状、线稿转图、产品角度 |
| Lineart | 更柔的笔触线条 | 插画上色、手绘草图转成片 |
| OpenPose | 人体骨架(头 / 躯干 / 四肢 / 手指) | 锁姿势、动作复刻 |
| Depth | 深度图(灰度,越白越近) | 锁空间布局、镜头角度 |
| Soft Edge | 柔边检测 | 重新上色但保留物体形状 |
| Segmentation | 语义分区(每块颜色对应一类物) | "这片是天、这片是楼"的布局 |
实际用起来,90% 的活儿就靠四个:OpenPose 管姿势、Depth 管布局、Canny 管轮廓、Lineart 管线稿。其它的偶尔用一次。
你给一个化妆品品牌拍 12 张广告,要求每张都是同一个模特,在 12 个不同场景里头摆同一个标志性姿势(双手托腮,微微低头看镜头)。
怎么做?你先用 OpenPose 工具从样片里抽一张姿势骨架——一个火柴人。然后你换 12 个 prompt 描述不同场景(咖啡厅、公园、地铁站...),每张图都用 同一张 火柴人喂给 ControlNet 锁姿势。出来 12 张图,场景千变万化,姿势死死锁住。
这事儿单凭 prompt 干不了——你写"双手托腮微微低头"模型理解十次能有八次跑偏,12 张里头能给你保住 2 张就不错。
ControlNet 只管"形",不管"像"。意思是:你用一张暗调电影感的图抽 Canny,得到的只是边缘骨架——这骨架不带任何色调 / 质感 / 光线信息。所以你出来的图按这个形长,但风格还得另外管——这就是为什么后面要 IP-Adapter。
IP-Adapter——给画面找个参考
IP-Adapter 是 2023 年腾讯 AI Lab 放出来的4。名字里 IP 是"Image Prompt"——意思就是 把一张图当 prompt 用。文字 prompt 是用文字描述你要什么,图 prompt 是直接给一张样片:模型,你看这个,照这个味儿画。
它跟 ControlNet 的关键区别
同样是"给一张参考图",ControlNet 抽结构(形状骨架),IP-Adapter 抽 气质(色调 / 质感 / 光线 / 整体感觉)。一个管"长成什么样子",一个管"看着像什么"——这是两件事。
它怎么把"气质"传过去的呢?简单说,它用一个 CLIP 图像编码器把你给的参考图压成一组 embedding(向量),然后通过一个叫 decoupled cross-attention 的机制,把这组向量塞进 diffusion 模型的 U-Net 里头——跟文字 prompt 走的是另一条独立通道,两条道不打架35 🟢 high。这一招最妙的地方是 不用 fine-tune 模型——一个只有 2200 万参数的小模块,就能让模型听懂"图作 prompt"3。
实际用法:三种主要场景
| 场景 | 给什么参考图 | 出来什么 |
|---|---|---|
| 风格传递 | 一张 Saul Leiter 街拍 | 新画面色调 / 质感学这张 |
| 人脸参考 | 一张某人的脸 | 新图里出这个人(像但不锁死) |
| 构图参考 | 一张广告构图 | 新内容沿用相似构图布局 |
| 多图融合 | 两张参考图混权重 | 风格 A + 构图 B 杂交 |
接上一节那个化妆品 12 张广告。你已经用 ControlNet 锁住姿势了,但 12 张图色调五花八门——有的暖、有的冷、有的高对比、有的灰扑扑。怎么统一?
你找一张你心里"对味儿"的样片(可以是品牌之前的广告,可以是一张你喜欢的电影截图),喂给 IP-Adapter 当风格参考。然后 12 张图都套这同一张参考——出来的 12 张,姿势锁死(ControlNet 管),色调统一(IP-Adapter 管),场景各异(prompt 管)。
你看这三件事互不打架:形归 ControlNet,像归 IP-Adapter,文字描述归 prompt。这就是"各管一摊"的实际意思。
"IP-Adapter 跟 image-to-image 不是一回事儿吗?"——不是。Image-to-image 是拿一张图当 起点,模型在它上头改;IP-Adapter 是拿一张图当 参考,生成全新的图但模仿那种感觉。前者会保留原图大量内容,后者只保留"味儿"。混在一起说就乱套了。
LoRA——让模型记住一个具体的"谁"
LoRA(Low-Rank Adaptation)跟前两个不一样。ControlNet 和 IP-Adapter 是 在推理时临时往模型身上加约束,LoRA 是 提前训一个小补丁装到模型上,以后每次出图都自带这块补丁的"记忆"。
它最擅长干的事儿就一句话:让模型记住一个具体的"谁"或"什么"——你的模特、你的品牌产品、某个画家的画风、某个虚构角色6。Prompt 描述不出具体的人,IP-Adapter 给参考但不锁死,只有 LoRA 真的把这个"谁"刻进了模型本身。
训一个 LoRA 要什么
- 数据集:角色 LoRA 用 20-50 张(挑过的),风格 LoRA 用 50-200 张678。多了不一定好——有人塞 200 张训角色,结果比 60 张精选的还差 🟢 high。
- 标注:每张图配一段 caption。Caption 的写法直接决定模型学到什么。
- 算力:SDXL LoRA 用一张 24G 显存的 GPU(比如 RTX 4090)训个把小时;Flux LoRA 稍重一点。
- 调参:learning rate / rank / training steps 这些。新手用默认就行,有经验的能调出更稳的结果。
角色 LoRA vs 风格 LoRA
| 类型 | 数据集 | 典型用途 |
|---|---|---|
| 角色 LoRA | 20-50 张同一人 / 物,多角度多表情 | 品牌人物、自定义模特、虚构角色 |
| 风格 LoRA | 50-200 张同一风格的作品 | 某画家画风、品牌视觉调性 |
| 概念 LoRA | 30-100 张同一概念的图 | 新衣服款式、新物种、特殊场景 |
还是那个化妆品广告。光有 ControlNet(锁姿势)和 IP-Adapter(锁风格)还不够——12 张图里的"模特"长相每张不一样,有时候像小红书博主,有时候像 SD default 出的东方女。客户要求所有图里是同一个人。
办法:你给真模特拍 30 张照片(各种角度 / 表情 / 光线),训一个角色 LoRA,名字叫 brand_model_lora。然后 12 张图的 prompt 里都带这个 LoRA——出来的 12 张图里,模特的脸死死锁住,12 张都是同一个人。
到这一步,三件套终于齐了:LoRA 管脸(是谁)、ControlNet 管姿势(形)、IP-Adapter 管色调(像)、prompt 管场景(文字描述)。四个旋钮各拧一摊。
"我塞 500 张照片训一个 LoRA,效果一定最好。"——不一定,反而可能更差。LoRA 训练是挑过的高质量小集胜过大杂烩。60 张精选(角度全、光线匀、姿势多样)训出来的 LoRA,通常比 500 张随手拍的好6。这事儿数量不是关键,多样性 + 质量才是。
摞起来——一个完整的广告活儿
前三节是把三件套一个一个拆开看。这一节把它们摞起来跑一遍完整流程,让你看到它们怎么在一张图上同时发力。
任务:12 张眼镜广告系列
客户要一个虚构模特(简洁现代风格的亚洲女性,30 岁左右),在 12 个不同城市背景里,穿同一套着装,摆 4 个标志性姿势的变体,整体风格学一张 Saul Leiter 街拍的色调质感。要求:模特每张都是同一个人、姿势可控、12 张视觉统一、可批量产出。
纯 prompt 干这事儿,你试试就知道——12 张图里头模特长相五花八门、姿势随心所欲、色调一片混乱。专业管线干这事儿走下面这条路:
实际跑的步骤
- 给真模特拍 30 张照片,训一个角色 LoRA 叫
brand_model_v1(1-2 小时)。 - 用 OpenPose 从样片里抽 4 张姿势骨架(几分钟)。
- 挑一张 Saul Leiter 街拍当 IP-Adapter 风格参考(几分钟)。
- 写 12 个 prompt 描述 12 个城市场景(半小时)。
- 在 ComfyUI 里头搭好节点图:LoRA + ControlNet + IP-Adapter + prompt → Diffusion → 出图。
- 对 12 个场景 × 4 个姿势 × 多个 seed 跑批量,出来几百张候选(几小时)。
- 挑出最满意的 12 张,inpaint 修脸 / 修手,Photoshop 后期(几小时)。
从头跑下来 1-2 天的事儿。换成传统拍摄管线:订模特、定场地、12 个城市跑通告、灯光师、化妆师、后期——一周起步,价格 10 倍以上。
有人会说"Midjourney 现在的 --cref 和 --sref 已经能干一部分这事儿,不用这么麻烦"——确实。MJ 内部其实把类似 IP-Adapter 的能力吸收进去了,单镜头质量也漂亮。但 MJ 的问题是 不可控、不可重现、不能训自定义 LoRA。商业管线最看重的是可复现可批量——同一个模特、同样的姿势、同样的色调,能稳稳出 100 张。这事儿 2026 年 MJ 还做不到。所以艺术创作 MJ 强,商业生产仍然是 SDXL / Flux + 三件套这条路10。
决策小抄——这事儿用哪个
三件套不是每个活儿都得全上。你手头一个任务,先问自己:我要锁住的是什么? 答案不一样,用的工具不一样。
| 你要锁的 | 用什么 | 为什么 |
|---|---|---|
| 姿势 / 动作 | ControlNet (OpenPose) | 骨架抽出来就是一根棍,文字说不准 |
| 构图 / 布局 / 角度 | ControlNet (Depth) | 深度图把空间关系定死 |
| 线稿 / 草图变成片 | ControlNet (Lineart / Canny) | 线条直接喂,不用描述 |
| 风格 / 色调 / 气氛 | IP-Adapter | 找一张样片传"味儿",比文字传得准 |
| 一个具体角色的脸 | LoRA(角色) | 训进模型才能死死锁住 |
| 偶尔出某个角色就行 | IP-Adapter(人脸) | 不锁死,但够用,不用训 |
| 某个画家的风格 | LoRA(风格)或 IP-Adapter | 风格固定深度用 → LoRA;一次性 → IP-Adapter |
| 一个新概念(新衣服 / 新物种) | LoRA(概念) | 模型本来不知道,得训 |
两条经验法则
- "长期 / 系列 → LoRA;一次性 / 偶尔 → IP-Adapter"。LoRA 训练有成本(数据 + 算力 + 时间),只为一次任务训不划算。你这个角色 / 风格以后还要反复用?训 LoRA。就这一回?IP-Adapter 顶着用。
- "形归 ControlNet,像归 IP-Adapter,谁归 LoRA"。这是个口诀,实际工作里遇到任何"我想精确锁住 X"的时候,先把 X 归类到形 / 像 / 是谁这三类——选哪个工具就清楚了。
2026 年的工具支持现状
这块儿你也得知道:三件套不是所有底模都支持。截至 2026 年中:
- SDXL / SD 3.5:三件套生态最成熟,所有工具都齐,社区资源丰富9。
- Flux.1 Dev:三件套都支持,但 ControlNet 目前只有 Canny / Depth / HED 三个主要模型,IP-Adapter 是 beta1011。比 SDXL 弱一点但够用。
- Flux 2 / Flux Pro:闭源 / 限制,目前 LoRA 和 ControlNet 支持还在开发中。
- Midjourney / Imagen / GPT Image:闭源,这三件套用不了。MJ 有部分内置替代品(--cref / --sref),其它的没。
你要想吃满这三件套的能力,选底模就只能选 SDXL 系或 Flux.1 Dev 系——这是 2026 年开源生态的两条主干道。闭源模型再漂亮,精确控形这条路你走不了。
这里有个挺有意思的产业格局:闭源模型(MJ / Veo / Imagen)出图质量经常更漂亮,但不可精确控;开源模型(SDXL / Flux Dev)单镜头质量稍逊一筹,但可控可重现。商业生产线在 2026 年绝大多数走开源那条路——为什么呢?因为生产要的不是最漂亮的一张,是可重现可批量的 100 张。这就是为什么三件套是开源生态的护城河,也是为什么这条路短期内闭源模型补不上来。
三个旋钮的真正意义
直接回答原问题——ControlNet / IP-Adapter / LoRA 这三件套,本质上是给 prompt 配套的三个独立旋钮:形、像、是谁。
ControlNet 管"形"——你画一个姿势 / 线稿 / 深度图喂进去,模型按这个骨架长肉。预处理器(OpenPose / Depth / Canny / Lineart 这几个)决定你锁的是姿势、布局、轮廓还是草图。
IP-Adapter 管"像"——你塞一张参考图进去,模型学这张图的色调 / 质感 / 气氛。它跟 ControlNet 是正交的:一个抽结构,一个抽气质,互不打架。
LoRA 管"是谁"——你预先用 20-50 张照片训一个小补丁,装在模型上,以后每次推理都自带这个"记忆"。它跟前两个不同——前两个是推理时临时加约束,LoRA 是训进模型本身。
这三件事为什么单凭 prompt 干不了?因为文字是一根筋,画面是多维的。一句话能告诉模型"画个女人",但同时管不住"摆什么姿势 / 看着像哪张图 / 是谁的脸"这三件事。三件套就是把这三件事拆开,各给一个专门的接口。
实际工作里,你不一定每次都三件套全上。形归 ControlNet,像归 IP-Adapter,谁归 LoRA——遇到任务先归类要锁的是什么,然后挑工具。长期复用的角色 / 风格训 LoRA,一次性的用 IP-Adapter。这是个口诀,记住能省 80% 的纠结。
最后一点:三件套不是全平台都有。截至 2026 年中,只有 SDXL 系和 Flux.1 Dev 系完整支持。你要走商业可控生产,底模选这两条道——闭源模型(MJ / Veo / Imagen)精确控形这条路目前走不通。这就是为什么 2026 年所有专业商业产线都还在 SDXL / Flux 加三件套这套开源 stack 上——单镜头质量不是关键,可复现可批量才是。
关键不确定性
- 具体模型支持名单变化快。Flux.1 Dev 的 ControlNet 在 2026 年中只有 Canny / HED / Depth 三个,几个月后可能扩展。Flux 2 / Flux Pro 的支持状态本讲稿写于 2026-05-16,半年后可能完全变样。结构上"开源支持三件套,闭源不支持"这条线稳定,具体名字会换 🟡 med。
- "LoRA 数据集 20-50 张最佳"是经验值不是定理。这是 Civitai / Hugging Face 社区的主流建议,绝大多数情况成立——但具体角色 / 任务不同,有人 15 张训出来很好,有人 80 张才稳。这事儿没人做过严格的 controlled study 🟡 med。
- IP-Adapter 跟 LoRA 在风格任务上有重叠。理论上一个临时一个永久,实际两者在某些风格任务上效果相当——选哪个一半是技术决策一半是个人偏好 🟡 med。
- "MJ 不可精确控,所以商业产线必须开源"这个论断我没完全把握。可能某些商业场景对精确控的需求没那么硬,MJ 的 --cref / --sref 已经够用;也可能 MJ 还会出更强的控制工具。本讲稿采纳的是 2026 年中专业生产管线的主流立场,不代表唯一对 🔴 low。
- 三件套的未来。随着新一代底模(Flux 2 / SD 4 / 某个还没出的开源大模型)出来,三件套是不是还以现在这个形式存在?可能演化成新的接口。但 "形 / 像 / 是谁"三个维度的控制需求不会变——具体工具名换,这个分工骨架稳。
Sources
- Stable Diffusion Art — ControlNet: A Complete Guide — https://stable-diffusion-art.com/controlnet/
- Civitai Education — The Ultimate Guide to ControlNet (Part 1) — https://education.civitai.com/civitai-guide-to-controlnet/
- Mercity Research — Understanding and Training IP Adapters for Diffusion Models — https://www.mercity.ai/blog-post/understanding-and-training-ip-adapters-for-diffusion-models/
- Tencent AI Lab — IP-Adapter (GitHub repo) — https://github.com/tencent-ailab/IP-Adapter
- Stable Diffusion Art — IP-Adapters: All you need to know — https://stable-diffusion-art.com/ip-adapter/
- PropelRC — How to Train Stable Diffusion LoRA Models: Complete Guide for 2026 — https://www.propelrc.com/how-to-train-stable-diffusion-lora-models/
- VRLA Tech — Hardware Requirements for Training Your Own Stable Diffusion LoRA in 2026 — https://vrlatech.com/stable-diffusion-lora-training-hardware-requirements/
- Civitai — Detailed Flux Training Guide: Dataset Preparation — https://civitai.com/articles/7777/detailed-flux-training-guide-dataset-preparation
- Stable Diffusion Tutorials — Installing Flux: IP-Adapter, ControlNet, LoRA in ComfyUI — https://www.stablediffusiontutorials.com/2024/08/ip-adapter-controlnet-lora-for-flux.html
- Digital Creative AI — Detailed usage of Flux.1 ControlNet + IP-Adapter in ComfyUI — https://www.digitalcreativeai.net/en/post/detailed-usage-flux-1-controlnet-ip-adapter-comfyui
- fal.ai — FLUX.1 [dev]: Advanced Text-to-Image + ControlNet API — https://fal.ai/models/fal-ai/flux-general
- Shree Bhakta (Medium) — The Ultimate Combo: LoRA + ControlNet + IP-Adapter + Prompt — https://shree6791.medium.com/part-6-the-ultimate-combo-lora-controlnet-ip-adapter-prompt-c938fcb43b27