カメラを動かし、オブジェクトを動かせば、数秒で新しいコンセプト画像が現れます。この構成は、Blenderのビューポートをキャプチャし、ComfyUIのStable Diffusionにライブで通します。このような制御可能なAIは、すでにクライアントワークで使っています。
最高の品質には、Fluxのほうが良い選択です。リアルタイムではありませんが、見事な結果が得られます。このガイドは速度についてで、ゼロから構築できる、シンプルで速い構成を説明します。
ポイント
- キャプチャ: MixlabのScreen Shareノードが、Blenderのウィンドウの一部を取り込みます。
- 深度: Depth Anything V2と、モデルに合った深度ControlNet(SD 1.5またはSDXL)。
- モデル: 素の速さならSD 1.5、6ステップ、CFG 1.5ではるかに良い画像が出るRealVisXL Lightning。
- Blenderのコツ: 80 mmレンズ、オーバーレイなし、正方形のキャプチャ領域。
- 速度: 24GBのPCで、SDXL Lightningの画像1枚あたり約7秒。VRAM 4GBのノートPCではもっと遅くなります。
ワークフローを構築する
1. デフォルトのテンプレートから始める
ComfyUIがデフォルトの画像生成テンプレートで開かない場合は、Workflow → Browse Templatesにあります。区別しやすいように、ポジティブプロンプトを緑、ネガティブを赤にします(右クリック → Color)。
2. 空のlatentを画面キャプチャに置き換える
Screen ShareノードはMixlabパックにあり、Custom Nodes Managerからインストールします。レイアウトは常にボックスの少し外側まで描画されます。これは直せなかったJavaScriptの癖で、問題はありません。
現在のフレームを、便利なノードが多数入ったパックのEssentialsのImage Resizeに接続します。モデルは決まったサイズで学習されているので、リサイズは重要です。Stable Diffusion 1.5は512 px、SDXLとFluxは1024 pxです。それに合わせると、グリッチが減って結果が良くなります。
3. エンコード、深度の読み取り、ControlNetの適用
- VAE Encodeが画像を潜在空間に圧縮するので、処理がはるかに速くなります。チェックポイントのVAEを接続し、latentをKSamplerに送ります。
- Depth Anything V2がキャプチャの深度を読み取ります。モデルはModel Managerから入手し(私は最大のものを使います)、ブラウザを再読み込みして、実行中に深度マップを確認できるようプレビューノードを追加します。
- Apply ControlNetが、深度画像、両方のプロンプト、VAEを受け取り、KSamplerに渡します。
- Load ControlNet Model:モデルのファミリーごとに専用のControlNetがあります。SD 1.5には、Model ManagerからControlNet v1.1 depthモデルを入手します。
Blenderのシーンを設定する
Mixamo(キャラクターとアニメーションの無料ライブラリ)のキャラクターにポーズを付けました。Great Swordのアニメーションからしゃがんで剣を受けるポーズで、アーマチュアを非表示にしたFBXとしてBlenderにインポートします。Mixamoのキャラクターは、私が販売するパッケージでは商用利用できないので、それ用には自作しました。自分のレンダリングなら、Mixamoが簡単な出発点です。キャラクターの解剖学は良くなくても構いません。深度ControlNetは、非常に粗い形にも対応します。
シーンの残りはキューブ、球、円柱です。ライトセーバーには円柱を使い、都市は箱を何度も複製して引き伸ばしたものです。カメラを置き、ライトを追加して、レイトレーシングをオンにしたEeveeを使います。
キャプチャ前に調整することが2つあります。
- 焦点距離を80 mmにします。 広角の歪みは解剖学を間違って見せ、AIモデルはそれを嫌います。
- オーバーレイとパネルを非表示にします(Nを押してサイドパネルを隠します)。キャプチャにワイヤーフレームやオーバーレイが入ると、画像の一部と解釈されることがあります。
ライブにする
画面の半分にBlender、もう半分にComfyUIを置く(Win+左 / Win+右)か、2台のモニターを使います。Screen ShareノードでShare Screenをクリックし、Blenderのウィンドウを選んでから、Set Areaでフレームをドラッグして描きます。モデルに合わせて正方形を目指してください。私はズームアウトして設定し直し、もっと寄せました。
Live Runをクリックし、続けてRunをクリックします。(最初の実行は、チェックポイントとControlNetモデルを選び忘れて詰まりました。「null」ではなく、リストから選んでください。)
SD 1.5:速いが粗い
プロンプト「a woman holding a red lightsaber in a cyberpunk city at night during rain」で、素のStable Diffusion 1.5の最初の結果は、かなり醜いものでした。2つの対処が役立ちました。
- ControlNetの強度を約0.8に下げ、end percentも下げます。ControlNetが終わりの前にガイドを止め、モデルが仕上げる自由度が増します。
- ファインチューンしたモデルを使う。 洗練されたSD 1.5モデルのepiCPhotoGasmに切り替えると、結果が良くなりました。
キューを**Run (Instant)**に切り替えると、カメラを動かしている間も、レンダリングし続けます。直前のキャプチャをまだ処理しているので、少し遅延があります。素のSD 1.5はサムネイルが示すよりずっと見栄えが悪いものの、驚くほど速く、低スペックなシステムでのテストには十分です。
SDXL Lightning:ずっと良い
最初に共有を止めてください。ノードはリソースを消費します。refresh rateを50に下げるのも役立ちます。
その後、アップグレードします。
- チェックポイント: Civitaiから、Lightning版のRealVisXL。Lightningモデルは、はるかに少ないステップで動きます。
- 解像度: 1024 × 1024。 SDXLの学習サイズです。512では劣る画像になります。Depth Anythingの解像度も変更してください。
- ControlNet: Model ManagerからSDXL depthのControlNet。
- KSampler: 6ステップ、CFG 1.5。
SD 1.5ほど速くはありません。VRAM 4GBの私のノートPCではもっと遅く、24GBのPCでは約7秒かかりました。しかし、画像ははるかにはるかに良くなります。カメラを動かすか、箱を掴んで新しい場所に置き、もう一度実行してください。
プロンプトでシーンを変える
同じブロックアウトに、「medieval night in front of a castle, gloomy day」を使うと、騎士に変わりました。プロンプトに苔、岩、草を加え、ControlNetの強度を下げると、より自然なシーンになりました。最初の顔は面白い出来でしたが、次の実行ではヘルメットで覆われ、城もかなり良くなりました。
ジオメトリが良いほど、結果も良くなります。箱を、ぼこぼこした地面のメッシュや本物の城のモデルに入れ替えると、レンダリングは大きく向上します。それでも、極めて簡素な構成でこれだけできるのは印象的です。
次のステップ
小道具(銃、戦車、兵士)をデザインする、この構成の後のバージョンは、Blenderからライブで作るSF銃をご覧ください。スクリーンショットのフォルダ全体を、Fluxでより高い品質で一括レンダリングするには、3Dからコンセプトアートまでの自動化パイプラインをご覧ください。ワークフローは私のPatreonにあります。
動画版を見る (15:16)
上の内容はすべて動画でも説明しています。画面を見ながら進めたい方はこちらをどうぞ。 動画は英語です。
よくある質問
Blenderからのリアルタイムのレンダリングには、どのモデルが最適ですか?
素のStable Diffusion 1.5が最速ですが、見た目は粗いです。epiCPhotoGasmのようなファインチューンしたSD 1.5モデルのほうが良くなります。SDXL Lightning(RealVisXL)は見た目がずっと良く、6ステップ、CFG 1.5で高速です。
Blenderで80 mmのレンズを使うのはなぜですか?
広角レンズは解剖学を歪め、AIモデルは歪んだ体をうまく扱えません。長めの焦点距離なら、プロポーションが自然に保たれます。
キャプチャするビューポートに、ワイヤーフレームやオーバーレイが見えていてもいいですか?
いいえ。モデルが画像の一部と解釈することがあります。キャプチャする前に、オーバーレイとサイドパネルを非表示にしてください。
