Introdução geral
O AnyText é uma ferramenta revolucionária de geração e edição de texto visual multilíngue desenvolvida com base no modelo de difusão. Ele gera texto multilíngue natural e de alta qualidade em imagens e oferece suporte a recursos flexíveis de edição de texto. Desenvolvido por uma equipe de pesquisadores e premiado com honras Spotlight no ICLR 2024, o ponto forte do AnyText está em sua arquitetura exclusiva de dois módulos: o módulo de potencial auxiliar codifica o glifo do texto, a posição e as informações da imagem mascarada, enquanto o módulo de incorporação de texto processa os dados do traço usando um modelo de OCR. O projeto também fornece o conjunto de dados AnyWord-3M, o primeiro conjunto de dados de imagens de texto multilíngue que contém 3 milhões de pares com anotações de OCR, o que constitui uma importante referência de avaliação para o campo da geração de texto visual.
Endereço alternativo: https://huggingface.co/spaces/modelscope/AnyText
Lista de funções
- Geração de texto em vários idiomas: suporte para geração de texto em vários idiomas em imagens
- Editor de texto: você pode editar e modificar o conteúdo do texto das imagens existentes.
- Controle de estilo: suporte para alterar o estilo do texto gerado por meio do modelo básico ou do modelo LoRA
- Aceleração de inferência FP16: suporta inferência rápida e é executado em GPUs com mais de 8 GB de memória de vídeo
- Tradução em chinês e inglês: modelo de tradução em chinês e inglês incorporado, suporte para entrada direta de palavras chinesas
- Fontes personalizadas: permite que os usuários usem seus próprios arquivos de fontes
- Processamento em lote: suporta a geração e a edição em lote de texto de imagem
- Mesclagem de modelos: suporte à mesclagem de modelos comunitários e pesos de modelos LoRA
Usando a Ajuda
1. instalação ambiental
- Primeiro, verifique se o Git está instalado em seu sistema:
conda install -c anaconda git
- Clone o código do projeto:
git clone https://github.com/tyxsspa/AnyText.git
cd AnyText
- Prepare o arquivo da fonte (recomenda-se Arial Unicode MS):
mv your/path/to/arialuni.ttf . /font/Arial_Unicode.ttf
- Crie e ative o ambiente:
conda env create -f environment.yaml
conda activate anytext
2 Métodos de uso
2.1 Início rápido
A maneira mais fácil de verificar isso é executar o seguinte comando:
python inference.py
2.2 Lançamento de uma apresentação interativa
A interface de demonstração é recomendada para GPUs mais bem configuradas (8 GB ou mais de memória de vídeo):
export CUDA_VISIBLE_DEVICES=0 && python demo.py
2.3 Configuração avançada
- Use a precisão FP32 e desative o tradutor:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --use_fp32 --no_translator
- Use fontes personalizadas:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --font_path your/path/to/font/file.ttf
- Carregar pontos de controle específicos:
export CUDA_VISIBLE_DEVICES=0 && python demo.py --model_path your/path/to/your/own/anytext.ckpt
3. ajustes estilísticos
Na interface de demonstração, o estilo do texto gerado pode ser ajustado de duas maneiras:
- Alterar modelo básico: preencha o caminho do modelo básico local em [Base Model Path].
- Carregar modelo LoRA: insira o caminho do modelo LoRA e a proporção de peso em [LoRA Path and Ratio], por exemplo:
/caminho/da/lora1.pth 0.3 /caminho/da/lora2.safetensors 0.6
4. otimização do desempenho
- A inferência FP16 padrão é usada, com modelos de tradução em chinês e inglês carregados (ocupando cerca de 4 GB de memória de vídeo)
- Se o FP16 for usado e nenhum modelo de tradução for usado, uma única imagem de 512x512 requer apenas cerca de 7,5 GB de memória de vídeo.
- Na primeira vez em que é executado, os arquivos do modelo são baixados para o
~/.cache/modelscope/hub
diretório (no disco rígido do computador) - Isso pode ser feito definindo a variável de ambiente
MODELSCOPE_CACHE
Modificar o diretório de download
5 Cuidados
- Certifique-se de que a versão correta do pacote de dependência esteja instalada
- O uso de fontes personalizadas pode afetar a geração
- A primeira execução do modelo requer o download dos arquivos relevantes
- Recomendado para ser executado com uma GPU com 8 GB de memória de vídeo ou mais
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.