ページ

2022年9月27日火曜日

AI神絵師 導入編

 AIが絵を描いてくれる時代ですよ

文章を画像に変換してくれることで話題のお絵描きAI、無料で使えるStable Diffusion
えっちな絵の生成もOKなWindowsローカル環境の作り方をざっくりメモしました。

必要なもの

NVIDIA製GPUのグラフィックボード
搭載VRAMは最低4GB。8GB以上あれば問題なさげ。推奨は10GB以上です。
CUDAコア数が多いほど処理が速い。VRAMが多いほど大きく絵が出せる。そんな感じです。
界隈ではVRAM24GBのRTX3090、RTX4090が注目されています。
RTX2060(12GB)、RTX3060(12GB)がコスパ良しです。
※2023.01:RADEONでも出来るようになったらしいです。

Windowsアプリで簡単に操作できるのはNMKD

https://nmkd.itch.io/t2i-gui
https://forest.watch.impress.co.jp/docs/review/1438536.html
インストールと使い方は、特に難しくないと思います。
GTX1660Super等?は環境設定で設定を変更しないと正常動作しないそうなので注意。
なんやかんやのチェックボックスをONにすると動くとか。
https://github.com/n00mkrad/text2image-gui/blob/main/docs/Amd.md

機能が多くて便利な、AUTOMATIC1111 WebUI

https://github.com/AUTOMATIC1111/stable-diffusion-webui
https://github.com/AUTOMATIC1111/stable-diffusion-webui-feature-showcase
更新が頻繁で多機能、便利です。
最新情報は上記、本家のドキュメントを参照してください。

1111WebUIのインストール方法、手順

簡単導入法

https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases
run.batを実行するだけでいいようです。マジ?

手作業導入法

PythonとGitをインストールします。(公式よりコピペ)
  1. Install Python 3.10.6, checking "Add Python to PATH"
  2. Install git.
Pythonは3.10.6です。3.11.xとか最新版とかを入れないでください。
gitは、これを利用してAutomatic1111WebUIのインストールや更新を行います。

1111WebUIをインストールするフォルダを作る。
例えば、C:¥SD
※フォルダに日本語や空白は使わないでください。
そのフォルダを開いて、何もないところで 右クリック>Git Bash Here を選択する。


すると、コマンドプロンプトっぽいウィンドウが出てくるので、


git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

と入力してENTER。(コピペするなら右クリックしてPaste。Ctrl+Vはダメです。)

すると、C:¥SD¥stable-diffusion-webui というフォルダが作られて、必要なファイルがダウンロードされます。処理が完了したらこの黒いウィンドウは閉じてOKです。

checkpoint (AIモデルファイル) の入手

stable-diffusion-v1-4.ckpt
dreamlike-diffusion-1.0.safetensors
こういうやつです。

ckptファイル、safetensorsファイルはAIの頭脳的なcheckpointファイルです。いろいろカスタムされたものが配布されています。
ファイルサイズが大きいので注意。2GB~7GB。full-emaではない方、prunedと付いている方がファイルサイズが小さいので扱いやすいかも。
普段使いは2GBのものが読み込みが早いのでお勧めです。

Stable DiffusionモデルカタログA面|まゆひら
こちらで好みの絵柄のモノを探して入手するのが良さげです。

Hugging Faceに登録するとcheckpointファイルをダウンロードできます。

CVITAI --- ユーザー作成のcheckpointファイルが沢山アップロードされています。

他にもあちこちで配布されています(だいたいキャラ特化か、えっちなやつです)。
版権キャラクターを使ったものは、著作権的に問題になるかもしれません。

ckpt形式はウィルスの危険性があるらしいので、用心してください。

2022.12月現在、ckpt形式でなく、新対応したsafetensors形式が人気のようです。こちらはウィルスの危険性が無いと言われています。

ダウンロードしたcheckpointファイルは、まとめて

例 C:¥SD¥stable-diffusion-webui¥models¥Stable-diffusion

のフォルダに入れます。
modulesフォルダではありません。紛らわしいので注意。

実行(セットアップ)

webui-user.batを実行すると初回はセットアップが始まります。いろいろダウンロードとインストールがあるので数分かかります。

