Z-Image 角色一致性 LoRA 训练:跨场景保持人物特征
训练一个 LoRA,让你的人物在任何提示词、任何场景下都保持面部和风格一致。
为什么需要角色一致性?
问题场景
AI 图像生成的最大痛点之一:每次生成同一个人,长得都不一样。
| 场景 | 问题 | LoRA 方案解决 |
|---|---|---|
| 漫画/条漫创作 | 主角在不同分镜中面部不一致 | ✅ 固定面部特征 |
| 社交媒体账号 | AI 网红需要统一的形象 | ✅ 跨场景一致性 |
| 游戏角色设计 | 角色三视图需要同一张脸 | ✅ 多角度一致 |
| 小说封面 | 主角在不同封面中保持统一 | ✅ 风格锁定 |
Z-Image Turbo 的优势
Z-Image Turbo 是一个6B 参数蒸馏模型,相比全尺寸模型:
- 训练速度更快:LoRA 训练时间减少 60-70%
- 显存需求更低:8GB 显存即可训练
- 推理速度更快:亚秒级生成
- 质量不妥协:蒸馏后保留 95%+ 的原模型质量
数据准备
最低要求
| 指标 | 最低 | 推荐 | 高质量 |
|---|---|---|---|
| 图片数量 | 5 张 | 15-20 张 | 30+ 张 |
| 图片分辨率 | 512×512 | 1024×1024 | 1024×1024+ |
| 面部清晰度 | 可辨认 | 清晰无遮挡 | 多角度清晰 |
| 背景多样性 | 有变化 | 多种场景 | 丰富场景 |
图片采集要点
- 正面照为主:至少 50% 的正面/半正面
- 多角度:包含侧面 3-4 张
- 不同表情:微笑、中性、惊讶等
- 不同服装:减少服装对训练的干扰
- 不同背景:避免背景特征被学习到角色中
- 光照变化:自然光、室内光、侧光等
图片预处理
# 使用 Python 预处理图片
python prepare_training_data.py /
--input ./raw_images/ /
--output ./training_data/ /
--size 1024 /
--face-detect /
--crop-face-ratio 0.6
关键步骤:
- 统一分辨率到 1024×1024
- 面部检测与居中裁剪
- 去除水印和无关元素
- 生成 caption 文件(可选)
LoRA 训练配置
使用 Kohya_ss WebUI
基础参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 模型 | z_image_turbo_bf16.safetensors | Z-Image Turbo |
| 优化器 | Prodigy | 专为 Z-Image 优化 |
| 学习率 | 自动(Prodigy) | Prodigy 自动调整 |
| 网络维度 (dim) | 32-64 | 角色复杂度决定 |
| 网络阿尔法 (alpha) | 16-32 | 通常为 dim/2 |
| 训练轮数 (epochs) | 10-20 | 图片少则多轮 |
| Batch size | 1-2 | 根据显存调整 |
| 分辨率 | 1024×1024 | Z-Image 原生分辨率 |
Prodigy 优化器参数
Prodigy 是专门为 Z-Image Turbo 设计的优化器:
optimizer: prodigy
lr: 1.0 # Prodigy 会自动缩放
d0: 0.05 # 初始步长尺度
weight_decay: 0.01
为什么用 Prodigy?
- 传统 AdamW 需要手动调学习率
- Prodigy 自动根据梯度缩放学习率
- 训练更稳定,过拟合风险更低
- 特别适合蒸馏模型(如 Z-Image Turbo)
使用命令行训练
accelerate launch train_text_to_image.py /
--pretrained_model_name_or_path=./z_image_turbo /
--train_data_dir=./training_data /
--resolution=1024 /
--train_batch_size=1 /
--num_train_epochs=15 /
--learning_rate=1.0 /
--optimizer=prodigy /
--optimizer_args="d0=0.05,weight_decay=0.01" /
--lora_rank=32 /
--lora_alpha=16 /
--output_dir=./lora_output /
--checkpointing_steps=500 /
--mixed_precision=bf16
训练过程监控
关键指标
| 指标 | 正常范围 | 异常信号 |
|---|---|---|
| Loss | 0.01-0.1 逐渐下降 | 不下降或剧烈波动 |
| 训练时间 | ~2-5 小时(15 张图,8GB) | 超过 8 小时 |
| 显存使用 | < 7GB(batch=1) | OOM 错误 |
训练样本验证
每 5 轮训练后,用以下提示词验证:
# 测试 1:基础一致性
character_name, portrait photo, white background, studio lighting
# 测试 2:不同场景
character_name, walking in a park, sunny day
# 测试 3:不同风格
character_name, anime style, watercolor painting
# 测试 4:极端测试
character_name, in a sci-fi spaceship, dramatic lighting
过拟合检测
| 症状 | 原因 | 解决 |
|---|---|---|
| 只有训练集背景出现 | 背景被学习 | 增加背景多样性 |
| 服装固定不变 | 服装被学习 | 使用不同服装训练 |
| 面部模糊 | 训练过度 | 减少 epoch 或 alpha |
| 完全不变 | 欠拟合 | 增加 epoch 或 alpha |
推理使用
ComfyUI 加载 LoRA
Load Checkpoint → z_image_turbo_bf16.safetensors
↓
Load LoRA → character_lora.safetensors
↓
[设置 LoRA 强度]
↓
KSampler
LoRA 强度调优
| 强度 | 效果 | 适用场景 |
|---|---|---|
| 0.3-0.5 | 轻微特征 | 风格参考,不强求一致 |
| 0.6-0.8 | 中等特征 | 日常使用推荐范围 |
| 0.9-1.0 | 强特征 | 需要高度一致时 |
| 1.0-1.2 | 过强 | 可能出现过度拟合痕迹 |
多 LoRA 组合
可以同时加载多个 LoRA:
LoRA 1 (角色面部) — 强度 0.8
LoRA 2 (艺术风格) — 强度 0.6
LoRA 3 (服装风格) — 强度 0.5
注意:总强度建议不超过 2.0,否则可能出现伪影。
高级技巧
多角色训练
如果需要在同一作品中保持多个角色一致:
- 方案 A:分别为每个角色训练独立 LoRA
- 方案 B:训练一个包含多角色的 LoRA(需要 token 区分)
方案 A 推荐:更灵活,可以独立调整每个角色强度。
面部增强
训练 LoRA 后,可以叠加面部修复节点:
KSampler → LoRA 生成 → Face Restore 节点 → 输出
提示词模板
# 角色一致性提示词模板
[角色触发词], [年龄描述], [服装描述],
[场景描述], [动作描述],
[风格修饰词], [质量词]
# 示例
character_name, 25-year-old woman, red dress,
walking through a garden at sunset,
cinematic lighting, photorealistic, 8k, sharp focus
常见问题
Q: 训练几张图片就够了?
- 5 张:最低限度,仅适合简单场景
- 10-15 张:推荐起步,基本一致性
- 20+ 张:高质量,跨场景稳定
- 30+ 张:专业级,多角度多表情多服装
Q: LoRA 训练要多久?
| 图片数 | 显存 | 优化器 | 预计时间 |
|---|---|---|---|
| 10 张 | 8GB | Prodigy | ~2 小时 |
| 15 张 | 8GB | Prodigy | ~3 小时 |
| 20 张 | 12GB | Prodigy | ~4 小时 |
| 30 张 | 16GB | Prodigy | ~6 小时 |
Q: 训练完 LoRA 后角色还是不一致?
- 增加 LoRA 强度到 0.8-1.0
- 检查训练图片质量(面部是否清晰)
- 增加训练轮数
- 确保触发词在提示词开头
- 尝试减少提示词中其他描述对角色特征的影响
Q: Z-Image Turbo 和 Z-Image Base 训练的 LoRA 通用吗?
不通用。Turbo 和 Base 是不同的模型,训练参数不兼容。Turbo 训练的 LoRA 只能在 Turbo 上使用。
总结
Z-Image Turbo 角色一致性 LoRA 训练流程:
- 数据准备:15-20 张清晰人脸照,多角度多场景
- 模型选择:Z-Image Turbo + Prodigy 优化器
- 训练配置:dim=32, alpha=16, epochs=15
- 过程监控:每 5 轮验证,检测过拟合
- 推理使用:LoRA 强度 0.6-0.8,配合模板提示词
核心优势:
- 训练快(8GB 显存 2-3 小时)
- 质量高(蒸馏模型保留 95%+ 质量)
- 一致性好(跨场景跨风格保持特征)
本文基于 ComfyUI + Z-Image Turbo + Prodigy 优化器。