一、前言
TextDiffuser-2 生成的文本到图像:
- 实现准确的文本生成工作
- 保证图片中文本布局的合理性
- 在强大的语言模型能力的支持下展现出文本风格的多样性
TextDiffuser-2继承并优化了其前身TextDiffuser的核心特性,主要创新在于其对语言模型的应用。
二、摘要
现有文本渲染方法的一些缺点:
- 灵活性和自动化程度有限:
- GlyphControl需要用户设计字形图像来提供布局指导;
- GlyphDraw和TextDiffuser依赖于手动指定关键字。
- 布局预测能力有限:
- GlyphDraw只能渲染单行文本的图像,限制了其对多行文本场景的适用性;
- TextDiffuser 生成的文本布局在视觉上并不吸引人,这主要归因于布局转换器的能力有限。
- 限制样式多样性:
- TextDiffuser利用字符级分割掩码作为控制信号隐式地对每个字符的位置施加了约束,从而限制了文本样式的多样性,并在渲染手写或艺术字体时带来了挑战。
- 没有开源代码:现有方法可能不提供可用的代码、API 或演示。
TextDiffuser-2旨在释放语言模型用于文本渲染的力量:
文章利用了两种语言模型进行文本渲染,一种用于布局规划的语言模型和另一种用于布局编码的语言模型。
效果评估:
通过人类参与者和 GPT-4V 参与的综合实验和用户研究,验证了 TextDiffuser-2 可以生成合理且视觉上令人愉悦的文本布局,并且增强了生成文本的风格多样性。
三、方法
(一)TextDiffuser-2模型的整体架构
语言模型M1和扩散模型分两个阶段进行训练:
(二)语言模型M1将用户提示转换为语言格式的布局
- 输入:[description] Prompt: [prompt] Keywords: [keywords],其中keywords可选,如果用户没有明确提供关键字,语言模型应该推断要在图像上绘制的文本和布局,如果用户提供关键词(用灰色标记),语言模型只需要确定关键词对应的布局即可;
- 输出:textline x0, y0, x1, y1,其中(x0, y0)和(x1, y1)分别代表左上角和右下角的坐标
- 损失函数:交叉熵损失
(三)将提示和布局结合到扩散模型内的可训练语言模型M2中进行编码以生成图像
- 损失函数:去噪L2损失
- 混合粒度的分词方法:一方面,保持原始的BPE分词方法用于处理提示,另一方面,引入了新的字符token,并将每个关键词分解为字符级表示,并且还引入了新的坐标token来编码位置。
四、实验
(一)实施细节
布局规划:基于 FastChat 框架微调 vicuna-7b-v1.5模型。
布局编码:利用 SD 1.5并使用具有基本尺寸的内置 CLIP 文本编码器。
(二)消融研究
关于微调数据量的消融研究:
使用准确度、精确度、召回率和 F 度量来评估模型提取关键词的能力,并引入了一种 IoU 度量来测量每个样本生成的框之间的最大 IoU 值。实验结果表明,当使用 5k 数据进行微调时,该模型在大多数指标中实现了最佳性能。
关于坐标表示和标记化级别的消融研究:
- 坐标表示:使用单点表示文本行提供了更大的灵活性,使生成的文本能够在角度和大小方面表现出更大的多样性。然而,当使用MARIO-Eval 基准进行评估时,利用左上角和右下角来表示文本行的方法评估效果要更好。
- 标记化级别:使用子字级标记化的性能明显低于字符级表示,当使用子词级标记化时,模型对每个标记的拼写变得不敏感,这给文本渲染过程带来了重大挑战。
(三)实验结果
在MARIO-Eval基准上进行定量实验: TextDiffuser-2在多数评估指标上均展现出优异的性能。
将文本到图像的结果可视化: 与现有方法相比,TextDiffuser-2可以自动从提示中提取关键字以进行准确渲染。此外,TextDiffuser-2 生成的字体表现出广泛的多样性。
采用GPT-4V进行用户评测:根据用户反馈,GPT-4V对TextDiffuser-2生成的图像进行了评估,结果表明其具有优异的识图识字能力,并总结的理由合理。
(四)TextDiffuser-2 的其他应用
- 使用模板生成文本到图像: 当提供模板图像(例如打印的、手写的或场景文本图像)时,TextDiffuser-2可以用现有的OCR工具提取文本信息并将其作为条件直接输入到扩散模型中,从而无需进行布局预测语言模型M1。
- 文本修复任务: 与 TextDiffuser 比较,TextDiffuser-2 可以生成更连贯的文本。
- 无需文本的自然图像生成: 通过省略文本位置和内容引导,TextDiffuser-2 可以生成没有文本的图像。
(五)讨论
通过多轮聊天进行操作布局
重叠布局: TextDiffuser-2 对重叠框表现出更大的鲁棒性。相反,其他两种方法生成的结果会产生乱码文本,从而影响图像的整体质量。