人物一致性--LoRA训练(五)多角色一致性LoRA模型训练
前言
多角色一致性一直是 ComfyUI 中的难点问题。在此前的实践中,已成功完成了 单角色 LoRA 模型训练,并提出了针对 非人物一致性控制 的有效方案,同时也将训练完成的 LoRA 模型上传至 Civitai,包括 Dreamoo 的小动物 IP 形象与 SSX 的动漫角色形象。
然而,多角色一致性的实现仍面临挑战。尽管进行了多轮测试,但模型效果始终不理想,主要受到提示词干扰与图像特征冲突的影响,导致多个 LoRA 模型间出现严重的语义污染与视觉特征混淆。
直到 2024 年 11 月,In-Context LoRA 技术开始被广泛关注。其通过对数据集结构与提示词的特别设计,使得模型能够在单张图像中实现诸如 PPT 内容生成、产品展示图制作以及多视角摄像一致性等应用。该技术为多角色一致性训练带来了全新思路。
在此启发下,开启了基于 In-Context LoRA 的多角色训练与测试,最终成功实现 一个 LoRA 模型控制多个角色的目标。本文将围绕该技术展开详细阐述,并提供从数据集准备到 LoRA 模型训练的 完整流程与操作指南,为多角色一致性控制提供切实可行的解决方案。
基于本文训练的LoRA模型下载:点击跳转
视频教程:点击跳转
效果预览:
一、多角色数据集准备
在正式开始训练之前,进行了多项测试与验证。结合此前关于**人物一致性 LoRA 模型训练**的经验,我们已清楚地认识到:LoRA 训练的核心在于数据集的标签标注。换句话说,LoRA 模型本质上是将 文本之间的语义规律映射到图像中的视觉规律。
至于图像质量、图像尺寸,以及数据集标注的基本原则等内容,本文不再重复阐述。这些基础知识在不同的训练场景中始终是相通的。如果对此部分仍有疑问,建议参考**相关教学视频**以获取更系统的理解。
因此,为了实现多角色一致性的训练,必须确保每张训练图像中都包含两个或以上的不同角色,以便模型能够学习到各角色之间的相对关系与特征区分。这就要求在数据准备阶段对原始数据集进行合并与筛选。
此前已完成 **SSX 角色的 LoRA 模型**训练,并保留了相关的高质量数据集,可直接作为其中一个角色的训练素材。如下图所示,即为该角色的原始数据集内容,后续只需将其与其他角色的数据进行组合,即可构建用于多角色一致性训练的数据集。
同时还做过Dramoo数据集的生成以及高清修复,也同时保留有dreamoo的数据集,如下图所示:
在已经准备好两组不同角色的数据集后,接下来需要对它们进行合并。下图所示的工作流可用于实现该目标:通过对两个角色的数据集进行随机配对与拼接,生成包含多个角色的图像数据。随后,再将合并后的图像统一调整至接近 1024×1024 的分辨率,以匹配 FLUX 模型的最优出图尺寸,从而为后续的一致性训练打下高质量的基础。
接下来需要对合并后的数据集进行筛选。由于是通过随机组合生成的大量图像,因此为了增强数据集中次要特征的多样性和复杂性,需要有意识地选择不同组合方式的人物图像作为训练样本。例如,可优先保留以下类型的组合:半身+半身、特写+特写、全身+全身、背影+全身、背影+半身等。通过多样化的人物构图搭配,可以有效提升 LoRA 模型在多角色一致性控制方面的泛化能力。
二、初步实验(反面示例)
此阶段进行了初步的标签标注与 LoRA 模型训练。
最初的设想是:通过在单张图像中使用两个触发词,分别对应不同角色的特征,并结合位置相关的提示词,引导模型学习如何区分每个角色的独立特征。该方法旨在在不违背标签标注原则的前提下,实现多角色的一致性建模。
基于此思路,构建了如下所示的数据集作为实验素材。
如下图所示,由于文本标注中未对角色进行明确区分,导致训练过程中出现了严重的图像特征污染与提示词的语义混淆。在极少数情况下(如图一),模型能够正确识别并生成两个角色的特征;但在大多数情况下(如图二与图三),提示词间的语义干扰使得模型难以区分角色,生成结果混乱且一致性较差。
三、 In-context LoRA规范化提示词
如下图所示,In-context-lora通过规范化的提示词格式,实现对图像的分区域引导,使模型能够专注于特定区域的图像特征,从而在训练过程中有效学习并强化区域间的对应关系。比如在下面的工作流当中,提示词为
“[MOVIE-SHOTS] In a vibrant festival, [SCENE-1] we find <Leo>, a shy boy, standing at the edge of a bustling carnival, eyes wide with awe at the colorful rides and laughter, [SCENE-2] transitioning to him reluctantly trying a daring game, his friends cheering him on, [SCENE-3] culminating in a triumphant moment as he wins a giant stuffed bear, his face beaming with pride as he holds it up for all to see.”
该结构可以理解为提示词的固定格式为: “[图像风格]整体环境描述,[图一]<角色1>角色行为与状态,[图二]环境状态描述,[图三]环境状态描述。”
通过这种格式,In-context LoRA 可以引导模型对每个图像区域的特征进行独立学习,从而实现区域间的逻辑与视觉一致性。同时结合 LoRA 模型“将文本-图像关系映射为参数微调”的训练原理,便能够通过此类结构化提示词对多角色或多场景的数据集进行特殊标签标注,实现高效的多角色一致性学习与模型训练。
然而,此类 LoRA 模型的训练前提是:所使用的大模型本身必须具备区域感知能力。因此,在正式开展训练之前,需对底模的能力范围进行充分评估。例如,在上述提示词结构下,Flux 模型本身已具备对不同图像区域的理解与响应能力,LoRA 模型的作用更多在于对这些区域中具体的视觉特征进行微调学习。
因此,在进行自定义数据集的标签标注之前,务必先测试基础模型是否具备以下能力:
- 能否理解结构化提示词并据此生成对应的多角色场景;
- 是否可以通过特定格式的提示词,对每个角色的外观、服饰进行定向控制;
- 能否有效避免多个提示词之间因语义交叉导致的角色特征混淆或服饰污染。
只有在验证基础模型已具备以上能力的前提下,后续的 LoRA 训练才有可能实现真正意义上的多角色一致性控制。
如下图所示的提示词格式:
英文格式:
[Two different character scenes]<dreamoo><ssx>on the grass in the park, <ssx> is wearing a black suit and red pants, sitting on a chair, <dreamoo> wearing a flower wreath and a floral dress, sitting on the lawn.
对应中文格式:
[两个不同角色场景]<角色一><角色二> 场景描述,<角色二> 穿着与动作描述,<角色一> 穿着与动作描述。
该格式通过显式标注角色名称并结合具体行为、服饰与位置等细节,有效增强了提示词的角色区分性与区域描述能力,为多角色一致性训练提供了清晰的语义结构支持。
从上图的 Flux 出图结果来看,
- 角色一的特征描述(如“黑色西装、红色裤子、坐在椅子上”)能够被准确地呈现在图像中;
- 角色二的特征描述(如“戴着花环、花裙子、坐在草地上”)同样也得到了良好的还原。
- 整体场景描述“在公园的草地上”也被清晰地表达。因此可以确定,大模型本身对这种特定提示词格式具有良好的解析与执行能力。
基于这一结论,完全可以依托大模型对区域语义和角色结构的理解能力,将该格式应用于特征融合与学习任务中,进一步用于 LoRA 模型的训练,实现多角色的精准控制与一致性生成。
基于上述方法,可以完成提示词的格式化编写和数据集的整理。如下图所示,数据集在构建过程中进行了图像合并与高清放大处理,图像分辨率统一调整至接近 1024×1024,最终设定为 1024×768。该尺寸在保证图像细节的同时,也适配了后续模型训练的需求。整体流程具备较高的实用性与可操作性。
四、模型测试
训练完成后的 LoRA 模型在生成图像时出现了明显的图像边界割裂现象,推测可能与数据集合并方式有关,导致不同角色被渲染在各自独立的场景中,难以形成统一的画面风格,这与预期的多角色同场景效果不符。为此,尝试通过更精确的提示词描述来引导模型生成正确的场景布局。提示词如下:
[Two different character scenes]<dreamoo><ssx>Playing on the grass<ssx sitting on a chair, lost in thought>,<dreamoo wearing a floral dress and crown>,with flowers and grass nearby, clouds in the sky,
从生成结果来看,人物特征的学习与还原效果良好,模型在角色识别与特征保留方面表现稳定,仅需进一步优化场景一致性的控制方式。
随后通过调整提示词内容,在场景描述中明确加入“处于同一场景”的相关语义,有效提升了生成的一致性。不同角色被成功置于统一的背景环境中,图像割裂的现象显著减少,整体抽卡效率明显提升。
示例提示词如下所示:
[Two different character in one scenes]< Dreamoo><ssx>Playing on the grass<ssx sitting on a chair, lost in thought>,<dreamoo wearing a floral dress and crown>, they play in the same scene, with flowers and grass nearby, clouds in the sky,
五、万相视频LoRA测试
在阿里开源高质量视频生成模型“万相”之后,借助此前生成的多角色一致性图像,即可实现高质量的视频创作。如下图所示为完整的视频生成工作流,相关工作流文件可在网盘中获取。