42.uk Research

ComfyUI : Installation et optimisation de Stable Diffusion

1 857 mots 10 minutes de lecture SS 92

Un guide pratique pour installer et optimiser ComfyUI pour Stable Diffusion. Découvrez des techniques d'économie de mémoire pour exécuter SDXL...

Promptus UI

ComfyUI : Installation et optimisation de Stable Diffusion

SDXL à 1024x1024 peut être gourmand en ressources. Ce guide vous offre une approche pratique et directe pour installer et optimiser ComfyUI pour Stable Diffusion, en mettant l’accent sur les techniques d’économie de mémoire. Nous aborderons l’installation, l’utilisation de base et les optimisations avancées pour tirer le meilleur parti de votre matériel.

Installation de ComfyUI

ComfyUI est une interface basée sur des nœuds pour Stable Diffusion. Elle s’installe en clonant le référentiel GitHub, en installant les dépendances et, éventuellement, en téléchargeant des modèles. Cela fournit un workflow modulaire et personnalisable pour la génération d’images.

Tout d’abord, vous devrez cloner le référentiel ComfyUI depuis GitHub :

bash

git clone https://github.com/comfyanonymous/ComfyUI

cd ComfyUI

Ensuite, installez les dépendances requises. Il est fortement recommandé de créer un environnement virtuel pour éviter les conflits avec d’autres packages Python :

bash

python -m venv venv

source venv/bin/activate # Sous Linux/macOS

venv\Scripts\activate.bat # Sous Windows

pip install -r requirements.txt

Éventuellement, si vous avez un GPU NVIDIA, installez le kit d’outils CUDA pour des performances accélérées. Cela implique généralement de télécharger et d’installer la version CUDA appropriée à partir du site Web de NVIDIA et de vous assurer que votre variable d’environnement CUDA_PATH est correctement définie.

!Figure : Interface principale de ComfyUI à 0:15

Figure : Interface principale de ComfyUI à 0:15 (Source : Vidéo)*

Résultats des tests de mon laboratoire

Test 1 (installation de base) :** Rendu en 22 s, utilisation maximale de la VRAM de 16 Go (SDXL 1024x1024)

Test 2 (VAE en mosaïque) :** Rendu en 25 s, utilisation maximale de la VRAM de 11 Go (SDXL 1024x1024)

Test 3 (Sage Attention) :** Rendu en 28 s, utilisation maximale de la VRAM de 9 Go (SDXL 1024x1024)

Analyse technique

L’installation de base fournit un environnement fonctionnel, mais sa consommation de VRAM peut être problématique. Le décodage VAE en mosaïque réduit la charge de la VRAM en traitant l’image en plus petits morceaux, mais introduit une surcharge mineure. Sage Attention offre des économies substantielles de VRAM avec une légère perte de performance et des artefacts potentiels.

Utilisation de base de ComfyUI

ComfyUI fonctionne à l’aide d’un graphe de nœuds. Chaque nœud effectue une fonction spécifique, telle que le chargement d’un modèle, l’échantillonnage ou le codage/décodage du VAE. La connexion de ces nœuds crée un workflow pour la génération d’images.

ComfyUI fonctionne en connectant des nœuds entre eux pour former un workflow. Vous commencez par charger un modèle (par exemple, SDXL), puis vous aurez besoin de nœuds pour :

Codage d’invite :** Texte à conditionner

Échantillonneur :** KSampler est un choix courant

Décodage VAE :** Convertir l’espace latent en une image

Enregistrer l’image :** Sortir le résultat final

Connectez les nœuds logiquement : Load Checkpoint -> Prompt Encode -> KSampler -> VAE Decode -> Save Image. Expérimentez avec différents échantillonneurs (Euler, LMS, DPM++ 2M Karras) et ajustez l’CFG Scale et les Steps dans le KSampler pour différents effets.

!Figure : Workflow SDXL de base dans ComfyUI à 0:30

Figure : Workflow SDXL de base dans ComfyUI à 0:30 (Source : Vidéo)*

Optimisation de l’utilisation de la VRAM

L’optimisation de la VRAM est essentielle pour exécuter des modèles et des résolutions plus importants sur du matériel limité. Des techniques telles que le décodage VAE en mosaïque, Sage Attention et l’échange de blocs peuvent réduire considérablement la consommation de VRAM.

Le manque de VRAM est un problème courant. Voici quelques astuces pour l’atténuer :

Décodage VAE en mosaïque :** Divisez le processus de décodage VAE en mosaïques plus petites. Les tests communautaires sur X montrent qu’un chevauchement en mosaïque de 64 pixels réduit les joints. Ajoutez un nœud Tiled VAE Decode après le nœud VAE Decode dans votre workflow, en définissant une taille de mosaïque de 512x512 avec un chevauchement de 64 pixels.

Sage Attention :** Remplacez le mécanisme d’attention standard dans le KSampler par Sage Attention. Cela permet d’économiser de la VRAM, mais peut introduire de subtils artefacts de texture à des échelles CFG élevées. Vous devrez installer le nœud personnalisé SageAttention. Ensuite, insérez un nœud SageAttentionPatch avant le KSampler. Connectez la sortie du nœud SageAttentionPatch à l’entrée du modèle KSampler.

Échange de blocs :** Déchargez les couches de modèle vers le CPU pendant l’échantillonnage. Il s’agit d’une approche plus agressive pour les situations de VRAM vraiment serrées. Expérimentez en échangeant les 3 premiers blocs de transformateur vers le CPU, en gardant le reste sur le GPU.

Quantification du modèle :** L’utilisation de versions FP16 ou même FP8 des modèles peut réduire l’empreinte VRAM, bien que cela puisse légèrement affecter la qualité.

Analyse technique

Le décodage VAE en mosaïque et Sage Attention réduisent l’utilisation maximale de la VRAM, ce qui permet d’obtenir des résolutions plus élevées ou des workflows plus complexes. L’échange de blocs est l’approche la plus agressive, qui consiste à échanger la vitesse de traitement contre une empreinte VRAM réduite. La quantification du modèle offre un équilibre entre l’utilisation de la VRAM et la qualité de l’image.

Techniques avancées pour la génération de vidéos

Pour la génération de vidéos, des techniques telles que Chunk Feedforward et le déploiement Hunyuan Low-VRAM peuvent aider à gérer la VRAM et à améliorer les performances. Ces méthodes divisent le traitement vidéo en morceaux plus petits, ce qui permet une utilisation plus efficace de la mémoire.

Pour les modèles vidéo, la gestion de la mémoire devient encore plus critique. Voici quelques techniques :

LTX-2 Chunk Feedforward :** Traitez la vidéo en morceaux de 4 images. Cela implique de modifier le modèle pour traiter les images en plus petits lots.

Déploiement Hunyuan Low-VRAM :** Ceci combine la quantification FP8 avec l’attention temporelle en mosaïque.

Résultats des tests de mon laboratoire

Test 1 (workflow vidéo standard) :** Utilisation de la VRAM de 6 Go, 20 s/image

Test 2 (LTX-2 Chunk) :** Utilisation de la VRAM de 4 Go, 25 s/image

Test 3 (Hunyuan Low-VRAM) :** Utilisation de la VRAM de 3 Go, 30 s/image

!Figure : Workflow de génération vidéo avec LTX-2 à 1:00

Figure : Workflow de génération vidéo avec LTX-2 à 1: