Um adereço 3D numa sala gerada por IA: Blender 4.3, Stable Diffusion e projeção de câmera

Gere uma sala fotorrealista a partir de um blockout do Blender com Stable Diffusion e um ControlNet de profundidade, projete-a de volta na geometria e depois coloque um modelo 3D real dentro dela com iluminação compatível, um shadow catcher, light linking, bloom e um movimento de câmera animado com profundidade de campo.

Anton Tenitsky13 de outubro de 202611 min de leituraVersão em vídeo abaixo

Este guia foi traduzido do inglês com IA e pode conter erros. Leia o original.

Uma vista de câmera do Blender de uma estátua de pedra de um santo dentro de uma sala medieval com paredes de tijolo, um teto de madeira e uma janela gótica, a sala gerada com Stable Diffusion

Este é um curso completo num só guia: instalar o Stable Diffusion, montar o blockout de uma sala no Blender, gerar uma sala medieval fotorrealista a partir da profundidade dela, projetar essa imagem de volta na sala 3D e depois pôr um modelo 3D real dentro, iluminado e com sombra compatíveis, com um movimento de câmera curto. A ideia é um showroom para um adereço. Não precisa ser medieval; pode ser de ficção científica ou qualquer outra coisa.

Tudo aqui é gratuito. Você precisa de um notebook gamer razoavelmente recente (de três ou quatro anos serve) com uma placa NVIDIA.

Em resumo

  • Stable Diffusion: interface web AUTOMATIC1111 com epiCPhotoGasm e a extensão ControlNet, preprocessor depth_zoe, control weight 0,7.
  • Blender: uma sala de caixas com formas simples chanfradas, câmera de 18–24 mm, um passe de profundidade Z salvo como PNG de 16 bits e levemente borrado.
  • Projeção: shader Background, materiais vinculados, malhas subdivididas, UV Project from View.
  • O adereço: um modelo gratuito do Sketchfab, com cor ajustada, um shadow catcher, light linking e bloom.

O guia do farol cobre com mais detalhe a parte de profundidade para render. O que há de novo aqui é o adereço e fazê-lo assentar na imagem de IA.

1. Instale o Stable Diffusion (AUTOMATIC1111)

  1. Instale o Python e o Git para Windows pelos links do README da interface web: instalações padrão, clique em OK até o fim.
  2. Crie uma pasta no seu disco C:, clique na barra de endereços do Explorador, digite cmd e aperte Enter.
  3. Cole a linha git clone do README e aperte Enter.
  4. Execute webui-user.bat. A primeira inicialização baixa muitos pacotes e pode levar de 10 a 20 minutos.

Modo escuro: botão direito em webui-user.bat → Edit, acrescente --theme dark aos argumentos de linha de comando, salve e execute de novo.

Modelos

A interface web pode vir com o Stable Diffusion 1.5. Na época, o mais novo era o Stable Diffusion 3.5 no Hugging Face (você precisa de uma conta): o Medium é o melhor para hardware doméstico, com cerca de 5 GB; o Large e o Large Turbo têm cerca de 16 GB cada.

Usei o epiCPhotoGasm do Civitai. Coloque os arquivos de modelo em models/Stable-diffusion e clique no botão de atualizar ao lado da lista de modelos. Prefira arquivos .safetensors: ao contrário dos .ckpt, não podem conter código executável. Trocar de modelo leva alguns segundos, ou cerca de 40 para um arquivo grande.

As imagens são salvas automaticamente; para mudar a pasta, cole um caminho novo em Settings e clique em Reload UI.

ControlNet

Extensions → Available → Load from, busque sd-webui-controlnet e clique em Install. Baixe o modelo depth do lllyasviel/ControlNet-v1-1 para a pasta de modelos da extensão.

2. Monte o blockout da sala no Blender 4.3

O Blender 4.3 é um pouco diferente das versões anteriores.

  • Casca: Shift+A → Cube, escalado em proporções reais (cerca de 2 × 4 m). No Edit Mode, aperte 3 para seleção de faces, apague as faces do topo e mova para acrescentar profundidade.
  • Teto em arco: selecione arestas, Ctrl+R para edge loops (role para mais) e depois use a edição proporcional (G, rolar, Z) para empurrar o meio para cima formando um arco. No modo X-ray, selecione os vértices de baixo e aperte G, Z, 0 para achatar o piso.
  • Decoração: alguns cubos para vigas e colunas (G para mover, S para escalar por eixo, Shift+D para duplicar). Mantenha discreto: dê espaço para a IA pensar por conta própria.
  • Chanfre tudo. Selecione os objetos, Tab, Ctrl+B, role para os segmentos. Se o chanfro ficar irregular, os objetos foram escalados num só eixo: desfaça, Ctrl+A → Apply Scale, depois chanfre. O Stable Diffusion prefere formas mais suaves, e elas deixam margem de manobra para a projeção depois.
