IT パソコン周辺機器

【Stable Diffusion】SDの紹介と初期設定

投稿日:2023年5月16日 更新日:

最近、面白いな~と思ったStable Diffusionを紹介します。

Stable Diffusionは最近流行りのAIで作画してくれるソフトです。条件は色々とありますが、原則無料で使えます。どうなっているのかはわかりませんが、可愛い女の子を初めとした、アニメ、風景画等々なんでも(?)生成してくれます。

mountain

この画像はStable Diffusionに描いてもらったものです。
2023/05/13の情報を元にしています。

 

1. Stable Diffusionとは?

Stable Diffusion(以下、SD)はAIが自動的に画像を生成してくれるツールです。
何を持ってAIと言うかは置いておいて、最近流行りのAIにほにゃららというツールになります。
SDでは、プロンプトを記載して、それに沿った絵を描いてくれます。プロンプトというのはユーザーには「呪文」と呼ばれているもので、例えば「beautiful girl」と記載すれば綺麗な女の人を描写してくれます。ただ、この呪文というのは結構厄介なもので、思った通りの絵を作成してもらえません。日々、「このプロンプトならどうだ?」ということに奔走することになります。
ただ、大まかな枠組みでの絵は生成してもらえるので、「とりあえずやってみる」レベルであれば十分な結果を得られると思います。
現在SDはバージョン2.1が最新です。しかし、世の中に出回っているのは1.5です。2.1(2.0)は高機能であるがために、高性能のマシンが必要になります。この投稿では1.5版で記載を行っています。
尚、筆者はユーザーとしてのみSDを使っています。あまり細かいところはわかりませんのでご容赦ください。

2. Stable Diffusion Web UI

