GlyphControl: Glyph Conditional Control for Visual Text Generation (Paper reading)
Yukang Yang, Microsoft Research Asia, arXiv2023, Cited: 0, Code, Paper
1. 前言
最近,人们对开发基于扩散的文本到图像生成模型的兴趣日益增长,这些模型能够生成连贯且形式良好的视觉文本。在本文中,我们提出了一种名为GlyphControl的新颖高效方法,用于解决这一任务。与现有方法依赖于像ByT5这样的字符感知文本编码器并需要重新训练文本到图像模型不同,我们的方法利用附加的字形条件信息来增强现成的稳定扩散模型在生成准确视觉文本方面的性能。通过整合字形指令,用户可以根据自己的特定需求自定义生成文本的内容、位置和大小。为了促进视觉文本生成的进一步研究,我们构建了一个名为LAION-Glyph的训练基准数据集。我们通过测量基于OCR的度量指标和生成的视觉文本的CLIP分数来评估我们方法的有效性。我们的实证评估表明,GlyphControl在OCR准确性和CLIP分数方面优于最近的DeepFloyd IF方法,突显了我们方法的功效。
2. 整体思想
利用了ControlNet的思想,增强预训练的模型对文本的生成,总体而言就是应用了ControlNet。
3. 方法
GlyphControl框架由几个关键组件组成:(i) 用于在给定图像中检测文本信息的OCR引擎,(ii) 用于在白板图像上呈现检测到的文本的Glyph渲染器,(iii) 用于将输入图像投影到潜在编码空间的图像VAE编码器,以及基于潜在编码重建输出图像的图像VAE解码器,(iv) 用于将输入文本转换为文本嵌入的文本编码器(OpenAI CLIP文本编码器),(v) 执行去噪扩散过程的U-Net编码器和解码器,以及 (vi) 通过处理由Glyph渲染器呈现的Glyph图像来编码条件的Glyph ControlNet。此外,图3展示了一些呈现的Glyph图像的示例。
GlyphControl架构包括一个预训练的稳定扩散模型作为“锁定副本”和一个随机初始化的ControlNet模型作为“可训练副本”。 在训练过程中,输入图像 x x x通过VAE编码器进行编码,生成潜在嵌入 z 0 z_0 z0。然后,扩散过程应用于 z 0 z_0 z0,生成带噪声的潜在嵌入 z t z_t zt。此外,我们利用OCR引擎从图像中提取文本,并使用字形渲染器生成白板图像。该图像只以黑色区域表示识别出的字符,形成字形图像 g g g。因此,文本嵌入(基于文本描述 c c c)和带噪声的潜在嵌入被馈送到U-Net(锁定副本)和Glyph ControlNet(可训练副本)。这使得我们能够估计噪声项 ε ( z t , t ) ε(z_t, t) ε(zt,t),其中关键的一步是将字形图像传递给Glyph ControlNet,以提取呈现良好文本所需的重要字形信息。© 在推断过程中,我们的方法支持多样化的用户指令,用于定制字形图像 g g g的呈现。随后,我们从高斯噪声中采样一个噪声潜在嵌入 z T z_T zT,并采用DDIM方案进行去噪过程,估计去噪后的潜在嵌入 z 0 z_0 z0。最后, z 0 z_0 z0被发送到VAE解码器,生成最终的输出图像 y y y。
通过我们的GlyphControl方法,我们能够成功生成清晰易读的视觉文本。这是通过利用预渲染的字形图像作为ControlNet的输入条件图来实现的,从而允许我们在布局级别上控制生成的字形。此外,我们在输入文本提示中指定了单词(例如,“一个上面写着“GlyphControl”的门面店”),并利用CLIP文本编码器来理解这些单词的语义含义。
字形指令:我们的GlyphControl方法的一个主要优势是其支持自定义的字形指令,可以对最终输出图像中的渲染文本进行各种约束的规定。我们的GlyphControl框架支持三种类型的文本信息自定义:
■ 文本字符信息:GlyphControl允许不仅指定单个单词,还可以指定由多个单词组成的短语或句子。只要文本意图放置在同一区域内,用户可以相应地自定义文本。
■ 文本行信息:GlyphControl提供了将单词分配到多行的灵活性,通过调整行数来实现。这个功能增强了视觉效果,使得文本排列更加灵活多样。
■ 文本框信息:通过GlyphControl,用户可以通过修改文本边界框的宽度属性来控制渲染文本的字体大小。文本在图像上的位置可以使用左上角的坐标属性来指定。此外,文本框的偏航旋转角属性允许进一步调整。默认情况下,文本是按照最佳的宽高比进行渲染,但用户可以定义一个特定的宽高比来精确控制文本框的高度。
我们在图4中展示了这些字形指令的有效性,其中我们的方法成功地根据指定的指令生成了可读的文本。例如,在图4中,我们展示了一些示例,用户可以自定义渲染文本的位置、调整字体大小,或者将多个文本组放置在不同的位置以实现个性化设计。此外,用户还可以选择将文本分成多行或旋转文本框以改善排列效果。我们可控的文本生成方法为未来的自动个性化艺术设计开辟了可能性。此外,在实验部分,我们提供了实证证据,表明与最近的DeepFloyd模型相比,我们的方法实现了显著更高的OCR准确性。
我们在VAE和U-Net方面采用了与SD 2.0基础模型相同的架构和初始权重。我们的训练过程中采用PP-OCRv3作为OCR引擎。在推断阶段,用户需要提供字形指令以生成定制的图像。为了渲染字形,我们利用Python库Pillow中的ImageDraw模块中提供的工具。
4. 实验
我们在三个不同的数据集规模上对我们的框架进行训练:LAION-Glyph-100K、LAION-Glyph-1M和LAION-Glyph-10M,分别进行了60个周期、20个周期和6个周期的训练。SD分支和Glyph ControlNet分支的初始权重从SD 2.0基础模型中复制而来。对于Glyph ControlNet和Zero-Conv块,我们将基础学习率设置为1e−4。在训练过程中,U-Net解码器保持冻结状态。SD分支和Glyph ControlNet分支的标题丢弃率分别设置为0.1和0.5。输入图像的分辨率保持为512×512。