stable-diffusion

  • Stable Diffusion 自分用メモ(=超初心者向け)

    Stable Diffusionにドハマりして時間とストレージ容量が溶けるようになった麗ですコンニチワ。
    今は色々調べながら試行錯誤を繰り返して楽しんでいますが、「これ、環境の再構築をしようとしたら絶対に忘れてるわ…」と思ったのでまとめておきます。一応随時更新ってことで。
    完全俺得備忘録ですので、ご了承ください。古くなったり間違ってたりすることもあると思うし鵜呑みはだめよ。At your own risk。

    ちなみに、自分が自マシンにPythonインストールしていくタイプなので、Colab版で同じことができるのかは知りません(調べてません)。
    Nvidia GeForce GTX1080 (VRAM8GB)で始めましたが、多分VRAMはもうちょい少なくても最低限のことはできます。6GBくらいからいけるんじゃないかな(知らんけど)。足りないと黒い画面で「VRAM足りてねーよ(意訳」って言われるので動くかわかんない人はとりあえず試してみればいいと思います。
    (最低限ってのは、高詳細度でサイズのデカいのを作ろうとするとエラーが出るけど、後述のWebUIのデフォルトである512×512であれば時間をかければ生成はできるってことです。
    いろいろな記事で紹介されているように、12GBくらいあった方が楽しめるのでRTX3060くらいがいいんじゃないかなって思います。自分は積み替えました。GTX1080もだいぶ調子悪くなってきてたしね。

    下準備(GUIで生成するために)

    次のどっちか、いれよう。

    必要になるのは基本的に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

    基本的な流れ

    1. modelとvaeを選ぶ
    2. t2iにプロンプトとネガティブプロンプトを打ち込んで回す
      • ネタがない? chichi-pui か majinAI か ourt-ai あたりでも眺めてたらいいんじゃない?
    3. t2iのextraでバリエーション作成
      • recycleでシード値を持ってくるのを忘れないように。
    4. t2iのcontrolNetに持ち込んで調整
    5. i2iでinPaintして細部を修正
    6. 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
      • 動画を生成する。