【Stable Diffusion】Refiner

  • URLをコピーしました!
目次

Stable Diffusion

前回、Stable DiffusionのHires. fixをいじってみました。

今回はRefinerをいじってみましょう。

Refinerとは2つのチェックポイントを使って1つは描画、もう一つは仕上げを担当させる機能です。

2つの異なる画風がそれぞれを担当することで画質が向上する、ということだと思います。

それでは始めていきましょう。

Refiner

まずはRefinerがWeb UIのどこにあるか確認してみましょう。

前回のHires. fix同様に、ページの真ん中らへんにありますが、オプション機能のためか折りたたまれているので、右側の◀︎ボタンをクリックして開いてみます。

項目には「Checkpoint」と「Switch at」の2つがあります。

「Checkpoint」は仕上げを担当するチェックポイントを選択する欄です。

「Switch at」は画像生成ステップのどこで仕上げのチェックポイントに切り替えるかという値です。

デフォルトが「0.8」ですが、これは画像生成用チェックポイントが80%を担当して、残りの20%を仕上げ用チェックポイントが担当するということです。

実際に試してみる

それでは実際に試していきましょう。

今回のプロンプトはこんな感じで用意してみました。

1 girl, working, very long hair, right hand on hip, left hand thumbs up, blue eyes, blonde hair, grin, wink, glasses, factory, deep blue work jacket, open jacket, white shirt, backwards deep blue cap, brown work pants, half upper body, looking at viewer, extremely detailed

働いている女の子で、右手を腰に、左手をサムズアップ(いいね)をしていて、目は青色、髪はブロンドでロングヘア、ウインクをして、メガネを掛けていて、工場にいて、濃い青のジャケットを着ていて、前は開けていて、白いシャツを着て、帽子は濃い青で前後逆に被っていて、茶色の作業ズボンを着ていて、上半身の画像で、こちらを向いていて、とても高画質な画像 と言った感じです。

今回は画質に関するプロンプトである「extreamely detailed」を入れた方がいい感じの画像を出してくれました。

プロンプトによって入れた方がいい時と入れない方がいい時とあるようです。

基本的なパラメータはこんな感じです。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

ここで今回はチェックポイントを3種類、いつも使っている「blue_pencil-XL」を画像生成用チェックポイントとして、リアル系で日本人女性を得意とする「yayoi-mix」、アニメ系で異なる画風の「Nostalgia-clear」を仕上げ用チェックポイントとして使っていきます。

ちなみにライセンスは、記事を書いている時点でblue_pencil-XLは「CreativeML Open RAIL++-M Addendum」、yayoi-mixは「CreativeML Open RAIL-M Addendum」、Nostalgia-clearは「CreativeML Open RAIL-M Addendum」ということで使っていくに当たって問題はなさそうです。

まずは同じ条件で、それぞれがどんな画像を生成するかみてみましょう。

Checkpoint: blue_pencil-XL

Checkpoint: yayoi_mix

指がおかしくなるケースが多く、何度か生成させました。

あと絶対に腰に手をやってくれないので、チェックポイントによっても得意な格好があったりするのかもしれません。

とりあえず今回はblue_pencil-XLと結構離れたチェックポイントをRefinerに使ったらどうなるかということで試してみます。

Checkpoint: Nostalgia-clear

こちらも指がおかしくなるケースが多く、何度か生成させました。

そのうちに指とかがおかしくなるケースに対する対処法も勉強することにしましょう。

とりあえず今回はこれでいきます。

まずはblue_pencil-XLとyayoi-mixで試してみます。

Refiner
Checkpoint: yayoi-mix
Switch at: 0.8

Refineされるどころがめちゃくちゃになってしまいました。

あまりに画風がかけ離れすぎているとダメなのでしょうか。

同じアニメ風のチェックポイントとしてNostalgia-clearを試してみましょう。

Refiner
Checkpoint: Nostalgia-clear
Switch at: 0.8

こちらの組み合わせも同じで色合いがぶっ飛びました。

対処法を色々試してみる

このままでは全く使えないので、対処法を考えてみましょう。

まずはblue_pencil-XLとNostalgia-clearの組み合わせで画質が良くなるセッティングがあるか試してみます。

一つ目はまだ仕上げに入る前に十分画像が生成されていなかったり、仕上げの過程がまだ終わっていないと考えて、Sampling stepsを増やしてみましょう。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 60
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

ダメでした。