Um blockout cinza no Blender de uma sala com teto em arco e decorações simples de caixas
A sala: uma caixa com teto em arco e algumas formas chanfradas.

Câmera

Zere os valores de rotação da câmera, gire-a com Ctrl para encaixar, depois View → Cameras → Set Active Object as Camera e View → Lock Camera to View. Aperte Home para preencher a tela com a vista da câmera.

Use uma lente grande angular: 24 mm, ou até 18, do jeito que os fotógrafos imobiliários fazem as salas parecerem maiores.

3. Renderize um passe de profundidade

  1. Output Properties: resolução 50%. Resolução menor renderiza mais rápido no Stable Diffusion.
  2. View Layer → Passes: ative o Z.
  3. Aba Compositing → Use Nodes, renderize, adicione um Viewer e conecte o Depth. No começo é tudo branco.
  4. Insira o Map Range e arraste os valores até haver informação suficiente para o Stable Diffusion trabalhar.
  5. Color Management → View Transform: Raw. Dá um gradiente melhor. Se o Stable Diffusion lê escuridão demais como distante, teste os ajustes de contraste do Look; até um detalhe que você mal vê, ele consegue captar.
  6. Conecte o Map Range ao nó Composite, renderize e salve como PNG, 16 bits, 0% de compressão.
O compositor do Blender com o Depth do Render Layers alimentando um nó Map Range e uma pré-visualização cinza de profundidade da sala
Passe Z pelo Map Range: perto é branco, longe é preto.

Dica de profissional: borre o mapa de profundidade. No Photoshop, ou de graça no Photopea (sem login), aplique um desfoque gaussiano de 2–2,5 px e exporte como PNG. Acrescenta sugestividade e ajuda muito. Depois borrei 6–7 px para resultados ainda melhores.

4. Gere a sala

No txt2img:

  • Solte o PNG de profundidade, defina o tamanho em 960 × 540 (senão ele renderiza um quadrado).
  • ControlNet: marque Enable, control type Depth, preprocessor depth_zoe. Outros preprocessors deram resultados bizarros.
  • Control weight 0,7, que dá mais criatividade. Em 1 ele cola no que vê e pode ficar feio.
  • Seed 10, fixa, para o mesmo prompt dar a mesma imagem.

«Medieval room with window in the back» deu um resultado de que não gostei. O prompt que funcionou descrevia uma sala de masmorra com uma janela gótica simples, paredes e piso antigos e quebrados, um teto de madeira com vigas de madeira e uma distância focal de lente:

  • «simple» window, senão ele fazia quatro ou cinco.
  • «wooden beams», ou às vezes ele pulava o teto de madeira.
  • Uma distância focal de lente deixou mais realista. Não sei por que ajuda, mas ajuda.
Uma sala medieval com paredes de tijolo, um teto de madeira com vigas, um piso de pedra e uma janela gótica dupla
A sala que usei: janela gótica simples, teto de madeira com vigas.

Fique de olho no preprocessor. Em certo momento ele mudou sozinho para depth_midas e deu resultados estranhos. Se as coisas ficarem estranhas e incontroláveis, confira isso primeiro.

Salve os ajustes junto com a imagem: em Settings → Saving images, ative a gravação das informações de geração e depois use a aba PNG Info para enviar de volta ao txt2img o prompt e o tamanho de uma imagem salva. O ControlNet não é restaurado; defina de novo à mão.

Upscaling

O Hires. fix dobra a resolução. Os upscalers Latent e SwinIR 4x dão resultados diferentes, e os dois mudaram muito detalhe; reduzir a força de denoising de 0,7 para 0,5 manteve mais. Precisa de muito mais VRAM (tive que reiniciar o computador antes) e leva de 5 a 10 minutos em vez de segundos.

