SDXLで画像をアップスケールする場合、2025年時点では、画像の構図や形状を崩さずにアップスケールする方法としてControlNetを利用する方法が主流です。
(参考記事)
しかし、ControlNetを利用して大きい画像を生成する場合には、VRAMの使用量も増える問題があります。
この記事では、VRAMの使用量を抑えられるComfyUIを使用してControlNetを利用した画像のアップスケール手順を紹介します。
ComfyUIをインストールして、最新バージョンに更新します。
インストール手順はこちらの記事のPortable版のインストールを参照してください。
アップデート手順はこちらの記事を参照してください。
ControlNetのモデルをダウンロードして配置します。
アップスケールで使われるモデルとして代表的なものは以下があります。
ダウンロードしたsafetensorsファイルを次のパスに配置します。
(ComfyUIの配置ディレクトリ)\models\controlnet\sdxl\
下図のワークフローを作成します。
モデルの読み込みノード部分です。SDXLのVAE,SDXLのモデル,ControlNetのモデルを指定します。
Kサンプラーノードは下図です。ノイズ除去は"1.0"としています。
ControlNetのノードです。[強度]は"1.0"としています。
入力画像を設定します。
プロンプトには、入力画像を生成した際に入力したプロンプト、または、入力画像を表現するプロンプトを入力します。
なお、ControlNetのモデルでUnionモデルを利用する場合は、[Union ControNetタイプを設定]のノードを追加し、[タイプ]に"Tlle"を指定します。
[実行する]ボタンをクリックして処理を開始します。結果は右側の[画像を保存する]ノードに表示されます。
結果を確認します。モデルによっては若干彩度が下がってしまう傾向があります。
ComfyUIで実行した場合、VRAMの使用量が抑えられるため、WebUIより大きい解像度のアップスケールができます。
WebUI A1111 の場合は、2048x2880 のアップスケールでもメモリ不足で失敗する場合がありますが、ComfyUIでは実行可能で、さらに大きいサイズの
3072x4368 のアップスケールも成功します。
ControlNet Union を利用した場合