元の画像の形状や構図を維持してアップスケールする (ControlNet Tile / Tiled Diffusion を利用)
ControlNet Tile, Tiled Diffusion を利用して、元の画像の形状や構図を維持してアップスケールする手順を紹介します。
概要
こちらの記事 ではアップスケールにより画像の解像度を高める手順を紹介しました。
アップスケールの利用により、画像のサイズを大きくでき、細かい描画を追加できます。
一方で、
こちらの記事 で紹介しているとおり、アップスケールにより、元の画像から、画像の構図が変わってしまったり、
衣類や小物、パーツのデザインが変わってしまう現象が発生します。
構図や小物の形状の変化が許容できる場合は問題ありませんが、許容できない場合もあります。
この記事では、ControlNet Tile と Tiled Diffusion を利用して、元の画像の形状や構図をできるだけ維持して、
アップスケールする手順を紹介します。
ワンポイント
生成時のパラメーターが利用できる場合は
こちらの記事 の
方法でより、オリジナルの画像に近い状態でアップスケーリングできます。
メモ
ControlNetを利用せずに、Tiled Diffusionのみで、形状を変化させずにアップスケールする手順もあります。
詳しくは
こちらの記事 を参照してください。
手順: SDXL 利用
事前準備
ControlNet のインストール
CotrolNet 1.1 をインストールします。手順は
こちらの記事 を参照してください。
ControlNet Tile モデルのインストール
ControlNet Tileのモデルをインストールします。今回モデルは、"xinsir_controlnet-union-promax-sdxl-1.0 [9460e4db]" を利用します。
モデルのダウンロードは
こちらの記事 を参照して下さい。
元画像 (入力画像)
今回入力画像として、こちらの画像を用意します。解像度が低いため、顔の表情がつぶれ気味です。
今回の入力画像はStable Diffusion 1.5 で生成した画像ですが、生成時のパラメーターは使用しませんので、
手書きのCGやイラスト画像でもアップスケーリングできます。
アップスケーリング
Stable Diffusion WebUIにアクセスします。上部の[img2img]のタブをクリックします。下図の画面に切り替わります。
img2imgの入力画像のフィールドに用意した入力画像を設定します。
ページを下にスクロールし、ControlNetの枠をクリックして開きます。下図の画面が表示されます。
[Control Type]のエリアの[Tile]のラジオボタンをクリックしてチェックをつけます。
[Preprocessor]のコンボボックスに"tile_resample"を選択します。[Model]のコンボボックスに"xinsir_controlnet-union-promax-sdxl-1.0 [9460e4db]"を選択します。
ControlNetパネル上部の[Enable]チェックボックスをクリックしてチェックをつけます。[Pixel Perfect]のチェックボックスもクリックしてチェックをつけます。
ページ上部に戻り、画像の特徴を表すプロンプトを入力します。今回は以下のプロンプトを入力します。
また、モデルはAnimagine XL v3.0を利用します。
Prompt
Prompt: 1girl, standing, full body, blue jacket, white long skirt, Illustration, white background, masterpiece
Negative prompt: worst quality, low quality
出力画像のサイズを設定します。[Resize by]のタブをクリックして選択し、[Scale]の値を"2"に設定します。入力画像の2倍のサイズで画像を生成します。
画像を生成します。
生成画像は下図です。結果が元の画像からあまり変化せず、やや粗い印象です。
ControlNet の Weightの値を下げます。[Contorl Weight]の値を0.5に下げます。
画像生成を実行します。下図の画像が生成されます。
さらに、[Ending Contorl Step]の値を下げると、元の画像から変化が大きくなります。
アップスケール結果の比較
ControlNetのウェイトを下げるほど元画像からの変化が大きくなり、モデルの影響が強まります。
元画像
Weight:1.0
Weight:0.5
Weight:0.5 EndingStep:0.5
手順: Stable Diffusion 1.5利用
事前準備
ControlNet のインストール
CotrolNet 1.1 をインストールします。手順は
こちらの記事 を参照してください。
Tiled Diffusion のインストール
Tiled Diffusionをインストールします。手順は
こちらの記事 を参照して下さい。
元画像 (入力画像)
今回入力画像として、こちらの画像を用意します。解像度が低いため、顔の表情がつぶれ気味です。
今回の入力画像はStable Diffusion で生成した画像ですが、生成時のパラメーターは使用しませんので、
手書きのCGやイラスト画像でもアップスケーリングできます。
アップスケーリング
Stable Diffusion Web UIにWebブラウザでアクセスします。上部の[img2img]のタブをクリックします。
下図の画面に切り替わります。
入力画像のフィールドに用意した入力画像を設定します。
ページを下にスクロールし、ControlNetの枠をクリックして開きます。下図の画面が表示されます。
ControlNetの入力画像に用意した入力画像を設定します。img2imgの入力に設定した画像と同じ画像を設定します。
以下の設定をします。
[Enable]のチェックボックスをつけます。
Preprocessorは[tile_resample]を選択します。
Modelは[control_v11p_sd15s2_lineart_anime]を選択します。
[Run preprocessor]ボタンをクリックして、プロプロセッサ適用後のイメージを確認します。
画像の出力パラメーターを設定します。[Sampling method]は"DDIM"を選択します。画像の出力サイズは、
入力した画像と同じサイズに設定します。アップスケールしますが、画像出力のサイズはオリジナルの画像のサイズのままでよいです。
[Tiled Diffusion]の枠をクリックして枠を展開します。下図の画面が表示されます。
以下の設定をします。
[Enable Tiled Diffusion]のチェックボックスをクリックしてチェックをつけます。
[Upscaler]は"R-ESRGAN 4x+ Anime6B"を選択します。
プロンプトには何も入力せず、[Generate]ボタンをクリックして実行します。
アップスケールされた画像が出力されます。
アップスケールされた画像を確認します。小物やポーズがほぼオリジナルから変化していないことが確認できます。
Steps: 20, Sampler: DDIM, CFG scale: 7, Seed: 4289915323, Size: 1024x1536, Model hash: db6cd0a62d, Model: Counterfeit-V3.0, Denoising strength: 0.75, Tiled Diffusion upscaler: R-ESRGAN 4x+ Anime6B, Tiled Diffusion scale factor: 2, Tiled Diffusion: "{'Method': 'MultiDiffusion', 'Tile tile width': 96, 'Tile tile height': 96, 'Tile Overlap': 48, 'Tile batch size': 4, 'Upscaler': 'R-ESRGAN 4x+ Anime6B', 'Upscale factor': 2, 'Keep input size': True}", ControlNet: "preprocessor: tile_resample, model: control_v11f1e_sd15_tile [a371b31b], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 1, 64)"
比較
アップスケールにより、若干彩度が落ちています。ペインティングの色が増えており、汚れ感が出てていますが、ほぼ元画像と同じ構図、形状です。
元画像
Tiled Diffusion アップスケール
出力結果をより鮮明にしたい
出力結果のアップスケールされた画像ですが、もっと鮮明に出力したい場合があります。
プロンプトを設定すると、出力結果を鮮明にできる場合があります。
Prompt
masterpiece, best quality, ultra-detailed,
Negative prompt
worst quality, low quality
出力結果は以下になります。
masterpiece, best quality, ultra-detailed,
Negative prompt: worst quality, low quality
Steps: 20, Sampler: DDIM, CFG scale: 7, Seed: 2245711015, Size: 1024x1536, Model hash: db6cd0a62d, Model: Counterfeit-V3.0, Denoising strength: 0.75, Tiled Diffusion upscaler: R-ESRGAN 4x+ Anime6B, Tiled Diffusion scale factor: 2, Tiled Diffusion: "{'Method': 'MultiDiffusion', 'Tile tile width': 96, 'Tile tile height': 96, 'Tile Overlap': 48, 'Tile batch size': 4, 'Upscaler': 'R-ESRGAN 4x+ Anime6B', 'Upscale factor': 2, 'Keep input size': True}", ControlNet: "preprocessor: tile_resample, model: control_v11f1e_sd15_tile [a371b31b], weight: 1, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 1, 64)"
比較すると、プロンプトありのほうが若干ですが、鮮明感があります。
Tiled Diffusion アップスケール (プロンプトなし)
Tiled Diffusion アップスケール (プロンプトあり)
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。