Un plan, une sphère et une poignée de cubes deviennent un phare sur une île entre deux falaises. Ce guide va du début à la fin : un blockout Blender basique, une passe de profondeur, une image photoréaliste de Stable Diffusion avec un ControlNet de profondeur, puis une projection de caméra qui replace le rendu sur les formes 3D pour que la caméra puisse bouger. Il s’adresse aux personnes qui découvrent Stable Diffusion.
Ce que j’aime dans ce processus, c’est que vous contrôlez la composition finale. En tant qu’artiste professionnel, j’ai toujours eu plus d’idées que de temps pour les réaliser. Cette approche me permet d’en essayer beaucoup avec un effort assez minime.
En bref
- Blockout : plan pour la mer, UV sphere pour l’île, cubes pour les falaises et le phare. Caméra de 33 mm.
- Passe de profondeur : passe Z → Map Range → Invert Color ; view transform Raw ; PNG 16 bits.
- Stable Diffusion : AUTOMATIC1111 avec epiCPhotoGasm et l’extension ControlNet : Depth, préprocesseur depth_zoe, poids 0,75.
- Projection : UV Project from View, un shader Background, beaucoup de subdivision.
- Fichiers du projet : la scène Blender est gratuite sur Gumroad.
Cette vidéo utilisait AUTOMATIC1111. Pour la même idée dans ComfyUI, en direct pendant que vous déplacez la caméra, voir concept art en temps réel avec Blender et Stable Diffusion.
1. Ébaucher la scène dans Blender 4.3
L’interface de Blender 4.3 diffère légèrement des versions précédentes. Tout ici est aussi basique que possible.
- Mer : Maj+A → Mesh → Plane. Déplacez-le avec G, mettez-le à l’échelle avec S pour le rendre bien plus grand.
- Île : une UV Sphere, enfoncée dans le plan et réglée sur Shade Smooth.
- Phare : un cube, mis à l’échelle en hauteur. Ajoutez quelques petits bâtiments, de façon sporadique, pas trop.
- Falaises : d’autres cubes, dupliqués (Maj+D), inclinés et mis à l’échelle.
Ajoutez une caméra. Faites glisser un second viewport vers le bas, réglez-le sur la vue caméra (View → Cameras → Set Active Object as Camera) et activez Lock Camera to View pour naviguer sans perdre la caméra. J’ai utilisé une focale de 33 mm, légèrement large pour une vue de paysage.
Placez ensuite les falaises autour de l’île pour encadrer une ouverture, avec une petite île au milieu : un phare, un château ou une tour de science-fiction. C’est ici que je passe le plus de temps, à déplacer et mettre à l’échelle des rochers. Je veux un grand contraste entre les grandes et les petites formes, et que l’œil soit attiré vers le sujet principal. Cette composition est simple : le sujet va en plein milieu.
Ciel : dupliquez le plan et redressez-le avec R (maintenez Ctrl pour l’aimanter). Ne le mettez pas trop loin ; un plan très éloigné peut fausser les valeurs de profondeur.
Dans Output Properties, baissez la résolution à 50 % pour que Stable Diffusion tourne plus vite.
2. Rendre une passe de profondeur
Dans une passe de profondeur, les pixels blancs sont proches et les pixels noirs sont lointains.
- View Layer Properties → Passes, activez Z.
- Passez dans l’espace de travail Compositing et cliquez sur Use Nodes.
- Rendez une fois. Les lumières de la scène n’affectent pas la passe de profondeur, une lumière simple convient donc.
- Ajoutez un node Viewer et connectez la sortie Depth du rendu. Au début, l’image est surexposée.
- Ajoutez Map Range entre les deux et faites glisser les valeurs From et To jusqu’à ce que le dégradé soit juste. J’ai simplement fait défiler les curseurs à gauche et à droite jusqu’à trouver le rendu voulu.
- Ajoutez Invert Color ; la passe ne fonctionne pas dans le bon sens telle quelle.
- Render Properties → Color Management → View Transform : Raw. Cela donne une plage plus douce et mieux définie.
- Connectez Invert Color au node Composite, rendez, et enregistrez en PNG, profondeur de couleur 16 bits, 0 % de compression. 16 bits donne une image plus riche.
3. Installer Stable Diffusion et ControlNet
L’installation la plus simple d’AUTOMATIC1111 est la version v1.0.0-pre : téléchargez seulement sd.webui.zip, décompressez-le et lancez run.bat. Le téléchargement des paquets supplémentaires prend une minute ou plus ; laissez-lui le temps.
- Les modèles vont dans le dossier des modèles Stable Diffusion. J’ai trouvé les miens sur Civitai ; celui que j’ai beaucoup utilisé est epiCPhotoGasm, excellent pour les images réalistes. Cherchez d’autres styles sur Civitai et déposez-les dans le même dossier.
- Extension ControlNet : dans l’interface web, Extensions → Install from URL, collez
https://github.com/Mikubill/sd-webui-controlnetet installez. Puis Installed → Check for updates → Apply and restart UI. - Modèles ControlNet : téléchargez-les depuis lllyasviel/ControlNet-v1-1 sur Hugging Face dans le dossier des modèles de l’extension. J’utilise surtout depth ; j’ai aussi téléchargé canny (détection de lignes), mais ce guide n’utilise que depth.
ControlNet lui-même est décrit dans Adding Conditional Control to Text-to-Image Diffusion Models (Zhang et al., 2023).
4. Générer l’image
Dans l’onglet txt2img :
- Checkpoint : epiCPhotoGasm.
- Largeur × hauteur : 960 × 540, pour correspondre au rendu.
- Seed : 10, fixe, parce que je ne veux pas de variation pendant le réglage.
- ControlNet : ouvrez le panneau, cliquez sur Depth et cochez Enable. Réglez le préprocesseur sur depth_zoe, bien meilleur que depth_midas par défaut. Glissez le PNG de profondeur.
- Control weight : commencez à 0,7. Des valeurs plus basses ajoutent de la variation (à 0,2, le résultat est très différent de votre scène) et 1,0 le casse aussi. Restez entre 0,5 et 0,9.
Le prompt est simplement ce que je vois : « canyon, lighthouse, small island, sea, sunny day, limestone ». Remplacez « limestone » par un pays, comme Ireland, et vous obtenez un paysage complètement différent.
Un halo autour d’une forme vient généralement du poids du ControlNet. Le baisser à 0,6 en a enlevé une partie mais a causé des échecs. 0,75 était parfait ; à 0,8, il a ajouté une plage au premier plan.
Hires. fix double la résolution. Selon votre VRAM, il peut marcher ou échouer ; il prend généralement quelques minutes, et il m’arrive de devoir redémarrer l’ordinateur pour obtenir une exécution propre. La version 2K est de bien meilleure qualité, mais les détails changent par rapport à la version 1K. Je ne sais pas encore comment les garder cohérents ; si vous le savez, laissez un commentaire sur la vidéo.
Tout est enregistré automatiquement dans le dossier outputs de l’interface web, une galerie sans fin de vos essais.
Ce qui a mal tourné en chemin
- Poids 1,0 a cassé l’image. Vers 0,5, elle a commencé à se fondre.
- Depth Midas a produit quelque chose d’entièrement différent, sans rapport avec l’île.
- Un dégradé de profondeur faible a créé une plage au premier plan, ou fondu des objets du plan intermédiaire dans le premier plan. Utilisez la view transform Raw et un bon Map Range.
- Arrière-plans chargés : j’ai dû changer les prompts, et déplacer l’île et des détails dans Blender, pour obtenir un arrière-plan net.
Une fois que j’ai eu depth_zoe et un bon poids, les bonnes images ont commencé. J’ai aussi essayé un château médiéval sinistre, des pays comme la Jordanie et le Yémen, et un château futuriste, qui a donné un aspect assez moderne. Les rochers du premier plan sont mes cubes ; il suit très bien le blockout.
5. Reprojeter le rendu sur la scène
- Sélectionnez tous les objets sauf la caméra et les lumières, appuyez sur Tab, puis A pour tout sélectionner.
- UV → Project from View, depuis la caméra.
- Donnez un nouveau matériau à un objet et passez-le de Principled BSDF à un shader Background : pas de reflets, c’est une projection plate de la texture.
- Dans l’espace de travail Shading, ajoutez une Image Texture avec le rendu de Stable Diffusion et connectez-la.
- Sélectionnez tout ce qui est visible, puis l’objet texturé en dernier, et appuyez sur Ctrl+L → Link Materials.
Au début, la projection paraît décalée. Subdivisez les maillages (pas la sphère, déjà assez dense, mais les falaises, le ciel et l’eau) : en Edit Mode, Subdivide plusieurs fois, puis Project from View de nouveau. J’ai dû subdiviser une fois de plus avant que tout paraisse juste. Maintenant, quand vous déplacez la caméra, cela se lit comme une scène 3D.
Corriger ce qui manque au blockout
- Le haut du phare : le cube n’y arrivait pas. Maj+clic droit pour placer le curseur 3D, ajoutez un cylindre, mettez-le à l’échelle et effilez-le pour remplir l’espace, donnez-lui le matériau Background et refaites Project from View. J’ai fait de même pour le palmier avec une sphère provisoire. Plus tard, j’ai découpé le haut en cylindres pour supprimer un halo.
- Le ciel : dans Photoshop, j’ai fait un dégradé net à partir du ciel du rendu. Cliquer sur le nombre d’utilisateurs du matériau (17) crée une copie à utilisateur unique, et j’y ai échangé la nouvelle image.
- Les bords de rochers se voient quand la caméra bouge. Reculer un peu les rochers rend le découpage bien moins visible pour un petit mouvement.
6. L’eau et le mouvement de caméra
Sur le plan de la mer, remplacez le matériau par un nouveau Principled BSDF à roughness 0. Il reflète le HDRI, activez donc le lancer de rayons dans Render Properties (il fonctionne un peu différemment dans la 4.3) pour obtenir un reflet miroir de la scène.
Ajoutez ensuite des ondulations : Noise Texture → Bump (couleur dans Height, Normal dans la Normal du shader), avec Texture Coordinate et Mapping devant. Placez une image clé sur la location du Mapping à l’image 1, déplacez-la à l’image 250 et placez une nouvelle image clé. Le premier essai était trop rapide ; j’ai baissé le mouvement à 0,1 m pour une animation discrète.
Avant de rendre :
- Augmentez les échantillons du viewport à 256.
- Repassez la view transform de Raw à Standard, connectez l’Image du rendu (pas la profondeur) au node Composite, et remettez la résolution à 100 %.
- Enfoncez quelques rochers dans l’eau et amenez l’eau au premier plan.
- Placez une image clé sur la caméra à l’image 1, rapprochez-la légèrement à l’image 150, placez une nouvelle image clé, et choisissez Render Animation vers votre dossier de sortie. J’ai rendu un fichier vidéo pour que ce soit plus rapide.
Ensuite, j’ai essayé d’autres prompts, comme le Groenland et la Thaïlande, et remplacé la texture dans le dossier pour obtenir de nouvelles versions de la même scène. La scène Blender est gratuite sur mon Gumroad.
Voir la version vidéo (23:27)
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
Comment exporter une carte de profondeur depuis Blender pour ControlNet ?
Activez la passe Z dans les propriétés du View Layer, puis dans le Compositor faites passer Depth par Map Range et Invert Color pour que le proche soit blanc et le lointain noir. Réglez la view transform sur Raw et enregistrez en PNG 16 bits sans compression.
Quel poids de ControlNet utiliser pour une carte de profondeur ?
Entre 0,5 et 0,9. À 1,0, l'image s'est cassée ; à 0,6, il y a eu des échecs ; 0,75 était parfait, tandis que 0,8 a ajouté une plage au premier plan.
Depth Zoe ou Depth Midas ?
Depth Zoe. Avec Midas, le résultat n'avait rien à voir avec l'île.
Pourquoi les objets du plan intermédiaire se fondent-ils dans le premier plan ?
La carte de profondeur n'a pas assez de variation dans ses dégradés. Réglez la view transform sur Raw et ajustez Map Range pour obtenir un bon dégradé régulier.
