Tiled Diffusion & VAEで高画質化
Tiled Diffusionとは?
Tile Diffusionは、元になる画像を分割し、分割した画像1枚づつをアップスケールしていくことで、少ないビデオメモリーで高解像度の画像を作成する拡張機能です。
Tiled Diffusion&VAE(インストールは、こちらから)
以下の画像では、12枚(橫3枚縦4枚)のタイルに分割しています。そしてタイルは前後のタイルと重なっている部分を持っています。
アップスケールは、タイル1枚ずつ行うため作業で使用するビデオメモリーが節約できるワケです。
また、
- 1枚ずつアップスケールすること、
- 重なっている部分をもつこと
から、元画に忠実なアップスケール画像が出来上がります。
そしてさらに、大きな画像も小さく分割してアップスケールすることで、メモリ不足でエラーになっていた画像もアップスケールすることができます。
アップスケールする
それでは、アップスケールしてみます。
Tile Diffusionをインストールすると、以下のように拡張機能のタブが増えています。
Tiled Diffusionタブを開くと設画面が開きます。
- 1. Tiled DiffusionのOn/Off
- Tiled Diffusionを使う場合には、Enableにチェックを入れます。
- 2. タイル化するアルゴリズム
- タイル化するアルゴリズムを「MultiDiffusion」、「Mixture of Diffusion」から選択します。結果が変わりますので、どちらが合うかは試してください。
- 3. タイルの大きさと重なり
- タイルの橫幅、縦幅、重なり具合を指定します。推奨は元画像の1/8〜1/10だそうです。重なる部分を大きくすると結果タイル枚数が増えますのでアップスケールに時間がかかります。
「Latent tile batch size」は、一度に何枚のタイルを作成するかを指定します。VRAMが十分にない場合には、8以下にしてください。
- 4. アップスケールラー
- どのアップスケーラーを使用するか、アップスケールのサイズ指定をします。
- 5. ノイズインバージョン
- 元画像に出来るかぎり忠実にアップスケールしたい場合はONにし、細かく設定を調整します。
- Noise InversionのOn/Off
- Inversion Steps – 反復回数、多いほど精度が上がる
- Retouch – ノイズ反転後の微調整
- Renoise strength – ノイズ強度
- Renoise kernel size – サイズが小さいほど処理速度が上がる
Tiled VAE
Tile VAEは、タイルに分割した画像をエンコード(処理するデータ形式へ変換)/
デコード(画像に変換)します。大きな画像も小さなタイルに分割するためビデオメモリ不足でエラーが起きにくくなります。
Entable Tiled VAEにチェックを入れるだけで設定はビデオメモリ不足でエラーが起きた場合のみタイルサイズを変更します。
元画像は、512×768です。
- 左画像は、人数が増えた。
- 中央、人数対策でタイルサイズを大きくした。
- Noise InversionをONにした。
タイルサイズを512pxの1/8の橫幅64に設定すると、何もないタイルにプロンプトから「1 woman」を読み取り書込が行われたようです。
タイルサイズの橫幅を86(根拠なしでトライ)に変更すると人数問題は解消されました。
右画像は、Noise InversionをONにしました。
顔部分を比較してみます。
まとめ
元画を忠実にアップスケールするために必須の拡張機能です。
さらに、ControlNet Tile、Hires.fixなども組み合わせてアップスケールすることもできます。
