Blender ウォッチング

画像生成AI「Stable Diffusion」の画像を「Blender」のテスクチャにする方法

 本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

自動生成したテクスチャの作例

 今回は前回インストールした画像生成AI「Stable Diffusion」を「Blender」のテクスチャにできるアドオン「Dream Textures」の使用方法や注意点などを解説します。

テスト環境

 筆者のテスト環境は以下の通りです。解説は「Blender 3.3」Windows版」と、「Dream Textures」v0.0.6を使用して行っています。

  • 【CPU】Intel Core i7-2600
  • 【OS】Windows 10 Pro
  • 【GPU】NVIDIA GeForce RTX 2060 12GB
  • 【メモリ】16GB

 アドオン自体の動作環境については、前回をご覧ください。

 実行時はメモリを大量に消費するため、実行前に作業中のファイルは保存しておき、他のアプリは終了してなるべくメインメモリを空けておくことをお勧めします。

利用方法

 画面を[Shading]ワークスペース(①)に切り替え、[シェーダーエディター]右端の[≺](②)をクリックしてサイドバーを表示します。

[Shading]ワークスペース(①)に切り替え、[シェーダーエディター]右端の[≺](②)をクリックしてサイドバーを表示
  1. [Dream Texture]タブ(①)をクリックして切り替えます。
  2. パネル内(②)の[subjects]に欲しいテクスチャの「呪文」(プロンプト)を入れます(「wood tile」など)。
  3. [幅]と[高さ]にテクスチャの解像度を指定します。大きな数値を入れるとVRAM容量によっては動作しなくなりますので注意しましょう。
  4. シームレスにしたい場合は下の[seamless]をONにします。
  5. 最後に[Generate](③)をクリックすると実行します。
[Dream Texture]タブ(①)をクリックして切り替え、パネル内(②)の[subjects]に呪文、[幅]と[高さ]にテクスチャの解像度を指定、シームレスにする場合は[seamless]をONに。[Generate](③)をクリックで実行

 パネル内に現在行っている処理が表示されます。初回起動時と後述の[Full Precision]オプション切り替え時、エラー発生後は「Loading Model」と表示され、読み込みに大量のメインメモリと時間を費やします。しばらく待ちましょう。

パネル内に現在の処理を表示

 左端の[画像エディター]内に画像が表示され、「Step 3/25」のようにタイトルに進捗状況が表示されとともに、サイドバーのパネル内にもプログレスバーが表示されます。

[画像エディター]に処理中のテクスチャ画像が表示される

 画像が完成すると、同時に[シェーダーエディター]内に[画像テクスチャ]ノードが追加され、「プリンシプルBSDF」ノードにつないで利用できるようになります。

追加された[画像テクスチャ]ノード

 この画像は自動的に「パック」(添付)され、現在作業中の「blend」ファイルの保存時、ファイルの一部として一緒に保存されます。また、[画像エディター]のハンバーガーメニュー(≡)の[画像]-[名前を付けて保存]コマンドで独立したファイルとして保存もできます。

生成された画像をテクスチャに使用した。[画像エディター]内からblendファイルと一緒にハンバーガーメニュー(≡)-[画像]-[名前を付けて保存]で保存可能

詳細な設定

 パネル内の[Advanced Configuration]には、様々な設定オプションがあります。

パネル内の[Advanced Configuration]オプション

Full Precision

 画像の品質が向上します。切り替え時にメインメモリを、生成中にVRAMを大量に使用します。容量が足りない場合は無効になります。

 実際に画像を出力してみたところ、2つの画像間に差異を確認できたものの、品質が向上しているのかどうかは不明です。

[Full Precision]使用前と使用後。もっとわかりやすい例があるかもしれない

ランダムシード

 生成には呪文だけでなく、乱数も関係します。アドオンが画像を生成すると、使用した乱数の「シード」が名前に付けられ、パネル内の[シード]にも入力されます。

 [ランダムシード]をOFFにすると、この[シード]値を使用し、同じパターンの画像を生成します。ただし執筆時点(v0.0.6)では後で数値入力したり、解像度を変更すると同じパターンにはなりません。つまり、直前の画像に[Full Precision]オプションと次の[ステップ]、[CFG Scale]を試す以外の用途はないようです。

ランダムシードをOFFにすることで、直前の画像の生成が再実行可能に

ステップ

 小さいほどすぐ終わり、大きいほど高品質になります。

CFG Scale

 呪文を考慮する強さ。小さくすると呪文よりランダムなパターンの影響が大きくなります。「1.0」以下を入れるとエラーになりますので注意。

Sampling

 サンプリングタイプを変更します。前バージョンでは如実に画像が変わりましたが、本バージョンでは挙動が変わったのか、シードが同じ場合、どれも同じ画像しか生成してくれなくなったようです。今後また挙動が代わる可能性があります。

既存の画像の変更

 既存の画像ファイルを参照し、「subjects」で変化を付けることもできます。あまり大きな画像を参照させると、VRAMメモリ不足で生成できませんので注意してください。

 画像の指定方法は2つあります。

Inpaint Open Image

 [UVエディター]や[画像エディター]で開いている画像に変化を付けます。生成された画像は自動的にこれらのエディターに設定されますので、次々と変化を加えていきたい時に便利です。

Init image

 外部ファイルを指定します。[開く]をクリックし、画像ファイルを指定するか、左端の「リンクボタン」で内部の画像を選択します。「強さ」で影響力を調整可能です。「1.0」にするとエラーがでるので注意してください。

 [Fit to width/height]オプションで大きさが違う画像でも利用できますが、縦横の比率は同じでないとエラーがでます。

呪文「fur」でスザンヌさん(♀)を変化させてみた例

呪文設定のコツ

 食パンのカット面が欲しいのに「bread」を入れたら全体が出てきたり、「fur」と入れたら毛皮を着ている人が出てきたりする時は、「bread slice」「fur surface」のように、「surface」「floor」「paper」「wall」「Slice」「Skin」を付けると、望みの結果になる確率が高くなります。

「bread」と「bread slice」の結果

まとめ

 承知していることだとは思いますが、現時点では、RAMの消費量や生成時間、VRAMによる解像度の制限、そしてアドオンが加えた変更で実在しない物のテクスチャになってしまう可能性があるため、少なくともフォトリアル用途では素材テクスチャサイトや同様のアドオンを使う方が時間的にも品質的にもいいと思います。

 看板や本などのデザインに使用する方がいいのかもしれませんが、こちらはこちらで知らないうちに他人のデザインやキャラクターを使用してしまう危険があります。

 下は前回の画像作成時に「gohan」と入れて生成させてみた画像です。こういうファンアートらしき物が混じることがあるので注意が必要です。

呪文「gohan」で生成した画像(編集部注:著作権上問題がある可能性があるため画像をぼかしています)

 一方で、既存の画像に変化を与える機能は重宝するかもしれません。サビ(rust)や汚れ(grunge)、ひび(crack)などはうまく動作しているように思います。

缶の上部に「rust」を適用してみた例

終わりに

 最後に少し批判が並んでしまいましたが、それでも使用中は次々とテクスチャを作って楽しく遊んでしまいますし、意外な物が生成されてそれが発想の助けとなることもありました。商用はさておき、ホビー用途では上記の問題は気にしなくてもいいかもしれません。

 ではまた。