近年来,文本生成图像领域取得了显著进展,尤其是基于扩散(Diffusion)的图像生成模型在细节层面上展现出逼真的效果。
然而,一个挑战仍然存在:如何将文本准确地融入图像。
生活中存在大量的「含文本图像」,从广告海报到书籍封面,再到路牌指示,都包含了重要的信息。如果人工智能模型能够高效且准确地生成含有文本的图像,将极大推动设计和视觉艺术领域的发展。
例如现有的先进开源模型Stable Diffusion和闭源模型MidJourney都在文本渲染上存在巨大挑战。
Stable Diffusion:a bear holds a board saying 'hello world'」
MidJourney:Color photo; diner billboard; headline “Jack Rabbit Slim’s”; vintage style (Leonardo AI prompted by Alan Truly)
为了应对这一挑战,微软亚洲研究院自然语言计算组联合香港科技大学和中山大学,提出了TextDiffuser和TextDiffuser-2模型。
这两款模型不仅提升了图像中文本渲染的准确性和清晰度,还提升了灵活度和实用性,能够执行文本到图像的生成、基于文本模板的图像生成,或是图像的文本补全等与文本渲染相关的任务。
论文标题:TextDiffuser: Diffusion Models as Text Painters
项目主页:https://jingyechen.github.io/textdiffuser/
代码链接:https://github.com/microsoft/unilm/tree/master/textdiffuser
在线Demo:https://huggingface.co/spaces/JingyeChen22/TextDiffuser
TextDiffuser对于以上两个prompt生成的结果
TextDiffuser
模型通过两阶段的工作流程生成含有文本的图像。
第一阶段,模型通过用户的提示(prompt)确定关键词的文本布局。
它采用了Layout Transformer技术,自回归地生成每个关键词的坐标框,相当于得到了字符坐标框级别的遮罩(Box-Level Segmentation Mask),能为每个字符提供精确的控制。
第二阶段,作者改进了Stable Diffusion架构以结合字符的坐标框信息进行生成,使得TextDiffuser能够在指定位置生成清晰的字符。
具体来说,作者重新设计了输入的特征,维度由原先的4维变成了17维。其中包含4维加噪图像的特征,8维字符信息,1维图像掩码,还有4维未被mask图像的特征。通过mask图像的部分或全部,即可实现生成部分图像(称为Part-Image Generation或Text-inpainting)或是整张图像(称为Whole-Image Generation)。
TextDiffuser框架图,包含两个阶段:布局生成与图像生成
在Inference阶段,TextDiffuser非常灵活,有三种使用方式:
1. 根据用户给定的指令生成图像。并且,如果用户不满意第一步Layout Generation生成的布局,用户可以更改坐标也可以更改文本的内容,这增加了模型的可控性。
2. 直接从第二个阶段开始。根据模板图像生成最终结果,其中模板图像可以是印刷文本图像,手写文本图像,场景文本图像。作者训练了一个字符集分割网络用于从模板图像中提取Layout。
3. 同样也是从第二个阶段开始,用户给定图像并指定需要修改的区域与文本内容。该操作可以多次进行,直到用户对生成的结果感到满意为止。
为了支持TextDiffuser的训练,研究团队构建了一个包含1000万张文本图像的MARIO-10M数据集,包含三个子集:LAION-OCR,TMDB与OpenLibrary。
作者还基于MARIO设计了MARIO-Eval文本渲染任务的大规模基准。作者进行了实验,与DeepFloyd等先进模型对比。
例如下图所示,在Whole-Image Generation任务中,TextDiffuser生成的图像具有更加清晰可读的文本,并且文本区域与背景区域较为和谐。
与现有文本生成图像方法相比,TextDiffuser可以生成正确的文本,并且文本与背景融合度较高
定性的实验的评估指标有FID,CLIPScore与OCR。尤其是OCR指标,TextDiffuser相对于对比方法有很大的提升。
对于Part-Image Generation任务,下面是在给定的图像上增加或修改字符的例子,TextDiffuser生成的结果很自然。
TextDiffuser-2
TextDiffuser-2进一步释放了语言模型在视觉文本渲染方面的潜能,提升了文本渲染的多样性和灵活性。
论文标题:TextDiffuser-2: Unleashing the Power of Language Models for Text Rendering
项目主页:https://jingyechen.github.io/textdiffuser2/
代码链接:https://github.com/microsoft/unilm/tree/master/textdiffuser-2
在线Demo:https://huggingface.co/spaces/JingyeChen22/TextDiffuser-2
TextDiffuser-2继承并优化了其前身TextDiffuser的核心特性,主要创新在于其对语言模型的应用。现有研究成果显示,大型语言模型内含有对视觉布局有一定理解的能力,足以处理布局生成任务。
基于这一发现,研究团队用图像描述-文本布局数据集对vicuna-1.5-7B语言模型进行了微调,使TextDiffuser-2能够更有效地处理文本布局生成任务,生成协调且美观的布局。
此外,TextDiffuser-2采用了Stable Diffusion模型中现有的语言模型编码布局信息,通过引入坐标token和字符token,提高了在特定位置绘制相应文本内容的能力。
具体来说,第一阶段的目标是对一个预训练的大型语言模型M1进行微调,让它能够作为解码器,使用图片描述与OCR(光学字符识别)结果对进行训练。输入遵循这样的格式:“[描述] 提示: [提示] 关键词: [关键词]”。
输出方面,我们期望每一行都遵循“文本行x0, y0, x1, y1”的格式,其中(x0, y0)和(x1, y1)分别代表左上角和右下角的坐标。我们利用OCR结果中检测到的所有文本作为关键词来构造输入。
通过这样的方法,TextDiffuser-2模型不仅能够根据用户的需求灵活地生成图像布局,还能够通过对话交互的方式,进一步细化和调整布局,为图像生成提供更高的灵活性和个性化选项。
第二阶段引入了一种简单且无需额外参数的策略,即将提示(prompt)和布局结合到语言模型M2中,M2在潜在扩散模型中扮演文本编码器的角色。
与调节个别字符位置的字符级分割掩码不同,行级边界框在生成过程中提供了更大的灵活性,并且不会限制样式的多样性。之前的研究表明,细粒度的分词可以增强扩散模型的拼写能力。
受此启发,作者设计了一种混合粒度的分词方法,既提高了模型的拼写能力,又避免了序列变得过长。具体来说,一方面,作者保持了原始的BPE分词方法用于处理提示。
另一方面,作者引入了新的字符token,并将每个关键词分解为字符级表示。例如,单词“WILD”被分解为token “[W]”, “[I]”, “[L]”, “[D]”。此外,作者引入了新的坐标token来编码位置。例如,token “[x5]”和“[y70]”分别对应于x坐标5和y坐标70。
每个关键词信息由结束符token “⟨eos⟩”分隔,任何剩余的空间直到最大长度L将被填充token “⟨pad⟩”填充。作者对整个扩散模型进行训练,包括语言模型M2和U-Net,使用L2去噪损失。
作者进行了广泛的实验来验证TextDiffuser-2的有效性,在文本到图像生成的任务上,与当前最前沿的模型进行比较,TextDiffuser-2展示了卓越性能,不仅能准确渲染文字,而且展示了布局的自然性和逼真度。
在处理复杂和多样化的文本样式方面,例如手写体和艺术体,TextDiffuser-2 表现出色,证明了其在细节和样式多样性上的优势。
此外,在图像的文本补全(Text Inpainting)任务上,TextDiffuser-2同样展现了其优越性,能够在保持文本与背景匹配的同时,提升整体图像的质感和美观度。
在定量实验中,TextDiffuser-2在大多数指标上具有优异的性能。
研究团队还使用GPT-4V进行了用户评测。评测结果显示,GPT-4V具有优异的识图识字能力,并且其总结的理由也显得合理。TextDiffuser-2在GPT-4V的评测中也获得了比其他对比模型优异的结果。
TextDiffuser和TextDiffuser-2的推出及其持续发展,在图像中准确渲染文本这一任务上取得了显著的进步。
为了促进这一技术的广泛应用,研究团队已经公布了TextDiffuser和 TextDiffuser-2的代码、数据集和Demo,鼓励广大研究者和设计师进行探索和应用,进一步推动设计和视觉艺术领域的创新与发展。