【Blender】Stable Diffusionを使用する方法

Stable Diffusion

Stable Diffusionとは任意のテキストを入力し、そのワードから画像を生成してくれるText To ImageのオープンソースAIです。

今回はBlender上でStable Diffusionを使用するためにDream Texturesアドオンを使用します。

Blenderのバージョンは3.3LTSを使用します。

導入方法

下記のGitHubリポジトリのリリースノートからdream_textures-windows-cuda.7zをダウンロードします。基本的に最新リリースを使用してください。

https://github.com/carson-katri/dream-textures/releases

dream_textures-windows-cuda.7z

dream_textures-windows-cuda.7z

ダウンロードしたファイルは7zip形式なので、7zipで展開することで格納されているアドオン本体を取り出すことができます。
7zipがインストールされていない場合はこちらから(7-zip)ダウンロードすることができます。
格納されているdream_textures-win32-cuda.zipを任意の場所に保存してください。

また、Blenderを起動する際、管理者権限で実行しないとアドオンを有効にする際にエラーが起きるので、Blenderを管理者権限で実行します。
起動後、Blenderのアイコンを右クリックしてプロパティを選択します。
プロパティの互換性から「管理者としてこのプログラムを実行する」にチェックマークを入れます。
適応(A) →OKを押して完了です。

Blenderを管理者権限で実行

Blenderを管理者権限で実行

画面右上のEdit→Preference→Add-onsのInstall an addonをクリックして先ほど保存したzipファイルを選択してアドオンをインストールします。

アドオンをインストール

アドオンをインストール

アドオンのインストールには少し時間がかかります。

アドオンがインストールできたらBlender上でStable Diffusionを動かす準備をします。

Preferenceからアドオンの設定を開きます。

Preference

Preference

学習済みモデルのダウンロード

次にHugging Faceにアクセスしアカウントを作成します。

Dream TexturesアドオンのSetup Model Weightsの項目に「Download Weights from Hugging Face」というボタンがあるのでクリックしてHugging Faceのサイトにアクセスします。

Download Weights from Hugging Face

Download Weights from Hugging Face

アクセスし、既にアカウントがある方は「Log in」を、アカウントがない方は「Sign up」をクリックして下さい。

Log in or Sign up

Log in or Sign up

ログインし、利用規約を確認後に「Agree and access repository」をクリックします。

Agree and access repository

Agree and access repository

するとモデルをダウンロードできるようになるのでDownloda the weightsの項目から「sd-v1-4.ckpt」をクリックしてダウンロードし、適当なフォルダに保存します。

sd-v1-4.ckpt

sd-v1-4.ckpt

ここまでできたらBlenderのアドオン設定に戻ります。

PreferenceのImport Model Weightをクリックし、先ほどダウンロードしたsd-v1-4.ckptを選択し、インストールします(少し時間がかかります)。

Import Model Weight

Import Model Weight


インストール

インストール

インストールが完了したらPreferenceを保存してBlenderを再起動してください。

preferenceを保存

preferenceを保存

Real-ESRGAN Modelのダウンロード

Blenderを再起動し、Shadingウィンドウに移動してPlaneとマテリアルを追加します。

Planeとマテリアルを追加

Planeとマテリアルを追加

Shader Editor上で[N]キーを押してサイドパネルを表示させると、Dreamというタブがあるので選択します。
ここで生成するテクスチャの設定を行います。

Dreamタブで生成するテクスチャの設定

Dreamタブで生成するテクスチャの設定

AI Upscalingという項目があるので「Download Weights from GitHub」をクリックして、ダウンロードサイトに移動します。

Download Weights from Github

Download Weights from Github

Real-ESRGAN Modelは生成した画像のサイズを後から変更することができます。
始めから高画質で画像を生成すると時間がかかるので、後からサイズを変更できる便利な機能です。

サイトに移動したら、下記画像で赤く囲ってある箇所のリンクをクリックして「realesr-general-x4v3.pth」をダウンロードし、任意のフォルダに保存します。

realesr-general-x4v3.pth

realesr-general-x4v3.pth

保存したら「Import Model Weights」をクリックしてrealesr-general-x4v3.pthをインストールします。

Import Model Weights

Import Model Weights


realesr-general-x4v3.pth

