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
- Arquitetura Codificador-Decodificador: Utiliza um autoencoder com fator de downsampling de 8.
- Rede U-Net: U-Net com 865M de parâmetros para o processo de difusão.
- Codificador de Texto: OpenCLIP ViT-H/14 processa a entrada de texto.
- 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.
