A tecnologia de geração de imagens de IA está se desenvolvendo rapidamente, mas o tamanho dos modelos está cada vez maior, tornando o treinamento e o uso muito caros para usuários comuns. Agora, um novo framework de texto para imagem chamado "Sana" surgiu, capaz de gerar imagens de alta resolução de até 4096×4096 pixels de forma eficiente e surpreendentemente rápida, podendo até mesmo rodar na GPU de um laptop.

image.png

O design principal do Sana inclui:

Autoencoder de Compressão Profunda: Diferentemente dos autoencoders tradicionais que comprimem imagens apenas 8 vezes, o autoencoder do Sana comprime imagens 32 vezes, reduzindo efetivamente o número de tokens latentes. Isso é crucial para o treinamento eficiente e a geração de imagens de altíssima resolução.

DiT Linear: O Sana substitui todos os mecanismos de atenção tradicionais no DiT por atenção linear. Isso melhora a eficiência do processamento de imagens de alta resolução sem sacrificar a qualidade. A atenção linear reduz a complexidade computacional de O(N²) para O(N). Além disso, o Sana utiliza Mix-FFN, integrando convolução 3x3 profunda em MLP para agregar informações locais de tokens, eliminando a necessidade de codificação posicional.

Codificador de Texto Decodificador: O Sana utiliza os mais recentes LLMs decodificadores de pequeno porte (como o Gemma) como codificador de texto, substituindo os CLIPs ou T5 comumente usados. Isso melhora a capacidade do modelo de compreender e raciocinar sobre as instruções do usuário e aumenta o alinhamento texto-imagem através do aprendizado de instruções e contextos complexos.

Estratégias de Treinamento e Amostragem Eficientes: O Sana utiliza o Flow-DPM-Solver para reduzir as etapas de amostragem e emprega métodos eficientes de rotulagem e seleção de títulos para acelerar a convergência do modelo. O modelo Sana-0.6B é 20 vezes menor e mais de 100 vezes mais rápido que modelos de difusão grandes (como o Flux-12B).

image.png

A inovação do Sana reside em como ele reduz significativamente a latência de inferência através dos seguintes métodos:

Otimização Colaborativa de Algoritmos e Sistemas: Através de várias otimizações, o Sana reduziu o tempo de geração de imagens de 4096x4096 de 469 segundos para 9,6 segundos, 106 vezes mais rápido que o modelo de ponta Flux.

Autoencoder de Compressão Profunda: O Sana utiliza a estrutura AE-F32C32P1, comprimindo imagens 32 vezes, reduzindo significativamente o número de tokens e acelerando o treinamento e a inferência.

Atenção Linear: Substitui o mecanismo de autoatenção tradicional pela atenção linear, melhorando a eficiência do processamento de imagens de alta resolução.

Aceleração Triton: Usa o Triton para fundir os núcleos do processo de avanço e retrocesso do módulo de atenção linear, acelerando ainda mais o treinamento e a inferência.

Flow-DPM-Solver: Reduz as etapas de amostragem de inferência de 28-50 para 14-20 passos, obtendo melhores resultados de geração.

O desempenho do Sana é excepcional. Com resolução de 1024x1024, o modelo Sana-0.6B possui apenas 590 milhões de parâmetros, mas alcança um desempenho geral de 0,64 GenEval, comparável a muitos modelos maiores. Além disso, o Sana-0.6B pode ser implantado em uma GPU de laptop de 16 GB, gerando imagens de 1024×1024 em menos de 1 segundo. Para geração de imagens 4K, a taxa de transferência do Sana-0.6B é mais de 100 vezes mais rápida que os métodos de ponta (FLUX). O Sana não apenas alcança um avanço na velocidade, mas também possui uma qualidade de imagem competitiva, com bom desempenho mesmo em cenários complexos, como renderização de texto e detalhes de objetos.

Além disso, o Sana possui uma poderosa capacidade de transferência de linguagem zero-shot. Mesmo treinado apenas com dados em inglês, o Sana consegue entender prompts em chinês e emojis e gerar imagens correspondentes.

O surgimento do Sana reduz a barreira para a geração de imagens de alta qualidade, oferecendo uma ferramenta de criação de conteúdo poderosa para profissionais e usuários comuns. O código e o modelo do Sana serão publicados publicamente.

Endereço de Experiência: https://nv-sana.mit.edu/

Endereço do Artigo: https://arxiv.org/pdf/2410.10629

Github: https://github.com/NVlabs/Sana