realesr-general-x4v3.pth

AI Upscalingの箇所が下記の画像の様になったら完了です。

AI Upscaling

AI Upscaling

UI説明

Blenderを起動したら、画面上部のShadingウィンドウに移動します。

移動して[N]キーを押すと画面右側に「Dream」というタブがあります。

クリックすると、Dream Textureの設定画面が表示されます。

Dream Textureで画像を生成し、Historyでこれまで作成した画像の履歴を見ることが可能です(Blenderを閉じると履歴はリセットされます)。

Shading→[N]キー→「Dream」タブ

Shading→[N]キー→「Dream」タブ

実際に画像を生成していきます。

生成できる画像のプリセットが3種類あるので、それぞれ解説します。

Texture

Texture

Texture

Subject 生成したい画像の元となるワードを入力します。
Seamless つなぎ目の無いシームレスな画像を生成することができます。
Negative 生成した画像に不要な箇所がある場合、その要素のワードを追加すると生成される画像に含まれなくなります。
Size 画像のサイズを指定することができます。

Photography 

Photography 

Photography

この項目はカスタム性が高すぎるため詳細は省略して説明します。

Subject 生成したい画像の元となるワードを入力します。
Framing 画像の範囲をどのように切り取るかを設定することができます。
Position カメラ(視点)の位置を設定することができます。
Film Type 画像の風合いを選択することができます。
Camera Settings 仮想カメラの詳細な設定をすることができます。Costomを選択するとカメラ設定を文章で指示することが可能です。
Shooting Context どのような環境下での撮影かを選択することができます。
Lighting 環境光の設定ができます。
Seamless つなぎ目の無いシームレスな画像を生成することができます。

 

Concept Art 

Concept Art 

Concept Art

Subject 生成したい画像の元となるワードを入力します。
Subject Type 画像のタイプを選択することができます。
Genre 画像のテーマを選択することができます。
Seamless つなぎ目の無いシームレスな画像を生成することができます。

 

File Batch

Text Editorで複数のプロンプトを入力すると、連続でそれぞれの指示を元に画像が生成されます。

Text Editorを開き、複数の指示を入力します。

Text Editor

Text Editor

今回はBeautiful sea view、View from the top of the mountain at dusk、View of the valley through which the river flowsの3つを入力しました。

File Batch

File Batch

入力したテキストをFile Batchのプロンプトで選択し、Generateをクリックします。

すると3枚の画像がそれぞれ生成されます。

3枚の画像がそれぞれ生成されます

3枚の画像がそれぞれ生成されます

Source Image

Source Image

Source Image

Open 既存の画像をもとに画像を生成することができます。
Fit to width/height 画像のサイズを元画像に合わせることができます。
Noise Strength 元画像の影響をどれだけ与えるかを設定することができます。
Color Correct 生成される画像を元の画像の色に近づけることができます。

 

Advanced

Advanced

Advanced

Precision 画像の精度を上げることができます。GPUの性能に依存するのでPCのスペックに応じて切り替えるのをおすすめします。
Random Seed シード値をランダムにします。オフにするとシード値を直接変更することができます。
Steps この値が高いほど精度が上がりますが、PCへの負荷が大きくなりBlenderが落ちる可能性があるので25〜50までが目安となります。
CFG Scale 生成される画像がどの程度入力した指示に従うかを表しています。デフォルトでは2になっていますが、強制的に指示に従わせたい場合には数値を高くしてみてください(15〜20程度)。
Sampler どのサンプラーを使用するかを選択することができます。サンプラーによって結果が変わるのでそれぞれ試してみてください。
Show Steps 画像生成の進行度合いを確認することができます。基本的にオンのままでよいと思います。

使用方法

上記の解説をもとに設定をしていきます。

Dream TextureはPCに負荷がかかりやすいので、こまめにBlendファイルを保存するようにしてください。

今回は石のテクスチャを作成したいので下記の画像の様に設定しました。

使用方法

使用方法

設定し、Generateボタンを押すと画像の生成が開始されます。

初回生成時は時間がかかる場合があるので待ちましょう。

進行状況はGenerateボタンの位置に表示されます。

初回生成時は時間がかかる場合があります

初回生成時は時間がかかる場合があります

