AnyText: 多语言视觉文本生成与编辑
概述
阿里达摩院最新发布了一个图文融合平台,该平台拥有强大的文本理解和图像处理能力,能够实现跨模态的信息融合和生成,该模型主要有两个作用,分别是文字生成与文字编辑。
项目新闻
- [2024.01.04] – 推出FP16推理,速度提升3倍!现在该演示可以在具有>8GB内存的GPU上部署。尽情享受!
- [2024.01.04] – HuggingFace在线演示已经上线!
- [2023.12.28] – ModelScope在线演示已经上线!
- [2023.12.27] – 🧨我们发布了最新的检查点(v1.1)和推理代码,在modelscope中查看中文信息。
- [2023.12.05] – 论文可以在此处找到。
待办事项
- 发布模型和推理代码
- 提供公开访问的演示链接
- 提供免费字体文件(🤔)
- 发布用于合并社区模型或LoRAs权重的工具
- 在stable-diffusion-webui中支持AnyText(🤔)
- 发布AnyText基准数据集和评估代码
- 发布AnyWord-3M数据集和训练代码
方法论
AnyText架构
AnyText包括一个扩散管道,主要包含两个元素:辅助潜在模块和文本嵌入模块。前者使用诸如文本字形、位置和遮蔽图像等输入来生成文本生成或编辑的潜在特征。后者使用OCR模型将笔画数据编码为嵌入,这与来自标记器的图像标题嵌入混合,生成与背景无缝融合的文本。我们使用文本控制扩散损失和文本感知损失进行训练,以进一步提高书写准确性。
框架
安装
步骤
- 安装git(如果已安装,请跳过)
- 克隆AnyText代码库
- 准备字体文件;建议使用Arial Unicode MS,需要自行下载
- 创建新环境并按以下方式安装包:
conda install -c anaconda git
git clone https://github.com/tyxsspa/AnyText.git
cd AnyText
mv your/path/to/arialuni.ttf ./font/Arial_Unicode.ttf
conda env create -f environment.yaml
conda activate anytext
推理
推荐方法
我们在ModelScope和HuggingFace上发布了演示!
两种模式
AnyText包括两种模式:文本生成和文本编辑。运行下面的简单代码,以在两种模式下执行推理并验证环境是否正确安装。
python inference.py
高级GPU推理
如果您有高级GPU(至少8G内存),建议按照以下方式部署我们的演示,其中包括使用说明、用户界面和丰富的示例。
export CUDA_VISIBLE_DEVICES=0 && python demo.py
其他配置
默认使用FP16推理,并加载中文到英文的翻译模型以直接输入中文提示(占用约4GB GPU内存)。可以通过以下命令修改默认行为,启用FP32推理并禁用翻译模型:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
如果使用FP16且未使用翻译模型(或在CPU上加载),生成一个单一的512×512图像将占用约7.5GB GPU内存。此外,可以通过以下方式使用其他字体文件(尽管结果可能不是最佳的):
export CUDA_VISIBLE_DEVICES=0 && python demo.py --font_path your/path/to/font/file.ttf
请注意,在首次执行推理时,模型文件将下载到:~/.cache/modelscope/hub
。如果需要修改下载目录,可以手动指定环境变量:MODELSCOPE_CACHE
。
画廊
评估
评价指标
我们使用句子准确度(Sen. ACC)和标准化编辑距离(NED)来评估生成文本的准确性,并使用FID指标来评估生成图像的质量。与现有方法相比,AnyText在中英文文本生成方面具有显著优势。
引用
@article{tuo2023anytext, title={AnyText: 多语言视觉文本生成与编辑}, author={Yuxiang Tuo and Wangmeng Xiang and Jun-Yan He and Yifeng Geng and Xuansong Xie}, year={2023}, eprint={2311.03054}, archivePrefix={arXiv}, primaryClass={cs.CV} }
关键词
AnyText, 文本生成, 文本编辑, FP16推理, 演示, 模型发布, 安装步骤, 模型评估, 引用.