20分以上、進捗がない場合はなにかしら失敗して止まっているかも。
フォルダのサイズは結構大きくなるのでストレージの容量不足に気を付けてください。


セットアップが終了すると、そのまま起動、待機状態になります。
コマンドプロンプトの黒いウィンドウがアプリ本体なので、利用中は閉じないでください。

WEBブラウザで、
http://localhost:7860/
を開くと、操作画面が表示されます(古いバージョンなのでちょっと違います)。


試しに、左上の「Prompt」欄に
cute cat flying in the sky
と入力して、右上のオレンジの[Generate]ボタンを押します。

コマンドプロンプトのほうに進捗状況が表示され、画像の生成が完了すると、ウィンドウ右側にサムネイルが表示されます。サムネクリックで拡大表示になります。


画像ファイルは初期設定では、全てoutputsフォルダ以下に保存されています。
失敗作は、こまめに削除しないとストレージの容量を圧迫します。
画像ファイルのプロパティには、画像生成時の各種設定パラメータが保存されています。

checkpointファイル変更

画面左上にcheckpointファイル選択のプルダウンメニューがあるので、キャラクターイラストが得意な waifu_model-pruned.ckpt 、 trinart2_step115000.ckpt などに変更します。

左上の「Prompt」欄に、

starry eyes, loli moe, long wavy braid hair, blush cheeks, cat ears,
choker, wearing lace dress, many frills,
holding a cat, in garden, flower backgrounds,
art by [[mucha]], [[nendoroid-like]]

下段の「Negative Prompt」欄に、

deformed, blurry, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limb, ugly, poorly drawn hands, missing limb, blurry, floating limbs, disconnected limbs, malformed hands, blur, out of focus, long neck, long body,  mutated hands and fingers

とコピペして、[Generate]してください。
こんな感じのイラストが生成されます。

「Negative prompt」は描いてほしくない、要らないモノを指示する機能です。
例えば、Promptで猫耳「cat ear」を指定すると、しばしば猫ちゃんが登場するので、Negative promptに「cat」を指定すると、猫を描くべからず、と指示したことになります。


「Batch count スライダー」は、数値を指定した分だけ、繰り返して画像を生成します。
10、と指定すると、生成を10回繰り返して、10枚の画像を作ってくれます。

ui-config.json を編集すると、各種スライダーの初期値、最小、最大値などの設定もできます。ここで、Batch countをデフォルトの16よりも多くできます。※200とか。

終了は、WEBブラウザのタブとコマンドプロンプトのウィンドウを閉じればOKです。

グラフィックボードの設定

かなり負荷がかかるので、MSI AfterburnerなどでGPUのPower Limitを最低に設定しておくと良いと思います。V/F curve editorで電圧を下げると効率的です。


VRAMが10GB無い場合

VRAM省メモリ動作にする

こちらのソースから、
ldm¥modules¥attention.py
ldm¥modules¥diffusionmodules¥model.py
の二つのファイルを差し替えるとメモリ使用量に余裕ができます。
ただし、生成される画像がほんの少しだけ変わります。

※この方法はメモとして残しますが、下記方法を組み合わせるのがベターです。

さらにVRAMを節約する

webui-user.batを編集して、緑色部分のオプションを追加します。

set COMMANDLINE_ARGS=--medvram 
メモリ使用量が減らせますが、処理が遅くなりますし、絵も通常と違うものが生成されるので、シェアされているプロンプトと設定でも同じ絵が再現されないと思います。

set COMMANDLINE_ARGS=--lowvram
多分4GBで動かせるモード。すごく遅いらしいです。

xformers オプション

メモリを節約し、さらに画像生成も早くなるので不思議。
webui-user.batを編集して、緑色部分のオプションを追加します。

set COMMANDLINE_ARGS=--xformers

GPUの種類によって効果に差があるようです。

GTX1660Superの場合

GTX16シリーズは、webui-user.batを編集して、

set COMMANDLINE_ARGS=--xformers --medvram --precision full --no-half

と書き換えるとちゃんと動くらしいです。

更新方法

ファイルを最新版に更新するには、C:¥SD¥stable-diffusion-webui の中で
右クリック>Git Bash Here
して、出てきた黒いウィンドウに、

