元の画像の形状や構図を維持してアップスケールする (ControlNet Tile + Tiled Diffusion を利用) - Stable Diffusion

ControlNet Tile と Tiled Diffusion を利用して、元の画像の形状や構図を維持してアップスケールする手順を紹介します。

概要

こちらの記事ではアップスケールにより画像の解像度を高める手順を紹介しました。 アップスケールの利用により、画像のサイズを大きくでき、細かい描画を追加できます。 一方で、こちらの記事で紹介しているとおり、アップスケールにより、元の画像から、画像の構図が変わってしまったり、 衣類や小物、パーツのデザインが変わってしまう現象が発生します。

構図や小物の形状の変化が許容できる場合は問題ありませんが、許容できない場合もあります。 この記事では、ControlNet Tile と Tiled Diffusion を利用して、元の画像の形状や構図をできるだけ維持して、 アップスケールする手順を紹介します。
ワンポイント
生成時のパラメーターが利用できる場合はこちらの記事の 方法でより、オリジナルの画像に近い状態でアップスケーリングできます。
メモ
ControlNetを利用せずに、Tiled Diffusionのみで、形状を変化させずにアップスケールする手順もあります。 詳しくはこちらの記事を参照してください。

事前準備

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の作業もする。
掲載日: 2023-06-01
iPentec all rights reserverd.