Sana : génération rapide d'images à haute résolution, modèle de très petite taille (0,6B), fonctionnement du GPU d'un ordinateur portable à profil bas.

Introduction générale

Sana est un cadre efficace de génération d'images haute résolution développé dans les laboratoires de NVIDIA qui génère des images jusqu'à une résolution de 4096 × 4096 en quelques secondes. Sana utilise un transformateur de diffusion linéaire et une technologie d'auto-encodeur de compression profonde pour améliorer considérablement la vitesse et la qualité de la génération d'images tout en réduisant les besoins en ressources de calcul. Sana utilise un transformateur de diffusion linéaire et une technologie d'auto-encodeur de compression profonde pour améliorer considérablement la vitesse et la qualité de la génération d'images tout en réduisant les besoins en ressources de calcul.

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

 

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

Expérience en ligne : https://nv-sana.mit.edu/

 

Liste des fonctions

  • Génération d'images à haute résolutionLa technologie de l'image est un atout majeur : elle permet de générer des images d'une résolution allant jusqu'à 4096 × 4096.
  • convertisseur de diffusion linéaireAmélioration de l'efficacité de la génération d'images à haute résolution à l'aide d'un mécanisme d'attention linéaire.
  • Autoencodeur de compression profondeLe système de compression d'images : Il compresse les images jusqu'à 32 fois, ce qui réduit le nombre de marqueurs potentiels et améliore l'efficacité de la formation et de la génération.
  • Conversion de texte en imageAmélioration de l'alignement entre l'image et le texte grâce à un codeur de texte décodé.
  • Une formation et un échantillonnage efficacesLe logiciel Flow-DPM-Solver est utilisé pour réduire les étapes d'échantillonnage et accélérer la convergence.
  • Déploiement à faible coûtLe logiciel est compatible avec les GPU des ordinateurs portables de 16 Go et génère des images d'une résolution de 1024 x 1024 en moins d'une seconde.

 

Utiliser l'aide

Processus d'installation

  1. Assurez-vous que la version de Python est >= 3.10.0, Anaconda ou Miniconda est recommandé.
  2. Installer la version de PyTorch >= 2.0.1+cu12.1.
  3. Clonage de l'entrepôt de Sana :
    git clone https://github.com/NVlabs/Sana.git
    cd Sana
    
  4. Exécutez le script de configuration de l'environnement :
    ./environment_setup.sh sana
    

    ou selon environment_setup.sh Installez chaque composant étape par étape, comme décrit dans la section

Utilisation

exigences en matière de matériel

  • Le modèle 0.6B nécessite 9GB de VRAM et le modèle 1.6B nécessite 12GB de VRAM. La version quantifiée nécessitera moins de 8GB de mémoire vidéo pour l'inférence.

Démarrage rapide

  1. Lancez la démo officielle en ligne en utilisant 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. Exécutez le code d'inférence pour générer une image :
    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))
    

Modèles de formation

  1. Préparez l'ensemble de données dans le format suivant :
    asset/example_data
    ├── AAA.txt
    ├── AAA.png
    ├── BCC.txt
    ├── BCC.png
    └── CCC.txt
    
  2. Lancer la formation :
    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
    
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...