Nai-Animals|MOSS多角色实验LoRA及其训练经验,经验公式
基于 MOSS-Image-Base,将奶龙、奶包、奶蛙、奶鲸和纸人五个角色合练到同一个LoRA,主要测试角色特征学习、多角色同框与身份区分。整体以3D卡通形象为主,纸人保留折纸、低多边形和蓝金中式服饰特征。
经验公式:
加权图片数 A = 各子集的“图片数 × repeats”相加
等效训练步数 S = A × B × D × I × O,结果向上取整
B:基础量——角色/服装/物品/概念 40,画风 60。
D:内容难度——普通 1.0;简单概念 0.7~0.9;非人形 1.0~1.2;复杂内容 1.2~1.4,只选一档。
I:区分难度——单主体 1.0;多角色/多皮肤差异明显 1.0~1.1,容易串特征 1.1~1.3,整套只乘一次。
O:延长预算——默认 1,需要继续强化时取 1.2~1.5。
以上S统一按 BS1+梯度累积1计量;实际更新次数≈S÷梯度累积次数。按5060 Ti 16GB、1024约4秒/等效步的经验,纯训练分钟数≈S÷15,缓存和预览另计。倍率用于排期,不保证到指定步数就完成拟合。
训练集共260张,Rank/Alpha 16/16、学习率1e-4、BS1累积1,完成12轮、3120步;主要采用BF16训练,FP16保存,TE冻结并提前缓存文本。
角色触发词与外形描述
真正写入训练标注前缀的触发词是下面五个。后面的英文是辅助描述,不是额外独立触发词,可以按场景删减。
奶龙|48张|nailoong
黄色圆润大头、绿色大眼、奶油色肚皮、短胖四肢、棕色爪和粉色掌垫。
nailoong, a plump yellow 3D cartoon mascot with a large rounded head, glossy green eyes, a small mouth, a cream-colored belly, short chubby limbs, three small brown claws on each hand and foot, and pink palm pads奶包|40张|naibao
棕色侧分短发、人形面部、大棕眼、黄色身体、奶油色肚皮和深灰棕色手脚末端。
naibao, a yellow 3D mascot with a human-like face, short side-parted dark brown bob hair, large dark brown eyes, eyelashes and arched eyebrows, a plump yellow body, a cream belly patch, and dark grey-brown hoof-like hands and feet奶蛙|96张|naiwa
黄色连体梨形身体、无明显脖颈、灰绿色圆眼、细横嘴、奶油色肚皮和橄榄棕色手脚。
naiwa, a golden-yellow pear-shaped 3D mascot with a seamless neckless head, pale grey-green circular eyes, black pupils, a thin horizontal mouth, a large cream-colored belly patch, olive-brown four-fingered hands, and broad three-toed feet奶鲸|36张|Nai_DS_whale
蓝色胖鲸形身体、白色胸腹、带小白点的弯曲脸纹、灰色四指手、背鳍和向上伸出的鲸尾。
Nai_DS_whale, a plump blue anthropomorphic whale mascot with a large white chest and belly, curved white facial markings with small white dots, a wide mouth, dark grey four-fingered hands, a dorsal fin, and an upright whale tail纸人|40张|zhiren
桃色棱角纸脸、无瞳白眼、粗黑眉、红唇、黑色纸发与金色头带,穿蓝金中式纸服,带金色圆章和盘扣,黑鞋白底。
zhiren, a faceted papercraft humanoid with a peach-colored paper face, pupil-less white eyes, thick black eyebrows, red lips, black paper hair and a gold headband, wearing a royal blue traditional Chinese paper jacket and trousers with circular gold medallions, gold frog-button closures, and black shoes with white soles多人生成时,建议分别描述每个角色的身份、外形、动作和位置,避免把所有属性堆成没有归属的一段。
官方打标参考与JSON用法
官方提供的图片回标方案,会输出包含 caption.long、caption.medium、caption.short、watermark和borders 的JSON。重点是准确描述图中可见的主体、动作、场景、颜色、光线和风格,保留非水印文字,并把水印信息单独记录。官方同时要求后训练时保持TE冻结。官方中文指南
这里需要区分:
回标结果JSON:用于组织长、中、短描述等信息。训练时可以提取其中的自然语言caption,并不意味着一定把整个JSON送入模型。
Layout JSON:使用
summary描述整体场景,items分别描述角色或元素,bbox表达位置区域。它用于结构化布局控制,和上面的回标结果不是同一种格式。官方支持自然语言、Tag及Layout输入。
社区经验补充
有社区经验提到 “JSON训练、自然语言(NL)生图” 的搭配,效果更好,也符合实际生图流程。
后续更推荐围绕Layout JSON建立工作流。 实际使用中,配合框选区域、角色位置和属性绑定的插件会更方便:整体场景放在summary,每个角色分别放在items,框选区域转换为bbox,更容易编辑、检查和复用。
日常快速描述场景可以尝试NL;多角色和区域控制则优先考虑Layout JSON,并确认插件及训练器支持对应格式。训练器作者文档也更建议训练与推理使用一致形式。
本版本实际使用自然语言TXT标注训练,中途预览使用Layout JSON。
当前表现与训练问题
奶包、奶蛙、奶鲸和纸人的主要身份特征已经比较明显,但比例、纹样和局部细节仍会变化。
奶龙尚未完全还原:容易出现额外眉睫、头身偏瘦、手部颜色变化等问题。
三个黄色角色共享部分颜色和身体特征,多人同框时仍有串特征现象。
五人构图比三人、双人更不稳定,可能出现位置交换、身份重复或身体结构偏移;最终轮次的五人图中,奶鲸轮廓仍有明显问题。
MOSS LoRA训练经验公式
参考配置:1024分辨率、FP16/BF16、Rank/Alpha 16/16、学习率1e-4、BS1;文本提前缓存,训练时卸载TE到CPU/内存。以下用于估算训练预算,实际按中途预览选择模型,不是官方步数建议。
一、总公式
每轮加权张次 A =(N1 × r1)+(N2 × r2)+ ……
等效训练步数 S = A × B × D × I × O,最后向上取整。
没有重复采样时,简化为:
S = 图片总数 N × 基础量 B × 难度系数 D × 区分系数 I × 延长系数 O
各项含义:
S:等效步数,统一按BS1、梯度累积1计量,表示单图前后向总次数。
Ni:每个角色/皮肤/概念子集的图片数。
ri:该子集的重复倍率repeats,默认1。
A:各子集的“图片数 × 重复倍率”之和,即每轮处理张次。
B:基础训练量。
D:内容本身的复杂程度。
I:同一LoRA中,不同身份或造型的区分难度。
O:额外延长预算。
二、系数怎么选
项目建议值基础量B:角色、服装、物品、概念40
基础量B:画风60
难度D:普通内容1.0
难度D:简单概念、简单效果0.7~0.9
难度D:非人形角色1.0~1.2
难度D:复杂角色、服装、物品或概念1.2~1.4
区分I:单主体、单造型1.0
区分I:多主体/多皮肤,差异明显1.0~1.1
区分I:相似主体/相似皮肤,容易串特征
1.1~1.3延长O:普通训练1
延长O:需要继续强化1.2~1.5
B决定基础预算:其他系数均为1时,图片数×40相当于约40轮,不表示必须跑满40轮。
D看内容复杂度:简单、统一的概念取低值;需要同时保持多层服装、配饰、特殊身体结构和多种状态时取高值。只选一档,复杂非人形不重复叠加两个难度倍率。
I看条件是否容易混淆:轮廓、颜色和服装差异明显时取低值;只改少量配色、装饰,或容易串眼睛、手脚和衣服时取高值。整套只乘一次。
O表示追加预算:默认1,需要强化时再增加。O=1.5表示多留50%训练量,不表示达到该步数就必然过拟合。
三、多角色、多服装怎么算
单角色多皮肤:按“一个身份+多个服装条件”组织,基础量仍取40,必要时增加区分系数。
多角色多皮肤:按实际有数据的“身份+服装组合”组织,每张图标清对应条件。
图片总数已经包含全部角色与皮肤,不再额外乘一次角色数、皮肤数,也不按每增加一个角色连续叠加倍率。
例如2个角色、每人3套皮肤、每套16张,共96张。将96带入图片总数,不再乘2×3。
分别调用角色原有皮肤,与让角色互换彼此服装,是不同目标;后者还需要验证身份和服装能否分离。
四、少样本补强与正则集
少样本皮肤可以增加repeats:
子集图片数重复倍率每轮张次皮肤A16116皮肤B8216皮肤C16116
真实图片40张,每轮加权处理48张次。 B获得更多曝光,但8张重复两遍仍只有8张不同图片,视角和动作覆盖不会自动增加。
这属于子集重复/采样补强。真正的正则/先验保持集是额外的通用数据,应按训练器的采样和损失设置处理,计算开销另计,不直接当目标角色图片加入公式。
固定epoch时,增加repeats会增加工作量;固定总steps时,通常主要改变样本分配。随机采样权重不一定增加每轮长度,需要确认训练器的计数方式。
重复倍率已经计入A,不在总公式外再乘一次补强倍率。
五、梯度累积与耗时
实际更新次数 U ≈ 等效步数 S ÷ 梯度累积次数 G
纯训练时间 T(分钟)≈ 等效步数 S × 单图处理秒数 t ÷ 60
固定等效训练量时,梯度累积只换算更新频率,不再额外乘一次累积倍率;固定实际更新次数时,才有:
S ≈ U × G
相同曝光量、不同累积次数的优化效果不保证相同。
以5060 Ti 16GB、1024约 4秒/等效步为经验参考:
纯训练分钟数 T ≈ S ÷ 15
例如上面的三皮肤数据,取 B=40、D=1、I=1.1、O=1:
S = 48 × 40 × 1 × 1.1 × 1 = 2112等效步
对应轮数:2112 ÷ 48 = 44轮。
累积4:2112 ÷ 4 = 528次更新。
纯训练:2112 × 4 ÷ 60 = 140.8分钟,约2小时21分。
缓存、加载、保存、预览和正则计算另计。
如果直接决定先训练20轮,则使用:
S = 20 × 48 = 960等效步
这时不再乘40;累积4约240次更新,按4秒估算纯训练约64分钟。
建议12GB显存用768分辨率训练,16GB以上使用1024分辨率训练,需要卸载TE。
Description
Comments (9)
这期神了
伟大的调查兵团
这么聪明的大脑最后却坚持在抽象的道路走到底
所有开源模型都逃不过的一关
向奶龙将军敬礼!
# 向奶龙将军敬礼!
向奶龙将军敬礼!


