Home
Login

Modelo de geração de imagem a partir de texto de alta resolução baseado em modelos de difusão latente

MITPython 41.2kStability-AIstablediffusion Last Updated: 2024-10-10

Apresentação Detalhada do Projeto Stable Diffusion

Visão Geral do Projeto

Stable Diffusion é um modelo de geração de imagem a partir de texto de código aberto desenvolvido pela Stability AI, baseado na tecnologia de Modelos de Difusão Latente (Latent Diffusion Models). Este projeto implementa a síntese de imagens de alta resolução, capaz de gerar imagens de alta qualidade a partir de descrições textuais.

Endereço do Projeto: https://github.com/Stability-AI/stablediffusion

Principais Características Técnicas

1. Arquitetura de Modelo de Difusão Latente

  • Utiliza o espaço latente para o processo de difusão, sendo mais eficiente do que operar diretamente no espaço de pixels.
  • Adota a arquitetura U-Net como rede de remoção de ruído.
  • Integra mecanismos de auto-atenção e atenção cruzada.

2. Codificador de Texto

  • Utiliza OpenCLIP ViT-H/14 como codificador de texto.
  • Suporta controle complexo de condições textuais.
  • Capaz de entender descrições textuais detalhadas e convertê-las em conteúdo visual.

3. Suporte a Múltiplas Resoluções

  • Stable Diffusion 2.1-v: Saída de 768x768 pixels
  • Stable Diffusion 2.1-base: Saída de 512x512 pixels
  • Suporta treinamento e inferência em diferentes resoluções.

Histórico das Principais Versões

Version 2.1 (7 de dezembro de 2022)

  • Lançamento do modelo v com resolução de 768x768 e do modelo base com resolução de 512x512.
  • Baseado no mesmo número de parâmetros e arquitetura.
  • Ajustado em um conjunto de dados de filtragem NSFW mais permissivo.

Version 2.0 (24 de novembro de 2022)

  • Novo modelo com resolução de 768x768.
  • Utiliza OpenCLIP-ViT/H como codificador de texto.
  • Treinado do zero, adotando o método de v-prediction.

Stable UnCLIP 2.1 (24 de março de 2023)

  • Suporta transformação de imagem e operações de mistura.
  • Ajustado com base no SD2.1-768.
  • Oferece duas variantes: Stable unCLIP-L e Stable unCLIP-H.

Funcionalidades Principais

1. Geração de Texto para Imagem

Funcionalidade básica de geração de imagens a partir de descrições textuais:

python scripts/txt2img.py --prompt "a professional photograph of an astronaut riding a horse" --ckpt <path/to/768model.ckpt/> --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768

2. Reparação de Imagem (Inpainting)

Suporta reparação e edição local de imagens:

python scripts/gradio/inpainting.py configs/stable-diffusion/v2-inpainting-inference.yaml <path-to-checkpoint>

3. Geração de Imagem Condicionada por Profundidade

Geração de imagem baseada em informações de profundidade para manter a estrutura:

python scripts/gradio/depth2img.py configs/stable-diffusion/v2-midas-inference.yaml <path-to-ckpt>

4. Super Resolução de Imagem

Funcionalidade de super resolução 4x:

python scripts/gradio/superresolution.py configs/stable-diffusion/x4-upscaling.yaml <path-to-checkpoint>

5. Conversão de Imagem para Imagem

Funcionalidade clássica img2img:

python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8 --ckpt <path/to/model.ckpt>

Instalação e Configuração do Ambiente

Ambiente Básico

conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .

Otimização de Desempenho (Recomendado)

Instale a biblioteca xformers para melhorar o desempenho da GPU:

export CUDA_HOME=/usr/local/cuda-11.4
conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
conda install -c conda-forge gcc
conda install -c conda-forge gxx_linux-64==9.5.0

cd ..
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
cd ../stablediffusion

Otimização para CPU Intel

Configuração de otimização para CPU Intel:

apt-get install numactl libjemalloc-dev
pip install intel-openmp
pip install intel_extension_for_pytorch -f https://software.intel.com/ipex-whl-stable

Detalhes da Arquitetura Técnica

Componentes do Modelo

  1. Arquitetura Codificador-Decodificador: Utiliza um autoencoder com fator de downsampling de 8.
  2. Rede U-Net: U-Net com 865M de parâmetros para o processo de difusão.
  3. Codificador de Texto: OpenCLIP ViT-H/14 processa a entrada de texto.
  4. Amostrador: Suporta vários métodos de amostragem, como DDIM, PLMS, DPMSolver.

Otimização de Memória

  • Ativa automaticamente o mecanismo de atenção com eficiência de memória.
  • Suporta aceleração xformers.
  • Oferece opção de precisão FP16 para economizar memória de vídeo.

Cenários de Aplicação

1. Criação Artística

  • Design de arte conceitual
  • Geração de ilustrações
  • Transferência de estilo

2. Produção de Conteúdo

  • Criação de materiais de marketing
  • Conteúdo para mídias sociais
  • Design de protótipos de produtos

3. Aplicações de Pesquisa

  • Pesquisa em visão computacional
  • Pesquisa em modelos generativos
  • Aprendizado multimodal

Considerações Éticas e Limitações

Viés de Dados

  • O modelo reflete os preconceitos e equívocos nos dados de treinamento.
  • Não é recomendado o uso direto para serviços comerciais sem adicionar mecanismos de segurança adicionais.

Segurança de Conteúdo

  • Sistema de marca d'água invisível integrado para ajudar a identificar conteúdo gerado por IA.
  • Esforços para reduzir conteúdo explicitamente pornográfico, mas ainda requer uso cauteloso.

Restrições de Uso

  • Os pesos são apenas para uso em pesquisa.
  • Siga a licença CreativeML Open RAIL++-M.

Star History Chart