Illustrious-XL系列模型技术报告阅读笔记(更新中)

2024 / 9 / 30

论文大纲:《Illustrious: an Open Advanced Illustration Model》

1. 引言

  • 背景:讨论Stable Diffusion及其在图像生成领域的进展,特别是SDXL模型的优势。

  • 问题陈述:指出动漫和插画生成模型的发展缓慢,缺乏大规模开源模型和严格的数据集要求。

  • 模型介绍:介绍Illustrious模型的特点,包括高分辨率图像生成和准确的角色解剖表现。

2. 初步研究

2.1 Stable Diffusion (SDXL)

  • 描述Stable Diffusion作为基础模型的架构及其应用。

2.2 插画/动画领域

  • 介绍Danbooru数据集的特点及其在动漫图像生成中的重要性。

2.3 下一代文本到图像生成模型

  • 分析新一代模型(如Hunyuan-DiT、Kolors等)的特征和优势。

2.4 数据伦理

  • 探讨数据使用中的伦理问题,强调尊重艺术家版权的重要性。

3. 方法论

3.1 数据集

  • 3.1.1 数据集偏差:分析Danbooru数据集中性别比例失衡的问题。

  • 3.1.2 数据预处理:描述标签排序和其他预处理方法。

  • 3.1.3 分辨率:讨论不同版本模型的训练分辨率。

  • 3.1.4 有限语料:指出Danbooru标签词汇的局限性。

3.2 训练方法

  • 描述多种训练策略,包括无丢弃标记、余弦退火调度等,以提高模型学习效果。

4. 训练设置

  • 提供不同版本Illustrious模型(v0.1至v2.0)的训练参数,包括数据集大小、批量大小、学习率等。

5. 评估

5.1 用户偏好(Elo评分)

  • 使用Elo评分系统评估用户对生成图像的偏好。

5.2 CCIP度量

  • 介绍基于特征提取的度量方法,用于评估角色相似性。

5.3 TrueSkill算法

  • 阐述TrueSkill作为一种技能排名系统在模型评估中的应用。

6. 限制与未来工作

限制

  • 指出Illustrious在处理角色细节和多维描述上的局限性,以及依赖于标签元数据的问题。

未来工作

  • 提出改进方向,包括增强自然语言处理能力和开发大型自然语言数据集以克服当前限制。

附录/补充材料

  • 包含关于分辨率、分析结果、限制因素等详细信息,提供对模型性能和潜在改进方向的深入探讨。

论文笔记:

1 多级提示

1.1 什么是多级提示(Multi Level Captions)

仅通过标签及其顺序体现上下文关系从而实现复杂的图像生成是非常困难的,为此有必要引入自然语言,多级提示允许为同一幅图像提供多个描述,这些描述包括简单标签和详细的自然语言。这种方式使得模型能够获得更丰富的上下文信息,从而更好地理解图像中各个元素之间的关系。

  • 细致控制:在图像生成过程中,多级提示使得模型能够更精确地控制生成内容。例如,用户可以通过详细描述来指定角色的位置、动作和情感状态,使得生成的图像更加符合用户的期望。

  • 适应性强:通过使用自然语言与标签结合的方式,多级提示能够适应不同类型的输入,提升模型对复杂场景的理解能力。这种灵活性使得模型在处理各种输入时表现得更加出色。

2 Danbooru数据集中存在的问题,以及论文中提出的解决办法

2.1存在的问题

(1) 性别不平衡

  • 数据集中女性角色的数量明显大于男性角色,这种不平衡反映了动漫和漫画领域的普遍趋势。这可能导致模型在处理与男性角色相关的任务时表现不佳,从而影响模型的公平性和泛化能力。

(2) 标签歧义

  • 数据集中的标签常常存在重叠和多义性。例如,标签“doctor”既可以指代角色,也可以指代职业,这种混淆会导致模型在理解图像内容时产生困难。

