Retourner ' la page d'accueil de TJSRetourner ' la page d'accueil de TJS

La génération d'images en local avec Fooocus (Mise à jour : Jan 2024)

Nous allons voir dans ce tuto comment générer une image à partir d'un simple texte de description, grâce à Stable Diffusion et au processus txt2img.

Pourquoi en local ?

Pourquoi vouloir générer des images en local alors que d'innombrables sites web sont disponibles, souvent gratuitement. Voici un tableau des avantages et inconvénients de chaque solution :

LOCALCLOUD
AvantagesInconvénientsAvantagesInconvénients
Maîtrise technologique
Indépendance vis à vis d'un prestataire
Confidentialité des données
Installation parfois fastidieuse
Maintenance des outils
Prêt à être utilisé
Performances techniques maximales
Avance technologique probable
Risque de fermeture du service
Partage de vos données avec un tiers
Meilleure compréhension du fonctionnement de l'IA
Apprentissage indispensable
Ergonomie travaillée
Enormément de choix de prestataires
Gratuité des logiciels
Large communauté d'utilisateurs
Besoin de matériel récent
Coût du fonctionnement (usure et électricité)
Coût modéré (à l'acte ou au mois)
Parfois quelques crédits gratuits
Tarification non garantie dans la durée

Au final, il n'y a pas de mauvais choix. J'aime maîtriser la technologie. J'aime le matériel informatique. Donc, j'ai choisi l'installation en local. Voir aussi le Tuto TJS : débuter avec la génération d'images en ligne

Pourquoi Fooocus ?

Fooocus (avec 3 fois la lettre o) est une logiciel développé en python (comme l'immense majorité des outils d'IA) avec une interface web.

Fooocus gère la dernière version des modèles Stable Diffusion XL. Il s'agit de l'outil open source le plus avancé disponible.

Après pas mal de tests sur différents logiciels comparables, j'ai choisi Fooocus pour sa relative simplicité, son efficacité, ses outils intégrés et sa large communauté d'utilisateurs. Notez que les autres outils (Automatic1111, InvokeAI ou ComfyUI) s'appuient sur les mêmes modèles de données Stable Diffusion et reprennent tous les mêmes grands principes de fonctionnement.

La génération d'image avec Stable Diffusion revient à soumettre un prompt (la requête sous forme de texte) puis à lancer la génération de l'image. L'optimisation est une question de choix des modèles et de paramètres de génération.

Installation de Fooocus

L'installation des outils d'IA est toujours une étape délicate. Non seulement, cela nécessite plusieurs Go de téléchargement et d'espace de stockage sur la machine, mais l'installation se fait souvent en ligne de commande. Cela peut être fastidieux et surtout capricieux.

Heureusement Fooocus prévoit une procédure relativement simple.

Avant de vous lancer dans la génération locale d'images, vérifiez que vous disposez au strict minimum des éléments suivants :

  • 20 Go d'espace disque
  • 16 Go de mémoire RAM
  • Une carte graphique NVidia avec au moins 6 Go de VRAM (GTX 1070 minimum)
  • Une certaine aisance avec l'anglais technique

Pour ma part, je travaille en local sur l'IA avec un PC dédié sous Windows 11 avec un AMD Ryzen 3950X, 32 Go de RAM et une RTX 3070 disposant de 8 Go de VRAM.

Ne stockez pas sur votre machine dédiée à l'IA de données sensibles. Il y a énormément de logiciels et de ressources à télécharger en ligne : les risques d'infection par un malware sont non négligeables.

Pour installer Fooocus sur Windows, suivez les étapes suivantes :

  • Rendez vous sur le dépôt officiel Github de Fooocus by Illyasviel
  • Téléchargez la dernière version compressée de Fooocus
  • Décompressez-la dans votre répertoire de destination
  • Double cliquez sur 'run.bat' pour générer l'installation finale et le chargement des ressources minimales. La console affiche les informations de ce type :
  • En fonction de la vitesse de votre connexion, une page web s'ouvre dans votre navigateur avec l'interface de gestion

J'apprécie aussi grandement les assistants d'installation type Stability Matrix ou Pinokio qui centralisent l'installation et le téléchargement des ressources. Toutes les actions en ligne de commande sont remplacées par des boutons dans une interface classique.

L'interface de travail

L'interface de travail s'ouvre sur une adresse web locale du type 127.0.0.1:7865. Il suffit de remplir la zone prompt en bas d'écran et de lancer la génération pour obtenir ce type de rendu :

La zone de gauche montre en temps réel le rendu des images générées. En cliquant sur la case à cocher Advanced, vous ouvrez la zone de droite avec tous les paramètres disponibles.

Les 4 onglets de configuration

Le premier onglet Settings permet de configurer :

  • la vitesse de génération (et donc la qualité de rendu)
  • Les dimensions de l'image
  • Le nombre d'images à générer
  • Les termes de texte que le générateur doit éviter via le negative prompt
  • La seed, littéralement la graine de génération. Le plus souvent, en mode aléatoire.

Notez le lien [history log] en bas d'onglet. On en parle plus bas dans ce tuto.

Le second onglet Styles est une particularité de Fooocus. En cliquant sur les styles prédéfinis, le prompt est enrichi par des termes prédéfinis qui vont aboutir au style choisi. Cet onglet est un assistant de prompt pour accélérer la génération. Le style Fooocus V2 apporte des termes d'optimisation du rendu.

Le troisième onglet Model sert à déterminer les ressources à utiliser pour la génération :

  • Le modèle de base, appelé checkpoint. Il s'agit du fichier .safetensors qui contient les données créatives
  • Le modèle de Refiner peut aussi être choisi avec un curseur d'ajustement d'intensité. Il ajoute une couche de traitement avec de nouveaux détails générés. Avec Stable Diffusion XL, le modèle de base contient aussi le modèle Refiner.
  • Les LoRA, pour Low-Rank Approximation sont des fichiers plus légers qui contiennent des complèments de style au modèle de base. Ils sont associés à un poids pour définir leur intensité d'action.

Le dernier onglet Advanced affiche deux valeurs de configuration:

  • Guidance Scale est l'échelle de respect de la consigne. Plus la valeur est elevée, plus l'image sera proche du prompt, mais moins le modèle fera preuve de créativité.
  • Image Sharpness est le niveau de précision de l'image.

Le principe de générations en masse et l'historique de génération

La génération d'images par IA est un processus créatif aléatoire. Le même prompt et les mêmes paramètres peuvent aboutir à des résultats assez différents. L'image est marquée par sa seed. Comme elle est définie de manière aléatoire lors des générations initiales, les résultats sont différents.

Actuellement, et dans l'état actuel de l'IA, le but est donc de générer de nombreuses images et de sélectionner la meilleure pour l'utiliser directement ou la re-travailler avec un logiciel classique ou par d'autres processus IA.

L'historique de génération (la log) est donc indispensable. Fooocus enregistre toutes les images dans les répertoires quotidiens /outputs/YYYY-MM-DD/. J'ai travaillé sur un visualiseur de ces logs pour faciliter le travail de sélection. Il est disponible sur mon dépôt Github Fooocus Log Viewer

C'est aussi un autre avantage de l'IA en local. Vous n'êtes pas limité en nombre de tentatives et d'images générées, par rapport à un service cloud qui facture souvent à l'image produite.

Les modèles

Les modèles Stable Diffusion sont au coeur de la génération d'images.

A l'installation de Fooocus, quelques modèles sont téléchargés automatiquement. Je vous recommande d'en charger d'autres à partir du superbe site gratuit Civit.ai.

Une fois les modèles téléchargés, vous les déplacez dans le répertoire dédié de Fooocus : /fooocus/models/checkpoints/

Les LoRAs sont à placer dans /fooocus/models/loras/

Un checkpoint pèse environ 7Go. Un LoRA entre 0.1 et 2 Go. On se rend bien compte de l'espace disque nécessaire pour travailler en IA.

Un peu de vocabulaire

L'IA n'échappe pas à la règle Internet et encore moins la génération d'images. Les contenus pour adulte sont facilement générables. Pour éviter de tomber sur des images sensibles à des moments non appropriés, il faut connaître la signification des termes SFW et NSFW. Safe For Work indique que les images sont visibles dans un cadre public. L'opposé Not Safe For Work est explicite.

Aller plus loin

Stable Diffusion (et Fooocus) peuvent aller bien plus loin dans la génération d'images.

Poursuivez la lecture avec le tuto, sur img2img : Img2Img et Image Prompte avec Fooocus

Troisième édition Tout JavaScript chez Dunod

Tout JavaScript le livre chez DunodEn savoir plus
Sortie le 4 janvier 2023

Version papier 29€90
Format électronique 22€99.

Commandez en ligne

Chercher une fonction, un objet, ...

Le 28/02/2024 03:44:47 sur php 7 en 78.37 ms