やりたいこと
Stable Diffusionで生成した画像がぼやけている/コントラストが低いことがあります。
ここでは改善させる二つの方法を紹介します。
VAEの使用
一つ目はVAEを使用する方法です。
VAEのインストールおよび使用方法は以下の記事を参照してください。
おすすめVAE
上の記事でも紹介していますが、ここでも同じVAEを二つ紹介します。
これらのVAEを使用して画像を生成することで画質の改善する可能性があります。
汎用VAE
stability ai(Stable Diffusion開発元)によるVAEです。
実写、アニメ調のモデルともに使用できます。
以下のページの”vae-ft-mse-840000-ema-pruned.ckpt”からダウンロードできます。

アニメ画像用VAE
アニメ画像用のVAEです。
以下のページの”kl-f8-anime.ckpt”からダウンロードできます。

例
vae-ft-mse-840000-ema-pruned
”vae-ft-mse-840000-ema-pruned”を使用した例です。
左側がVAEなしで、右側がvae-ft-mse-840000-ema-prunedを使用して生成した画像です。
右側の画像の方がコントラストが高く、はっきりしたのが分かります。

kl-f8-anime
”kl-f8-anime”を使用した例です。
左側がVAEなしで、右側がkl-f8-animeを使用して生成した画像です。
右側の画像の方がコントラストが高く、はっきりしたのが分かります。
vae-ft-mse-840000-ema-prunedよりもコントラストが高くなったように見えます。
(kl-f8-animeがアニメ調の画像むけのVAEなのが原因だと思います。)

その他
VAEはAMDのGPU(DirectML)でも動作する?
ものによります。
このページで紹介させていただいた二つのVAEは動作します。
ただしfp8_e4m3fnなどのフォーマットを使用しているVAEは動作しない可能性が高いです。
Hires. fixの使用
二つ目の方法はHires. fixを使用して画像の解像度を上げ、はっきりした画像にする方法です。
使用方法
Hires. fixにチェックを入れて有効にします。

初期値では2倍に拡大された画像が生成されます。
必要に応じて画像を外部のアプリ(ペイントとか)で縮小します。
2倍の画像を生成するには相応のメモリが必要です。
使用メモリを減らすためにWidth/Heightを小さくすることができますが、モデルによりWidth/Heightを小さくするとまともに画像生成ができないとがあります。
Hires. fixは元画像をきれいに拡大するものではありません。そのため意図していない画像(Hires. fixなしで生成される画像と異なる画像)が生成されることがあります。その場合Denoising strengthの値を小さくすることで元画像に近い画像を生成するように設定することが可能です。
例
左がHires. fixなしで、右がHires. fixありです。
画像がかなり変わってしまっていますが(Denoising strength=0.3)ですが右の画像の方がくっきりしているのがわかります。

結果
Stable Diffusionでより、はっきりした/コントラストの高い画像を生成することができました。
コメント