【2023年3月版】3時間で構築する最新 Stable diffusion環境 1時間目

AIイラスト

NovelAIの登場から約半年。当時はプログラムも絵も書けなくてもテキストから美少女イラストを出力する夢の技術として登場したこの技術ですが、この半年で凄まじい発展を遂げました。

モデルマージにより更により美麗なイラストを描けるようになったと思ったら、AIによるプロンプトの生成、追加学習で登場してすぐの新キャラを学習させたり、最近では棒人間から構図を決定したりともはや数日情報を追うのをサボると浦島太郎になってしまいます。

絵もプログラムもわからず、いままでコンテンツを消費する側だったオタクが少しPCを触れば生産者に回れる時代が来たと思ったら結局技術屋に独占される状況に…

これじゃあクリスタとペンタブで絵を描くのと変わらんやん

そんな状況を打破すべく今回はプログラムできなくても、3Dもイラストもわからない人でも3時間で最新stable diffusion環境を構築できる方法を書いていきます。

流れとしては

1時間目
Automatic1111 webuiの導入
最新イラスト生成モデルのインストール

拡張機能の導入

2時間目
プロンプトのコツまとめ
Loraの利用

ControlNetの導入

3時間目
追加学習

という感じで解説していきます。

前提条件/推奨環境

今回はWindowsを使用していてNvideaのGPUを利用している方向けに書いて行きます。
RadeonでもAIイラストを始めることはできますが工夫が必要です。

必要動作環境
VRAM 6gb以上 
GTX10XXシリーズ 1060(6gb) 1660 1070/ti 1080/ti
RTX20XXシリーズ 2060 2070/ti 2080/ti
RTX30XXシリーズ 3060 3060ti 3070/ti 3080/ti 3090
RTX40XXシリーズ 全モデル

この中でも最もコスパが良いのはRTX3060です。これからローカル環境でAIイラスト始める方は3060を買いましょう。tiの方ではなくRTX3060無印(12gb VRAM)の方です。

created by Rinker
ASUS
¥52,800 (2024/04/25 10:54:09時点 Amazon調べ-詳細)
created by Rinker
ASUS
¥52,800 (2024/04/25 10:54:09時点 Amazon調べ-詳細)

なぜRTX3060が優れているかはAIイラスト始めてみればわかります。

CPUはセレロンで構いません。インテルでもAMDでも大丈夫です。最低限ブラウザが満足に動かくやつでOK。

メモリは8gbでもなんとかなりますが、できれば16gb。余裕があれば32gbあるといいです。多くて困ることはないです。

ストレージはM.2のSSDがおすすめです。容量は256gbもあれば十分ですがすぐにいっぱいになってしまうので生成物を消す作業が面倒なら大容量のものを買いましょう。AIイラストでは6gbのデータをVRAM上に読み込んで使います。読み込み速度が早いほうがストレスがなくていいです。出力先をHDDやクラウドストレージにもできるので書き込み速度はあんまり気にしなくてもOK。

私のおすすめはUSBメモリ/外付けSSDに環境を作ってしまうこと。持ち歩けますしPC本体の環境を汚さないので同じPCで仕事とかしてる人にもおすすめです。学生なら研究用のGPUで生成できます。128gbのUSBメモリなら2000円くらいで買えます。

Automatic1111 webuiの導入

Releases · AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.

現状最も簡単な全部入りインストーラーです。使い方は簡単。インストールしたい場所でsd.webui.zipを展開。

run.batをダブルクリックして実行。

なんかいろいろな文字がでてくるのでしばらく待つ。
ストレージとネット環境にもよりますが10分くらい。

エラーが出る場合、再起動してみたり一度消してもう一度展開からやってみるとうまくいきます。

モデルのダウンロード

この間にモデルと.vaeをダウンロードしておきます。モデルはいろいろありますが今回は美少女イラストに特化したモデルを3つと.vaeを3つ紹介します。

生成モデル

syaimu/7th_Layer at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

まずは上記のところから

7th_anime_v3_A.safetensors
7th_anime_v3_B.safetensors
7th_anime_v3_C.safetensors

をダウンロードしてください。

VAE

次はこちらのリンクから

kl-f8-anime2.ckpt
https://huggingface.co/hakurei/waifu-diffusion-v1-4/blob/main/vae/kl-f8-anime2.ckpt