O Krea tem um plano gratuito que amplia um punhado de imagens. Não me convenceu em 1×, e com o método «clarity» algumas partes melhoraram e outras pioraram, perdendo o calor. É útil se o seu computador não consegue ampliar; levando um render de 1000 px a 2K, fez um bom trabalho.

O que 200–300 gerações me ensinaram

  • Ponha uma janela no prompt. Sem uma, a iluminação parecia falsa; com uma, muito natural.
  • «Mossy floor» dá musgo; mencionar um castelo pôs um castelo ao fundo.
  • Uma moldura não parava de aparecer; acrescentar «frame» ao prompt negativo acabou removendo.
  • Montanhas no prompt puseram montanhas fora da janela. «White sky» pintou as paredes de branco.
  • O peso do ControlNet entre 0,5 e 0,8 foi o que mais mudou os resultados. Borrar o mapa de profundidade em 5–15 px, ou acrescentar ruído monocromático, também ajuda: bordas inconsistentes dão espaço a ele. Isso cintilaria numa animação, mas aqui só é preciso uma imagem, e a animação vem do Blender.
Uma sala abobadada de pedra clara com uma alta janela gótica tripla dando para árvores verdes
Uma de muitas variações do mesmo blockout.

Eu poderia ter combinado variantes no Photoshop, e retocar é sempre uma opção, mas para isto quis mostrar uma exportação direta.

5. Projete a imagem na sala

  1. Crie um material, selecione todos os objetos da sala com o texturizado por último e Ctrl+L → Link Materials.
  2. Mude a superfície para um shader Background: sem sombreamento, sem especularidade, sem sombras. A iluminação já está na imagem de IA.
  3. Na aba Shading, adicione um Image Texture com o seu render, na cor do Background.
  4. Mude o view transform de Raw para AgX, ou a imagem fica muito escura.
  5. Subdivida as malhas várias vezes, coloque a vista na câmera, selecione tudo e UV → Project from View.

A janela do fundo estava ondulada porque não havia geometria suficiente atrás dela. Apaguei as faces de trás e usei uma caixa esticada, depois projetei de novo.

6. Adicione um adereço 3D real

Uso o Sketchfab para encontrar modelos: a pré-visualização 3D é muito boa, e vários museus enviam scans de uso gratuito. Confira a licença no fim de cada página. Achei uma estátua de Santo André em domínio público. Você precisa de uma conta para baixar.

Resultados de busca do Sketchfab mostrando uma grade de modelos 3D
Sketchfab: muitos scans de museus podem ser baixados e usados gratuitamente.
  1. Baixe como OBJ (inclui as texturas), descompacte e File → Import → OBJ. Mova, gire e escale até o lugar.
  2. Na aba Shading, adicione três nós Image Texture: color → Base Color, roughness (non-colour) → Roughness, normal (non-colour) → um nó Normal Map → Normal.
  3. Combine a cor: adicione Hue/Saturation depois da textura de cor. Desloque levemente o matiz em direção à luz quente e rosada da sala e reduza a saturação e o valor. Leva um tempo achar a combinação que o faz pertencer.
A estátua importada de pé na sala projetada no viewport do Blender, ainda escura e sem luz, com uma luz sendo posicionada
A estátua no lugar, antes da iluminação e das sombras.

7. Ilumine para combinar com a sala

Com o Eevee, adicione luzes que imitem a imagem de IA:

  • Principal: uma luz onde está a janela. Troquei a point light por uma area light para um brilho mais amplo; ela também cria uma luz de contorno por trás.
  • Preenchimento: uma segunda luz, bem mais opaca, pela frente, para simular a luz refletida da sala.
  • Rosto: a point light padrão da cena, movida para o rosto (posicione o cursor 3D com Shift+botão direito, depois Shift+S → Selection to Cursor). A minha terminou com cerca de 11 W.
  • Cor: deixe as luzes levemente amareladas e rosadas como a sala; o seletor de cor pode amostrar o fundo.

8. Um shadow catcher

Sem sombras a estátua parece falsa. Adicione um plano embaixo dela e dê a ele este material:

  1. Transparent BSDF e Diffuse BSDF num Mix Shader (fator 0 = transparente, 1 = difuso).
  2. Um segundo Diffuse BSDF (branco) → Shader to RGB → o fator do Mix. Troque as entradas do mix se a sombra sair invertida.
  3. Nas configurações do material, mude o método de renderização de Dithered para Blended.
