Stable Diffusionにドハマりして時間とストレージ容量が溶けるようになった麗ですコンニチワ。
今は色々調べながら試行錯誤を繰り返して楽しんでいますが、「これ、環境の再構築をしようとしたら絶対に忘れてるわ…」と思ったのでまとめておきます。一応随時更新ってことで。
完全俺得備忘録ですので、ご了承ください。古くなったり間違ってたりすることもあると思うし鵜呑みはだめよ。At your own risk。
ちなみに、自分が自マシンにPythonインストールしていくタイプなので、Colab版で同じことができるのかは知りません(調べてません)。
Nvidia GeForce GTX1080 (VRAM8GB)で始めましたが、多分VRAMはもうちょい少なくても最低限のことはできます。6GBくらいからいけるんじゃないかな(知らんけど)。足りないと黒い画面で「VRAM足りてねーよ(意訳」って言われるので動くかわかんない人はとりあえず試してみればいいと思います。
(最低限ってのは、高詳細度でサイズのデカいのを作ろうとするとエラーが出るけど、後述のWebUIのデフォルトである512×512であれば時間をかければ生成はできるってことです。
いろいろな記事で紹介されているように、12GBくらいあった方が楽しめるのでRTX3060くらいがいいんじゃないかなって思います。自分は積み替えました。GTX1080もだいぶ調子悪くなってきてたしね。
下準備(GUIで生成するために)
次のどっちか、いれよう。
- Stable Diffusion Web UI (AUTOMATIC1111)
- https://github.com/AUTOMATIC1111/stable-diffusion-webui
- 一番いろんなところで紹介されてて記事やノウハウが多い(この記事もSDWU準拠)
- Vladmandic / Stable Diffusion – Automatic
- https://github.com/vladmandic/automatic
- AUTOMATIC1111氏のものをフォークしたやつ。
- 要Nvidia CUDA Toolkit
必要になるのは基本的にPythonとGit。Pythonのバージョンに関しては使うツールのリポジトリに書いてくれてあるので合わせておくこと。
インストールに関してもどちらも記載されているので、その通りに。
Stable Diffusion Web UI
インストールしたら起動してブラウザでアクセス。
ちなみに、http://127.0.0.1:7860/?__theme=dark にするとダークモードでアクセスできる。
Setting
セッティングの変更で、VAEをリストから選択できるようにしておく。
setting -> User Interface -> Quicksettings list に 「,sd_vae」 を追加する。
ModelとLORA
huggingface や civitai などで検索してくる。商用利用の場合はライセンスにも注意。モデルによって推奨されるVAEなどもあるので、それに従ってVAEは追加・選択するのがいいと思う。よく使うのは vae-ft-mse-840000-ema-pruned 。どんなモデルやLORAでも、ダウンロードページに書いてあることはよく読もう。
例
Model
- BRA
- BreakDomain
- chilled_remix
- counterfeit
- dreamshaper
- experience
LORA
- Dark and Light
- epi_noiseoffset2
- flat / flat2
Extensions
AvailableのExtension Index URL が「https://raw.githubusercontent.com/wiki/AUTOMATIC1111/stable-diffusion-webui/Extensions-index.md」になっている場合は「Load from」で読み込むことで一覧から、あるいは「Install from URL」でGithubリポジトリなどから拡張機能をインストールできる。
一覧の方は、Hideのカテゴリのチェックを要確認。ないなと思ったらチェックついてたみたいなのがある。
いずれもインストール後は「Installed」タブで「Apply and restart UI」すること。
以下は今いれているもののメモ。
- Aspect Ratio Selector
アスペクト比を選択できるボタンを設置。一覧からインストール。 - sd-webui-controlnet
Githubリポジトリからインストール。https://github.com/Mikubill/sd-webui-controlnet.git - OpenPoseEditor
https://github.com/fkunn1326/openpose-editor.git - sd-civitai-browser
https://github.com/SignalFlagZ/sd-civitai-browser - dynamic prompts
- easy-generate-forever
- bilingual-localization
- ultimate-upscale-for-automatic1111
- Easy Prompt Selector
プロンプトをポチポチするやつ。Githubリポジトリからインストール。https://github.com/blue-pen5805/sdweb-easy-prompt-selector.git
extensions\sdweb-easy-prompt-selector\tags の中に○○.ymlを配置することでカスタマイズ可能(作者様の説明) - image browser
出力画像のブラウジング。一覧からインストール。 - TiledDiffusion / TiledVAE
VRAM使用量を節約して巨大な画像を生成。一覧からインストール。 - Web UI RemBG
背景抜き。一覧からインストール。
ControlNetについて
さまざまなポージングを使う以外にもできることが増えており、詳細化したり再構築したりできるので、メモ。
【Tile用途(V1.1の場合)】
stable-diffusion/extensions/sd-webui-controlnet/models に https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main からモデルをDLして配置する。(執筆時点ではcontrol_v11f1e_sd15_tile)
Prompt(メモ)
特殊構文
(foo:num) // fooがnum倍の重要性になる(強調)
[foo:bar:when] // 言葉をfooからbarにwhenのタイミングで差し替えて生成する
[foo|bar] // ステップごとにfooとbarを入れ替えて生成する
foo AND bar // fooとbarを(明示的に)混ぜて生成する
styles について
プロンプトを保存しておくstyles機能の内容は、直下のCSVに保存されるので直接編集することもできる。(文字コードに注意)
stable-diffusion/styles.csv
基本的な流れ
- modelとvaeを選ぶ
- t2iにプロンプトとネガティブプロンプトを打ち込んで回す
- ネタがない? chichi-pui か majinAI か ourt-ai あたりでも眺めてたらいいんじゃない?
- t2iのextraでバリエーション作成
- recycleでシード値を持ってくるのを忘れないように。
- t2iのcontrolNetに持ち込んで調整
- i2iでinPaintして細部を修正
- i2iに持ち込んで拡大
おまけ:用語
- Model(Checkpoint)
- stable-diffusion/model/stable-diffusion/
- こいつがないと何も始まらない核となるもの。重量がでかい。
- LORA
- stable-diffusion/model/lora/
- 追加学習ファイル。ニュアンス等を調整してくれるもの。
- VAE
- stable-diffusion/model/vae/
- 彩色や塗りを補助するもの
- controlNet
- ポージングの指示をするもの
- Embeding
- stable-diffusion/embeding/
- 追加プロンプトなど
- EasyNegative などがこれにあたる。
- EasyNegative / EasyNegativeV2 / bad_prompt / bad_prompt_version2 / bad-hands-5 / badhandv4 / negative_hand-neg / ng_deepnegative / verybadimagenegative
- Deforum
- 動画を生成する。