目录
核心概念与原理
1. 什么是"精准控制"?
精准控制是指通过技术手段,让AI生成的图片/视频在以下维度达到预期:
| 控制维度 | 说明 | 示例 |
|---|---|---|
| 内容准确性 | 生成用户想要的具体内容 | "一只猫" → 确实是猫,不是狗 |
| 风格一致性 | 保持特定的艺术风格 | 赛博朋克风格、水彩画风格 |
| 构图布局 | 控制元素的位置和大小 | 人物在左侧,背景是海滩 |
| 细节精确 | 控制细节特征 | 猫的毛色是橘色,眼睛是蓝色 |
| 一致性 | 多张图片/视频帧保持一致 | 同一个角色在不同场景 |
| 可重复性 | 相同输入产生相似输出 | 使用种子(seed)固定随机性 |
2. 底层技术原理
2.1 Diffusion Model(扩散模型)
这是当前主流的图像生成技术(Stable Diffusion、DALL-E 3、Midjourney都基于此)。
核心原理:
正向过程(加噪):
清晰图片 → 逐步添加噪声 → 纯噪声
反向过程(去噪):
纯噪声 → 逐步去噪 → 清晰图片
↑
文本引导(Prompt)
形象比喻:
想象你有一张照片,逐渐变模糊直到完全看不清(加噪过程)。
AI学会了"去模糊"的能力,但它需要你告诉它:
"这应该是一只猫"(文本提示)
然后AI一步步去除噪声,同时按照"猫"的特征来恢复图像。
关键组件:
-
文本编码器(CLIP Text Encoder)
输入文本:"a cute orange cat sitting on a beach"
↓
编码成向量:[0.23, -0.45, 0.67, ..., 0.12]
↓
这个向量包含了文本的语义信息 -
U-Net(去噪网络)
输入:噪声图像 + 文本向量
↓
多层卷积和注意力机制
↓
输出:预测的噪声
↓
原图 = 噪声图像 - 预测的噪声 -
VAE(变分自编码器)
作用:压缩和解压缩图像
编码:512×512图像 → 64×64潜在表示(节省计算)
解码:64×64潜在表示 → 512×512图像
完整流程图:
┌──────────────────────────────────────────────────────┐
│ 图像生成流程 │
└──────────────────────────────────────────────────────┘
文本提示 控制信息
"a cat on beach" (可选)
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│CLIP Text │ │ControlNet│
│ Encoder │ │ 等 │
└────┬─────┘ └────┬─────┘
│ │
└────────┬────────────────────┘
│
▼
┌────────────────┐
│ 文本向量 │
│ [0.1, -0.3...] │
└────┬───────────┘
│
▼
┌─────────────────────┐
│ 初始噪声图像 │
│ (纯随机) │
└──────┬──────────────┘
│
▼
┌──────────────────────┐
│ 去噪循环 (20-50步) │
│ │
│ 每一步: │
│ 1. U-Net预测噪声 │
│ 2. 减去噪声 │
│ 3. 添加文本引导 │
└──────┬───────────────┘
│
▼
┌──────────────────────┐
│ 潜在空间图像 │
│ (64×64) │
└──────┬───────────────┘
│
▼
┌──────────────────────┐
│ VAE解码器 │
└──────┬───────────────┘
│
▼
┌──────────────────────┐
│ 最终图像 │
│ (512×512) │
└──────────────────────┘
2.2 注意力机制(Attention Mechanism)
作用:让AI理解文本和图像之间的对应关系。
Cross-Attention(交叉注意力):
文本:"a red apple on a wooden table"
生成过程中,AI需要知道:
- "red" 对应到 苹果的颜色
- "apple" 对应到 物体的形状
- "wooden table" 对应到 背景的纹理
Cross-Attention就是建立这种对应关系的机制:
图像的每个区域 × 文本的每个词 = 注意力权重
高权重 = 强关联
低权重 = 弱关联
Self-Attention(自注意力):
让图像的不同部分相互影响,保证整体协调:
- 苹果的阴影应该和光源方向一致
- 桌子的透视应该和视角匹配
- 整体色调应该和谐
精准控制的七大技术
技术1:提示词工程(Prompt Engineering)
原理:通过精心设计的文本描述,引导AI生成符合预期的内容。
提示词结构模板
[主体] + [动作] + [环境] + [风格] + [质量词] + [技术参数]
完整示例:
A beautiful young woman (主体)
wearing a red dress, smiling gently (动作/状态)
standing in a cherry blossom garden at sunset (环境)
in the style of Studio Ghibli, anime art (风格)
highly detailed, 8k, masterpiece (质量词)
soft lighting, cinematic composition (技术参数)
提示词权重控制
Stable Diffusion语法:
基础语法:
- (keyword):增加权重 1.1倍
- ((keyword)):增加权重 1.21倍
- (keyword:1.5):精确指定权重为1.5倍
- [keyword]:降低权重 0.9倍
实例:
"a (red:1.5) apple" → 强调红色
"a cat, (blue eyes:1.3)" → 强调蓝色眼睛
"a [small] dog" → 弱化小这个特征
Midjourney语法:
使用 :: 分隔并指定权重:
"red::2 apple::1 on table::0.5"
→ 红色权重2,苹果权重1,桌子权重0.5
或使用 --iw 参数(图像权重):
"cat --iw 2" → 增强参考图的影响
负向提示词(Negative Prompt)
作用:告诉AI不要生成什么。
正向提示:
"a beautiful woman, detailed face, professional photo"
负向提示:
"ugly, deformed, blurry, low quality, watermark,
bad anatomy, extra fingers, mutation, poorly drawn"
效果:
- 过滤掉不想要的特征
- 提高生成质量
- 避免常见错误(如手指数量错误)
常用负向提示词库:
质量类:
low quality, worst quality, normal quality, lowres,
low details, blurry, jpeg artifacts
解剖类:
bad anatomy, bad hands, extra fingers, missing fingers,
extra limbs, mutation, deformed
风格类:
watermark, signature, text, logo, username
其他:
oversaturated, duplicate, error, cropped
技术2:ControlNet(精准结构控制)
核心价值:解决"只能描述不能控制"的问题。
原理:
传统方式:
文本 → AI → 随机生成
ControlNet方式:
文本 + 结构参考图 → AI → 按结构生成
ControlNet的主要类型
| 类型 | 作用 | 使用场景 | 示例 |
|---|---|---|---|
| Canny Edge | 边缘检测 | 保留物体轮廓 | 把素描变成写实照片 |
| Depth | 深度图 | 控制空间布局 | 保持场景的前后关系 |
| Pose (OpenPose) | 人体姿态 | 控制人物动作 | 指定人物的站姿、手势 |
| Normal Map | 法线贴图 | 控制表面细节 | 保持物体的凹凸感 |
| Segmentation | 语义分割 | 区域控制 | 指定哪里是天空、哪里是地面 |
| Scribble | 简笔画 | 快速草图 | 用简单线条定义构图 |
| Line Art | 线稿 | 精确线条 | 漫画线稿上色 |
ControlNet实战案例
案例1:精准控制人物姿态
python
# ComfyUI节点配置
输入:
1. 提示词:"a professional photo of a young woman
in business suit, office background"
2. OpenPose图像:
[上传一张参考姿势的图片]
→ ControlNet自动检测人体关键点
→ 生成骨架图(棍状人)
3. ControlNet设置:
- 类型:OpenPose
- 强度:0.8(80%遵循姿态)
- 起始步数:0
- 结束步数:1.0
输出:
→ 生成完全符合参考姿势的女性职业照
→ 但脸部、衣服细节、背景都是AI生成的新内容
工作流程图:
参考图片 提示词
(姿势参考) (内容描述)
│ │
▼ │
┌──────────┐ │
│OpenPose │ │
│关键点提取│ │
└────┬─────┘ │
│ │
▼ ▼
┌────────────────────────┐
│ ControlNet处理 │
│ (融合姿态和文本) │
└──────┬─────────────────┘
│
▼
┌──────────────────┐
│ Stable Diffusion│
│ 生成图像 │
└──────┬───────────┘
│
▼
最终图像
(姿势准确 + 内容丰富)
案例2:保持室内设计布局
python
# 用Depth ControlNet控制空间布局
场景:将现代客厅改造成不同风格
输入:
1. 原始图片:现代风格客厅照片
2. 提取深度图:ControlNet自动分析空间深度
3. 提示词:"luxury vintage living room,
velvet sofa, crystal chandelier,
baroque style, warm lighting"
输出:
→ 保持原始空间布局(沙发位置、窗户位置)
→ 但风格完全改变为巴洛克奢华风格
技术细节:
深度图解释:
- 黑色:近处物体(离相机近)
- 白色:远处物体(离相机远)
- 灰色:中间距离
AI根据深度图:
1. 保持空间透视关系
2. 保持物体的前后遮挡
3. 改变物体的材质和风格
ControlNet多控制叠加
高级用法:同时使用多个ControlNet
python
# 同时控制姿态、深度和线稿
输入:
1. OpenPose骨架:控制人物姿势
2. Depth深度图:控制背景空间
3. Canny边缘图:控制细节轮廓
权重配置:
- OpenPose:1.0(强制遵守)
- Depth:0.6(适度参考)
- Canny:0.4(轻微引导)
效果:
→ 多维度精准控制,生成极其符合预期的图像
技术3:LoRA(低秩适应)
作用:在不完全重训练的情况下,让AI学习特定风格或特定对象。
原理:
完整模型:4GB参数
LoRA微调:只训练10-100MB的"差异层"
基础模型 + LoRA = 特定风格/角色
比喻:
基础模型 = 通用画家
LoRA = 特定风格的"滤镜"或"技能包"
LoRA类型
风格LoRA:
python
# 示例:赛博朋克风格LoRA
提示词:
"a girl walking in city street,
<lora:cyberpunk_style:0.8>" ← 加载LoRA,权重0.8
效果:
→ 自动添加霓虹灯、科技感、未来城市等元素
→ 无需在提示词中详细描述赛博朋克特征
角色LoRA:
python
# 保持角色一致性
训练:使用同一角色的20-50张图片训练LoRA
使用:
"<lora:my_character:1.0>, wearing red dress, in garden"
"<lora:my_character:1.0>, wearing suit, in office"
"<lora:my_character:1.0>, casual clothes, on beach"
效果:
→ 三张图片中是同一个角色
→ 只是服装和场景不同
概念LoRA:
python
# 特定概念或物体
例如:特殊的机甲设计、特定的建筑风格
"<lora:gundam_mecha:0.9>, standing in battlefield"
→ 生成具有高达风格的机甲
训练自己的LoRA
步骤:
1. 准备数据集
- 收集20-50张高质量图片
- 图片应该是同一风格/角色/物体
- 分辨率建议:512×512 或 768×768
2. 数据标注
- 为每张图片写描述词
- 使用工具自动生成标签(如BLIP)
3. 训练配置
- 基础模型:选择SD 1.5或SDXL
- 训练步数:1000-3000步
- 学习率:1e-4
- 批次大小:1-4
4. 训练工具
- Kohya_ss(Windows GUI)
- Dreambooth(命令行)
- 云端:Google Colab
5. 测试和调优
- 测试不同权重(0.5, 0.8, 1.0)
- 调整提示词
- 必要时重新训练
技术4:IP-Adapter(图像提示适配器)
作用:使用图片作为风格参考,而不仅仅是文本。
原理:
传统:
文本提示 → AI → 生成图像
IP-Adapter:
文本提示 + 参考图片 → AI → 生成相似风格的图像
使用场景:
场景1:风格迁移
python
输入:
- 参考图:莫奈的《睡莲》
- 文本提示:"a modern city street"
输出:
→ 现代城市街景,但具有莫奈的印象派风格
→ 笔触、色调、氛围都类似《睡莲》
场景2:角色一致性
python
输入:
- 参考图:某个动漫角色的官方立绘
- 文本提示:"walking in snow, winter clothes"
输出:
→ 同一个角色,但在雪景中
→ 脸部特征、发型、整体风格保持一致
场景3:构图参考
python
输入:
- 参考图:经典人像构图(三分法)
- 文本提示:"elderly man, portrait"
输出:
→ 老年男性肖像
→ 构图布局参考参考图
IP-Adapter配置
python
# ComfyUI配置示例
节点:IP-Adapter
参数:
- 权重(Weight):0.5-1.0
* 0.5:轻微参考
* 0.8:明显影响
* 1.0:强烈依赖
- 类型(Type):
* style:只提取风格特征
* composition:提取构图布局
* face:专注面部特征
- 起止步数:
* 起始:0.0(从第一步开始)
* 结束:0.8(在后期减弱影响)
技术5:Inpainting(局部重绘)
作用:只修改图片的部分区域,其他区域保持不变。
使用场景:
场景1:物体替换
原图:一个人拿着苹果
操作:
1. 用蒙版选中苹果区域
2. 提示词:"orange fruit"
3. Inpainting
结果:苹果变成橙子,其他不变
场景2:背景更换
原图:人物肖像,背景是办公室
操作:
1. 选中背景区域(反选人物)
2. 提示词:"tropical beach, palm trees, sunset"
3. Inpainting
结果:人物不变,背景变成海滩
场景3:细节修复
原图:人物照片,但手指数量错误
操作:
1. 选中手部区域
2. 提示词:"natural hand, five fingers"
3. Inpainting
结果:修复手部,其他不变
Inpainting技术细节
蒙版(Mask)设置:
黑色区域:保持不变
白色区域:重新生成
灰色区域:混合过渡(羽化边缘)
羽化(Feather):
- 羽化半径:20-50像素
- 作用:让修改区域与周围自然融合
- 避免明显的边界线
参数配置:
python
Inpainting参数:
1. Denoising Strength(去噪强度)
- 0.3-0.5:轻微修改
- 0.6-0.8:中度修改
- 0.9-1.0:完全重绘
2. Mask Blur(蒙版模糊)
- 4-8:适度模糊,自然融合
- 0:硬边缘(一般不推荐)
3. Inpaint Area(重绘区域)
- Whole Picture:考虑整图上下文
- Only Masked:只关注蒙版区域(更快)
4. Masked Content(蒙版内容)
- Original:保留原始内容作为参考
- Fill:填充纯色
- Latent Noise:填充噪声(推荐)
技术6:参数调优
核心参数详解:
6.1 CFG Scale(Classifier Free Guidance)
作用:控制AI对提示词的遵循程度
CFG Scale范围:1-30
低值(1-5):
- 创意性强
- 可能偏离提示词
- 图像更自然,但可能不符合预期
中值(7-12):【推荐】
- 平衡创意和准确性
- 最常用的范围
高值(15-30):
- 严格遵循提示词
- 可能过度饱和
- 细节可能不自然
实例对比:
提示词:"a red apple"
CFG=3: 可能生成黄色或绿色苹果(创意发挥)
CFG=7: 大概率生成红色苹果(平衡)
CFG=20: 必定生成鲜红色苹果(严格遵循)
6.2 采样步数(Steps)
作用:去噪过程的迭代次数
步数范围:1-150
低步数(10-20):
- 速度快
- 质量较低
- 细节不足
中等步数(20-40):【推荐】
- 质量和速度平衡
- 大多数场景适用
高步数(50-150):
- 质量提升有限
- 时间成本高
- 某些模型需要(如SDXL)
经验法则:
- SD 1.5: 20-30步
- SDXL: 30-50步
- 超过50步,提升不明显
6.3 采样器(Sampler)
作用:去噪的算法
常用采样器对比:
DPM++ 2M Karras:【推荐】
- 质量高
- 速度中等
- 最常用
Euler a:
- 速度快
- 创意性强
- 每次结果略有不同
DDIM:
- 速度快
- 稳定
- 适合视频生成(帧间一致性好)
DPM++ SDE Karras:
- 质量最高
- 速度慢
- 追求极致质量时使用
选择建议:
- 日常使用:DPM++ 2M Karras
- 快速预览:Euler a
- 视频/批量:DDIM
- 高质量:DPM++ SDE Karras
6.4 种子(Seed)
作用:控制随机性,实现可重复生成
Seed=-1:每次随机(不同结果)
Seed=固定值:每次相同(相同结果)
应用场景:
1. 微调提示词
- 固定seed
- 只改变提示词
- 对比不同提示词的效果
2. 批量生成变体
- 固定提示词
- 改变seed
- 生成多个相似但不同的图像
3. A/B测试
- 相同seed
- 测试不同参数(CFG、Steps等)
- 找到最优配置
6.5 分辨率与宽高比
常用分辨率:
肖像(Portrait):
- 512×768
- 768×1024(SDXL)
横向(Landscape):
- 768×512
- 1024×768(SDXL)
方形:
- 512×512(SD 1.5训练尺寸)
- 1024×1024(SDXL训练尺寸)
重要提示:
1. 接近训练分辨率效果最好
2. 非标准比例可能导致变形
3. 使用Hires.fix提升分辨率
技术7:图生图(Image-to-Image)
作用:以现有图片为基础,进行改造
原理:
文生图:纯噪声 → 去噪 → 图像
图生图:图像 → 添加部分噪声 → 去噪 → 新图像
Denoising Strength(关键参数):
0.1-0.3:
- 轻微改动
- 保留原图大部分特征
- 用于:微调颜色、光照
0.4-0.6:
- 中度改动
- 保留构图和主体
- 改变风格、细节
0.7-0.9:
- 大幅改动
- 只保留大致轮廓
- 几乎是重新生成
实例:
原图:真人照片
提示词:"anime style illustration"
Denoising=0.3: 照片风格,略带动漫感
Denoising=0.6: 半写实动漫风格
Denoising=0.9: 完全的动漫插画
提示词工程深度解析
提示词公式
公式1:标准人像公式
[主体描述] + [外貌特征] + [服装] + [动作/表情] + [环境] + [光照] + [风格] + [质量词]
示例:
A beautiful young Asian woman (主体)
with long black hair, delicate features, bright eyes (外貌)
wearing elegant white dress (服装)
smiling gently, looking at camera (动作/表情)
standing in a lavender field at sunset (环境)
soft golden hour lighting, bokeh background (光照)
in the style of fine art photography (风格)
highly detailed, 8k uhd, professional photo, masterpiece (质量词)
negative prompt:
ugly, deformed, bad anatomy, blurry, low quality,
bad hands, extra fingers, mutation
公式2:场景插画公式
[场景类型] + [主要元素] + [环境细节] + [天气/时间] + [色调] + [艺术风格]
示例:
A magical fantasy forest scene (场景)
with ancient trees, glowing mushrooms, fireflies (主要元素)
mossy rocks, winding path, misty atmosphere (环境细节)
at twilight, purple and blue sky (天气/时间)
ethereal color palette, soft pastel tones (色调)
digital painting, concept art, trending on artstation (风格)
highly detailed, cinematic lighting
公式3:产品设计公式
[产品类型] + [设计风格] + [材质] + [颜色] + [特殊功能] + [展示方式] + [背景]
示例:
A futuristic smartphone (产品)
with sleek minimalist design (风格)
brushed aluminum and glass materials (材质)
matte black with blue accent lights (颜色)
featuring holographic display and edge screen (功能)
3/4 view, product photography (展示)
on clean white background with soft shadows (背景)
studio lighting, highly detailed, 8k render
提示词技巧
技巧1:权重控制
Stable Diffusion/ComfyUI:
基础权重:
(red:1.5) → 红色权重1.5倍
(blue:0.8) → 蓝色权重0.8倍
嵌套权重:
(((ultra detailed:1.3))) → 1.3 × 1.1 × 1.1 × 1.1 ≈ 1.73倍
权重范围:
0.5-2.0 是常用范围
超过2.0可能导致过度
实例:
"a cat with (blue:1.5) eyes, (orange:1.3) fur"
→ 强调蓝眼睛和橙色毛发
技巧2:渐变混合
使用 [A:B:0.5] 语法:
[cat:dog:0.5]
→ 前50%步数生成cat,后50%生成dog
→ 结果:猫狗混合特征
[realistic photo:anime art:0.7]
→ 前70%写实,后30%动漫化
→ 结果:半写实动漫风格
应用场景:
- 风格融合
- 创意探索
- 独特视觉效果
技巧3:Prompt调度
按步骤改变提示词:
python
# ComfyUI: Prompt Scheduling
步骤 0-10: "a seed on the ground"
步骤 11-20: "a small sprout growing"
步骤 21-30: "a young plant with leaves"
步骤 31-40: "a mature plant with flowers"
结果:展现生长过程的图像
技巧4:魔法词(Magic Words)
通用质量提升词:
正向:
masterpiece, best quality, highly detailed,
ultra detailed, 8k uhd, professional,
award winning, cinematic lighting,
perfect composition, trending on artstation
负向:
worst quality, low quality, normal quality,
lowres, bad anatomy, bad hands, text, error,
missing fingers, extra digit, fewer digits,
cropped, jpeg artifacts, signature, watermark,
username, blurry
风格特定词:
赛博朋克:
cyberpunk, neon lights, futuristic, dark atmosphere,
holographic, tech noir, blade runner style
水彩画:
watercolor painting, soft colors, flowing strokes,
paper texture, translucent, artistic
电影感:
cinematic lighting, dramatic, film grain,
anamorphic lens flare, depth of field, bokeh
ControlNet高级控制技术
ControlNet深度实战
实战1:人物姿态精确控制
目标:生成特定姿势的角色
工作流程:
步骤1:准备姿态参考
- 方法A:使用真人照片
- 方法B:使用3D软件摆姿势(如Blender)
- 方法C:使用姿态编辑器(如Open Pose Editor)
步骤2:提取OpenPose骨架
- 上传参考图
- ControlNet自动检测18个关键点:
* 头部、颈部
* 肩膀、肘部、手腕
* 腰部、膝盖、脚踝
- 生成骨架图(棍状人)
步骤3:配置生成参数
提示词:
"1girl, long white hair, blue eyes,
wearing futuristic armor,
sci-fi background,
highly detailed, digital art"
ControlNet设置:
- Preprocessor: openpose_full
- Model: control_v11p_sd15_openpose
- Weight: 1.0(完全遵循)
- Control Mode: Balanced
步骤4:生成和微调
- 生成第一版
- 如果姿势不完美,调整骨架图
- 重新生成直到满意
高级技巧:手部细节控制
python
# 手部是生成的难点,需要特别处理
方法1:手部单独Inpainting
1. 先生成整体图像
2. 如果手部有问题,用蒙版选中手部
3. 提示词:"natural hand, five fingers, detailed"
4. Denoising: 0.75,重绘手部
方法2:Depth + OpenPose组合
1. OpenPose控制整体姿势
2. Depth ControlNet控制手部深度细节
3. 双重控制,提高手部准确率
方法3:参考真实手部照片
1. 拍摄或找一张正确的手部照片
2. 使用IP-Adapter作为参考
3. 权重设置0.3-0.5(轻度参考)
实战2:建筑设计改造
目标:保持建筑结构,改变风格
工作流程:
步骤1:准备原始建筑图
- 现代建筑照片或3D渲染图
步骤2:提取结构信息
- 使用Canny Edge检测边缘
- 或使用Depth提取深度信息
- 或使用Normal Map提取表面细节
步骤3:设计新风格
提示词:
"medieval castle architecture,
stone walls, gothic style,
towers and battlements,
dramatic sky,
highly detailed, concept art"
ControlNet配置:
- Type: Canny Edge(保持边缘)
- Weight: 0.7(允许一定变化)
- 或 Type: Depth(保持空间结构)
步骤4:精细调整
- 调整ControlNet权重
* 0.5-0.6:更多自由度
* 0.8-1.0:严格保持结构
- 调整CFG Scale控制风格强度
实战3:线稿上色
目标:将黑白线稿转换为彩色插画
工作流程:
步骤1:准备线稿
- 手绘扫描
- 或数字绘图软件绘制
- 确保线条清晰、闭合
步骤2:ControlNet配置
Preprocessor: lineart
Model: control_v11p_sd15_lineart
Weight: 1.0
步骤3:设计上色方案
提示词:
"anime girl, blue eyes, pink hair,
school uniform with red ribbon,
cheerful expression,
pastel colors, soft shading,
high quality anime art"
步骤4:多次尝试
- 固定seed,只改变提示词
- 尝试不同配色方案
- 选择最满意的结果
ControlNet组合使用
组合1:OpenPose + Depth
python
# 同时控制姿态和空间
节点配置:
1. ControlNet #1:
- Type: OpenPose
- Weight: 1.0
- 控制人物姿势
2. ControlNet #2:
- Type: Depth
- Weight: 0.6
- 控制场景深度
效果:
→ 人物姿势精确
→ 场景空间布局合理
→ 前后景关系正确
组合2:Canny + Segmentation
python
# 控制轮廓和区域
节点配置:
1. ControlNet #1:
- Type: Canny Edge
- Weight: 0.8
- 控制物体边缘
2. ControlNet #2:
- Type: Segmentation
- Weight: 0.5
- 控制区域内容(天空、地面、建筑)
效果:
→ 轮廓清晰
→ 各区域内容准确
组合3:Line Art + Color
python
# 线稿 + 颜色参考
节点配置:
1. ControlNet #1:
- Type: Line Art
- Weight: 1.0
- 严格遵循线稿
2. IP-Adapter:
- Reference: 配色参考图
- Weight: 0.4
- 提取颜色风格
效果:
→ 线条精确
→ 配色参考参考图
→ 风格统一
ComfyUI工作流实战
ComfyUI基础概念
什么是ComfyUI?
ComfyUI是一个基于节点的Stable Diffusion图形界面
特点:
- 节点式工作流(类似Blender的节点编辑器)
- 高度可定制
- 支持所有SD功能
- 可保存和分享工作流
- 社区资源丰富
节点系统:
节点类型:
输入节点:
- Load Checkpoint(加载模型)
- CLIP Text Encode(编码提示词)
- Load Image(加载图片)
处理节点:
- KSampler(采样器,核心生成节点)
- VAE Decode(解码图像)
- ControlNet Apply(应用ControlNet)
输出节点:
- Save Image(保存图片)
- Preview Image(预览图片)
连接:
- 输出端口 → 输入端口
- 数据流动方向:左到右、上到下
工作流案例1:基础文生图
节点配置:
节点1: Load Checkpoint
└─► model: 选择SD模型(如sd_v1.5.safetensors)
节点2: CLIP Text Encode (Positive)
├─► text: 正向提示词
└─► clip: 来自节点1
节点3: CLIP Text Encode (Negative)
├─► text: 负向提示词
└─► clip: 来自节点1
节点4: Empty Latent Image
├─► width: 512
├─► height: 768
└─► batch_size: 1
节点5: KSampler
├─► model: 来自节点1
├─► positive: 来自节点2
├─► negative: 来自节点3
├─► latent_image: 来自节点4
├─► seed: 随机
├─► steps: 20
├─► cfg: 7.0
└─► sampler_name: dpm_2m_karras
节点6: VAE Decode
├─► samples: 来自节点5
└─► vae: 来自节点1
节点7: Save Image
└─► images: 来自节点6
JSON工作流保存:
json
{
"1": {
"class_type": "CheckpointLoaderSimple",
"inputs": {
"ckpt_name": "sd_v1-5.safetensors"
}
},
"2": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a beautiful landscape",
"clip": ["1", 0]
}
},
...
}
工作流案例2:ControlNet人物生成
完整流程:
┌──────────────────────────────────────────┐
│ ComfyUI工作流结构 │
└──────────────────────────────────────────┘
加载模型
│
┌─────────┴─────────┐
▼ ▼
正向提示词 负向提示词
│ │
└─────────┬─────────┘
│
┌──────┴──────┐
│ │
ControlNet 空白潜在图
(OpenPose) │
│ │
└──────┬──────┘
│
KSampler
(生成核心)
│
VAE解码
│
保存图片
详细节点配置:
python
# 1. 加载ControlNet模型
节点: Load ControlNet Model
- control_net_name: "control_v11p_sd15_openpose"
# 2. 加载参考图像
节点: Load Image
- image: 上传姿势参考图
# 3. ControlNet预处理
节点: ControlNet Preprocessor
- preprocessor: "OpenposePreprocessor"
- image: 来自Load Image
输出: 骨架图
# 4. 应用ControlNet
节点: Apply ControlNet
- conditioning: 来自正向提示词
- control_net: 来自Load ControlNet Model
- image: 来自预处理器
- strength: 1.0
# 5. KSampler配置
节点: KSampler
- positive: 来自Apply ControlNet
- negative: 负向提示词
- latent_image: Empty Latent
- steps: 25
- cfg: 7.5
- sampler: "dpm_2m_karras"
工作流案例3:高清放大工作流
Hires Fix工作流:
python
# 两阶段生成:低分辨率→高分辨率
阶段1:生成基础图像(512×512)
└─► 快速、低资源消耗
阶段2:放大和细化(1024×1024或更高)
└─► 添加细节、提升质量
节点配置:
# 阶段1节点
1. Empty Latent Image
- width: 512
- height: 512
2. KSampler (第一次)
- steps: 20
- denoise: 1.0(完全生成)
# 阶段2节点
3. Upscale Latent
- upscale_method: "nearest-exact"
- scale_by: 2.0(放大2倍)
4. KSampler (第二次)
- steps: 15
- denoise: 0.5(细化而非重绘)
- latent: 来自Upscale Latent
效果:
- 最终输出:1024×1024高清图像
- 细节丰富、质量高
- 比直接生成1024×1024更稳定
工作流案例4:批量生成工作流
批量生成不同变体:
python
# 目标:生成同一主题的多个版本
节点: Seed Generator (自定义)
- mode: "random"
- count: 10
节点: Batch Processing
- 循环10次
- 每次使用不同seed
节点: Image Batch Save
- folder: "output/batch_001"
- filename: "image_{counter:04d}.png"
应用场景:
- 为客户提供多个设计方案
- 探索不同可能性
- A/B测试
ComfyUI高级技巧
技巧1:工作流模块化
python
# 将常用流程保存为模板
模板1:人物生成模板
- 已配置OpenPose ControlNet
- 已设置常用提示词
- 已优化参数
模板2:产品摄影模板
- 白色背景
- 工作室光照设置
- 高质量输出配置
使用:
- 加载模板
- 只需修改具体内容
- 保持一致的质量标准
技巧2:自定义节点
python
# ComfyUI支持Python自定义节点
示例:自动提示词增强节点
class PromptEnhancer:
def enhance(self, prompt):
# 自动添加质量词
quality = "highly detailed, 8k, masterpiece"
# 自动添加光照
lighting = "studio lighting, soft shadows"
return f"{prompt}, {quality}, {lighting}"
# 在工作流中使用
节点: Custom Prompt Enhancer
- input_prompt: "a cat"
- output: "a cat, highly detailed, 8k, masterpiece,
studio lighting, soft shadows"
技巧3:条件执行
python
# 根据条件选择不同分支
节点: Conditional Switch
- condition: image_quality_score
- if score > 0.8: 直接输出
- else: 进入质量提升流程
应用:
- 自动质量检查
- 智能后处理决策
- 资源优化
Coze智能体设计
Coze平台概述
什么是Coze?
Coze(字节跳动出品)是一个AI智能体(Agent)搭建平台
特点:
- 无代码/低代码
- 集成大模型(GPT-4、Claude等)
- 支持工作流和插件
- 多渠道发布(微信、网页、API)
Coze + 图像生成工作流
架构设计:
用户输入
│
▼
┌──────────────────────┐
│ Coze智能体 │
│ (对话理解与控制) │
└─────────┬────────────┘
│
▼
┌─────────────────────────────┐
│ 意图识别与参数提取 │
│ - 识别用户想要什么 │
│ - 提取关键参数 │
│ * 主体、风格、尺寸等 │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ 提示词生成模块 │
│ - 根据用户意图生成提示词 │
│ - 应用提示词模板 │
│ - 添加质量词和技术参数 │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ API调用模块 │
│ - 调用SD API │
│ - 或调用Midjourney API │
│ - 或调用DALL-E API │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ 结果处理与反馈 │
│ - 接收生成的图片 │
│ - 质量检查 │
│ - 返回给用户 │
└─────────────────────────────┘
Coze工作流配置
步骤1:创建智能体
python
# Coze平台配置
智能体名称: "AI图像设计师"
人格设定:
"""
你是一位专业的AI图像设计助手,擅长:
1. 理解用户的需求和期望
2. 将口语化描述转换为精确的图像生成指令
3. 提供专业的设计建议
4. 帮助用户调整和优化图像效果
沟通风格:友好、专业、耐心
"""
开场白:
"你好!我是AI图像设计师,可以帮你生成各种风格的图片。
请告诉我你想要什么样的图像,比如:
- 一张赛博朋克风格的城市夜景
- 一个可爱的动漫角色
- 一张产品展示照片
你也可以具体描述细节,我会为你生成满意的作品!"
步骤2:配置工作流
工作流名称: "智能图像生成"
触发条件: 用户发送图像生成请求
流程节点:
1. [LLM节点] 意图识别
输入: 用户消息
提示词模板:
"""
分析用户的图像生成需求,提取以下信息:
用户输入: {{user_message}}
请以JSON格式输出:
{
"intent": "generate_image",
"subject": "主体对象",
"style": "艺术风格",
"mood": "情绪氛围",
"details": ["细节1", "细节2"],
"size": "推荐尺寸",
"additional_notes": "其他要求"
}
"""
输出: intent_data
2. [代码节点] 提示词生成
输入: intent_data
代码:
```python
def generate_prompt(intent_data):
# 主体
subject = intent_data['subject']
# 风格
style = intent_data['style']
style_keywords = {
"赛博朋克": "cyberpunk, neon lights, futuristic",
"水彩": "watercolor painting, soft colors",
"写实": "photorealistic, highly detailed",
"动漫": "anime style, cel shading"
}
style_prompt = style_keywords.get(style, style)
# 质量词
quality = "masterpiece, best quality, highly detailed, 8k"
# 组合
prompt = f"{subject}, {style_prompt}, {quality}"
# 负向提示词
negative = "low quality, blurry, bad anatomy, watermark"
return {
"prompt": prompt,
"negative_prompt": negative,
"width": intent_data.get('size', {}).get('width', 512),
"height": intent_data.get('size', {}).get('height', 768)
}
输出: generation_params
-
HTTP节点\] 调用SD API URL: http://your-sd-server/sdapi/v1/txt2img Method: POST Body: ```json { "prompt": "{{generation_params.prompt}}", "negative_prompt": "{{generation_params.negative_prompt}}", "width": {{generation_params.width}}, "height": {{generation_params.height}}, "steps": 25, "cfg_scale": 7.5, "sampler_name": "DPM++ 2M Karras" } ``` 输出: image_response
输入: image_response
提示词:
"""
图像生成完成!为用户生成友好的回复消息。
图像信息: {{image_response}}
回复要点:
- 确认图像已生成
- 简要描述图像内容
- 询问是否需要调整
"""
输出: reply_message
-
输出节点\] 返回结果 * 发送回复消息 * 发送生成的图像 ### Coze插件开发 **自定义插件:高级提示词优化器** ```python # Coze插件API from coze_plugin import Plugin, Input, Output class PromptOptimizer(Plugin): name = "高级提示词优化器" description = "将简单描述转换为高质量提示词" @Input(name="simple_prompt", type="string", required=True) @Input(name="style", type="string", default="realistic") @Output(name="optimized_prompt", type="string") @Output(name="negative_prompt", type="string") def optimize(self, simple_prompt, style): # 调用GPT-4进行提示词优化 system_prompt = """ 你是提示词优化专家。将用户的简单描述转换为 详细的、结构化的Stable Diffusion提示词。 优化原则: 1. 保留用户意图 2. 添加技术细节 3. 补充质量词 4. 优化词序(重要的放前面) 5. 添加合适的权重 """ user_message = f""" 原始描述: {simple_prompt} 风格: {style} 请生成优化的提示词和负向提示词。 """ response = self.call_llm(system_prompt, user_message) return { "optimized_prompt": response['prompt'], "negative_prompt": response['negative'] } # 在Coze工作流中使用 节点: 高级提示词优化器 输入: 用户的简单描述 输出: 优化的专业提示词
场景:迭代式图像调整
用户: "生成一张猫咪的图片"
Coze: [生成图片A]
"这是为您生成的猫咪图片,您觉得怎么样?
如果需要调整,可以告诉我:
- 改变颜色(如:橘色)
- 改变姿势(如:坐着)
- 改变背景(如:花园)
- 改变风格(如:卡通风格)"
用户: "改成卡通风格,背景改成花园"
Coze: [记录调整历史]
[使用图生图API,保持主体]
[应用卡通风格]
[替换背景]
[返���图片B]
"已为您调整为卡通风格的花园背景!还需要其他修改吗?"
用户: "很棒,保存这张"
Coze: [保存到用户相册]
"已保存!您可以随时在'我的作品'中查看。"
实现技术:
python
# Coze对话状态管理
class ImageGenerationSession:
def __init__(self):
self.history = [] # 生成历史
self.current_image = None # 当前图像
self.params = {} # 当前参数
def add_generation(self, prompt, params, image):
self.history.append({
"prompt": prompt,
"params": params,
"image": image,
"timestamp": datetime.now()
})
self.current_image = image
self.params = params
def get_adjustment_prompt(self, user_adjustment):
"""根据调整要求生成新提示词"""
# 解析调整类型
if "风格" in user_adjustment:
# 改变风格,保持内容
return self.change_style(user_adjustment)
elif "背景" in user_adjustment:
# 改变背景,保持主体
return self.change_background(user_adjustment)
elif "颜色" in user_adjustment:
# 改变颜色
return self.change_color(user_adjustment)
def rollback(self, steps=1):
"""回退到之前的版本"""
if len(self.history) > steps:
target = self.history[-(steps+1)]
self.current_image = target['image']
self.params = target['params']
return target
视频生成控制技术
视频生成的挑战
图片生成: 单帧,只需内容准确
视频生成: 多帧,需要:
1. 帧间一致性(角色不能突变)
2. 运动连贯性(动作流畅)
3. 时间逻辑性(符合物理规律)
4. 风格统一性(色调、风格保持)
技术1:AnimateDiff
原理:在SD基础上添加时间维度的运动模块
Stable Diffusion: 生成单帧图像
+
AnimateDiff: 添加运动信息
↓
生成连贯的视频帧序列
使用方法(ComfyUI):
python
# ComfyUI + AnimateDiff工作流
1. Load Checkpoint (SD模型)
2. Load AnimateDiff Model
- model: "mm_sd_v15_v2.ckpt"
3. CLIP Text Encode
- prompt: "a girl walking, long hair flowing,
wind blowing, dynamic motion"
4. AnimateDiff Sampler
- frames: 16(生成16帧)
- fps: 8(每秒8帧)
- motion_scale: 1.0(运动幅度)
5. VAE Decode
6. Video Combine
- fps: 8
- format: "mp4"
7. Save Video
关键参数:
- frame_count: 8-24帧(更多帧=更长视频=更多计算)
- context_length: 16(运动连贯性窗口)
- closed_loop: False(是否循环)
运动控制:
python
# 通过提示词控制运动
静态到动态:
"a girl standing still" → "a girl walking forward"
运动方向:
"camera pan left" → 镜头左移
"zoom in" → 推进镜头
"dolly shot" → 推拉镜头
运动速度:
"slowly" → 缓慢运动
"fast motion" → 快速运动
"time lapse" → 延时摄影
技术2:Stable Video Diffusion (SVD)
原理:专门训练的视频生成模型
输入: 单张图片 + 运动描述
输出: 2-4秒的视频
特点:
- 帧间一致性好
- 自然的运动效果
- 支持14-25帧生成
使用示例:
python
# SVD工作流
输入图片: 一个女孩的静态图片
运动参数:
- motion_bucket_id: 127(运动幅度,0-255)
* 0-50: 微小运动
* 50-150: 适中运动
* 150-255: 大幅运动
- fps: 6-24
- augmentation_level: 0.0(增强级别,0-1)
提示词(可选):
"gentle wind, hair flowing, natural movement"
输出: 14帧视频,展现轻微的头发飘动和自然呼吸
技术3:ControlNet for Video
原理:将ControlNet应用到视频的每一帧
视频生成流程:
1. 准备控制序列(如OpenPose序列)
2. 每帧应用ControlNet
3. 保持帧间一致性
实战案例:动作迁移
python
# 目标:将舞蹈动作迁移到虚拟角色
步骤1:提取动作序列
- 输入:真人舞蹈视频
- 处理:逐帧提取OpenPose骨架
- 输出:骨架序列(每帧一个)
步骤2:应用到虚拟角色
- 提示词:"anime girl, idol costume,
stage background, spot lights"
- ControlNet:OpenPose序列
- 逐帧生成
步骤3:后处理
- 颜色校正(保持色调一致)
- 平滑过渡(减少闪烁)
- 添加音乐和特效
技术4:提示词关键帧
原理:在视频的不同时间点使用不同提示词
python
# ComfyUI: Prompt Travel
关键帧设置:
Frame 0-30: "a seed in soil, underground view"
Frame 31-60: "a sprout growing, breaking through soil"
Frame 61-90: "a young plant with green leaves"
Frame 91-120: "a mature flower blooming"
AI自动在关键帧之间插值过渡
结果:展现植物生长过程的完整视频
视频质量提升技巧
技巧1:帧间插值
python
# 生成16帧,插值到48帧
原始视频: 16帧 @ 8fps = 2秒
↓
帧插值(RIFE): 在每两帧之间插入2帧
↓
最终视频: 48帧 @ 24fps = 2秒(更流畅)
工具:
- RIFE(Real-time Intermediate Flow Estimation)
- DAIN(Depth-Aware Video Frame Interpolation)
- Frame Interpolation Neural Network
技巧2:稳定化处理
python
# 减少视频闪烁和抖动
问题:AI生成的视频帧间可能有细微差异
解决:
1. 时间平滑(Temporal Smoothing)
- 对相邻帧进行加权平均
- 减少突变
2. 光流引导(Optical Flow)
- 分析像素运动轨迹
- 保持运动连贯性
3. 风格一致性(Style Consistency)
- 使用参考帧锁定风格
- IP-Adapter保持整体色调
技巧3:超分辨率
python
# 提升视频分辨率
生成: 512×512视频(计算快)
↓
超分: 使用Real-ESRGAN或Video Upscaler
↓
输出: 1024×1024或更高(质量好)
注意:
- 先生成低分辨率(快速迭代)
- 满意后再超分(最终输出)
完整案例与最佳实践
案例1:电商产品图生成
需求:为新产品快速生成多角度展示图
解决方案:
步骤1:准备基础素材
- 产品3D模型或实拍图
步骤2:ComfyUI工作流设计
节点配置:
1. 加载产品图
2. ControlNet (Depth + Canny)
- 提取产品轮廓和深度
3. 批量生成节点
- 角度变化:正面、侧面、45度等
- 背景变化:纯色、渐变、场景
4. 后处理
- 统一尺寸:1024×1024
- 添加阴影
- 颜色校正
步骤3:批量生成
提示词模板:
"product photography of {{product_name}},
on {{background}},
{{angle}} view,
studio lighting, clean background,
highly detailed, professional photo,
commercial photography"
背景列表:
- white background
- gradient blue background
- modern kitchen scene
- wooden table with props
角度列表:
- front view
- 45 degree angle
- side view
- top down view
结果:
- 4种背景 × 4个角度 = 16张产品图
- 风格统一、质量专业
- 总耗时:约10分钟
案例2:社交媒体内容生成
需求:为账号生成一致风格的配图
解决方案:风格LoRA + Coze智能体
阶段1:建立品牌风格LoRA
- 收集20-30张品牌视觉素材
- 训练风格LoRA
- 测试并调优
阶段2:部署Coze智能体
功能:
1. 根据文章内容生成配图需求
2. 自动生成提示词
3. 调用LoRA生成图片
4. 返回多个选项供选择
阶段3:批量生成工作流
输入:文章标题和关键词
处理:
- LLM提取核心概念
- 生成3个不同构图的配图
- 应用品牌LoRA
- 添加品牌水印
输出:3张候选图片
效果:
- 风格统一(LoRA保证)
- 内容相关(LLM理解)
- 高效产出(自动化流程)
案例3:游戏资产概念图生成
需求:快速生成游戏角色和场景概念图
解决方案:多ControlNet + 迭代优化
角色设计流程:
步骤1:姿势定义
- 使用OpenPose Editor绘制姿势
- 或使用3D软件导出姿势
步骤2:初步生成
提示词:
"fantasy warrior character,
full body, detailed armor design,
front view character sheet,
concept art, game character design,
trending on artstation"
ControlNet:
- OpenPose: 控制姿势
- Depth: 控制体型结构
步骤3:细节调整
- Inpainting修复手部、脸部细节
- 添加武器和配饰
- 调整色彩方案
步骤4:多视角生成
- 使用3D控制或多角度ControlNet
- 生成正面、侧面、背面视图
- 保持角色一致性(角色LoRA)
步骤5:场景整合
- 将角色放入游戏场景
- 调整光照和氛围
- 生成完整概念图
产出:
- 完整的角色设计表(多视角)
- 3-5个场景概念图
- 可直接用于游戏开发参考
最佳实践总结
实践1:迭代式生成策略
❌ 错误方式:
期望一次生成完美结果
→ 失望、浪费时间
✅ 正确方式:
1. 快速草稿(低步数、低分辨率)
- Steps: 15
- Size: 512×512
- 快速验证构图和主体
2. 精细调整(中等配置)
- Steps: 25
- Size: 768×768
- 调整细节和风格
3. 高质量输出(完整配置)
- Steps: 30-40
- Size: 1024×1024+
- Hires.fix提升分辨率
- 最终输出
节省时间:60-80%
实践2:参数组合优化
场景:人像摄影
推荐组合:
- Sampler: DPM++ 2M Karras
- Steps: 25-30
- CFG Scale: 6-8(人像用低CFG,更自然)
- Denoising: 0.5-0.7(图生图)
- ControlNet Weight: 0.7-0.9
场景:概念艺术
推荐组合:
- Sampler: Euler a(更多创意变化)
- Steps: 30-40
- CFG Scale: 10-15(强烈风格化)
- ControlNet Weight: 0.5-0.7(允许更多变化)
实践3:提示词版本控制
python
# 建立提示词库和版本管理
提示词模板库:
template_portrait_v1 = """
{subject},
{style},
portrait photography,
soft lighting, bokeh background,
highly detailed, professional photo
"""
template_portrait_v2 = """
{subject},
{age}, {expression},
wearing {clothing},
{style} photography,
{lighting}, {background},
highly detailed, 8k, professional photo,
shot with {camera}
"""
版本记录:
- v1: 基础版本(2023-10)
- v2: 增加细节控制(2023-12)
- v3: 优化质量词(2024-01)
使用:
prompt = template_portrait_v2.format(
subject="a young woman",
age="25 years old",
expression="gentle smile",
clothing="elegant dress",
style="fashion",
lighting="studio lighting",
background="clean white background",
camera="Canon EOS R5"
)
实践4:质量检查清单
生成后质量检查:
✅ 内容准确性
- 主体是否正确?
- 元素是否完整?
✅ 细节质量
- 脸部:五官比例、眼睛对称、皮肤纹理
- 手部:手指数量(5根)、姿势自然
- 文本:无乱码(如果有文字)
✅ 技术质量
- 无明显噪点
- 边缘清晰
- 无扭曲变形
✅ 艺术质量
- 构图平衡
- 色彩和谐
- 光影合理
常见问题修复:
- 手部错误 → Inpainting修复
- 脸部不自然 → 面部修复工具(GFPGAN)
- 分辨率不足 → 超分辨率(Real-ESRGAN)
- 细节模糊 → 提高步数重新生成
实践5:成本与效率优化
优化策略:
1. 本地 vs 云端
本地部署:
- 成本:硬件投入(RTX 3060+ GPU)
- 优势:无限制使用、数据私密
- 适合:高频使用、商业项目
云端API:
- 成本:按次计费
- 优势:零维护、高性能
- 适合:低频使用、快速原型
2. 模型选择
SD 1.5:
- 速度快(15-20秒/张)
- 质量中等
- 适合:快速迭代
SDXL:
- 速度慢(30-50秒/张)
- 质量高
- 适合:最终输出
3. 批量生成
- 使用batch功能
- 夜间生成(利用低峰时段)
- 优先级队列(重要任务先处理)
4. 缓存策略
- 保存常用LoRA到本地
- 缓存提示词模板
- 复用成功的参数配置
总结
核心技术矩阵
| 需求 | 推荐技术 | 优先级 |
|---|---|---|
| 精确内容控制 | 提示词工程 + ControlNet | ⭐⭐⭐⭐⭐ |
| 姿态控制 | OpenPose ControlNet | ⭐⭐⭐⭐⭐ |
| 风格一致性 | LoRA + IP-Adapter | ⭐⭐⭐⭐⭐ |
| 局部修改 | Inpainting | ⭐⭐⭐⭐ |
| 高分辨率 | Hires.fix + 超分辨率 | ⭐⭐⭐⭐ |
| 视频生成 | AnimateDiff / SVD | ⭐⭐⭐ |
| 批量生成 | ComfyUI工作流 | ⭐⭐⭐⭐⭐ |
| 智能交互 | Coze智能体 | ⭐⭐⭐⭐ |
学习路径建议
初级(1-2周):
1. 掌握基础提示词编写
2. 学会使用ComfyUI基础节点
3. 理解核心参数(CFG、Steps、Sampler)
4. 实践文生图基础功能
中级(1-2个月):
1. 掌握ControlNet各种类型
2. 学会训练简单LoRA
3. 熟练使用Inpainting
4. 搭建自动化工作流
高级(3-6个月):
1. 多ControlNet组合使用
2. 自定义ComfyUI节点
3. 视频生成和处理
4. 完整的生产流程搭建
专家级(持续学习):
1. 模型微调和训练
2. 算法优化
3. 商业化应用
4. 技术创新和研究
关键要点
精准控制的三层架构:
第一层:提示词(文本层)
- 详细的文本描述
- 权重控制
- 负向提示词
第二层:视觉控制(结构层)
- ControlNet(边缘、深度、姿态)
- 参考图像(IP-Adapter)
- LoRA(风格、角色)
第三层:参数调优(技术层)
- CFG Scale、Steps、Sampler
- Seed控制
- 分辨率和宽高比