SD Web UIと一般的に言われていますが、Stable Diffusionは元々コマンドラインで動くもので、Web UIで動くものではありませんでした。SDをWeb UIに包んであげることでより利便性があがり、爆発的に広まりました。
筆者はSD Web UIのAUTOMATIC1111版を使っています。この「AUTOMATIC1111」は最も使われているWeb UIです。SD Web UIといえばAUTOMATIC1111を指すと言っても過言ではないような気がします。
Stable Diffusionの環境構築にはあなたのマシン環境がパワフルである必要があります。特に必要なものはGPU(とそのVRAM)です。VRAM8GB以上が好ましいと思います。VRAM8GBというのは、SDの世界では弱者になります。CPUのみで立ち上げる方法もあるようですが、画像生成が遅くて実用的では無いと思います。3060のVRAM12GBを偶然持っていればいいのですが、そう運はよくないでしょう。
筆者は3060TI(VRAM8GB)で回していますが、ギリギリですね。条件を厳しくすれば落ちます。これは3070以降ならばいいのかというとそうではなくて、あくまでVRAMがいくつかという問題です。ですので、VRAMが8GBより少ない場合は、今後結構苦戦することがあるかと思います。(といっても動かないわけではないと思う)
導入手順を記載しようかと思いましたが、他の方が書いているのでそちらを参照してください。
これが一番わかりやすいかと思います。環境によりますが1時間もあれば十分インストール可能かと思います。(但し、それプラスダウンロード等の時間があります)
導入し終わったら/stable-diffusion-webui/webui-user.batを起動し、Chrome等で、[http://127.0.0.1:7860/]を開けばStable Diffusion Web UIに入れます。webui-user.batの実行は最初はダウンロード等が入りますので、結構待ち時間があります。コマンドプロンプトを見て何がやっているんだろうな・・・と待ちましょう。今後、新しいことをやったらまたダウンロードが入る場合があるので(しかも百MB単位の)webuiのコマンドプロンプトは動作が遅くなったら見てみましょう。
ちなみにwebui.batでも起動します。webui-user.batからwebui.batを呼び出しています。

3. 手動でダウンロードが必要なもの

3.1. モデル(ダウンロード必須)

モデルはSDが絵を生成する際に使う「絵の元」です。
モデルは絵や写真を複数枚学習したデータの塊を指します。1モデルは数100MB以上のサイズを持ち、8GB程度になる場合も多くあります。この学習した時の元の「絵」や条件が大事で、それにより「アニメ用」、「実写用」、「3D絵用」といった生成する絵のタイプがほぼ決まります。つまり、モデルによって生成する画像の質、タイプも変わってくることになります。
モデルは自分でダウンロードする必要があります。2つのサイトが有名ですが、他にもあるかもしれません。
初心者の方はCivitaiの方がわかりやすいと思います。
このモデルは複数ダウンロードして利用することに価値があります。ディスクの容量には十分に気をつけましょう。
ログインを求められますが、安全なサイトなのでユーザーIDを作ってログインしてください。
モデルにはsafetensorsとckptの2つの形式があります。(xxx.safetensors、xxx.ckpt)
safetensorsは安定板、ckptは追加学習(もしくは追加学習している最中)を指します。特に理由が無ければ、safetensorsをダウンロードして利用してください。細かいことはわからないですがckptは悪意を持った人が何かを仕掛けることができるようです。2つダウンロードできる場合はsafetensorsをお勧めします。ckpt版しか置いていない場合はしょうがないですね。

3.2. VAE(ダウンロード時折)

VAEはモデルで生成した画像に変更を加えることで、「画像をより鮮明にする」ことができます。
通常、VAEは別途ダウンロードして、利用するものですが、モデルに含まれる場合もあります。VAEを含んでいないモデルの場合、VAEの適用は必須だと思います。形式はモデルファイルと同等です。
こちらもckpt、safetensorsと2種類ありますが、safetensorsがお勧めです。ただ、VAEは数はモデルほど多くないので、実写用とアニメ用で2種類ぐらい、もしくは1種類をダウンロードして使いまわせばいいと思います。(ぶっちゃけあまりVAEの種類によって変わるとは思わないです)
私が主に使っているVAEは以下の通りです。
  • 実写用VAE
  • anything4.0VAE(正規のリンクがなくなったのでとりあえずリンク削除しています。2024/04/18)
ただこれはSD環境が無事にできて画像生成ができてからでもいいですね。

3.3. その他(ダウンロード推奨)

これは好みによると思いますが、後述するネガティブプロンプトの記述を楽にしてくれるEasyNegative、EasyNegativeV2をダウンロードして利用するのが後々楽だと思います。便利ツールの一種ですね。
EasyNegativeの後継バージョンがEasyNegativeV2と思われがちですが、それは多分違います。EasyNegativeは風景に強く、EasyNegativeV2は人物に強いように使ってて思いました。これらはCounterfeitというモデルの作者さんがCounterfeit用ということで作られたものですが、もはや広くEasyNegativeという名前で広まっています。
これに似たようなbadhand、badpictureなど色々ありますので使ってみてみるのもいいでしょう。

4. Stable Diffusion の設定項目

設定項目はいくつもありますので、少々端折りますが重要な項目だけを説明します。
赤四角で囲ったところが重要な項目になります。
SD_gamen

4.1. 画像出力設定の重要項目

Stable Diffusion checkpoint

モデルを選択します。アニメ調のものを作りたければアニメ用のモデルを、実写のものをつくりたければ実写用のモデルを選択します。

txt2img、img2img タブ

テキストから画像を生成するタイプとイメージを利用して画像を生成するタイプです。
今後説明していく設定項目はtxt2imgのものになりますが、img2imgでも同様の設定項目になりますのでそちらも同様に考えてください。

Prompt

これが呪文にあるものです。テキストを(英語で)記載することで、思った画像を生成することができます。言葉はカンマで区切ります。
1girl, beautiful, black hair, brown eyes
こうすると「黒髪で茶色い目をした綺麗な女性」を描くことになります。
ちなみに表紙の山と川の画像のプロンプトは以下の通りです。
masterpiece, best quality, insanely detailed, 8k, higher, mountain, forests, river
効果を高めたい場合括弧で括ります。1.6倍以上にすると画像が壊れる可能性があります。
(masterpiece)=>masterpiece 1.1倍
(masterpiece:0.9)=>masterpiece 0.9倍
(masterpiece:1.5)=>masterpiece 1.5倍
書いた順序に強くなります。上記だと「1girl」が一番強いです。「brown eyes」が一番弱くなります。
beautiful に括弧を付けるならば、1girlの前に置いておくとかしても良いということです。
で、問題なのは「女子は漏れなく脱ぐ」ということです。もちろんプロンプトの描きようによっては脱がせないことも可能(何言っているんだか)です。使用するモデルにもよりますが、基本「女子だと判断されると脱ぎやすい」と思ってください。(要は人前でやるのは危険)wearing xxxとか記載するなどの工夫が必要です。
プロンプトに関してはこちらに書きました。

Negative Prompt

こちらも呪文にあたるものですが、「こういうものは描かないで」ということを書きます。
lower, missing finger, missing hand
こうすると「低画質で、指がなかったり、手がない画像は生成しないで」という意味になります。
SDは非常に手の描写が苦手です。こういった内容を記載することで不自然な手の描写を避けるわけですが・・・実際は避けきれません。ですが、書かないよりはましということですね。
これらの表現をひっくるめて「EasyNegative」が使えます。EasyNegativeと一言書くとかなり絵が綺麗になります。逆にまったく記載しないと、絵ががっかりになります。
表紙の山と川の画像のネガティブプロンプトは以下の通りです。bad_picturesもEasyNegativeと同類のものです。
EasyNegative, bad_pictures, (worst quality, low quality:1.4),(depth of field, bokeh, blurry:1.4)
後のworst・・・depth・・・はどっかのサイトを見てくっつけました。私の環境ではデフォルトで入れるようにしています。
ちなみに脱ぎ対策をするためにネガティブプロンプトにnsfwを入れます。これで少しは脱ぎにくくなります。
nsfw, lower, missing finger, missing hand
とかすると良いです。

Generate

画像生成ボタンです。諸設定が終わったらクリックしましょう。
ちょっと待つと右下に画像が出力されます。出力された画像をクリックすると拡大されます。
何も生成されずに「Generate」という表示がされた場合、エラーです。もう一度クリックしてみましょう。
ダメだったらわかんない。

Sampling method

サンプリングというのは絵の描き方を示します。選ぶSampling methodによって、絵も変わりますし、実行時間も異なります。比較してどれがいいのかというのはないのですが、一般的には「DPM++ SDE Karras」が選ばれています。ちょっと描画は時間がかかりますが、品質のよい絵を生成してくれます。
「DMP++ SDE」でもそれほどは変わりません。まぁ「よく使われているからDPM++ SDE Karrasを使っておこう」ってな感じです。しかしEulerとは差があります。(こっちは早いけど)

Sampling steps

サンプリングステップ数はサンプリングメソッドを使って、何回サンプリングを行うかを指定します。回数が多ければ多いほど綺麗な絵を生成してくれそうな感じですが、単純にそうは言い切れないかもしれません。ちょっと絵を見るだけなら20のままで、本気で絵を作りたいならば40くらいにするのがよいと思います。当然、回数を増やせば増やしただけ画像生成に時間がかかります。
ちなみにサンプリングメソッドに「a」(Euler aなど)がついているものはこちらのステップ数をもとに絵を作りますので、ステップ数を変更することで絵が変わります。

width、hight

生成する画像のサイズです。デフォルトで512となっていますが、これから大きく変更すると生成する画像が壊れて見えることがあるかもしれません。SD1.5ではモデル自体を512で作っているのでそのためです。
しかし、768とかまで変更しても生成されるはされるので400×768とかそういうサイズまでは大丈夫かもしれません。
もちろん画像サイズを大きくすれば描画に時間がかかるようになります。

CFG Scale

CFG Scaleはプロンプトに合わせる度合いを示しています。(という風に私は認識している)より高ければ高いほど、プロンプトを尊重します。低ければ低い程、プロンプトを無視します。無視という感じでもないんだけど。それと高い程はっきりとした絵を描くようになります。
ただ現実的に設定できる値は5~10ぐらいだと思います。普段はデフォルト(7)のままでいいです。
CFG Scaleを高くすればするほど、描画に時間がかかるようになります。

Seed

絵を生成するキーとなるものの番号です。-1というはランダムです。番号を決めて、同じ番号であれば同じ絵を生成できます。ランダムで生成していて、「あ、この絵がいい」と思ったら、そのSeed値を保管しておくといいと思います。そこから細かくプロンプトを弄るというのが、うまい絵を生成する一つの技法となります。
となりのサイコロの絵が「-1」にセットするアイコン、そのまた隣のアイコンを使って前回生成した時に使用したSeed値をセットすることができます。
「あ、この絵がいい」=>「Seed値セット」
という動きですね。

4.2. Settingタブにある設定したらいい項目

こちらは1回1回の生成ではなくて、全体に影響を及ぼす設定項目です。
設定変更後に「Apply Settings」をクリックします。場合によってはWeb UIのリロードが必要です。リロードすると書いているプロンプトなどリセットされるので注意してください。

Saving images/grids =>File format for images

イメージをどの形式で保存するかを指定します。デフォルトはpngです。jpgに変更したい方はどうぞ。

Saving images/grids =>Always save all generated image grids

複数画像を生成するとそれを1枚の画像にしてくれます。デフォルトはそれを保存しますが、保存する必要ない方はチェックを外してください。
File format for gridsには保存する形式(png)が書いてありますが、上記と同様に変更可能です。

Saving to a Directory =>Save images to a subdirectory、Save girds to a subdirectory

デフォルトではstable-diffusion/outputs/txt2img-images,txt2img-gridsに日付フォルダを作って保存してくれるのですが、日付フォルダが必要ない場合はチェックを外してください。私はいらないとおもう。

User interface =>Quicksettings list

ここにはデフォルトで「sd_model_checkpoint」が入っています。これはモデルを上記の項目の通り選択できるようにしたものです。ここに「sd_model_checkpoint, sd_vae」と記載しますとVAEの選択もできるようになります。
VAEの変更項目はモデルを選択するところの右に出ます。

Stable Diffusion => SD VAE

上記のUser interfaceを設定していない場合表示されます。(設定してリロードした後は設定項目自体がなくなる)
ここには使用するVAEを選択しておくのですが、VAEを変更したい場合、1回1回Settingタブに来て変更しなくてはならないので、User interface方式の方が良いと思います。

5. 画像の生成

ちょっと画像をいくつか生成してみます。
512×512、DPM++ SDE Karras、20stepです。
Seed値は左と右で同じものを使っています。

5.1. 綺麗な女の子

girl3_chkpoint
左側がchilled remix Ver.1モデル、右側がBRA Ver.4モデルです。
プロンプト
masterpiece, best quality, insanely detailed, 8k, higher, Japanese beautiful girl, wearing white shirt, in forest
ネガティブプロンプト
EasyNegativeV2, bad_pictures, (worst quality, low quality:1.4),(depth of field, bokeh, blurry:1.4)
同じSeed値だけあって、同じような画像になりました。しかし、表現は全然違いますね。
BRAの方はどうしても韓国人っぽく見える。そしてBRAは何故かつくほくろ。もちろんネガティブプロンプトに「ほくろを消して」と入れれば消えます。(具体的にはmoleと書けば消えるということ)
一応、人に強いEasyNegativeV2を使っていますが、それ以外は何の工夫もないプロンプトです。

5.2. 可愛い犬

dog_chkpoint
左側がAnything Ver.4.5、右側がCounterfeit Ver.3です。
プロンプト
masterpiece, best quality, insanely detailed, 8k, higher, cute dog, brown fur, on bed
ネガティブプロンプト
EasyNegativeV2, bad_pictures, (worst quality, low quality:1.4),(depth of field, bokeh, blurry:1.4)
どちらもアニメ系のモデルですが、Anythingの方は半分実写になっている。
どちらも可愛いですね。

5.3. 可愛い猫

cat_chkpoint
左側がAnything Ver.4.5、右側がCounterfeit Ver.3です。
プロンプト
anime style, masterpiece, best quality, insanely detailed, 8k, higher, cute cat, brown fur, on bed
ネガティブプロンプト
EasyNegativeV2, bad_pictures, (worst quality, low quality:1.4),(depth of field, bokeh, blurry:1.4)
アニメ感を出したかったので「anime style」といれました。
Anythingの方はもう少しで人間になりそうな感じです。猫耳とか猫娘とか猫と女の子には関連があるとSDは思っているのでしょう。(まじでそう思う)

6. 最近の流行り(雑記:旬が過ぎたら消すかも:2023/5時点)

モデルの選択はいつも流行りです。やれなんとかが出たとか、新しいバージョンが出ただの、常にネット上は賑わっています。
最近だと、BRA Ver.5が出たのがNewsですかね。BRAは実写(の女の人)作るのに特化したモデルで、非常に繊細にアジア人(といっても韓国人にみえるけど)を表現してくれます。Counterfeit Ver.3もでましたね。こちらもいい感じです。
一昔前だと(といっても何か月か前)chillout mixが流行っていました。これもアジア系の人が得意なモデルでした。こちらの商用利用ができなくなったため、色々と影響があったようです。これの後継?として登場したのが、chilled remixでした。私はBRA Ver.5よりこちらの方が好みです。BRAは左の頬の決まった位置にちょくちょく黒子が入るのが気になる。
モデル以外の話だと、なんといってもExtensionのControl Netが旬です。新しいバージョンも登場し、ますます流行っています。Control Netは作る絵の人物のポーズを決められるというのが第一の使用目的ですが、他にも用途は色々とあります。多機能の優れものですね。
最近、絵を繋げた動画をちょくちょく目にするようになってきました。ExtensionのDeforumを多分使用していると思いますが、結構これもどうやっているのかなというレベルです。Control Netも使っているのでしょうが、Deforumでできる領域からはみ出た何かからできています。ちなみにDeforumは複数画像を生成して、繋げて動画にしてくれるExtensionです。面白いので気が向いたら遊んでみてください。
後は今回のように自分のPCに入れるのではなくて、Googleの準備しているプラットフォームで使用する方法ですが、これが使えなくなりました。使えるっていえば使えるのですが、ちょっと難しいですね。つまり、無料で自由にSDを使いたければ自分のPCに入れるしかないってことです。有料ならば普通に使えます。これも先月あたりに出たニュースでした。
次の流行りはきっとControl Netからの動画生成でしょうね。VRAMどれだけあったらいいのかな・・・多分、私のPCスペックでは無理な感じがします。
まぁStable Diffusionじゃ無いかもしれませんが。

まとめ

長くなりましたが、以上で紹介は終わりです。ユーザーの立場で、なるべくわかりやすく書いてみたつもりです。
機能としてはまだまだ使う機能がたくさんあるのですが、今回は紹介ということでこのくらいにします。
Stable Diffusion Web UIは(一人で)楽しめるツールです。「これをプロンプトに入れたらどうなるか?」というので一生楽しめます。
Stable Diffusion Web UI(AUTOMATIC1111)をPCに入れてみてはいかがでしょうか?

-IT, パソコン周辺機器
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

関連記事

river and mountain

【Stable Diffusion】簡単なパフォーマンスチューニングの結果【SD1.6】

AUTOMATIC1111でVersion1.6.0を入れてみました。デフォルト状態のままでは重いので簡単にできるチューンアップをしてみました。ついでに時間も計測してみたので、参考になれば幸いです。た…

もっと見る

openoffice

MS Officeが無くても大丈夫 OpenOfficeを使えばいい

OpenOfficeをご存じでしょうか?表計算や文書を作成する際に、Microsoft Officeのライセンスが無いからといって諦めていたり、購入に走ったりしたことありませんか?そんな時に無料で使え…

もっと見る

Google

Googleに履歴を取得されている?- アクティビティ管理 -

Googleによってどれだけ情報が取得されているかについて、知っているでしょうか?Googleは「アクティビティ管理」という名目で情報を取得しています。それらの情報を広告の表示やWebでの検索結果など…

もっと見る

Google

Googleアカウント で本名晒していませんか? -名前の変更ー

Googleアカウント でたまに本名が出ている人が居ます。狙って本名がでているのかどうかわかりませんが、7,8割の人は本名出したくないのだと思います。Googleのアカウントは本名じゃなても問題ありま…

もっと見る

サイト内の検索はこちらから

サイト内の検索はこちらから

サイト内の検索はこちらから

カテゴリー

アーカイブ

最近の投稿

RSS icon