D'un blockout Blender à un rendu IA final avec un ControlNet de profondeur, puis de retour en 3D

Ébauchez une scène de phare avec des cubes dans Blender 4.3, rendez une passe de profondeur, transformez-la en image photoréaliste avec Stable Diffusion et un ControlNet de profondeur, puis reprojetez le rendu sur la géométrie pour un court mouvement de caméra avec de l'eau animée.

Anton Tenitsky13 octobre 202610 min de lectureVersion vidéo plus bas

Ce guide a été traduit de l'anglais par IA et peut contenir des erreurs. Lire l'original.

Un viewport Blender montrant un phare sur une île rocheuse entre deux falaises de grès, obtenu en projetant un rendu IA sur une géométrie de blockout simple

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.

Blender avec un blockout gris de hautes falaises en boîtes et une petite île sphérique avec un phare en boîte, vus depuis la caméra
Toute la scène : un plan, une sphère et des cubes.

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.

  1. View Layer Properties → Passes, activez Z.
  2. Passez dans l’espace de travail Compositing et cliquez sur Use Nodes.
  3. Rendez une fois. Les lumières de la scène n’affectent pas la passe de profondeur, une lumière simple convient donc.
  4. Ajoutez un node Viewer et connectez la sortie Depth du rendu. Au début, l’image est surexposée.
  5. 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.
  6. Ajoutez Invert Color ; la passe ne fonctionne pas dans le bon sens telle quelle.
  7. Render Properties → Color Management → View Transform : Raw. Cela donne une plage plus douce et mieux définie.
  8. 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.
Le compositeur de Blender avec la profondeur de Render Layers alimentant Map Range (de -2 et 55 à 0,15 et 3) et Invert Color, montrant une image de profondeur des falaises du gris au blanc
Depth → Map Range → Invert Color. Le proche est blanc, le lointain est noir.

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-controlnet et 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.

Le txt2img d'AUTOMATIC1111 avec le prompt canyon, lighthouse, small island, sea, sunny day, Ireland, 960 par 540, seed 10, une unité ControlNet de profondeur et le résultat : un phare blanc entre des falaises vertes
« Ireland » dans le prompt : des falaises vertes, un phare blanc. Remarquez le halo à gauche.

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.

Un phare blanc sur une île rocheuse entre deux hautes falaises de grès par une journée ensoleillée
Le rendu utilisé pour la projection : des falaises de calcaire, une journée ensoleillée.

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.

Une tour de pierre claire et des ruines dans un canyon, avec des falaises et une arche rocheuse remplissant tout l'arrière-plan
Un essai précoce : l'arrière-plan s'est rempli de canyon au lieu de ciel.
Une haute tour moderne en béton sur une île verte entre d'abruptes parois de canyon, avec des rochers dans l'eau
Un château futuriste : les rochers du premier plan sont les cubes du blockout.

5. Reprojeter le rendu sur la scène

  1. Sélectionnez tous les objets sauf la caméra et les lumières, appuyez sur Tab, puis A pour tout sélectionner.
  2. UV → Project from View, depuis la caméra.
  3. 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.
  4. Dans l’espace de travail Shading, ajoutez une Image Texture avec le rendu de Stable Diffusion et connectez-la.
  5. 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.

La vue caméra de Blender montrant le rendu IA projeté sur les cubes et la sphère, avec le blockout vu de dessus dans le viewport au-dessus
Le rendu projeté sur la géométrie. Depuis la caméra, cela correspond.

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.

L'éditeur de shaders de Blender avec Texture Coordinate, Mapping, Noise Texture et Bump alimentant un Principled BSDF, au-dessus d'un viewport avec de l'eau réfléchissante
Du bruit animé dans un node bump donne à l'eau ses ondulations.

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.
La scène du phare projetée avec une eau plate et réfléchissante au premier plan
La scène terminée, prête pour un court mouvement de caméra.

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.

Anton Tenitsky est artiste 3D avec plus de 15 ans d'expérience en infographie, qui a travaillé avec Nickelodeon, Gameloft, Marvel Rivals et de nombreux autres clients. En savoir plus sur moi

Guides associés