长久以来,在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左侧的按钮运行程序。
# 安装git(如有请跳过)
!conda install -y -c anaconda git
# 克隆anytext仓库
!rm -Rf ./AnyText && git clone https://github.com/tyxsspa/AnyText.git
# 准备字库文件(推荐Arial Unicode MS,需自行下载)
!cd AnyText && pwd && cp ../arialuni.ttf ./font/Arial_Unicode.ttf
# 方式一:如果使用modelscope notebook最新镜像(ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0),直接安装如下包即可
!pip install Pillow==9.5.0 --quiet
!pip install gradio==3.50.0 --quiet
运行过程中会输出日志:
程序安装并成功启动后,会输出类似下图中的文字:http://127.0.0.1:7860
点击这个链接,就会打开AnyText的交互窗口,我们就可以愉快的操作了。
使用AnyText
AnyText有两种用法:文字生成和文字编辑。
文字生成
所谓文字生成就是在文生图的图片中直接生成指定的文字。
操作方法如下图所示:
1、填写提示词,文字部分用引号括起来,一对引号代表一行文字。
2、在绘图区域绘制文字出现在图片中的位置。可以直接用画笔手绘,也可以拖矩形框,或者让模型自己选择。
3、然后点击运行就行了。
其它的参数如图片尺寸、提示词强度、生成数量等可以在“参数”部分自行设置,和Stable Diffusion差不多,这里就不啰嗦了。
文字编辑
文字编辑是修改现有图片上的文字,可以做到和原文字风格统一,甚至以假乱真的程度。
操作方法如下图所示:
1、填写提示词,文字部分用引号括起来,一对引号代表一行文字。
2、上传要修改文字的图片。用画笔涂抹住要编辑的文字。
3、然后点击运行就行了。
期待这个能力快速集成到Stable Diffusion WebUI中,我将持续跟踪!
如有兴趣,请及时关注,以免遗漏重要消息。
写在最后
感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。