Donnez à ce workflow un dossier de photos et il transforme chacune en une pièce de concept art, en conservant la structure et la composition de la photo tout en restylisant tout le reste. Je l’ai fait tourner sur un lot d’environ 700 photos d’une vieille ville fortifiée du désert, qui sont devenues des tours, des portes et des murs de science-fiction.
Il tourne en local dans ComfyUI avec Flux 1 dev. Je n’utilise volontairement pas Flux 2 : il est bien plus lourd et plus lent, et quand on génère des idées en masse, c’est la vitesse qui compte. Flux 1 tourne sur des cartes de 8 à 24 Go de VRAM.
En bref
- Entrée : un dossier de photos, lues une à une.
- Structure : une carte de profondeur Depth Anything V2 pilote le ControlNet de profondeur de Flux.
- Réglages : force du ControlNet environ 0,8, Flux guidance 3, 25 étapes.
- Sortie : chaque résultat porte le nom de la photo dont il provient.
- Le workflow terminé est sur mon Patreon, mais rien n’y est secret : tout est expliqué ci-dessous.
Custom nodes nécessaires
Tous s’installent depuis le ComfyUI Manager :
- ComfyUI Essentials et KJNodes, pour les utilitaires d’image et le redimensionnement.
- comfyui_controlnet_aux, qui fournit le node Depth Anything V2.
- x-flux-comfyui de XLabs, pour le ControlNet et le sampler de Flux.
- rgthree, pour la comparaison avant/après.
1. Charger les photos en lot
Un node Load Image Batch pointe vers un dossier et le parcourt, une image par exécution. Un node d’aperçu à côté sert uniquement au dépannage, pour confirmer que la bonne image arrive.
Mes photos étaient grandes : celle de la vidéo faisait 3867 × 2578 pixels, bien plus que Flux n’en a besoin. Le node suivant les réduit.
2. Créer une carte de profondeur et redimensionner
Le node Depth Anything V2 fait deux choses. Il transforme chaque photo en une carte de profondeur en niveaux de gris (proche est clair, lointain est sombre), et son réglage resolution met la photo à l’échelle pour que son côté court ait ce nombre de pixels, le côté long étant mis à l’échelle en proportion. En portrait ou en paysage, tout sort aux bonnes proportions.
Je le garde à 1024. Descendez à 768 si vous voulez des générations plus rapides. Pour le modèle, j’utilise la plus grande version de Depth Anything V2, qui devrait donner la meilleure profondeur. Téléchargez-la depuis le Model Manager de ComfyUI en cherchant « Depth Anything V2 », puis rechargez la page du navigateur ; inutile de redémarrer ComfyUI.
Un node Get Image Size transmet la nouvelle résolution à l’Empty Latent Image, vous ne saisissez donc jamais de tailles à la main. Le latent vide est la toile vierge : du bruit dans l’espace latent du modèle que le sampler transforme en image.
3. Appliquer le ControlNet de profondeur de Flux
La carte de profondeur va dans Apply Flux ControlNet (de x-flux-comfyui), avec le Flux depth ControlNet v3 de XLabs chargé. Trouvez-le dans le Model Manager en cherchant « Flux depth ControlNet », téléchargez-le et rechargez la page.
Le réglage qui compte est la force :
| Force | Ce qui se passe |
|---|---|
| Sous 0,5 | Presque aléatoire : le résultat ne repose que vaguement sur la photo |
| Environ 0,8 | Mon point idéal avec Flux : la structure tient et le prompt a encore de la marge |
| 1,0 | Trop : l’image commence à brûler et des artefacts apparaissent |
Le point idéal dépend du modèle. Avec SDXL, par exemple, je descends à environ 0,6.
4. Charger Flux et écrire le prompt
Load Diffusion Model charge Flux 1 dev avec le type de poids fp8. Flux existe en fp16 et en fp8 ; le fp8 est plus rapide et demande moins de mémoire. J’ai 24 Go de VRAM et j’utilise quand même le fp8, pour que rien ne cale si d’autres programmes utilisent la carte.
Le DualCLIPLoader charge les deux encodeurs de texte de Flux, CLIP-L et T5 (également en fp8). Ils traduisent les mots et leurs poids en la direction que prend la génération de l’image. Les deux sont dans le Model Manager.
J’ai demandé à ChatGPT d’écrire le prompt, puis j’ai retiré les parties que je ne voulais pas. Comme le même prompt tourne sur chaque photo, c’est lui qui garde des centaines de résultats cohérents.
- Flux Guidance : 3. Une guidance plus élevée brûle l’image.
- Prompt négatif : Flux n’en utilise pas. Le node est là uniquement parce que le sampler a besoin que l’entrée soit connectée ; il n’affecte pas le résultat.
5. Échantillonner et décoder
Le XLabs Sampler prend tout (modèle, prompt, latent et condition du ControlNet) et fabrique l’image. Ses notes dans le workflow expliquent chaque paramètre ; ceux que je règle :
- Seed en increment, pour que les images soient numérotées 19, 20, 21 au lieu de grands nombres aléatoires. C’est une façon simple de suivre combien vous en avez fait.
- 25 étapes. Au-delà de 50, les rendements diminuent : plus de temps, aucun changement visible.
VAE Decode transforme le résultat latent en pixels, avec le VAE de Flux (environ 300 Mo, également dans le Model Manager). Un rgthree image comparer permet de faire glisser un curseur entre la photo et le résultat.
J’aime ce que cela fait des photos. Donner au modèle plus d’information qu’un prompt seul (la profondeur d’une vraie photo) aide clairement le résultat : la tour ci-dessus a gardé sa forme, est devenue une tour de science-fiction, et le modèle a ajouté un horizon de science-fiction derrière elle.
6. Nommer chaque résultat d’après sa photo
Quand vous générez des centaines d’images, vous voulez savoir de quelle photo chacune provient. Le workflow prend le nom de fichier de la photo depuis le chargeur par lots et le concatène avec un préfixe (j’ai utilisé flux-desert-city), puis le transmet au node Save Image comme nom de fichier.
Les noms sont un peu encombrants, mais chaque résultat peut être relié à sa photo source.
Où l’exécuter
Cela tourne en local sur des cartes de 8 à 24 Go de VRAM. Si la vôtre est plus petite, un GPU loué est la voie la plus simple. Mon introduction à RunPod montre la mise en place, et la même approche fonctionne pour tout workflow ComfyUI.
Si vous essayez RunPod, mon lien de parrainage offre aux nouveaux comptes inscrits avec Google entre 5 et 500 $ de crédit après leurs 10 premiers dollars, et je touche une petite commission.
Voir la version vidéo (10:18)
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
Pourquoi utiliser Flux 1 plutôt que Flux 2 pour du concept art en lot ?
La vitesse et la mémoire. Flux 1 tourne sur des cartes de 8 à 24 Go de VRAM ; Flux 2 est plus lourd et bien plus lent, ce qui compte quand vous générez des centaines d'idées.
Quelle force de ControlNet utiliser avec Flux ?
Environ 0,8 pour Flux depth ControlNet v3. En dessous de 0,5, le résultat ne repose que vaguement sur la photo ; à 1,0, l'image commence à brûler. Avec SDXL, j'utilise environ 0,6.
De combien d'étapes Flux a-t-il besoin ?
Environ 25. Au-delà de 50 étapes, vous payez en temps sans voir une meilleure image.

