2023/03/25

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
  • LORA(追加学習)
    • japanese doll likeness
      • https://huggingface.co/nolanaatama/jdllora/tree/main
    • korean doll likeness
      • https://huggingface.co/amornlnw7/koreanDollLikeness_v15/tree/main

構築

ローカルで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

出来上がった画像がこれ
00017-2681410063-,,((photo,bestquality,highresolution,4k,hd,hdr,dslr)),2girl,sittingonachairinanoutdoorcafe,cute,slimbody,a.png

ポジティブプロンプトをいじってみる

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

00039-1495376077-,((photo,bestquality,highresolution,4k,hd,hdr,dslr)),portrait,beautiful1girl,bothhandsinpocket,coolface,full.png

チューニングのコツ

強調構文

( )を使用すると、囲んだ言葉に対するモデルの注目度が上がり、 [ ]を使用すると注目度が下がります。 指定がない場合、係数は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