Aprendizagem pessoal com IA
e orientação prática

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

Introdução geral

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

AnyText: Gerar e editar texto de imagem em vários idiomas, geração controlada de chinês na imagem-1


 

AnyText: Gerar e editar texto de imagem em vários idiomas, geração controlada de chinês na imagem-1

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

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

 

 

Lista de funções

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

 

Usando a Ajuda

1. 环境安装

  1. 首先确保系统已安装Git:
conda install -c anaconda git
  1. Clone o código do projeto:
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/hubdiretório (no disco rígido do computador)
  • Isso pode ser feito definindo a variável de ambienteMODELSCOPE_CACHE修改下载目录

5 Cuidados

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

 

AnyText gera instruções de operação de imagens

exemplo de execução

O AnyText tem dois modos de operação: geração de texto e edição de texto. Cada modo oferece uma grande variedade de exemplos, escolha um deles e clique em [Run!

Observe que, antes de executar o exemplo, certifique-se de que a área de localização desenhada à mão esteja vazia para não afetar os resultados do exemplo. Além disso, exemplos diferentes usam parâmetros diferentes (como resolução, número de sementes etc.); se quiser gerar o seu próprio exemplo, preste atenção às alterações dos parâmetros ou atualize a página para reverter para os parâmetros padrão.

Geração de texto

No Prompt, para inserir a descrição da palavra do prompt (suporte para chinês e inglês), é necessário gerar cada linha de texto entre aspas duplas e, em seguida, desenhar sequencialmente à mão para especificar o local de cada linha de texto para gerar imagens. O desenho da posição do texto é muito importante para a qualidade da imagem. Não desenhe de forma muito aleatória ou muito pequena, o número de posições deve ser igual ao número de linhas de texto e o tamanho de cada posição deve corresponder ao comprimento ou à largura da linha de texto correspondente, na medida do possível. Se não for possível desenhar à mão (desenho manual), tente arrastar o retângulo da caixa (manual-rect) ou gerar aleatoriamente (Auto-rand).

Ao gerar várias linhas, cada posição é classificada de acordo com determinadas regras para corresponder à linha de texto, e a opção Sort Position é usada para determinar se a prioridade de classificação é de cima para baixo ou da esquerda para a direita. Você pode ativar a opção Show Debug (Mostrar depuração) nas configurações de parâmetros para observar a posição do texto e os glifos na imagem resultante. A opção Revise Position (Revisar posição) também pode ser marcada, o que usará o retângulo externo do texto renderizado como a posição corrigida, embora ocasionalmente tenha sido constatado que o texto gerado dessa forma é um pouco menos criativo.

editor de texto

Carregue uma imagem a ser editada como imagem de referência (Ref) e, depois de ajustar o tamanho do traço, pinte a posição a ser editada na imagem de referência, digite as palavras do prompt de descrição e o conteúdo do texto a ser modificado no Prompt para gerar a imagem.

A imagem de referência pode ter qualquer resolução, mas o processamento interno restringe o lado longo a não mais que 768, e a largura e a altura são dimensionadas para um múltiplo inteiro de 64.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " AnyText:生成和编辑多语言图像文本,高可控在图像中生成多行中文

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil