画像生成AIの世界に足を踏み入れると、最初に出くわす壁が「解像度」です。標準的なサイズで生成すると、細部がぼやけていたり、拡大するとジャギーが目立ったりしてガッカリすることも少なくありません。
そこで登場するのが「ESRGAN(Enhanced Super-Resolution Generative Adversarial Networks)」です。ESRGANは深層学習を用いた超解像(Super Resolution)モデルで、低解像度の画像からディテールを維持したまま高解像度画像を生成してくれます。
この記事では、ComfyUIでESRGANを組み込み、生成された画像をサクッと綺麗にアップスケールする具体的な手順をまとめておきます。
ESRGAN vs Hires.fix:どっちを使うべき?
アップスケールと言えば「Hires.fix」が有名ですが、今回紹介するESRGAN(Image-space Upscale)とはアプローチが根本的に異なります。
- Hires.fix (Latent-space Upscale): 潜在空間(Latent Space)で解像度を上げ、再度デノイズを行う手法です。解像度を上げるだけでなく、新しいディテールを描き足してくれますが、その分VRAMの消費が激しく、構図が微妙に変わってしまうリスクがあります。
- ESRGAN (Image-space Upscale): 一度デコードされた「絵」に対してニューラルネットワークを通して拡大を行います。構図を一切変えずに解像度だけを上げたい場合や、生成速度を重視したい場合に適しています。
「構図は完璧だけど、あともう少しだけクッキリさせたい!」という時は、ESRGANの方が運用のストレスが少ないでしょう。
実装手順:ワークフローへの組み込み
ComfyUIなら、既存のワークフローにノードを一つ追加するだけで完結します。
1. ノードの配置
VAE Decodeノードから出力された画像を受け取る形で、Upscale Image (using Model)ノードを配置します。


2. おすすめモデルの導入
ESRGANを使用するには、学習済みのモデルファイルが必要です。有名なものをいくつか紹介します。
- R-ESRGAN 4x+: 標準的で使いやすい。
- 4x-UltraSharp: 実写からイラストまで幅広く、非常に綺麗に仕上がると定評。
- 4x-AnimeSharp: アニメ調の画像に特化。
これらのモデル(.pth形式など)をダウンロードし、以下のディレクトリに配置してください。
ComfyUI/models/upscale_models
モデルが見当たらない場合は、HuggingFaceなどで探してみると良いでしょう。
3. 生成と実行
Load Upscale Modelノードで先ほど配置したモデルを選択し、Upscale Image (using Model)の upscale_model 入力に接続すれば準備完了です。
例えば、4x-Ultrasharpを使用すれば、512x512の画像があっという間に2048x2048へと生まれ変わります。
生成結果の比較
実際に比較してみると、その差は一目瞭然です。Hires.fixのような「書き込み」は増えませんが、エッジが非常にシャープになり、ノイズが軽減されているのがわかります。


最後に:使い分け
正直、最近はHires.fixの方が主流かもしれませんが、ESRGANの手軽さは捨てがたいものがあります。
ESRGANを使用する場合は潜在空間ではなく、生成された画像に対して行うことになります。そのため、Hires.fixとは異なりディテールなどは追加されません。元の画像を保ったまま解像度を上げたい場合に使用してください。その他、Hires.fixよりも軽量のため、生成速度を重視する場合もこちらが良いでしょう。
「なんか生成した画像が粗いな、小さいな」と感じている方は、ぜひ一度、ESRGANを試しに組み込んでみてください。
関連するテクニックをさらに深めたい方は、こちらのリンク集もどうぞ。
>-









