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
ダウンロードしたファイルは7zip形式なので、7zipで展開することで格納されているアドオン本体を取り出すことができます。
7zipがインストールされていない場合はこちらから(7-zip)ダウンロードすることができます。
格納されているdream_textures-win32-cuda.zipを任意の場所に保存してください。
また、Blenderを起動する際、管理者権限で実行しないとアドオンを有効にする際にエラーが起きるので、Blenderを管理者権限で実行します。
起動後、Blenderのアイコンを右クリックしてプロパティを選択します。
プロパティの互換性から「管理者としてこのプログラムを実行する」にチェックマークを入れます。
適応(A) →OKを押して完了です。
画面右上のEdit→Preference→Add-onsのInstall an addonをクリックして先ほど保存したzipファイルを選択してアドオンをインストールします。
アドオンのインストールには少し時間がかかります。
アドオンがインストールできたらBlender上でStable Diffusionを動かす準備をします。
Preferenceからアドオンの設定を開きます。
学習済みモデルのダウンロード
次にHugging Faceにアクセスしアカウントを作成します。
Dream TexturesアドオンのSetup Model Weightsの項目に「Download Weights from Hugging Face」というボタンがあるのでクリックしてHugging Faceのサイトにアクセスします。
アクセスし、既にアカウントがある方は「Log in」を、アカウントがない方は「Sign up」をクリックして下さい。
ログインし、利用規約を確認後に「Agree and access repository」をクリックします。
するとモデルをダウンロードできるようになるのでDownloda the weightsの項目から「sd-v1-4.ckpt」をクリックしてダウンロードし、適当なフォルダに保存します。
ここまでできたらBlenderのアドオン設定に戻ります。
PreferenceのImport Model Weightをクリックし、先ほどダウンロードしたsd-v1-4.ckptを選択し、インストールします(少し時間がかかります)。
インストールが完了したらPreferenceを保存してBlenderを再起動してください。
Real-ESRGAN Modelのダウンロード
Blenderを再起動し、Shadingウィンドウに移動してPlaneとマテリアルを追加します。
Shader Editor上で[N]キーを押してサイドパネルを表示させると、Dreamというタブがあるので選択します。
ここで生成するテクスチャの設定を行います。
AI Upscalingという項目があるので「Download Weights from GitHub」をクリックして、ダウンロードサイトに移動します。
Real-ESRGAN Modelは生成した画像のサイズを後から変更することができます。
始めから高画質で画像を生成すると時間がかかるので、後からサイズを変更できる便利な機能です。
サイトに移動したら、下記画像で赤く囲ってある箇所のリンクをクリックして「realesr-general-x4v3.pth」をダウンロードし、任意のフォルダに保存します。
保存したら「Import Model Weights」をクリックしてrealesr-general-x4v3.pthをインストールします。
AI Upscalingの箇所が下記の画像の様になったら完了です。
UI説明
Blenderを起動したら、画面上部のShadingウィンドウに移動します。
移動して[N]キーを押すと画面右側に「Dream」というタブがあります。
クリックすると、Dream Textureの設定画面が表示されます。
Dream Textureで画像を生成し、Historyでこれまで作成した画像の履歴を見ることが可能です(Blenderを閉じると履歴はリセットされます)。
実際に画像を生成していきます。
生成できる画像のプリセットが3種類あるので、それぞれ解説します。
Texture
① | Subject | 生成したい画像の元となるワードを入力します。 |
② | Seamless | つなぎ目の無いシームレスな画像を生成することができます。 |
③ | Negative | 生成した画像に不要な箇所がある場合、その要素のワードを追加すると生成される画像に含まれなくなります。 |
④ | Size | 画像のサイズを指定することができます。 |
Photography
この項目はカスタム性が高すぎるため詳細は省略して説明します。
① | Subject | 生成したい画像の元となるワードを入力します。 |
② | Framing | 画像の範囲をどのように切り取るかを設定することができます。 |
③ | Position | カメラ(視点)の位置を設定することができます。 |
④ | Film Type | 画像の風合いを選択することができます。 |
⑤ | Camera Settings | 仮想カメラの詳細な設定をすることができます。Costomを選択するとカメラ設定を文章で指示することが可能です。 |
⑥ | Shooting Context | どのような環境下での撮影かを選択することができます。 |
⑦ | Lighting | 環境光の設定ができます。 |
⑧ | Seamless | つなぎ目の無いシームレスな画像を生成することができます。 |
Concept Art
① | Subject | 生成したい画像の元となるワードを入力します。 |
② | Subject Type | 画像のタイプを選択することができます。 |
③ | Genre | 画像のテーマを選択することができます。 |
④ | Seamless | つなぎ目の無いシームレスな画像を生成することができます。 |
File Batch
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のプロンプトで選択し、Generateをクリックします。
すると3枚の画像がそれぞれ生成されます。
Source Image
① | Open | 既存の画像をもとに画像を生成することができます。 |
② | Fit to width/height | 画像のサイズを元画像に合わせることができます。 |
③ | Noise Strength | 元画像の影響をどれだけ与えるかを設定することができます。 |
④ | Color Correct | 生成される画像を元の画像の色に近づけることができます。 |
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ノードのColorとPrincipal BSDFのBase Colorをつなぐとテクスチャが表示されます。
マッピングを変更したい場合はImage Textureノードを選択して[Ctrl+T]キーを押すとMappingとTexture Cordinateノードが自動的に接続されます。
Node Wranglerアドオンがインストールされてない場合は[Shift+A]キーでノードを追加してください。
Seamlessにチェックマークが入っていたので、Scaleを変更してもつなぎ目がありません。
他の画像をもとに画像を生成する方法
次に他の画像をもとに新たに画像を生成する方法を説明します。
今回は自分のアイコンに有機的な要素を追加してみます。
まずはUV Editingウィンドウに移動し、Dream Texturesの設定を下記の画像のようにします。
Source Imageの箇所にあるOpenを押して元になる画像を選択します。
ここでUV EditingウィンドウとSource Imageで選択している画像が一致していることを確認してください。
PromptのSubjectには「organs green gore nature root fantasy highquality」と入力しました。
準備が出来たら、Generateをクリックして画像の生成を開始します。
少し待つと画像が生成されました。
元画像と生成された画像の比較です。
画像の一部をAIで補完する方法
先ほどは全体的に元画像を変更する方法を紹介しましたが、ここでは画像の一部を変更する方法を紹介します。
Texture Paintウィンドウに移動し、変更を施したい画像を選択します。
ブラシを使用して変更したい部分を塗ります。
Source Imageの箇所にあるInpaintを選択してGenerateをクリックします。
すると先ほどブラシで透明にした部分のみが変更されました。
レンダリング結果に対して Dream Textures を実行する方法
始めにレンダリングする環境のサンプルを作成します。
今回はCubeを複数配置し、ライトを追加しました。
ライトのPowerを240に変更し、カラーのHexをFFC89Cに調整します。
次にレンダリングの設定をします。
Render PropertiesからRender EngineをCyclesに変更して、DeviceをGPUに変更して下さい。
Output PropertiesからResolutonを512×512に変更します。
Render PropertiesのDream Textureを有効にして下記の画像のように設定を変更します。
Promptには「Floating dead heads」と入力しました。
画面上部のCompositingウィンドウに移動し、Use Nodesを有効にしてRender LayersのDream TexturesとImageのソケットをつなぎます。
ここでBlendファイルを保存して、Render→Render Imageでレンダリングを開始します。
レンダリングすると、このように配置してあるCubeを元にプロンプトに指示した内容の画像が生成されます。
完成した画像はSTYLYでも使用することが可能です。
STYLYにアップロードする方法
3DモデルをSTYLYにアップロードしてみましょう。
アカウント作成方法
STYLYにアップロードする方法
UnityからSTYLYにアップロードする方法
STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions
Certified (QA) by Shota Shawn Yoshizawa
Edited by SASAnishiki