Écrire des prompts est la partie lente de la génération d’images en masse. Ce workflow la confie à une IA qui sait voir : un modèle vision-langage regarde chacun de vos croquis, le décrit et écrit un prompt neuf. Puis SDXL ou Flux génère une nouvelle image qui suit le croquis grâce à un ControlNet de profondeur.
Tout tourne en local sur votre ordinateur, hors ligne. Donnez-lui 10 ou 50 croquis avant de dormir et vous pouvez vous réveiller avec quelques milliers d’images.
En bref
- Ollama exécute les modèles de langage en local ; ComfyUI lui parle via un pack de nodes.
- Modèle : environ 4,7 Go est le bon compromis. LLaVA Q4 m’a donné les meilleurs prompts.
- Réglages qui comptent : keep-alive 0 avec Flux, maximum de jetons 512 pour Flux ou 77 pour SDXL, et une seed aléatoire.
- Ensuite : le prompt plus une carte de profondeur du croquis vont vers SDXL ou Flux.
LLM, MLLM et VLM, en bref
Le ChatGPT d’origine n’acceptait que du texte en entrée : un grand modèle de langage (LLM). ChatGPT, Gemini et Grok sont désormais des modèles multimodaux (MLLM) qui acceptent aussi des images, de l’audio et plus encore. Un modèle vision-langage (VLM) est celui pour l’image et le texte, et c’est ce qu’il nous faut : quelque chose qui puisse regarder une image et écrire à son sujet.
Ce que je ne savais pas avant : on peut faire tourner aussi bien des LLM que des VLM sur son propre ordinateur, sans aucune connexion à Internet.
1. Installer Ollama
Ollama exécute des modèles de langage en local. Téléchargez l’installateur (environ 700 Mo ; les modèles eux-mêmes sont plus gros), lancez-le et, s’il vous le demande, collez la commande affichée dans une invite de commandes pour terminer la configuration. Quand c’est fini, l’icône d’Ollama apparaît dans la zone de notification. Il n’y a rien à configurer ; il doit simplement tourner à côté de ComfyUI.
2. Installer les packs de nodes
Dans le Custom Nodes Manager de ComfyUI, une recherche de « VLM » montre de nombreux packs. Beaucoup n’ont pas été mis à jour depuis que ComfyUI est passé de Python 3.11 à 3.12 et ne fonctionnent plus. Les deux que j’ai utilisés, et qui fonctionnent :
- ComfyUI Ollama Describer, les nodes qui parlent à Ollama.
- ComfyUI LayerStyle, qui n’est pas destiné aux modèles de langage mais qui est utile plus loin dans le workflow.
Installez les deux et redémarrez ComfyUI.
3. Choisir un modèle
Ajoutez pour commencer un node Ollama Text Describer. Sa liste de modèles affiche des noms et des tailles. Les modèles ne sont pas préinstallés ; la première fois que vous en choisissez un, il se télécharge dans votre dossier utilisateur sur le disque système. Vous pouvez changer ce dossier dans les paramètres d’Ollama (cliquez sur l’icône de la zone de notification).
Deux désagréments à connaître :
- Les modèles téléchargés ne gardent pas de noms lisibles, vous ne pouvez donc pas savoir lesquels vous avez déjà. Tenez une note.
- Les modèles de texte ne voient pas. Un LLM ne produit que du texte ; pour décrire des images, il faut un modèle de vision.
D’après ce que j’ai essayé :
| Taille du modèle | Résultat |
|---|---|
| ~350 Mo (0,5B de paramètres) | Quasiment inutile ; plus bête que GPT-3 |
| ~1 Go | Correct, sans plus |
| ~4,7 Go | Le meilleur compromis entre qualité et taille |
| Plus de 5 Go | Je n’ai pas été plus loin ; cela prend trop de VRAM à côté du modèle d’image |
4. Décrire une image et écrire un prompt
Pour les images, utilisez le node Ollama Image Describer. Il prend une image, suit vos instructions et sort du texte, qui devient le prompt. Connectez un node d’aperçu de texte pour le lire.
J’ai chargé un de mes croquis et utilisé LLaVA Q4 (LLaVA en quantification 4 bits), qui a donné les meilleurs prompts parmi les modèles que j’ai essayés. Le node a deux champs d’instructions. J’ai trouvé que c’est le second qui compte vraiment. Le mien disait en substance : créez un prompt pour la génération d’une image photographique de cette personne dans ce cadre, et n’utilisez pas de guillemets, que certains modèles mettent partout.
Évitez les modèles « de réflexion ». Ils écrivent leur raisonnement (« Je réfléchis à la façon de répondre… ») au lieu d’un prompt, ce qui est inutile à transmettre à un modèle d’image.
5. Les réglages qui comptent
Keep-alive. -1 garde le modèle chargé en mémoire ; 0 le décharge après chaque prompt. J’utilise normalement 0. Avec SDXL et 16 à 24 Go de VRAM, vous pouvez le garder chargé et gagner quelques secondes par image. Avec Flux, j’ai dû le décharger à chaque fois, même sur 24 Go : sinon le modèle de vision de 5 Go prenait tant de mémoire que le rendu de l’image se bloquait.
Maximum de jetons. Alignez-le sur le modèle d’image : 512 pour Flux, mais seulement 77 pour SDXL, la taille de la fenêtre de son encodeur de texte.
Seed. La seed du descripteur ne change pas toute seule, vous obtiendriez donc le même prompt à chaque exécution. Ajoutez le node Seed de rgthree, réglez-le pour qu’il soit aléatoire à chaque fois, et connectez-le au descripteur. Désormais chaque exécution écrit un nouveau prompt. Combiné à une précision dans les instructions (« dans un lieu précis », « dans ce scénario »), chaque croquis produit un flux d’idées différentes.
J’ai laissé la repeat penalty et la temperature à leurs valeurs par défaut ; elles sont suffisantes.
6. Le workflow complet : des croquis aux images, automatiquement
La version complète, qui est sur mon Patreon, réunit tout :
- Load Image Batch récupère le croquis suivant d’un dossier à chaque exécution.
- L’Ollama Image Describer écrit un nouveau prompt pour lui. Mes croquis représentaient différentes femmes dans différentes poses, la même instruction a donc produit un prompt différent pour chacune.
- Le prompt va dans le prompt positif du modèle d’image.
- Depth Anything transforme le croquis en carte de profondeur, et Apply ControlNet l’utilise pour conserver la pose.
- KSampler génère l’image. Pour SDXL, j’ai utilisé Juggernaut XL (environ 6 Go).
La largeur et la hauteur sont définies une fois, sous forme de nodes d’entiers, et réutilisées pour le redimensionnement, la carte de profondeur et la toile.
Avec Flux, c’est le même workflow, en utilisant le XLabs Sampler et Flux dev à la place de SDXL. Flux était plus créatif et donnait plus de variation. N’oubliez pas le réglage de keep-alive.
La force de ce système est l’échelle : préparez 10 ou 50 croquis, lancez pendant la nuit avec une seed aléatoire, et vous obtenez des milliers d’images différentes, chacune suivant toujours l’un de vos dessins. Pour d’autres façons d’alimenter des prompts en masse, voir les listes de prompts et mon node Prompt Cycler.
Voir la version vidéo (11:31)
Tout ce qui précède est aussi dans la vidéo, si vous préférez suivre à l’écran. La vidéo est en anglais.
Questions fréquentes
Quel modèle de vision utiliser dans Ollama ?
Dans mes tests, les modèles d'environ 4,7 Go étaient le meilleur compromis. Les minuscules de 350 Mo étaient quasiment inutiles, et ceux de 1 Go étaient corrects sans plus. Un LLaVA quantifié (Q4) m'a donné les meilleurs prompts.
Combien de jetons le prompt peut-il contenir ?
Jusqu'à 512 jetons pour Flux, mais seulement 77 pour SDXL. Réglez le maximum de jetons du descripteur selon le modèle d'image.
Pourquoi mon rendu Flux se bloque-t-il après la description ?
Le modèle de vision est encore dans la VRAM. Réglez le keep-alive sur 0 pour qu'il soit déchargé après l'écriture de chaque prompt. Avec Flux, même 24 Go de VRAM ne suffisaient pas pour garder les deux chargés.
Pourquoi ai-je le même prompt à chaque fois ?
La seed du descripteur ne change pas toute seule. Connectez un node de seed aléatoire pour que chaque exécution reçoive une nouvelle seed, et donc une nouvelle idée.

