GlyphControl: Glyph Conditional Control for Visual Text Generation

news2024/11/24 19:12:09

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。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/635657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件工程开发文档写作教程(11)—需求分析书的编写

本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著 需求分析书主要内容 按照国家《软件需求说明书GB8567-88》所定义的标准,软件需求…

2023去水印小程序saas系统源码修复独立版v1.0.3+uniapp前端

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,阅读文章底部来交流!!! 🎉 ✨ 源码介绍 一个基于uniapp写的小程序,后端…

MATLAB | 绘图复刻(九) | 泰勒图及组合泰勒图

有粉丝问我这个图咋画: 我一看,这不就泰勒图嘛,就fileexchange上搜了一下泰勒图绘制代码,但是有的代码比较新的版本运行要改很多地方,有的代码需要包含一些压缩包没并没有的别人写的函数,于是我干脆自己写了…

JAVA-八种基础数据类型和包装类型及相关面试题

文章目录 前言一、基本数据类型1.1 分类1.2 概念1.3 代码1.4 二维表 二、各基本数据类型间强制转换2.1 为什么Java中有强制转换?2.2 示例代码 三、包装类型3.1 为什么有包装类型?3.2 基本概念3.3 转换方法 四、转换过程中使用的自动装箱和自动拆箱4.1 来…

Redis Lua脚本原理

Lua脚本执行过程 创建并修改Lua环境 1 创建基础Lua环境2 载入函数库3 创建全局表格Lua4 替换随机函数5 创建排序辅助函数6 创建redis.pcall函数7 全局环境保护8 修改后的Lua环境保存到服务器状态的Lua属性,等待脚本执行 Redis中带有不确定性的命令: …

RK3588平台开发系列讲解(以太网篇)PHY状态机

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、PHY状态机定义二、PHY的状态变化三、PHY的状态变化打印沉淀、分享、成长,让自己和他人都能有所收获!😄 一、PHY状态机定义 phy状态机: 目录:include/linux/phy.h enum phy_state {PHY_DOWN = 0,</

开源模型的力量

2 月&#xff0c;Meta 发布了其大型语言模型&#xff1a;LLaMA。与 OpenAI 及其 ChatGPT 不同&#xff0c;Meta 不仅仅为世界提供了一个可以玩的聊天窗口。 相反&#xff0c;它将代码发布到开源社区&#xff0c;此后不久模型本身就被泄露了。研究人员和程序员立即开始修改、改…

Protobuf实战:通讯录

网络版通讯录 需求 Protobuf常⽤于通讯协议、服务端数据交换场景。接下来将实现⼀个⽹络版本的通讯录&#xff0c;模拟实现客⼾端与服务端的交互&#xff0c;通过Protobuf来实现各端之间的协议序列化。 需求如下&#xff1a; 客⼾端可以选择对通讯录进⾏以下操作&#xff1a;…

电子科技大学编译原理复习笔记(七):自下而上语法分析

目录 前言 重点一览 引言 自下而上分析 分析方法 规范规约&#xff08;最左规约&#xff0c;对应最右推导&#xff09; 算符优先分析法 算符优先文法 最左素短语 举个例子 优先关系表的构造 规范规约与算符优先分析 LR分析法 概述 LR&#xff08;0&#xff09…

系统架构设计师 2:计算机基础

一、计算机硬件 1 处理器&#xff08;CPU&#xff09; 处理器是计算机系统运算和控制的核心部件。 1.1 指令集 处理器的指令集按照其复杂程度可分为复杂指令集&#xff08;CISC&#xff09;与精简指令集&#xff08;RISC&#xff09;。 随着研究的深入&#xff0c;RISC已经…

基于深度学习的高精度安全背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度安全背心检测识别系统可用于日常生活中或野外来检测与定位安全背心目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的安全背心目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

2.25 sigprocmask函数使用 2.26sigaction信号捕捉函数 2.27SIGCHILD信号

2.25 sigprocmask函数使用 阻塞信号集有时称作信号掩码。 联想&#xff1a;fcntl函数可以修改fd属性。 ./sigprocmask & //将程序设置为后台运行&#xff0c;输入ls可以同步有输出 fg //将程序恢复到前台运行#include <stdio.h> #include <signal.…

动态规划dp —— 21.乘积最大子数组

1.状态表示 是什么&#xff1f;dp表中里的值所表示的含义就是状态表示 因为要考虑负数情况&#xff0c;负数乘以最大数就等于最小数了&#xff0c;负数乘以最小数就是最大数了 f[i]表示&#xff1a;以i位置为结尾的所以子数组中最大乘积 g[i]表会&#xff1a;以i位置为结尾…

Java 实现删除顺序表中第一次出现的某个元素

一、思路 1.顺序表不能是空的&#xff0c;如果顺序表是空的就肯定无法删除第一次出现的 key 元素. 2.定义一个key变量来传入要删除的元素&#xff0c;这个元素要求是第一次出现的. 3.删除之前要先找到第一次出现的key的下标. 4.找到位置之后就开始删除. 5.删除过程是从key下标位…

Linux - struct file与缓冲区

​​​​​​​ ​​​​​​​ 感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏【Linux系统编程】 ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 ​​​​​​​ ​​​​​​​ ​​​​​​​ 前言 对于文件&#x…

DTS迁移Oracle至DM与MySQL至DM

目录 DTS迁移Oracle至DM... 3 一、前期准备... 3 二、DTS迁移... 4 1、新建工程... 5 2、新建迁移... 6 3、填写源库信息&#xff0c;使用指定驱动并自定义URL连接... 7 4、填写目标库信息... 8 5、填写迁移选项... 8 6、指定迁移模式及模式对象... 9 7、执行迁移...…

http长连接与会话保持

"我们半推半就的人生&#xff0c;没有和你一样被眷顾的未来!" 一、Http长连接 (1) 为什么需要长连接 如上展示的是一个常规得并不能再常规的http服务&#xff0c;从本地拉取远端linux上的本地文件上传至浏览器上&#xff0c;经过浏览器的渲染展示成如今的样子。唔&a…

【实战】体验训练Geneface

一.环境 conda activate geneface export PYTHONPATH./ CUDA_VISIBLE_DEVICES0 python tasks/run.py --configegs/datasets/lrs3/lm3d_syncnet.yaml --exp_namelrs3/syncnet 训练这篇出过的一些奇奇怪怪的问题基本上都记录在【环境搭建】40系一些奇奇怪怪的环境问题_weixin_50…

aigc - 文化衫设计

团队要用aigc设计个文化衫&#xff0c;就是给些提示词&#xff0c;然后让ai自动生成能够包含这些提示词的文化衫出来 二、第二版 思路&#xff1a;收集了30多张文化衫&#xff0c;然后用两种方式生成提升词&#xff1a;一个是自然语言描述这件t-short&#xff0c;一个是全名词…

IDEA常用插件Top18

前言&#xff1a;精心推荐给大家的一些日常开发中最常用的IDEA效率插件。 1、Alibaba Java Coding Guidelines代码规范检查工具 Alibaba Java Coding Guidelines ,阿里的一款强大的代码规范检查工具&#xff0c;可以让自己写出易读性更高的代码&#xff0c;可以让团队代码风格…