长久以来,在AI绘画中书写文字一直是个难题。即使到了SDXL时代,我们也只能输出英文,而且还经常出现漏掉字母的情况。现在阿里达摩院搞出了一个解决方案,可以在Stable Diffusion生成的作品中稳定输出中、英、日、韩等多种文字,实测效果不错。本文就给大家分享下这个技术。
这个技术的名字是 AnyText,目前支持中、英、日、韩等多语言文字。
AnyText 基于Stable Diffusion技术,包含两个核心模块:隐空间辅助模块和文本嵌入模块。
- 隐空间辅助模块对三类辅助信息(字形、文字位置和掩码图像)进行编码并构建隐空间特征图像,用来辅助视觉文字的生成;
- 文本嵌入模块则将描述词中的语义部分与待生成文本的字形部分解耦,使用图像编码模块单独提取字形信息后再与语义信息做融合,既有助于文字的书写精度,也有利于提升文字与背景的一致性。
训练阶段,除了使用扩散模型常用的噪声预测损失,我们还增加了文本感知损失,在图像空间对每个生成文本区域进行像素级的监督,以保证文字书写的精度。
推理生成时,嵌入的文本输送给绘图模块时被用星号代替,在嵌入空间预留位置并用符号填充。然后文本嵌入模块得到的字形图像被输入预训练OCR模型,提取出字形特征,然后调整其维度并替换预留位置中的符号,得到新的序列。
这个模型的训练数据集为AnyWord-3M(即将开源),主要来源于互联网开源数据集,包括LAION-400M, Noah-Wukong以及部分OCR数据集,按照一定规则从中筛选出包含文字的图片,并使用OCR模型和BLIP-2模型进行全自动打标,总计得到300万高质量的图文对,涵盖自然图像、电影海报、书籍封面等各类场景。
环境搭建
手动安装
这个程序目前已经开源到Github,可以自己安装使用。
github.com/tyxsspa/Any…
使用官方Demo
官方发布了一个Demo,我们可以在上边直接玩。
modelscope.cn/studios/dam…
运行Notebook
为了节省成本,这里推荐使用阿里达摩院的魔搭,新用户赠送100小时GPU时间,可以玩很多东西了。
打开官方模型地址:
modelscope.cn/models/damo…
在打开的页面中,点击右上角的“Notebook快速开发”,弹出框中选择“使用魔搭平台提供的免费实例”。
- 如果你没有注册过魔搭,请首先注册账号;
- 如果还没有绑定过阿里云账号,这里会要求你先绑定阿里云账号。
账号的问题解决后,在进入的页面中选择“GPU环境”,然后点击“启动”。这个免费实例有36小时的额度。
启动成功后会打开 jupyterlab 的操作窗口,按照下面的步骤操作:
1、上传一个字体文件,这个是官方推荐的,可以免费使用,应该也可以换成别的。
这个文件可自行搜索下载,也可在我的AI公众号“萤火遛AI ”发送消息“字体”进行下载。
2、Notebook中原有的代码不能直接运行,需要修改,可以都删掉。
然后创建新的Code类型的Cell,粘贴下边的内容,点击Cell左侧的按钮运行程序。
运行过程中会输出日志:
程序安装并成功启动后,会输出类似下图中的文字:http://127.0.0.1:7860
点击这个链接,就会打开AnyText的交互窗口,我们就可以愉快的操作了。
AnyText有两种用法:文字生成和文字编辑。
文字生成
所谓文字生成就是在文生图的图片中直接生成指定的文字。
操作方法如下图所示:
1、填写提示词,文字部分用引号括起来,一对引号代表一行文字。
2、在绘图区域绘制文字出现在图片中的位置。可以直接用画笔手绘,也可以拖矩形框,或者让模型自己选择。
3、然后点击运行就行了。
其它的参数如图片尺寸、提示词强度、生成数量等可以在“参数”部分自行设置,和Stable Diffusion差不多,这里就不啰嗦了。
文字编辑
文字编辑是修改现有图片上的文字,可以做到和原文字风格统一,甚至以假乱真的程度。
操作方法如下图所示:
1、填写提示词,文字部分用引号括起来,一对引号代表一行文字。
2、上传要修改文字的图片。用画笔涂抹住要编辑的文字。
3、然后点击运行就行了。
期待这个能力快速集成到Stable Diffusion WebUI中,我将持续跟踪!
如有兴趣,请及时关注,以免遗漏重要消息。
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
三、最新AIGC学习笔记
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例