git pull

と入力してENTER、で最新版ファイルに更新されます。
処理が終わったらウィンドウは閉じてOKです。



Tips

よく使う項目を常に表示する

VAEの切り替え、CLIP SKIPの値の確認、ファイルフォーマットの変更(PNG/JPG)、ENSDの確認(31337か否か)を Settingsタブを開かずに変更と確認が出来るので便利です。お勧め。

Setingsタブ → User interface → Quick settings list に下記をコピペする。
沢山出すと邪魔なので、不要な項目は削ってください。
※2023.01.27現在、Hypernetworkの指定の方法が変更になり、プルダウン選択と強度スライダーが廃止されました。

sd_model_checkpoint,
sd_vae,
CLIP_stop_at_last_layers,
sd_hypernetwork,
sd_hypernetwork_strength,
eta_noise_seed_delta,
samples_format,
save_images_before_highres_fix,

無限に繰り返し生成する

[Generate]を右クリック → Generate Forever 、で繰り返し生成する。
シードを-1(ランダム)にしておかないと同じシードを繰り返してしまうので注意。

生成を止めるには、[Interrupt] を右クリック → Cancel generate forever

プロンプトの強調

(cat ears:1.2) 
のように、(プロンプト:倍率)とすると指示を強めたり弱めたりできます。

強弱をつけたい範囲をフォーカスして、Ctrl+カーソルの上下、で指示出来ます。便利。
すでに設定してある範囲はカーソルが()の中にあればCtrl+上下で増減できます。

画像のプロンプトを見たいよ

[PNG Info]タブの「Source」に画像をドラッグ&ドロップするとプロンプトやパラメータが表示されます。
[Send to txt2img]を押すと、[text2img]タブへプロンプトや設定が転送されます。


ちなみに txt2img の Prompt欄 に画像ファイルをドラッグ&ドロップして、パラメータを見ることもできます。
[Generate]の近くの []を押すとパラメータが各項目にセットされます。

なんか動かないんだけど

インストールに失敗する

Pythonのバージョンを守ってください。Python3.10.6です。
間違えて3.11.xをインストールすると動きません。
(2023.01時点)
間違ったバージョンはアンインストールしてください。

次に、venvフォルダを削除してから再度 webui-user.bat を実行してください。
多分それで動きます。

例 C:¥SD¥stable-diffusion-webui¥venv

なんだか画像が全部灰色なんだけど


左:灰色  右:別途VAE指定

checkpointファイルによっては生成した画像がすごく灰色っぽくなります。
対策としては、任意のVAEファイルを指定すると鮮やかになります。



VAEファイルは、↓このフォルダに配置します。

例 C:¥SD¥stable-diffusion-webui¥models¥VAE¥

指定と切り替えは、前述の「よく使う項目を常に表示する」を参照してください。
checkpointファイルと一緒に専用のVAEがアップロードされていることもあります。

更新したら動かなくなった

よくあります。更新前のフォルダをバックアップしておくか、最初から入れなおすのがベター。
venvフォルダ削除、extensionsフォルダの中身を一端別の場所へ移動する、などで原因を特定したり、回復する可能性があります。
まめにextensionsのアップデートをしておくと良いかもしれません。

なんかバグってる

よくあります。修正を待ちましょう。

日本語の情報リンク

dskjal : Waifu Diffusion で効率的に画像を生成する

としあきdiffusion

魔術書

CUDAのこと

CUDA Tool Kit が必要ですが、自動で入るらしい。

うちは11.3、11.6、11.7が入ってます。どれかで動くさ、きっと。

https://developer.nvidia.com/cuda-toolkit-archive


cuDNNのインストールも必要だったりするかも。

https://developer.nvidia.com/rdp/cudnn-download

のちのち必要になったときには、 zlibwapi.dll を cuDNNの bin フォルダに置く必要があるらしい。ググったりHDD内を検索すれば多分あります。

例 C:¥cudnn_cuda11¥bin¥zlibwapi.dll

あと手作業でパスを設定する必要もあります。

詳しくは cuDNN インストール でググってください(わからん)。


AIすごいね

0 件のコメント:

コメントを投稿