Nós de shader do shadow catcher: Diffuse BSDF em Shader to RGB controlando um Mix Shader entre um shader transparente e um difuso, com a estátua no viewport acima
O shadow catcher: transparente onde há luz, escuro onde há sombra.

Para esconder a borda do plano, gire-o levemente em X e mova-o até encontrar a geometria. Mover a luz principal também muda o quanto o gradiente fica visível.

O light linking (novo no Blender 4.3) impede que algumas luzes clareiem a sombra: em Object → Shading → Light Linking da luz, clique em New, arraste o plano do shadow catcher para dentro e desmarque-o. Fiz isso para a luz principal e a luz do rosto, e a sombra ficou muito mais escura. É um truque, mas esconder coisas assim é muito comum em produção.

A cor do World também muda as sombras. Preto puro remove a luz ambiente cinza; branco clareia tudo. Usei uma cor mais escura, levemente amarronzada, para combinar com a sala.

9. Bloom e um visual mais suave

O Blender 4.3 mudou o bloom. Na aba Compositing, adicione um nó Glare, defina-o como Bloom e conecte o render por ele ao Viewer e ao Composite. Para pré-visualizar no viewport, defina o compositor no popover do Shading como Always. Reduza o threshold a gosto. O bloom afeta também o fundo de IA, o que acrescenta dimensão e imersão.

De volta ao material da estátua, um nó Brightness/Contrast com um pouco menos de contraste dá o visual mais suave e levemente desbotado do fundo. Aperte M no nó para silenciá-lo e comparar.

10. Anime a câmera

  1. Divida a vista, aperte Numpad 0 e trave a câmera na vista.
  2. Ligue o auto keying, mova a câmera e ela cria os keyframes sozinha. Vá ao quadro 60 e aproxime-se do rosto da estátua. A rotação não foi registrada na primeira vez, então botão direito → Insert Keyframe na rotação também.
  3. Crie keyframes na distância focal para um zoom até uma lente de retrato.
  4. Profundidade de campo: ative-a na câmera, foque no objeto ou defina a distância de foco (0,1 m de perto, cerca de 2 m no começo) e crie keyframes. Reduza o f-stop para mais desfoque.
  5. Estiquei o movimento até o quadro 250 para deixá-lo mais lento, reduzi um pouco o glare e baixei a luz do rosto.
A câmera perto da estátua no quadro 60 com profundidade de campo ativada, um f-stop de 1,1 e uma distância focal com keyframes, mostrando uma vista muito desfocada
Keyframes na distância focal e na distância de foco para a aproximação.

Por velocidade renderizei direto para um vídeo MPEG em vez de uma sequência de PNG. Salve antes de renderizar.

A cena finalizada: a estátua de pedra na sala medieval, iluminada com calor pela janela
A cena finalizada: uma estátua 3D real dentro de uma sala de IA projetada.

Fiz outras versões do mesmo jeito: uma sala de tema egípcio com outro adereço do Sketchfab e uma sala de outra época com uma cadeira simples no meio.

Assista à versão em vídeo (48:21)

Tudo o que está acima também está no vídeo, se você preferir acompanhar na tela. O vídeo está em inglês.

Perguntas frequentes

Como faço um modelo 3D parecer pertencer a um fundo gerado por IA?

Combine as cores das texturas dele com um nó Hue/Saturation, ilumine-o com luzes quentes que imitem a sala (principal, de contorno e um preenchimento opaco), acrescente um shadow catcher para ele projetar sombras no piso projetado e suavize-o com um nó Brightness/Contrast e bloom.

Por que a projeção de câmera parece torta?

A geometria tem poucos polígonos. Subdivida as malhas várias vezes e projete as UVs a partir da vista da câmera de novo.

Borrar o mapa de profundidade ajuda o Stable Diffusion?

Sim. Um desfoque gaussiano de alguns pixels (usei 2–7) dá a ele mais espaço para interpretar. Borrar muito, ou acrescentar ruído, pode ajudar numa imagem única mas daria cintilação numa animação.

Que modelo do Stable Diffusion 3.5 cabe numa GPU doméstica?

O Medium, com cerca de 5 GB. O Large e o Large Turbo têm cerca de 16 GB cada.

Anton Tenitsky é artista 3D com mais de 15 anos em computação gráfica, que trabalhou com Nickelodeon, Gameloft, Marvel Rivals e muitos outros clientes. Mais sobre mim

Guias relacionados