生成が完了するとImage Textureノードとして出力されます。

Image Texture ノードとして出力

Image Texture ノードとして出力

Image TextureノードのColorとPrincipal BSDFのBase Colorをつなぐとテクスチャが表示されます。

Image Texture ノードのColorとPrincipal BSDFのBase Colorをつなぐ

Image Texture ノードのColorとPrincipal BSDFのBase Colorをつなぐ

マッピングを変更したい場合はImage Textureノードを選択して[Ctrl+T]キーを押すとMappingとTexture Cordinateノードが自動的に接続されます。

Node Wranglerアドオンがインストールされてない場合は[Shift+A]キーでノードを追加してください。

ctrl+[T]キー

Ctrl+[T]キー

Seamlessにチェックマークが入っていたので、Scaleを変更してもつなぎ目がありません。

つなぎ目がみえない

つなぎ目がみえない

他の画像をもとに画像を生成する方法

次に他の画像をもとに新たに画像を生成する方法を説明します。

今回は自分のアイコンに有機的な要素を追加してみます。

自分のアイコン

自分のアイコン

まずはUV Editingウィンドウに移動し、Dream Texturesの設定を下記の画像のようにします。

Dream Texturesの設定

Dream Texturesの設定

Source Imageの箇所にあるOpenを押して元になる画像を選択します。

Openを押して元になる画像を選択

Openを押して元になる画像を選択

ここでUV EditingウィンドウとSource Imageで選択している画像が一致していることを確認してください。

UV EditingウィンドウとSource Imageで選択している画像が一致

UV EditingウィンドウとSource Imageで選択している画像が一致

PromptのSubjectには「organs green gore nature root fantasy highquality」と入力しました。

準備が出来たら、Generateをクリックして画像の生成を開始します。

少し待つと画像が生成されました。

organs green gore nature root fantasy highquality

organs green gore nature root fantasy highquality

元画像と生成された画像の比較です。

比較画像

比較画像

画像の一部をAIで補完する方法

先ほどは全体的に元画像を変更する方法を紹介しましたが、ここでは画像の一部を変更する方法を紹介します。

Texture Paintウィンドウに移動し、変更を施したい画像を選択します。

ブラシを使用して変更したい部分を塗ります。

Texture Paint ウィンドウで変更したい部分を塗る

Texture Paint ウィンドウで変更したい部分を塗る

Source Imageの箇所にあるInpaintを選択してGenerateをクリックします。

すると先ほどブラシで透明にした部分のみが変更されました。

透明にした部分のみが変更された

透明にした部分のみが変更された

レンダリング結果に対して Dream Textures を実行する方法

始めにレンダリングする環境のサンプルを作成します。

今回はCubeを複数配置し、ライトを追加しました。

Cubeとライトを追加

Cubeとライトを追加

ライトのPowerを240に変更し、カラーのHexをFFC89Cに調整します。

Powerを調整

Powerを調整


カラーを調整

カラーを調整

次にレンダリングの設定をします。

Render PropertiesからRender EngineをCyclesに変更して、DeviceをGPUに変更して下さい。

Render Engine→Cycles、Device→GPU

Render Engine→Cycles、Device→GPU

Output PropertiesからResolutonを512×512に変更します。

512×512

512×512

Render PropertiesのDream Textureを有効にして下記の画像のように設定を変更します。
Promptには「Floating dead heads」と入力しました。

Floating dead heads

Floating dead heads

画面上部のCompositingウィンドウに移動し、Use Nodesを有効にしてRender LayersのDream TexturesとImageのソケットをつなぎます。

Compositing

Compositing

ここでBlendファイルを保存して、Render→Render Imageでレンダリングを開始します。

レンダリングを開始

レンダリングを開始

レンダリングすると、このように配置してあるCubeを元にプロンプトに指示した内容の画像が生成されます。

生成された画像

生成された画像

完成した画像はSTYLYでも使用することが可能です。

STYLYにアップロードする方法

3DモデルをSTYLYにアップロードしてみましょう。

STYLYアカウントを作成する

アカウント作成方法

STYLYにアップロードする方法

UnityからSTYLYにアップロードする方法

STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions

Certified (QA) by Shota Shawn Yoshizawa
Edited by SASAnishiki