LoRA 是一份附加到基础模型上的小型权重。做游戏美术时,常见目标有两种:角色 LoRA让指定角色更容易保持外观;风格 LoRA让不同主体呈现相近的画风。两者的数据和 caption 写法不同,先决定要学什么,再准备图片。
本文先用原创狐狸邮差做一轮很小的角色样本演示,再说明如何准备真正的风格数据。练习包里有样图、caption、ComfyUI 工作流请求和运行记录:下载 LoRA 入门练习包。
1. 先选 Base 模型和目标
ComfyUI 的 FLUX.2 Klein 指南把未蒸馏的 4B Base 用于微调,把 Distilled 作为快速推理模型。Black Forest Labs 的训练说明也建议用 Base 开始微调;模型卡列出 4B 权重的 Apache-2.0 许可。实际使用前仍要核对你下载的权重、训练图片和输出内容各自的许可。
ComfyUI 内置的 Train LoRA 节点目前标为 experimental。界面和参数可能随版本变化。本例只核验本机安装版本里的节点是否能运行和保存权重,不把它说成 BFL 官方训练工具或稳定的高质量训练方案。
2. 数据集决定你训练到什么
如果目标是角色一致性,选同一角色、多个角度和表情的授权图片,在 caption 中使用固定触发词,例如 ZHENFOX,再写清当前画面中的服装、动作和背景。不要把角色名换来换去。
如果目标是画风,图片应该覆盖不同主体、构图和场景。BFL 的风格训练示例给出 20–40 张多样图片的建议;caption 描述“画面里有什么”,不要直接把要学习的画风词写进每条 caption。这样触发词才有机会对应到目标风格。数量只是起点,不能替代多样性和质量检查。
不要把网上随手搜到的二次元图片打包训练。先确认有权使用图片,并排除水印、重复图、低清图和不希望模型记住的标识。训练集只含你有权处理的内容。
3. 在 ComfyUI 里连起训练节点
按当前 ComfyUI 版本的节点文档检查节点输入。此版本的练习工作流依次加载 UNet、CLIP 和 VAE,读取带同名 .txt caption 的 PNG 文件,经 MakeTrainingDataset 编码后接入 TrainLoraNode,再用 SaveLoRA 保存权重,并用 LossGraphNode 观察 loss。
开始前先把模型文件放到 ComfyUI 对应模型目录,确认节点能看到模型名;再用 1–4 张小图和极少步数检查数据路径、节点连接、显存和输出位置。这个 smoke test 只回答“管线能不能跑、能不能保存”,不回答“训练出来有没有学会”。正式训练应按 Base 模型、自己的目标和硬件重新定数据、分辨率、rank、学习率、步数及验证集,不要照抄这次的四步参数。
4. 本机实测:跑通了保存和加载,没看出训练效果
环境是 M1 Max 64GB、macOS 27.0.1、ComfyUI 0.38.0,使用本机 MPS。先用 FLUX.2 Klein 4B Distilled 和一张原创狐狸参考图生成 4 张 880×1168 的角色样图,用时 90.47、77.53、75.79、76.66 秒,共 320.45 秒。狐狸围巾、外套、挎包等特征基本一致;地图上有无法辨认的小字,所以地图文字不能作为结果使用。
真正训练前,我先尝试用这 4 张原尺寸图片训练 4 步。ComfyUI 接受了工作流请求,但等待历史记录时连接重置,随后 8188 端口拒绝连接、进程已退出;没有生成 LoRA,也没有拿到崩溃日志,退出原因无法确认。重启本机 ComfyUI 后,将训练副本缩为 384×512,再用同一 Distilled 模型、4 张图、rank 4、学习率 0.0001 跑 4 步,耗时 88.49 秒,保存出约 12.3 MB 的 LoRA 文件。
我把这份 LoRA 实际加载进 ComfyUI,用同一提示词、seed、512×512 尺寸和 4 步采样各生成一次基础模型图和加载 LoRA 的图。整组对照耗时 36.16 秒;两张图几乎相同,没有观察到明确的角色或风格变化。
基础模型:同 seed 对照
加载 4 步 LoRA:同 seed 对照
所以这次只证明本机实验节点能读入数据、生成并保存一个 LoRA 文件,之后也能加载该文件做推理。样本只有 4 张、训练只有 4 步,而且用的是官方建议用于推理的 Distilled 权重;它不是训练完成的风格模型,也不能证明角色一致性提升。高分辨率训练断开的问题也没有找到根因。
5. 用同 seed 做验证
正式验证 LoRA 时,固定提示词、seed、基础模型、尺寸和采样设置,只切换 LoRA 开关。至少对照多个没放进训练集的主体或场景,检查目标特征是否稳定出现、是否污染背景或改变不相关内容。保存原图、参数、训练集版本和权重哈希;如果看不出稳定差异,就回到数据、caption 和训练参数,而不是只挑一张最好看的结果。
练习包和本例边界
练习包包含 4 张原尺寸样图、4 张缩小后的 smoke 副本、caption、生成与对照图、工作流请求及运行证据。可先在自己的 ComfyUI 上做结构检查:
python3 train_lora.py --check
要把它改成真实风格训练,请先替换为自己有权使用的多样图片和 caption,再换成 Base 权重,并在目标机器上重新做低成本兼容性验证。脚本的训练参数与保存前缀是本例固定值,数据检查里的触发词也针对 ZHENFOX;它不是通用一键训练器。
我没有下载完 Base 权重,也没有租用或登录云 GPU 账号。Base 模型下载速度约 0.5 MB/s,下载到约 4.7% 时停止并删除了这次未完成的临时文件。因此,本例没有验证计划中的云 GPU 环境、Base 微调表现、长步数收敛、风格迁移质量、商业授权或其他设备上的显存需求。