anything-v4.0.vae.pt
https://huggingface.co/andite/anything-v4.0/blob/main/anything-v4.0.vae.pt

vae-ft-mse-840000-ema-pruned.safetensors
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.safetensors

この3つをダウンロードしておきます。

ファイルの配置

ダウンロード出来たら

7th_anime_v3_A.safetensors
7th_anime_v3_B.safetensors
7th_anime_v3_C.safetensors
この3つのファイルはwebui\models\Stable-diffusionというフォルダにいれておきます。

kl-f8-anime2.ckpt
anything-v4.0.vae.pt
vae-ft-mse-840000-ema-pruned.safetensors
こっちのVAEはwebui\models\VAEフォルダにいれます。

まだ裏ではインストールのCUI(黒い画面)が走ってると思いますがModelを配置するだけならおそらく影響ありません。心配な人はインストールが終わってからいれてください。

用語解説

ダウンロードに時間がかかるのでこのへんでAIイラスト業界で知っておきたい用語解説をします。

stable diffusion:SD
2022年に登場したテキストをイラストに変換できるとってもすごいAIの基幹技術。このSD上で様々なイラストを学習させたモデルを動かすことでイラストを生成できる。他にも色々な機能がある。イラストAIとしてはmidJourneyなんかがあるが、SDが頭一つ抜けて流行っている。

モデル
Anythingやabyssorangemixを始めとするAIの種類のこと。モデルごとに特徴が異なる。

NovelAI:NAI
AIに小説を書かせるサービスを提供している会社またはサービスのこと。AIイラスト界隈では主にNovelAIが開発したモデルのことを指す。美少女イラストAIに革命をもたらしたモデルでありNAIがなければこの業界の歴史は語れない。生物学におけるパスツール。物理学におけるニュートンみたいな存在。現在流行っているモデルはすべてこのNAIの血を引いていると言っても過言ではない。

Automatic1111 webui
stable diffuisionをwebアプリで使えるようにしたやつ。更新が早く使いやすくて機能が多い。ほとんどの人がこれを使ってAIイラストを楽しんでいる。1111とかwebuiとか呼ばれてる。

プロンプト
いわゆる呪文のこと。AIイラストは国際的に研究されているのでpromptで覚えておこう。webuiの上のほうがpromptで下がNegative prompt。Negative promptは書き込んだ様子を否定することで生成物をコントロールする。

VAE
AIイラストにおける色味を決めるファイル、設定。現在のAIイラストは「モデル+VAE」を指定することで出力している。下はその比較。モデルは何種類もあるがVAEはこの3つを覚えておけばいい。

vae-ft-mse-840000-ema-pruned.safetensors
…実写用。
anything-v4.0.vae.pt
…アニメイラスト向け。ちょっとくすんだ色で出力できる。最近の流行り
kl-f8-anime2.ckpt
…アニメイラスト向け。比較的鮮やかな色味で出力できる

起動

インストールが終わったら一度CUI(黒い画面)を閉じます。もう一度run.batを起動すると

こんな感じで文字列がでてくるのでこの http://127.0.0.1:7860 の部分をコピー。ブラウザに貼り付けてEnter。

こんな感じの画面が出るはずです。動作確認として左上の入力欄に

1girl

と入力しGenerateを押してください。

CUI側にこのような表示がでて

最後にイラストが生成されていたら成功です。

ネガティブプロンプト

でもこのままだとちょっとクオリティが低いので今度は下の入力欄に

(worst quality:1.4), (low quality:1.4) , (monochrome:1.1),

を入力してみてください。

どうですか?劇的にクオリティ上がった気がしませんか?もう少しpromptを追加して比較してみます。

(worst quality:1.4), (low quality:1.4) , (monochrome:1.1),

あり




なし

まあない方も味があるといえばそうですが全然ちがいますよね。これが

ネガティブプロンプトで「低品質」を否定することによるクオリティの底上げ

です。AIイラストではこの技術が必須になるのでこれだけは覚えておいてください。面倒なかたはネガティブプロンプトには

(worst quality:1.4), (low quality:1.4) , (monochrome:1.1),

このプロンプトをいれておくと覚えておきましょう。

モデルとVAEを切り替えてみる

上の手順で3つともモデルを導入することに成功していれば、左上のStable Diffusion checkpointからモデル選択出来ます。

