AI个人学习
和实操指南

AnyText:生成和编辑多语言图像文本,高可控在图像中生成多行中文

综合介绍

AnyText是一个革命性的多语言视觉文本生成和编辑工具,基于扩散模型开发。它能够在图像中生成自然、高质量的多语种文本,并支持灵活的文本编辑功能。该项目由研究团队开发,并在ICLR 2024会议上获得Spotlight荣誉。AnyText的核心优势在于其独特的双模块架构:辅助潜在模块负责编码文本字形、位置和蒙版图像信息,文本嵌入模块则利用OCR模型处理笔画数据。项目还提供了AnyWord-3M数据集,这是首个包含300万对带有OCR标注的多语言文本图像数据集,为视觉文本生成领域提供了重要的评估基准。

AnyText:生成和编辑多语言图像文本,可控的在图像中生成中文-1


 

AnyText:生成和编辑多语言图像文本,可控的在图像中生成中文-1

体验地址:https://modelscope.cn/studios/damo/studio_anytext/summary

备用地址:https://huggingface.co/spaces/modelscope/AnyText

 

 

功能列表

  • 多语言文本生成:支持在图像中生成多种语言的文本
  • 文本编辑:可以编辑和修改已有图像中的文本内容
  • 样式控制:支持通过基础模型或LoRA模型更改生成文本的样式
  • FP16推理加速:支持快速推理,可在8GB以上显存的GPU上运行
  • 中英文翻译:内置中英文翻译模型,支持直接输入中文提示词
  • 自定义字体:允许用户使用自己的字体文件
  • 批量处理:支持批量生成和编辑图像文本
  • 模型合并:支持合并社区模型和LoRA模型的权重

 

使用帮助

1. 环境安装

  1. 首先确保系统已安装Git:
conda install -c anaconda git
  1. 克隆项目代码:
git clone https://github.com/tyxsspa/AnyText.git
cd AnyText
  1. 准备字体文件(推荐使用Arial Unicode MS):
mv your/path/to/arialuni.ttf ./font/Arial_Unicode.ttf
  1. 创建并激活环境:
conda env create -f environment.yaml
conda activate anytext

2. 使用方法

2.1 快速开始

最简单的验证方式是运行以下命令:

python inference.py

2.2 启动交互式演示

对于配置较好的GPU(8GB以上显存),推荐使用演示界面:

export CUDA_VISIBLE_DEVICES=0 && python demo.py

2.3 高级配置

  • 使用FP32精度和禁用翻译器:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
  • 使用自定义字体:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --font_path your/path/to/font/file.ttf
  • 加载特定的检查点:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --model_path your/path/to/your/own/anytext.ckpt

3. 样式调整

在演示界面中,可以通过两种方式调整生成文本的样式:

  1. 更改基础模型:在[Base Model Path]中填入本地基础模型的路径
  2. 加载LoRA模型:在[LoRA Path and Ratio]中输入LoRA模型路径和权重比例,例如:
/path/of/lora1.pth 0.3 /path/of/lora2.safetensors 0.6

4. 性能优化

  • 默认使用FP16推理,同时加载中英文翻译模型(占用约4GB显存)
  • 如果使用FP16且不使用翻译模型,生成单张512x512图像仅需约7.5GB显存
  • 首次运行时,模型文件会下载到~/.cache/modelscope/hub目录
  • 可以通过设置环境变量MODELSCOPE_CACHE修改下载目录

5. 注意事项

  1. 确保安装了正确版本的依赖包
  2. 使用自定义字体可能会影响生成效果
  3. 模型首次运行需要下载相关文件
  4. 建议使用8GB及以上显存的GPU运行

 

AnyText生成图片操作说明

运行示例

AnyText有两种运行模式:文字生成和文字编辑,每种模式下提供了丰富的示例,选择一个,点击[Run!]即可。

请注意,运行示例前确保手绘位置区域是空的,防止影响示例结果,另外不同示例使用不同的参数(如分辨率,种子数等),如果要自行生成时,请留意参数变化,或刷新页面恢复到默认参数。

文字生成

在Prompt中输入描述提示词(支持中英文),需要生成的每一行文字用双引号包裹,然后依次手绘指定每行文字的位置,生成图片。 文字位置的绘制对成图质量很关键, 请不要画的太随意或太小,位置的数量要与文字行数量一致,每个位置的尺寸要与对应的文字行的长短或宽高尽量匹配。如果手绘(Manual-draw)不方便, 可以尝试拖框矩形(Manual-rect)或随机生成(Auto-rand)。

多行生成时,每个位置按照一定规则排序后与文字行做对应,Sort Position选项用于确定排序时优先从上到下还是从左到右。 可以在参数设置中打开Show Debug选项,在结果图像中观察文字位置和字形图。也可以勾选Revise Position选项,这样会用渲染文字的外接矩形作为修正后的位置,不过偶尔发现这样生成的文字创造性略低。

文字编辑

请上传一张待编辑的图片作为参考图(Ref),然后调整笔触大小后,在参考图上涂抹要编辑的位置,在Prompt中输入描述提示词和要修改的文字内容,生成图片。

参考图可以为任意分辨率,但内部处理时会限制长边不能超过768,并且宽高都被缩放为64的整数倍。

未经允许不得转载:首席AI分享圈 » AnyText:生成和编辑多语言图像文本,高可控在图像中生成多行中文

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文