这个技术的名字是AnyText,目前支持中、英、日、韩等多语言文字。
AnyText基于StableDiffusion技术,包含两个核心模块:隐空间辅助模块和文本嵌入模块。
训练阶段,除了使用扩散模型常用的噪声预测损失,我们还增加了文本感知损失,在图像空间对每个生成文本区域进行像素级的监督,以保证文字书写的精度。
推理生成时,嵌入的文本输送给绘图模块时被用星号代替,在嵌入空间预留位置并用符号填充。然后文本嵌入模块得到的字形图像被输入预训练OCR模型,提取出字形特征,然后调整其维度并替换预留位置中的符号,得到新的序列。
这个程序目前已经开源到Github,可以自己安装使用。
官方发布了一个Demo,我们可以在上边直接玩。
打开官方模型地址:
在打开的页面中,点击右上角的“Notebook快速开发”,弹出框中选择“使用魔搭平台提供的免费实例”。
账号的问题解决后,在进入的页面中选择“GPU环境”,然后点击“启动”。这个免费实例有36小时的额度。
启动成功后会打开jupyterlab的操作窗口,按照下面的步骤操作:
1、上传一个字体文件,这个是官方推荐的,可以免费使用,应该也可以换成别的。
这个文件可自行搜索下载,也可在我的AI公众号“萤火遛AI”发送消息“字体”进行下载。
2、Notebook中原有的代码不能直接运行,需要修改,可以都删掉。
然后创建新的Code类型的Cell,粘贴下边的内容,点击Cell左侧的按钮运行程序。
点击这个链接,就会打开AnyText的交互窗口,我们就可以愉快的操作了。
AnyText有两种用法:文字生成和文字编辑。
所谓文字生成就是在文生图的图片中直接生成指定的文字。
操作方法如下图所示:
1、填写提示词,文字部分用引号括起来,一对引号代表一行文字。
2、在绘图区域绘制文字出现在图片中的位置。可以直接用画笔手绘,也可以拖矩形框,或者让模型自己选择。
3、然后点击运行就行了。
其它的参数如图片尺寸、提示词强度、生成数量等可以在“参数”部分自行设置,和StableDiffusion差不多,这里就不啰嗦了。
文字编辑是修改现有图片上的文字,可以做到和原文字风格统一,甚至以假乱真的程度。
2、上传要修改文字的图片。用画笔涂抹住要编辑的文字。
期待这个能力快速集成到StableDiffusionWebUI中,我将持续跟踪!