Sana: generación rápida de imágenes de alta resolución, modelo de tamaño ultrapequeño de 0,6B, funcionamiento con GPU de portátil de bajo perfil

Introducción general

Sana es un eficiente marco de generación de imágenes de alta resolución desarrollado en los laboratorios de NVIDIA que genera imágenes de hasta 4096 × 4096 de resolución en cuestión de segundos.Sana utiliza un transformador de difusión lineal y tecnología de autocodificación de compresión profunda para mejorar drásticamente la velocidad y la calidad de generación de imágenes al tiempo que reduce la necesidad de recursos computacionales. El marco admite la ejecución en GPU de portátiles normales para la creación de contenidos de bajo coste.

Sana:快速生成高分辨率图像,0.6B超小尺寸模型,低配笔记本GPU运行

 

Sana:快速生成高分辨率图像,0.6B超小尺寸模型,低配笔记本GPU运行

Experiencia en línea: https://nv-sana.mit.edu/

 

Lista de funciones

  • Generación de imágenes de alta resolución: Admite la generación de imágenes de hasta 4096 × 4096 de resolución.
  • convertidor de difusión linealMejora de la eficacia de la generación de imágenes de alta resolución mediante un mecanismo de atención lineal.
  • Autocodificador de compresión profunda: Comprime las imágenes hasta 32 veces, lo que reduce el número de marcadores potenciales y mejora la eficacia de la formación y la generación.
  • Conversión de texto a imagen: Alineación mejorada de imagen a texto mediante decodificador sólo codificador de texto.
  • Formación y muestreo eficacesEl Flow-DPM-Solver se utiliza para reducir los pasos de muestreo y acelerar la convergencia.
  • Implantación de bajo coste: Admite la ejecución en GPU de portátiles de 16 GB y genera imágenes de 1024 x 1024 de resolución en menos de 1 segundo.

 

Utilizar la ayuda

Proceso de instalación

  1. Asegúrese de que la versión de Python es >= 3.10.0, se recomienda Anaconda o Miniconda.
  2. Instalar PyTorch versión >= 2.0.1+cu12.1.
  3. Clonación del almacén de Sana:
    git clone https://github.com/NVlabs/Sana.git
    cd Sana
    
  4. Ejecute el script de configuración del entorno:
    ./environment_setup.sh sana
    

    o según environment_setup.sh Instale cada componente paso a paso como se describe en

Utilización

requisitos de hardware

  • El modelo 0.6B requiere 9GB de VRAM y el modelo 1.6B requiere 12GB de VRAM. la versión cuantificada requerirá menos de 8GB de memoria de vídeo para la inferencia.

Inicio rápido

  1. Inicie la demostración oficial en línea con Gradio:
    DEMO_PORT=15432 \
    python app/app_sana.py \
    --config=configs/sana_config/1024ms/Sana_1600M_img1024.yaml \
    --model_path=hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth
    
  2. Ejecuta el código de inferencia para generar una imagen:
    import torch
    from app.sana_pipeline import SanaPipeline
    from torchvision.utils import save_image
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    generator = torch.Generator(device=device).manual_seed(42)
    sana = SanaPipeline("configs/sana_config/1024ms/Sana_1600M_img1024.yaml")
    sana.from_pretrained("hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth")
    prompt = 'a cyberpunk cat with a neon sign that says "Sana"'
    image = sana(prompt=prompt, height=1024, width=1024, guidance_scale=5.0, pag_guidance_scale=2.0, num_inference_steps=18, generator=generator)
    save_image(image, 'output/sana.png', nrow=1, normalize=True, value_range=(-1, 1))
    

Modelos de formación

  1. Prepare el conjunto de datos en el siguiente formato:
    asset/example_data
    ├── AAA.txt
    ├── AAA.png
    ├── BCC.txt
    ├── BCC.png
    └── CCC.txt
    
  2. Iniciar la formación:
    bash train_scripts/train.sh \
    configs/sana_config/512ms/Sana_600M_img512.yaml \
    --data.data_dir="asset/example_data" \
    --data.type=SanaImgDataset \
    --model.multi_scale=false \
    --train.train_batch_size=32
    
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...