LoRA 训练实战:用 Flux 生成稳定角色形象
前言 大家好,我是Seb。AI 生图发展到今天,论单张质量已经相当能打了。但做内容的人都知道——一致性才是真正的难题。 我之前做一个漫画系列,主角需要每张图都长一个样。结果呢?今天生成一张帅脸,明天改个 prompt 再跑,出来完全就是另一个人。尝试了几十次 prompt 微调,效果都很随机。后来决定用 LoRA 来解决这个问题。 这篇文章把整个过程拆开来讲,从样本准备到训练参数,再到 API 调用的坑,希望能帮到有同样需求的同学。 LoRA 是什么,为什么用它 LoRA(Low-Rank Adaptation)最早是 NLP 领域的微调方法,后来被引入到图像生成模型里。它的核心思路很简单:用少量图片训练一个轻量级的权重矩阵,记录特定人物或风格的特征。出图的时候加载这个权重,AI 就知道"这个人的脸长这样"。 相比全量微调,LoRA 的优势很明显: 训练速度快:在你自己的电脑上,用一张消费级显卡,跑一两个小时就能出结果 文件体积小:一个 LoRA 文件通常几十 MB,存储和加载都很方便 即插即用:不影响原模型的任何能力,加载就生效,不加载就不生效 可组合:同一张图可以叠加多个 LoRA(比如一个人物 LoRA + 一个风格 LoRA) 我选的是 Flux 模型 + Replicate 平台来训练和部署,流程相对标准化,下面一步步说。 第一步:样本准备(决定成败) 这句话我说在前面——训练 LoRA 的上限 80% 由样本质量决定。模型再强,数据烂也白搭。 选什么样的照片 第一次训练的时候,我 Google 了 30 多张照片,什么角度都有就扔进去了。结果出来的 LoRA 效果非常糟糕——五官位置是对的,但整体感觉就是"像又不像",AI 把不同角度的特征混在一起,生成了一个"平均脸"。 第二次我只用了 12 张,但每张都严格筛选。我总结的筛选标准如下: 标准 说明 为什么重要 正面为主 正脸或微侧(30°以内) 特征信息最多,模型最容易学习 光线均匀 避免阴阳脸、强背光 阴影会干扰五官特征的提取 画面占比大 人脸占画面的 60% 以上 像素级信息越丰富,特征越精确 表情自然 微笑或中性表情 夸张表情会把肌肉变形当成特征学进去 清晰度够 不低于 1024×1024 模糊照片只会让模型学到噪点 背景简单 纯色或虚化背景 避免模型把背景元素当成特征 样本数量多少合适 我的经验:12-15 张高质量 > 50 张杂图。 ...