TextDiffuser-2: Unleashing the Power of Language Models for Text Rendering¶
会议: ECCV 2024
arXiv: 2311.16465
领域: LLM/NLP
一句话总结¶
利用两个语言模型分别进行布局规划和布局编码,实现更灵活、更多样化的视觉文本渲染,在文本准确性和风格多样性之间取得更好的平衡。
研究背景与动机¶
现有扩散模型在生成含文字的图像时面临严重挑战,常产生错误符号或伪影。已有方法如 GlyphDraw、GlyphControl 和 TextDiffuser 虽通过显式文字位置和内容引导缓解了该问题,但仍存在三大缺陷:
灵活性和自动化受限:GlyphControl 需用户设计 glyph 图像,GlyphDraw 和 TextDiffuser 依赖手动指定关键词,无法直接从自然语言 prompt 生成图像
布局预测能力有限:GlyphDraw 仅支持单行文字,TextDiffuser 的 Layout Transformer 生成的布局不够美观
风格多样性受限:TextDiffuser 使用字符级分割掩码隐式约束了每个字符的位置,限制了手写体和艺术字体的生成
TextDiffuser-2 旨在释放语言模型在文本渲染中的潜力,同时解决上述三个问题。
方法详解¶
整体框架¶
TextDiffuser-2 包含两个阶段训练的语言模型和一个扩散模型: - 语言模型 M₁:布局规划器,将用户 prompt 转化为语言格式的布局 - 语言模型 M₂:扩散模型内的布局编码器,编码文本位置和内容 - 扩散模型:基于 Stable Diffusion 1.5 的图像生成器
关键设计¶
1. 语言模型用于布局规划(M₁)
- 基于 Vicuna-7B-v1.5 微调,使用 MARIO-10M 数据集中的 caption-OCR 对
- 支持两种模式:自动从 prompt 推断关键词和布局;或用户提供关键词后仅预测布局
- 输出格式:每行 "textline x₀, y₀, x₁, y₁"(左上角和右下角坐标)
- 仅需 5k 数据即可达到最优性能,支持通过多轮对话修改布局
- 坐标归一化到 0~128 范围
2. 语言模型用于布局编码(M₂)
- 使用扩散模型内置的 CLIP 文本编码器,采用混合粒度分词策略
- Prompt 部分保持原有 BPE 分词;关键词部分拆解为字符级表示(如 "WILD" → "[W]", "[I]", "[L]", "[D]")
- 引入 256 个坐标 token 和 95 个字符 token
- 使用行级边界框代替字符级分割掩码,提供更大的生成灵活性
- 最大序列长度 L=128,覆盖 94% 的训练样本
3. 多轮对话布局编辑
利用基于对话模型微调的特性,用户可通过对话引导 M₁ 修改布局,包括重新生成、添加或移动关键词。
损失函数¶
- 阶段一(M₁ 训练):交叉熵损失,同时训练有关键词和无关键词两种场景
- 阶段二(扩散模型训练):标准 L2 去噪损失,联合训练 M₂ 和 U-Net
实验关键数据¶
主实验¶
在 MARIO-Eval 基准上与现有方法的定量对比:
| 方法 | FID↓ | CLIPScore↑ | OCR Accuracy↑ | OCR F-measure↑ |
|---|---|---|---|---|
| SD-XL | 62.54 | 31.31 | 0.31 | 3.66 |
| PixArt-α | 87.09 | 27.88 | 0.02 | 0.03 |
| GlyphControl | 50.82 | 34.56 | 32.56 | 64.07 |
| TextDiffuser | 38.76 | 34.36 | 56.09 | 78.24 |
| TextDiffuser-2 | 33.66 | 34.50 | 57.58 | 75.06 |
人类用户研究和 GPT-4V 评估(投票百分比):
| 评估维度 | TextDiffuser (Human/GPT-4V) | TextDiffuser-2 (Human/GPT-4V) |
|---|---|---|
| 布局美观度 | 28.43 / 0.00 | 71.57 / 100.00 |
| 风格多样性 | 27.45 / 33.33 | 41.18 / 33.33 |
| 文本质量 | 23.44 / 30.77 | 36.98 / 46.15 |
| 文图匹配 | 19.23 / 36.36 | 40.66 / 45.45 |
| 修复能力 | 25.49 / 33.33 | 74.51 / 66.67 |
消融实验¶
微调数据量消融(M₁ 布局规划器):
| 数据量 | Accuracy↑ | Precision↑ | Recall↑ | F-measure↑ | IoU↓ |
|---|---|---|---|---|---|
| 0k-2shot | 49.65 | 84.18 | 69.69 | 76.25 | 19.69 |
| 2.5k | 61.10 | 82.20 | 85.18 | 83.67 | 3.21 |
| 5k | 64.85 | 84.98 | 86.38 | 85.67 | 3.25 |
| 10k | 64.85 | 84.38 | 86.23 | 85.29 | 4.27 |
| 100k | 62.87 | 85.26 | 85.98 | 85.62 | 4.31 |
坐标表示方式和分词粒度消融:
| 表示方式 | Accuracy↑ | Precision↑ | Recall↑ | F-measure↑ |
|---|---|---|---|---|
| Center (Char) | 35.19 | 61.75 | 62.71 | 62.23 |
| LT (Char) | 28.32 | 54.94 | 55.64 | 55.29 |
| LT+RB (Subword) | 15.48 | 41.74 | 42.53 | 42.13 |
| LT+RB (Char) | 57.58 | 74.02 | 76.14 | 75.06 |
关键发现¶
- 仅需 5k 数据微调语言模型即可达到最优布局规划,更多数据反而无明显提升
- 字符级分词比子词级分词在 Accuracy 上高出 42.1%,子词级分词使模型对拼写不敏感
- 使用左上-右下角两点表示比单点表示准确率高 22~29%
- 行级引导比字符级引导生成的字体更多样,尤其在手写风格方面
- TextDiffuser-2 对重叠布局具有更强的鲁棒性
亮点与洞察¶
- 语言模型双重利用:一个做布局规划,一个做布局编码,充分发挥 LLM 的文本理解能力
- 混合粒度分词:prompt 用 BPE、关键词用字符级分词,兼顾效率与拼写准确性
- 行级引导 vs 字符级引导:在略微牺牲 OCR 精度的情况下大幅提升字体风格多样性
- 交互式布局编辑:通过对话修改布局,显著提升用户体验
- 在不含文字的自然图像生成任务中,FID 仅比原始 SD 1.5 增加约 1(24.06 vs 23.03)
局限性¶
- 对复杂语言(如中文)的渲染能力有限,因字符集过大导致少样本甚至零样本困境
- 生成图像分辨率受限于 512×512
- 最大序列长度 L=128 在少数极端情况下不够用
- 布局规划器偶尔产生重叠框,虽然模型相对鲁棒但仍有改进空间
评分¶
- 新颖性: ⭐⭐⭐⭐ — 语言模型双角色设计和混合分词策略新颖
- 技术深度: ⭐⭐⭐⭐ — 方法设计系统全面,消融实验充分
- 实验充分度: ⭐⭐⭐⭐⭐ — 定量+定性+用户研究+GPT-4V 评估,维度丰富
- 实用性: ⭐⭐⭐⭐ — 支持多种任务(文本生成、模板生成、文本修复),交互式编辑实用
- 总评: ⭐⭐⭐⭐ — 在视觉文本渲染领域的扎实工作,方法简洁有效
TextDiffuser-2: Unleashing the Power of Language Models for Text Rendering¶
会议: ECCV 2024
arXiv: 2311.16465
领域: 图像生成
一句话总结¶
TextDiffuser-2 利用两个语言模型分别进行布局规划和布局编码,实现了更灵活、更自动化、更多样化的视觉文本渲染,在保持文本准确性的同时大幅提升了字体风格多样性。
研究背景与动机¶
扩散模型在图像合成领域取得了巨大成功,但在视觉文本渲染方面仍面临挑战。现有方法存在三大缺陷:
- 灵活性和自动化不足:GlyphControl 需要用户手动设计字形图像,GlyphDraw 和 TextDiffuser 需要手动指定关键词,无法直接从自然语言提示生成对应图像。
- 布局预测能力受限:GlyphDraw 只能渲染单行文本,TextDiffuser 的 Layout Transformer 生成的布局不够美观。
- 字体风格多样性受限:TextDiffuser 使用字符级分割掩码作为控制信号,隐式约束了字符位置,限制了手写体或艺术字体的生成。
这些问题的根源在于现有方法使用了过于严格的字符级控制信号,缺乏灵活的布局规划能力。TextDiffuser-2 旨在释放语言模型在文本渲染中的潜力,解决上述问题。
方法详解¶
整体框架¶
TextDiffuser-2 采用两阶段训练架构,核心是两个语言模型: - 语言模型 M1(布局规划器):基于 Vicuna-7B 微调,将用户提示转换为语言格式的布局 - 语言模型 M2(布局编码器):扩散模型内的 CLIP 文本编码器,编码行级文本位置和内容信息
关键设计¶
1. 语言模型进行布局规划(M1)
利用 MARIO-10M 数据集中的 caption-OCR 对微调 Vicuna-7B,使其成为布局规划器:
- 支持两种模式:(a) 用户不提供关键词时,自动推断文本内容和布局;(b) 用户提供关键词时,只需确定对应的布局位置
- 输出格式为 "textline x0, y0, x1, y1",坐标归一化到 0~128 范围
- 通过多轮对话支持布局修改(重新生成、添加、移动关键词)
- 仅需 5k 数据即可达到最优微调效果
2. 语言模型进行布局编码(M2)
在扩散模型内利用 CLIP 文本编码器编码行级布局信息:
- 混合粒度分词策略:对 prompt 保持原始 BPE 分词,对关键词引入字符级分词(如 "WILD" → "[W]", "[I]", "[L]", "[D]")
- 引入 256 个坐标 token 和 95 个字符 token 编码位置和内容
- 行级边界框提供更灵活的生成控制,不限制字体风格多样性
- 最大序列长度 L 设为 128,覆盖 94% 训练样本
3. 模型容量
整体模型基于 SD 1.5,包含 922M 参数,输入图像尺寸为 512×512。
损失函数¶
- 阶段一(布局规划):交叉熵损失训练 M1,同时训练有/无关键词场景
- 阶段二(图像生成):L2 去噪损失训练 M2 和 U-Net
实验关键数据¶
主实验¶
在 MARIO-Eval 基准上的定量结果和用户研究:
| 指标 | SD-XL | PixArt-α | GlyphControl | TextDiffuser | TextDiffuser-2 |
|---|---|---|---|---|---|
| FID↓ | 62.54 | 87.09 | 50.82 | 38.76 | 33.66 |
| CLIPScore↑ | 31.31 | 27.88 | 34.56 | 34.36 | 34.50 |
| OCR Accuracy↑ | 0.31 | 0.02 | 32.56 | 56.09 | 57.58 |
| OCR F-measure↑ | 3.66 | 0.03 | 64.07 | 78.24 | 75.06 |
| 文本质量(人类)↑ | 14.58 | 3.65 | 21.35 | 23.44 | 36.98 |
| 文本-图像匹配(人类)↑ | 7.14 | 3.30 | 29.67 | 19.23 | 40.66 |
TextDiffuser-2 在 FID、OCR 准确率、用户研究等大多数指标上取得最佳结果。
消融实验¶
微调数据量消融(M1 布局规划器):
| 数据量 | Accuracy↑ | Precision↑ | Recall↑ | F-measure↑ | IoU↓ |
|---|---|---|---|---|---|
| 0k-2shot | 49.65 | 84.18 | 69.69 | 76.25 | 19.69 |
| 2.5k | 61.10 | 82.20 | 85.18 | 83.67 | 3.21 |
| 5k | 64.85 | 84.98 | 86.38 | 85.67 | 3.25 |
| 10k | 64.85 | 84.38 | 86.23 | 85.29 | 4.27 |
| 100k | 62.87 | 85.26 | 85.98 | 85.62 | 4.31 |
5k 数据即可达到最优性能,更多数据反而无明显提升。
坐标表示和分词粒度消融:
| 表示方式 | Accuracy↑ | Precision↑ | Recall↑ | F-measure↑ |
|---|---|---|---|---|
| Center (Char) | 35.19 | 61.75 | 62.71 | 62.23 |
| LT (Char) | 28.32 | 54.94 | 55.64 | 55.29 |
| LT+RB (Subword) | 15.48 | 41.74 | 42.53 | 42.13 |
| LT+RB (Char) | 57.58 | 74.02 | 76.14 | 75.06 |
使用左上+右下角点 + 字符级分词效果最佳,子词级分词准确率下降 42.1%。
关键发现¶
- 语言模型具有自主推断关键词的灵活性,如自动纠正拼写错误("RRAINBOW" → "RAINBOW")
- 行级引导比字符级引导产生更多样化的字体风格,但需要接受一定的准确率折中
- 通过多轮对话可以灵活操控布局,支持重新生成、添加或移动关键词
- TextDiffuser-2 对重叠框具有更强的鲁棒性
亮点与洞察¶
- 极少数据微调:仅需 5k caption-OCR 对即可将 7B 语言模型训练为高质量布局规划器,展现了 LLM 跨领域迁移的强大能力
- 控制粒度的权衡:从字符级→行级控制信号,用少量准确率换取了显著的风格多样性提升,是一个精妙的设计权衡
- 可交互布局编辑:基于聊天模型微调的布局规划器天然支持多轮对话修改布局,提升了实用性
- 混合粒度分词:prompt 用 BPE、关键词用字符级分词的混合策略兼顾了效率和拼写能力
局限性¶
- 无法渲染复杂语言(如中文),因字符集庞大导致 few-shot 甚至 zero-shot 场景
- 生成分辨率受限于 512×512
- 行级控制虽提升了多样性,但在需要精确字符对齐的场景下准确率略低于字符级方法
评分¶
- 创新性: ★★★★☆ — 双语言模型架构设计新颖,混合粒度分词策略巧妙
- 实用性: ★★★★★ — 自动化程度高,支持多轮交互编辑
- 实验充分度: ★★★★★ — 消融实验全面,包含人类和 GPT-4V 用户研究
- 写作质量: ★★★★☆ — 结构清晰,动机阐述充分