(3) 标签稀疏

  • 尽管一些图像包含多个角色,但许多图像的标签数量很少或缺乏详细注释。这种标签稀疏性使得模型难以学习到关键概念,因为重要的图像特征可能未被捕捉到。

(4) 高分辨率图像处理问题

  • 数据集中包含极高分辨率的图像,这些图像在下采样时可能无法有效处理,导致模型对这些图像的理解能力下降。

(5) 限制性的词汇表

  • Danbooru数据集的标签词汇表存在局限,使得模型在处理复杂概念时表现不佳。例如,模型能够生成简单对象(如“剑”),但在生成更复杂的动作(如“用左手覆盖伤口”)时则表现不佳。

(6) 标签结构问题

  • 数据集采用基于标签的结构,可能导致信息表达上的局限,特别是在描述多个角色或动作的具体组合时。这使得通过简单标签来控制生成图像中的多个对象变得困难。

2.2解决办法:

(1) 数据集扩展与清理

  • 合成数据集:为了弥补Danbooru数据集中性别不平衡和标签稀疏的问题,作者引入了合成数据集。这些合成数据是基于生成的图像和相应的描述生成的,有助于丰富训练数据,提高模型对不同角色的理解能力。

  • 标签重组和过滤:在训练过程中,作者对原始标签进行了重组和手动过滤,以去除不相关或模糊的标签。这一过程旨在提高数据集的质量,使得模型能够更好地学习到关键概念。

(2) 多级提示方法

  • 引入多级提示:通过使用多级提示(Multi-Level Captions),作者为每张图像提供了多个层次的描述,包括简单标签和详细自然语言描述。这种方法增强了模型对复杂输入的理解能力,使得生成的图像更加符合用户意图。

(3) 训练方法改进

  • 无丢弃标记策略:在训练过程中,作者采用了无丢弃标记策略,确保特定的敏感标记在训练中始终保留,以提高模型对这些概念的识别能力。

  • 余弦退火调度:使用余弦退火调度来调整学习率,以实现更稳定的训练过程,帮助模型更好地收敛。

  • 对比学习与弱概率丢弃:通过对比学习的方法,提升了模型对角色名称和艺术风格的理解,同时允许其他标记按照设定概率被丢弃,从而增强了模型的学习效果。

(4) 评估与反馈机制

  • 用户偏好评估:通过Elo评分系统评估用户对生成图像的偏好,确保模型能够根据用户反馈不断优化。

3 相较于先前的许多模型,Illustrious模型有哪些改进?又仍然存在哪些不足?

版本改进不足
Illustrious v0.1- 基于SDXL架构,采用双CLIP文本编码器,增强文本理解能力。 - 使用7.5M的Danbooru数据集,进行标签重组和手动过滤,提高数据质量。 - 引入无丢弃标记策略,确保特定敏感标记在训练中保留。- 生成质量不足,细节表现差。 - 性别不平衡,男性角色生成能力较弱。 - 对复杂或长文本提示的理解不准确。
Illustrious v1.0- 支持1536x1536的图像生成,提升图像质量。 - 使用10M的数据集,增强泛化能力。 - 引入标签操作和注册标记,提高对特定概念的学习能力。- 在处理复杂场景时仍可能不稳定。 - 依赖标签元数据,难以描述多维度图像。
Illustrious v1.1- 引入多级提示,提高对复杂输入的理解能力。 - 使用更大的批量大小(512),加快学习速度。 - 数据集进一步丰富,使用12M的数据集。- 生成特定角色倾向性,缺乏多样性。 - 对于非常长或复杂的自然语言提示仍有局限。
Illustrious v2.0- 能够生成高达20MP的图像,进一步提升图像质量。 - 采用多级提示方法,提高复杂场景的理解和生成能力。 - 引入余弦退火调度和对比学习方法,提高训练稳定性和效果。- CLIP编码器局限性依然存在,处理复杂组合时表现不佳。 - 对于长文本提示理解能力有限。