近年来,随着AIGC的爆火,图片生成技术得到飞速发展,当前AI生成的图片已达到真假难辨的高保真度。不过,当合成图片中出现文字内容时,仍能够使AI露出马脚,因为当前主流方法尚无法在图片中生成准确可读的字符。最近半年来已有学者开始研究文本生成的问题,但这些方法大多以英文为主,无法解决中文这种字形繁杂、字符数以万计的文字生成。因此,我们提出了一种新颖的文字生成方法AyText,通过创新性的算法设计,可以支持中文、英语、日语、韩语等多语言的文字生成,还支持对输入图片中的文字内容进行编辑。本模型所涉及的文字生成技术为电商海报、Logo设计、创意涂鸦、表情包等新型AIGC应用提供了可能性。 代码链接:https://github.com/tyxsspa/AyText 论文链接:https://arxiv.org/abs/2311.03054 在线Demo:创空间(推荐), HuggigFace AyText主要基于扩散(Diffusio)模型,包含两个核心模块:隐空间辅助模块(Auxiliary Latet Module)和文本嵌入模块(Text Embeddig Module)。其中,隐空间辅助模块对三类辅助信息(字形、文字位置和掩码图像)进行编码并构建隐空间特征图像,用来辅助视觉文字的生成;文本嵌入模块则将描述词中的语义部分与待生成文本的字形部分解耦,使用图像编码模块单独提取字形信息后再与语义信息做融合,既有助于文字的书写精度,也有利于提升文字与背景的一致性。训练阶段,除了使用扩散模型常用的噪声预测损失,我们还增加了文本感知损失,在图像空间对每个生成文本区域进行像素级的监督,以进一步提升文字书写精度。
本模型使用范围较广,能基于输入的提示词以及指定的位置生成包含多语言字符的图像,或对输入图像中的文本进行编辑或修复。 参照如下示例代码,使用aytext进行文字生成或文字编辑 (首次运行时,会下载模型文件至:~/.cache/modelscope/hub中,请耐心等待;如果需要修改下载目录,可以手动指定环境变量:MODELSCOPE_CACHE) 使用基于gradio搭建的交互式demo,内含使用说明、操作界面及丰富的示例,可完整体验AyText,执行如下语句启动: 默认情况下使用FP16推理,并预加载一个中译英的模型用于直接输入中文提示词(占用约4G显存)。可通过指令修改默认行为,如执行如下语句将使用FP32推理,且不适用翻译模型: 如果使用FP16推理,不加载翻译模型或使用CPU推理(方法),每次生成1张512x512的图片,显存占用约7.5G。
此外支持用户使用其他字体文件(可能影响效果): 也可以直接访问如下在线Demo: 创空间(推荐), HuggigFace 本模型的训练数据集为AyWord-3M(即将开源),主要来源于互联网开源数据集,包括LAION-400M, Noah-Wukog以及部分OCR数据集,按照一定规则从中筛选出包含文字的图片,并使用OCR模型和BLIP-2模型进行全自动打标,总计得到300万高质量的图文对,涵盖自然图像、电影海报、书籍封面等各类场景。 我们使用全句准确率(Se. ACC)和归一化编辑距离(NED)评价生成文字的准确度,使用FID指标评价图像的生成质量。与现有方法相比,AyText在中英文的文字生成方面均具备显著优势,达到SOTA水平。AyText多语言文字生成与编辑
模型介绍
期望模型使用方式以及使用范围
环境配置
# 安装git(如有请跳过)
coda istall -c aacoda git
# 克隆aytext仓库
git cloe https://github.com/tyxsspa/AyText.git
cd AyText
# 准备字库文件(推荐Arial Uicode MS,需自行下载)
mv your/path/to/arialui.ttf ./fot/Arial_Uicode.ttf
# 方式一:如果使用modelscope otebook最新镜像(ubutu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0),直接安装如下包即可
pip istall Pillow==9.5.0
pip istall gradio==3.50.0
# 方式二:重新创建一个独立虚拟环境(耗时较长)
coda ev create -f eviromet.yaml
coda activate aytext
示例代码
from modelscope.pipelies import pipelie
from util import save_images
pipe = pipelie('my-aytext-task', model='damo/cv_aytext_text_geeratio_editig', model_revisio='v1.1.1', use_fp16=True, use_traslator=False)
img_save_folder = "SaveImages"
params = {
"show_debug": True,
"image_cout": 2,
"ddim_steps": 20,
}
# 1. text geeratio
mode = 'text-geeratio'
iput_data = {
"prompt": 'photo of caramel macchiato coffee o the table, top-dow perspective, with "Ay" "Text" writte o it usig cream',
"seed": 66273235,
"draw_pos": 'example_images/ge9.pg'
}
results, rt_code, rt_warig, debug_ifo = pipe(iput_data, mode=mode, **params)
if rt_code >= 0:
save_images(results, img_save_folder)
# 2. text editig
mode = 'text-editig'
iput_data = {
"prompt": 'A cake with colorful characters that reads "EVERYDAY"',
"seed": 8943410,
"draw_pos": 'example_images/edit7.pg',
"ori_image": 'example_images/ref7.jpg'
}
results, rt_code, rt_warig, debug_ifo = pipe(iput_data, mode=mode, **params)
if rt_code >= 0:
save_images(results, img_save_folder)
prit(f'Doe, result images are saved i: {img_save_folder}')
交互式Demo[推荐]
export CUDA_VISIBLE_DEVICES=0 && pytho demo.py
export CUDA_VISIBLE_DEVICES=0 && pytho demo.py --use_fp32 --o_traslator
export CUDA_VISIBLE_DEVICES=0 && pytho demo.py --fot_path your/path/to/fot/file.ttf
画廊
模型局限性以及可能得偏差
训练数据介绍
模型评测指标
相关论文及引用信息
@article{tuo2023aytext,
title={AyText: Multiligual Visual Text Geeratio Ad Editig},
author={Yuxiag Tuo ad Wagmeg Xiag ad Ju-Ya He ad Yifeg Geg ad Xuasog Xie},
year={2023},
eprit={2311.03054},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
点击空白处退出提示










评论