AnyText:多语言视觉文本生成和编辑
📌新闻
[2024.01.17] - 🎉AnyText 已被 ICLR 2024( Spotlight ) 接受!
[2024.01.04] - FP16 推理可用,速度提高 3 倍!现在该演示可以部署在内存大于 8GB 的 GPU 上。享受!
[2024.01.04] - HuggingFace 在线演示可在此处进行!
[2023.12.28] - ModelScope 在线演示可在此处进行!
[2023.12.27] - 🧨我们发布了最新的检查点(v1.1)和推理代码,检查中文的modelscope
。 [2023.12.05] - 该论文可在此处获取。
有关我们组更多AIGC相关工作,请访问这里,我们正在寻找合作者和研究实习生(给我们发电子邮件)。
⏰待办事项
- 发布模型和推理代码
- 提供可公开访问的演示链接
- 提供免费字体文件(🤔)
- 发布用于合并社区模型或 LoRA 权重的工具
- 在 stable-diffusion-webui 中支持 AnyText(🤔)
- 发布AnyText基准数据集和评估代码
- 发布AnyWord-3M数据集和训练代码
💡方法论
AnyText 包含一个具有两个主要元素的扩散管道:辅助潜在模块和文本嵌入模块。前者使用文本字形、位置和蒙版图像等输入来生成用于文本生成或编辑的潜在特征。后者采用 OCR 模型将笔划数据编码为嵌入,与标记生成器中的图像标题嵌入混合,生成与背景无缝集成的文本。我们采用文本控制扩散损失和文本感知损失进行训练,以进一步提高书写准确性。
🛠安装
# Install git (skip if already done)
conda install -c anaconda git
# Clone anytext code
git clone https://github.com/tyxsspa/AnyText.git
cd AnyText
# Prepare a font file; Arial Unicode MS is recommended, **you need to download it on your own**
mv your/path/to/arialuni.ttf ./font/Arial_Unicode.ttf
# Create a new environment and install packages as follows:
conda env create -f environment.yaml
conda activate anytext
🔮推理
【推荐】 :我们发布了ModelScope和HuggingFace的演示!
AnyText 包括两种模式:文本生成和文本编辑。运行下面的简单代码,在两种模式下进行推理,验证环境是否安装正确。
python inference.py
如果您有高级GPU(至少8G内存),建议部署我们的demo,如下所示,其中包括使用说明、用户界面和丰富的示例。
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 上,请参阅此处),生成一张 512x512 图像将占用约 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: Multilingual Visual Text Generation And Editing},
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}
}