Hires. fixと競合しているかもしれないので、とりあえずHires. fixをやめて、単純に解像度を倍にしてみます。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 1024
Height: 1024

Hires. fixを削除

ダメでした。

もっと画風が違いチェックポイントじゃ無いとダメなのかと、同じチェックポイント作者の「anime_pencil-XL」を試してみました。

ライセンスは「CreativeML Open RAIL++-M Addendum」ですが、「No generation service」と「No selling model」と「Same permissions required」です。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: amine_pencil-XL
switch at: 0.8

今回はちゃんと画像が生成できました。

ただかなり似通ったチェックポイントを使ったので、どこがどう変わったのかよく分かりません。

で思ったのが、使ったチェックポイントが悪かったのでは無いかと。

どうやらチェックポイントの大元になるモデルはStable Diffusionを開発しているStability AI社から提供されていて、そのベースとなるモデルがblue_pencil-XLとanime_pencil-XLは「SDXL」というベースモデル、yayoi-mixとNostalgia-clearは「SD1.5」というベースモデルのようです。

Civitaiの各チェックポイントのページのこの部分で確認することができます。

ということで同じベースモデル、つまりSDXLのものを選んで試してみましょう。

Refinerには同じベースを使え!

新たに選んだのはyayoi-mixと同じ作者の「fuduki_mix」とふんわりしたアニメ画像が得意そうな「BreakDomainXL」です。

ライセンスはどちらも「CreativeML Open RAIL++-M Addendum」(ただしBreakDomainXLはNo seling Model)です。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: fuduki_mix
switch at: 0.8

今度は色合いは問題なく出力されました。

目とか頬、口や葉が実写系のfuduki-mixで仕上げられて、実写に近くなっている感じがします。

同様にBreakDomainXLも試してみます。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: BreakDomainXL
switch at: 0.8

BreakDomainXLとだとどこが変わったのかちょっと分かりにくい、というか私には分かりません。

とにかく「SDXL系のチェックポイントにはRefinerもSDXL系のチェックポイントを使え!」ということが分かりました。

Refiner再挑戦

Refinerでは画風が違う方が仕上がりの違いが明確に出そうなので、「blue_pencil-XL」と「fuduki_mix」の組み合わせでRefinerをもう少し詳しくみていきます。

ということで最初に戻って条件から確認していきましょう。

まずプロンプトはこんな感じでした。

1 girl, working, very long hair, right hand on hip, left hand thumbs up, blue eyes, blonde hair, grin, wink, glasses, factory, deep blue work jacket, open jacket, white shirt, backwards deep blue cap, brown work pants, half upper body, looking at viewer, extremely detailed

そしてパラメータはこんな感じです。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

blue_pencil-XLの出力画像はこんな感じでした。

次に「fuduki_mix」を使って同じ条件で画像を生成させてみるとこんな画像が生成できました。

色々と無視されているプロンプトも多いですが、今回は仕上げ用ということで気にせずにいきます。

先ほど「switch at」を「0.8」として生成した画像はこんな感じでした。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: fuduki_mix
switch at: 0.8

Refinerでいじれるのはあとは「switch at」だけなので、これを色々いじってみます。

まずは少し下げて「0.5」。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: fuduki_mix
switch at: 0.5

アニメ的な風合いは残っているのにしろ、かなり実写に近くなりました。

それでは「switch at」をさらに下げて「0.25」にしてみます。

Sampling method: DPM++ 2M SDE
Schedule type: Karras
Sampling steps: 30
Width: 512
Height: 512
Upscaler: Latent
Hires step: 0
Denoising strength: 0.7
Upscale by: 2

Refiner checkpoint: fuduki_mix
switch at: 0.25

流石に「0.25」まで下げるとほぼ実写ぽくなりました。

ただ「fuduki_mix」だと日本人っぽい(なのかアジア人っぽいなのか)女性を描いていたのですが、Refinerで使用するとちゃんと金髪だったり、工場だったりと表現されています。

もしかしたら今回のように「汎用的に色々な画像を生成するのが得意なチェックポイント」で大まかに画像を生成して、Refinerでは「ある特定の画像を生成するのが得意なチェックポイント」で目的としたい画風で描かせるといい感じの画像ができるのかもしれません。

とはいえ1つのチェックポイントで満足する画像が出せている場合はわざわざ使う必要はないかなと思います。

次回はStable DiffusionのBatch countとBatch sizeを試してみましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次