電通総研 テックブログ

電通総研が運営する技術ブログ

Stability for Blenderでテクスチャ/CGを生成してみる

こんにちは。ISID 金融ソリューション事業部の若本です。

生成系の画像/自然言語処理AIが盛り上がりを見せる中、既存ソフトウェアへの組み込みや連携も活発に行われるようになってきました。
3DCG制作アプリケーションであるBlenderでも、アドオンを通じてBlender内でAIが使いやすくなりつつあります。先日、diffusionが使用できるアドオンである「Stability for Blender」がリリースされたのもその一例です。
今回はStability for Blenderを用いてできることと、その手順をまとめます。

Stability for Blenderについて

Stable Diffusionの開発を行っているStability AI社が提供する、Blender用のアドオン※です。
筆者は実施時点で最新であったv0.0.15をインストールして実施しました。v0.0.15時点の機能としては下記の3つがあります。

  • 文章から画像生成
    • 文章からテクスチャを生成する
  • 画像から画像生成
    • Renderingから画像を生成する
    • テクスチャからテクスチャを生成する
  • 画像からアニメーション生成
    • Renderingからアニメーションを生成

DreamStudio(β版)に登録し、API keyを発行する必要があります。
DreamStudioでは登録時に100creditほど使用可能になりますが、画像を生成するたびにcreditを消費していきますのでご注意ください。なお、API keyとcreditともにDreamStudioのMy Accountから確認可能です。

※Blender3.0以降がサポートされています。

Stability for blenderを使ってみる

stability for blenderで出力するまでの一連の流れを説明します(Blenderそのもののインストールは割愛します)。
公式サイトを参考に実施しました。

事前準備

リリースページからアドオンのzipファイルをダウンロードします。前述の通り、筆者はv0.0.15をインストールしています。

blenderを開き、メニューの「Edit>preferences>add-ons」を開きます。

右上部の「Install...」ボタンを押すとフォルダエクスプローラーが開くので、先ほどダウンロードしたzipファイルを選択します。選択後、以下のような画面になっていればOKです。

画面に「Stability」のタブが表示されていればインストール完了となります。

DreamStudio(β版)に登録し、API keyを取得します。

「Stability」のタブにAPI keyを入力すると以下のような画面になります。これで実施する準備が整いました。

文章からテクスチャを生成する

Blender上で与えた文章から画像を生成してみます。

まず、「init Type」の「Text Prompt Only」を選択します。
次に、promptの入力ボックスに欲しい画像を英語で指示します。今回は最初からデフォルトで設定されている下記promptをそのまま使用しました。

A dream of a distant galaxy

後は「Dream」を押下するだけで実行されます。
消費creditも併せて表示されるのは親切ですね。

10秒足らずで画像が生成されました。非常にお手軽です。

もちろん、生成した画像はテクスチャとしてそのまま使用できます。

Renderingから画像を生成する

画像から画像を生成する例として、Renderingの結果から画像を生成してみます。
まずは「init Type」の「Texture」を選択します。

メニューから「Render>Render image」を押下すると、新規ウィンドウでRenderingが実行されます。
カメラを設定している以前の記事のプロジェクトを使用しました。

Rendering画面からStabilityを実行します。
promptは以下としました。

An empty park with snow, concept art, matte painting, HQ, 4k

前述の通り、「Dream」を押下することで画像が生成されます。
Blender上で見える景色をベースに画像を生成することができました。

ここで、「Stability」タブの「input Options」から各種パラメータを設定できます。

パラメータ名 概要 default
Init Strength 入力画像にどれだけ準拠するかを設定します。 0.5
Prompt Strength プロンプトにどれだけ準拠するかを設定します。 7.5
Set seed Stable Diffusionのseedを設定します。seedを変えると異なる画像が出力されます。 555555
Steps Stable DiffusionのStep数を設定します。 50
Engine 使用するStable Diffusionモデルを設定します。(あくまで推測ですが、GENERATE_512_2_1は解像度512pixelでStable diffusion ver2.1を表していると思われます) GENERATE_512_2_1
Sampler Stable DiffusionのSampler(ノイズ除去アルゴリズム)を設定します。 K_DPMPP_2S_ANCESTRAL

主に出力の品質や、入力のバランス(文章と画像の情報どちらを優先するか)に関するパラメータが設定できます。ここでは、「Init strength」を変更してみます。

「Init strength」を変化させると以下のようになります。

「Init strength」を大きくするほど、Renderingされた情報に準拠するような画像の生成がされました。
一方で、小さくするほどpromptの「An empty park with snow」が重視され、元々置いていたオブジェクトは別のものに解釈される/消えることが確認できました。

※今回、Renderingからアニメーション生成の手順も実施しましたが、数時間経過しても処理が進まず断念しました。

おわりに

今回はStability for Blenderの利用手順とできることを調査しました。
執筆時点でv0.0.16も公開されており、「高解像度化」が新たに機能として追加されるなど、活発に開発が続けられています。今後より使いやすく、かつ機能を拡充していくことでクリエイター支援ツールとして活用されることが期待されます。

AIモデルの3DCGソフトウェアへの組み込みは今後も様々な形で発展していくと思いますので、今後もキャッチアップしていきたいと思います。

ここまでお読みいただきありがとうございました。
現在ISIDはweb3領域のグループ横断組織を立ち上げ、Web3およびメタバース領域のR&Dを行っております(カテゴリー「3DCG」の記事はこちら)。 もし本領域にご興味のある方や、一緒にチャレンジしていきたい方は、ぜひお気軽にご連絡ください!
私たちと同じチームで働いてくれる仲間を、是非お待ちしております!
ISID採用ページ

執筆:@wakamoto.ryosuke、レビュー:@yamada.y
Shodoで執筆されました