Vaeは少し複雑です。タブのSettingを選択しstable diffusionを選択。SD VAEのプルダウンからモデルを選びます。最後にApply settingを選択。これでVAEの切り替えが出来ます。

7thシリーズは3種類に分かれていて

A:実写
B:中間
C:アニメ

という感じで使い分け出来ます。

ここまで約30分。ここで一旦webuiを閉じて初期設定をやっていきます。

xformersの導入

インストールしたフォルダにwebuiというフォルダが生成されているはずなので

このファイルを編集します。

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=–share –xformers

call webui.bat

こんな感じで set COMMANDLINE_ARGS= –xformers と追記します。

これで生成速度が3割ほど高速化し、使用RAMが減少します。

ついでに–shareも追記しておきましょう。

こんな感じでパブリックURLが発行されるのでこのURLにスマホや出先のノートPCからアクセスすればWEB経由で遊べます。スマホからの操作性はあんまり良くないですがお手軽です。ボイチャつなぎながら友達にAIイラストの凄さを伝える活動にも役立ちます。

設定周り

Images filename pattern

便利にwebuiを使うために色々と推奨設定があるので設定していきます。
まずはsettingタブから入って最初のページImages filename patternの部分に

[datetime]-[model_name]-[seed] [prompt]

と入力。最後にApply settingを押します。

これでファイル名に生成日-使用モデル-シード値-プロンプトを書き込めます。

これでファイル名に出力時の情報が記載されるのでエクスプローラーからある程度の検索が可能です。クラウドストレージにアップロードした場合もファイル名で検索できるので便利です。やらなくても特に問題ないですが便利なので設定することをおすすめします。

Output directory for images

出力先を指定する設定です。このwebuiはデフォルトでは

\webui\outputs

というフォルダに保存されます。これでも問題ないですがHDDに保存したい場合やクラウドストレージに保存したい場合は空欄の部分に直接パスを指定することで出力先を設定出来ます。

私は別ドライブに専用のフォルダを作成しそのファイルを自動でAmazon photoにアップロードする設定にして使っています。詳しくは一個前の記事のAmazon photo使って無限の保存領域を手に入れるを見てください。

Live previews

SDがイラストを生成している過程を見るか見ないかみたいな設定です。いろいろ楽しいので全部チェックしておきます。数字も1にしておけば生成過程が細かく見れるのでおすすめです。特にこれで重くなったりはないです。

最後にApply settingを押すのを忘れずに。

Clip skip

setting→Stable Diffusionの一番下の欄。

初期の頃からやってる人は2の人が多いです。正直1でも大丈夫ですが、シード値と同じく生成物の質に影響します。複雑なプロンプトほど2のほうが良い気がします。

多いほうが服とか影の細部が細かい気がします。気のせいかもしれません。とりあえず2にしておいて思い出したら比較して検証してみてください。

その他の便利機能

Generate forever と X/Y/Z plot を紹介しておきます。

Generate forever

拡張機能ではないですが、ハイエンドGPUで夜通しイラスト生成を行うための必須機能です。

webUIの右上Generate右クリック

これでエラーのでない限り永久に画像を生成し続けることができます。私の経験では2日ほどは余裕ですがそれ以上は試していません。おそらくは問題なく回せませます。

X/Y/Z plot

これも拡張機能ではないですが比較検証に便利な機能です。ツイッターとかで見る表はこの機能で生成されています。

こんな感じで[,]で区切りながらX軸Y軸を設定しScaleやステップ、モデルなんかを切り替えながら生成し最後に表にしてくれます。

拡張機能を入れる

ExtensionタブからAvailableタブを選択。Load fromで最初から入っているURLから拡張機能一覧を読み込みます。今回の方法でいれてほしいのが

・a1111-sd-webui-tagcomplete
 …タグの変換予測ができる。
・sd-dynamic-prompts

 …プロンプトの入力を拡張する。
・stable-diffusion-webui-wildcards

 …指定したプロンプトからランダムに一つ選ぶみたいなことができる。


・sd-webui-controlnet
 …最近見る様になった棒人間から構図を決めるやつ。棒人間以外にも色々できる
・ABG_extension
 …生成物から背景を切り抜いてキャラクターのみを出力する。追加学習用の素材作りに便利。
