Tiled Diffusion を利用してimg2imgでHires.fixと同様のアップスケールをする
Tiled Diffusion を利用してimg2imgでHires.fixと同様のアップスケールをする手順を紹介します。
概要
こちらの記事 では、txt2imgでHires.fixを利用して生成画像の解像度を上げて細部を描画、鮮明化する手順を紹介しました。
同様の処理をimg2imgでも実行したい場合がありますが、img2imgには Hires.fixの設定項目がありません。
この記事では、Tiled Diffsuionの機能を利用して、img2imgでHires.fixと同様の処理をする方法を紹介します。
事前準備:Tiled Diffusion のインストール
Tiled Diffusionをインストールします。手順は
こちらの記事 を参照して下さい。
手順:SDXLの場合
元の画像を生成します。今回は以下のプロンプトで生成した画像を利用します。
Settings
Prompt: 1girl, girl at balcony, zoom in girl BREAK fantasy, old large town, many building, middle ages, wide view, sea, from above, official art, masterpiece, best best quality
Negatuve prompt: worst quality, low quality, text, watermerk
Steps: 20, Sampler: DPM++ 2M, Schedule type: Automatic, CFG scale: 7, Seed: 4075571870, Size: 1024x768, Model: Animagine XL V3.1
下図の画像を準備しました。
なお、txt2imgでHires.fixを利用した場合は、下図の生成結果となります。
生成された画像が表示されている枠の下部のツールバーの[Send image and generation parameters to img2img tab.]のボタンをクリックします。
ボタンを苦リクすると、img2imgのタブに切り替わり、入力画像に生成した画像が設定されます。また、生成時のプロンプトや各種設定、シード値なども
img2imgの設定に反映されます。
ページを下にスクロールします。[Tile Diffusion]のパネルをクリックして開きます。
[Tiled Diffusion]のチェックボックスをクリックしてチェックをつけます。
[Keep input image size]のチェックボックスにもチェックをつけます。
[Method]のドロップダウンリストをクリックします。ドロップダウンリストから[Mixture of Diffusers]の項目をクリックして選択します。
[MultiDiffusion]でも同様の効果になりますが、元絵からの変化が[Mixture of Diffusers]のほうが少ないです。
"Latent tile width"と"Latent tile height"の値を192に変更します。タイルのサイズを大きくして、形状やアウトラインが維持される設定にします。
[Upscaler]のドロップダウンリストボックスをクリックします。ドロップダウンリストが表示されます。
一覧から利用したいアップスケーラーを選択します。今回は"R-ESRGAN 4x+ Anime6B"を選択します。
[Scale Factor]の値が"2"であることを確認します。2倍のサイズでのアップスケールとなります。以上で設定は完了です。
[Generate[ボタンをクリックして画像を生成します。
下図の画像が生成されました。先に紹介したtxt2imgでHires.fixを利用した場合の生成結果の画像と同様の画像が生成できています。
アップスケールはでき、細部まで描画され、鮮明感も増しましたが、オリジナルの画像と違う部分も出ています。
もう少し変化を少なくしたい場合は、[Denoising strength]の値を下げます。先の出力では、0.75 で実行していましたが、0.25に下げます。
[Generate[ボタンをクリックして画像を生成します。変化が少なくなり、よりオリジナルの入力画像に近い状態でアップスケールされた画像が生成できました。
比較
入力画像(元画像)
Hires.fixでアップスケール
Tiled Diffusionでアップスケール
Tiled Diffusionでアップスケール(Denoising Strength 0.25)
手順:Stable Diffusion 1.5の場合 (旧バージョンのUI)
元画像 (入力画像)
今回入力画像として、こちらの画像を用意します。解像度が低いため、顔の表情がつぶれ気味です。
今回の入力画像はStable Diffusion で生成した画像です。生成時のプロンプトやパラメーターは使用したほうが精度が上がりますが、
同一のプロンプトが無くても処理できます。
画像作成のプロンプトは以下です。
Settings
Prompt: 1girl, focused girl, (from front:1.4),standing, highres, black dress, black boots, gradient eyes, full body, overlooking the city from above, Manhattan city, light blue hair, night, full moon, bat wings
Negatuve prompt: worst quality,low quality, text
Steps: 60, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 1275427539, Size: 684x946, Model: Counterfeit-V3.0, Clip skip: 2
アップスケーリングの手順
作成した画像の下部の[Send to img2img]のボタンをクリックします。
生成した画像が、img2imgの画面に転送されます。下図の画面に切り替わります。プロンプトには元画像生成時のプロンプトと同じ内容が設定されています。
ページを下にスクロールします。[Tile Diffusion]のパネルをクリックして開きます。
[Enable Tiled Diffusion]のチェックボックスをクリックしてチェックをつけます。
[Method]のドロップダウンリストをクリックします。ドロップダウンリストから[Mixture of Diffusers]の項目をクリックして選択します。
[MultiDiffusion]でも同様の効果になりますが、元絵からの変化が[Mixture of Diffusers]のほうが少ないです。
"Latent tile width"と"Latent tile height"の値を192に変更します。タイルのサイズを大きくして、小物の形状やアウトラインが維持される設定にします。
[Upscaler]のドロップダウンリストボックスをクリックします。ドロップダウンリストが表示されます。一覧から利用したいアップスケーラーを選択します。
今回は"R-ESRGAN 4x+ Anime6B"を選択します。
[Generate]ボタンをクリックして画像を生成します。アップスケーラー処理が実行され、2倍のサイズで画像が出力されます。
出力された画像です。入力された画像と微妙に違っていますが、構図やコスチュームは維持されています。
さらに変化を少なくしたい場合は、[Denoising strength]の値を下げます。先の出力では、0.75 で実行していましたが、0.25に下げます。
Denoising strength の値が0.25の場合の結果画像です。入力された画像と違いが少なくなり、ほぼ同じポーズや構図でアップスケールできています。
今回の画像では違いが分かりにくいですが、解像度が上がったことで、目の周りや口の描画が詳細にできています。
入力画像(元画像)
Tiled Diffusionでアップスケールした画像
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2023-06-01
改訂日: 2024-09-15