StableDiffusionで画像生成してみる
環境
- Windows 11
- Geforce 3080ti VRAM 12GB
- 詳細なスペック:https://jisaku.com/pc/K1xoajgXroqBymMhTSJqXr
- ^のPCスペックだとサンプリングステップ数20で1枚生成するのに15〜20秒くらい
- stable diffusion
- https://github.com/AUTOMATIC1111/stable-diffusion-webui
- model
- ChilloutMix(事前学習)
- https://civitai.com/models/6424
- ChilloutMix(事前学習)
- LORA(追加学習)
- japanese doll likeness
- https://huggingface.co/nolanaatama/jdllora/tree/main
- korean doll likeness
- https://huggingface.co/amornlnw7/koreanDollLikeness_v15/tree/main
- japanese doll likeness
構築
ローカルでstable diffusionを動かす方法はこの記事を参考にした
https://yuuyuublog.org/stablediffusion_local/
記事通りに進めるとRuntimeError: Cannot add middleware after an application has started
エラーが出たので調べるとstable diffusionが依存してるライブラリのバージョン依存らしいので以下のwikiを参考にインストールしたら解消した。
https://wikiwiki.jp/sd_toshiaki/エラー解決メモ#id367fcc
アジア人の表情描写が得意なChilloutMixという学習済みモデルをDLしてくる。
次により日本人っぽくなるLORA(追加学習用)のモデルと韓国人っぽくなるLORAをDLしてくる。
ポジティブプロンプトにLORAを指定する
lora:koreanDollLikeness_v15:0.2, lora:jdllora:0.6, ((photo, best quality, high resolution, 4k, hd, hdr, dslr)), 2girl, sitting on a chair in an outdoor cafe, cute, slim body,aegyo sal, (smile), (k-pop idol), (long black hair), blue dress, glowing eyes, shiny skin
ネガティブプロンプトはこちら
paintings, sketches, digital arts, (worst quality:2), (low quality:2), (normal quality:2), low resolution, ((monochrome)), ((grayscale)), watermark, out of frame, (ugly:1.2), ng_deepnegative_v1_75t, bad_prompt_version2, bad-hands-5, naked, nude, nipples, nsfw, people
設定はこちら
Steps: 51, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 2681410063, Size: 768x512, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix
出来上がった画像がこれ
ポジティブプロンプトをいじってみる
lora:jdllora:0.4, ((photo, best quality, high resolution, 4k, hd, hdr, dslr)), portrait, beautiful 1girl, both hands in pocket, cool face, full body, (balck hair), wear blouson
チューニングのコツ
強調構文
( )を使用すると、囲んだ言葉に対するモデルの注目度が上がり、 [ ]を使用すると注目度が下がります。 指定がない場合、係数は1.1となり括弧の数だけ乗算します。 指定する場合は文字の後ろに「:〇.〇」といった形で指定します。 また、( )[ ]自体をpromptに利用したい場合、下記例文のようにバックスラッシュを利用してください。
a (word) - 単語への注目度を【1.1 】上げる
a ((word)) - 単語への注目度を【1.21】上げる (= 1.1 * 1.1)
a [word] - 単語への注目度を【1.1 】下げる
a (word:1.5) - 単語への注目度を数値分かける (= 1 * 1.5)
a (word:0.25) - 単語への注目度を数値分かける (= 1 * 0.25)
a \\(word\\) - プロンプトにリテラル()文字を使用する
https://qiita.com/nyanko5656/items/c2cf537d4d3b46b279a7