・stable-diffusion-webui-randomize
 …Scaleや解像度にrandom要素を追加する。連続生成に便利
・stable-diffusion-webui-wd14-tagger
 …画像を解析してタグ付けする、いわばimage2text。追加学習に必須。
・Generate-TransparentIMG
 …指定したサイズの透過PNGを生成するやつ。追加学習に必須。

この8つです。下の5つは追加学習や姿勢制御の最新技術なので遊ぶだけなら上3つで問題ないです。

Extensionタブ→availableタブ→Load from:で一覧が出るのでそこから右のInstallを押すだけです。

a1111-sd-webui-tagcompleteだけは手動でInstallする必要があるのでInstall from URLに

GitHub - DominikDoom/a1111-sd-webui-tagcomplete: Booru style tag autocompletion for AUTOMATIC1111's Stable Diffusion web UI
Booru style tag autocompletion for AUTOMATIC1111's Stable Diffusion web UI - GitHub - DominikDoom/a1111-sd-webui-tagcomplete: Booru style tag autocompletion...

と入力しInstallを押す。

a1111-sd-webui-tagcomplete

こんな感じでタグ入力補助をしてくれる拡張機能です。promptなれてる人なら簡単に入力できますが、つづりがわからないこともあるので一応いれておきましょう。これだけは上記の方法でインストールできません。

Install from URLのタブに下のURLを貼り付けInstallを押してください。

GitHub - DominikDoom/a1111-sd-webui-tagcomplete: Booru style tag autocompletion for AUTOMATIC1111's Stable Diffusion web UI
Booru style tag autocompletion for AUTOMATIC1111's Stable Diffusion web UI - GitHub - DominikDoom/a1111-sd-webui-tagcomplete: Booru style tag autocompletion...

詳しい機能は上のソースを確認してください。

stable-diffusion-webui-wildcards

GitHub - AUTOMATIC1111/stable-diffusion-webui-wildcards: Wildcards
Wildcards. Contribute to AUTOMATIC1111/stable-diffusion-webui-wildcards development by creating an account on GitHub.

“stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards.txt”

SD内の上記の場所にテキストファイルを配置して使用します。あとはファイル名と同名のpromptを配置します。

__XXX__

で適用されます。詳しくは下の方で解説してます。

https://taron88wordpress.net/wp-content/uploads/2023/01/wildcards.zip

私の使っているワイルドカードを配布しますので良ければ使ってください。

sd-dynamic-prompts

GitHub - adieyal/sd-dynamic-prompts: A custom script for AUTOMATIC1111/stable-diffusion-webui to implement a tiny template language for random prompt generation
A custom script for AUTOMATIC1111/stable-diffusion-webui to implement a tiny template language for random prompt generation - GitHub - adieyal/sd-dynamic-prompt...

複数のpromptの内から1つを選択するというpromptを追加できます。上のwildcardより手軽に使える拡張機能です。

例えば連続生成でいろいろなタイプのイラストを生成する場合

1girl,{large breasts|medium breasts|small breasts},{long hair|medium hair|short hair},school uniform,

こんな感じで|で区切って配置することでランダムな制服美少女を作ることができます。

本当はもっと多機能な拡張機能なのですが今回使う機能はこれだけです。

その他の便利機能の使い方はここを日本語訳するのがわかりやすいです。参考にしてください。

Features
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.

1時間目おわり

これでとりあえずの環境導入は終わりです。次は追加学習のLORAの導入とプロンプトのコツを解説していきます。

ここが一番の山場です。ここまで割りとサクサクきてればこれ以上に難しい要素はほとんどありません。あとは他の人のプロンプトを調べながらプロンプトの組み方を学んだり他のModelを試してみたりと時間と計算資源(GPU)さえあれば無料で無限に遊べます。GPUはゲームにも使えるので実質無料でコスパも最高です。

インターネット上では風当たりのきついAIイラストですが、やってる人は技術屋や職人気質な人が多く良いものは広く公開・共有してどんどん業界を発展させていこうという意識の高さを感じます。また、初心者にも優しくて、聞けばなんでも教えてくれる印象です。私もTwitterでDM飛ばして貰えれば分かる範囲で答えます。

もしこの記事を読んでイチオシの作品が出来上がったら、是非共有していただければ幸いです。

コメント

タイトルとURLをコピーしました