画像を比べる

クリエイティブ分析

ComfyUIで画像を高画質化する方法|アップスケール方式とモデルの選び方

ComfyUIで画像を高画質化する方法 — アップスケール方式とモデルの選び方
目次

気に入った絵を大きくしたい。でも、顔や文字まで変わってしまうのは困る。ComfyUIのアップスケールは、ここで方法を選びたいところです。

かがり

大きくしたいだけなのに、文字や顔まで描き直される方法もあるの!?

ロコ

あるんだよ。残したい形があるなら、まずImageScaleでサイズだけ変えよう。

この記事では、まず同じ線画を三つの方法で拡大した結果を見ます。そのあと写真と顔の追加比較で、線画に合うモデルが写真にも合うかを確かめます。サイズ変更だけならImageScale、線を整えたいなら専用モデル、細部を描き足したいなら再生成という順に試すと、必要な変化を選びやすくなります。

同じ画像を1024×1024へ拡大すると

比較に使ったのは、山、二軒の家、円形の図を描いた512×512の線画です。下にある「TEST 01」の文字も見てください。三つの方法で処理し、完成サイズを1024×1024にそろえると、線だけでなく文字がどうなるかも比べられます。

元の512×512の線画。山と二軒の家、円形の図、TEST 01の文字が描かれている
比較に使った元画像。文字が読めるか、山や家の線が変わらないかを見ます。 画像を拡大して見る
方法 比較で使った設定 結果の特徴
通常の拡大 ImageScale、lanczos、crop disabled 文字と図形を保ち、線は少し柔らかくなった
専用モデルによる拡大 RealESRGAN_x4plus_anime_6Bで4倍にした後、1024×1024へ縮小 文字を保ち、線の輪郭がくっきりした
生成を伴う拡大 SD1.5でlatentを2倍にし、denoise 0.35で再生成 線の質感が変わり、文字が読めなくなった

この比較はComfyUI 0.37.0で行ったものです。三つ目はSD1.5を使った結果で、SDXLの比較ではありません。

ImageScale:文字と形を保って拡大する

ImageScaleのlanczosで1024×1024へ拡大した線画。TEST 01の文字と元の図形が残っている
通常の拡大。輪郭はやや柔らかくなりますが、元の線と文字を保っています。 画像を拡大して見る

専用モデル:線をくっきりさせる

RealESRGAN_x4plus_anime_6Bで拡大して1024×1024へ縮小した線画。文字が読め、線の輪郭がくっきりしている
専用モデルを使った結果。「TEST 01」を残しながら、線がはっきりしました。 画像を拡大して見る

KSamplerで描き直す:文字や質感も変わる

latent拡大後にKSamplerで描き直した画像。線が薄い立体的な質感になり、TEST 01の文字が崩れている
生成を加えた結果。元の文字を残す用途では、この出力は使いにくくなっています。 画像を拡大して見る

この線画を説明図として使うなら、「TEST 01」が読めるImageScaleか専用モデルを選びたいです。描き直した画像は質感が変わりましたが、文字を伝える目的には合いません。写真なら顔、イラストなら目や輪郭というように、自分の画像でも残したい部分を決めて比べてみてください。

写真と顔では、線画向けモデルが質感を変えた

2026年10月25日に、上の線画、人物写真、顔の切り出しをそれぞれ512×512から1024×1024へ拡大しました。写真はNASAが公開するニール・アームストロングの公式肖像を使っています。写真と顔は同じ原写真の別の切り出しで、独立した二人・二枚の写真による検証ではありません。

追加分は、ComfyUI同梱環境のPillow・PyTorch・Spandrelを直接CPUで動かした比較です。ComfyUIのノード操作や実行成功を確認したものではなく、上のComfyUI出力と画素が同じになるとも確かめていません。比較したのはPillowのLanczos拡大と、RealESRGAN_x4plus_anime_6Bの4倍出力をLanczosで1024pxへ縮小する処理です。

線画:文字を残し、線をはっきりさせたい

追加CPU比較の線画Lanczos出力。TEST 01と家や山の線が残り、輪郭は少し柔らかい
線画・Lanczos。512px入力を2倍にした結果です。 画像を拡大して見る
追加CPU比較の線画RealESRGAN出力。TEST 01を残し、山や家の輪郭が濃くはっきりしている
線画・RealESRGAN。文字を残しながら、線がはっきりしました。4倍処理後に1024pxへ縮小しています。 画像を拡大して見る

この線画では、どちらも「TEST 01」を読めます。図の線をくっきり見せたいなら専用モデル、元の線の柔らかさを保ちたいならLanczos、と用途に合わせて選べます。

写真:粒状感が減っても、元の細部が戻ったとは限らない

人物写真をLanczosで2倍にした処理例。肌と背景に元の粒状感が残っている
写真・Lanczos処理例。元写真:NASA/切り出し・拡大:local-gen。 画像を拡大して見る
人物写真をRealESRGANで処理した比較例。肌と背景が強く滑らかになり、絵画のような質感になっている
写真・AIモデル処理例。元写真はNASA、処理結果はlocal-genによるものです。元の記録写真そのものではありません。 画像を拡大して見る

専用モデル側では、肌だけでなく背景の月面写真まで強く滑らかになりました。髪や口元の線も変わり、写真というよりイラストに近い質感です。粒が減ったことを、実物の細部が復元されたことと読み替えないでください。写真の質感を残したい用途なら、この組ではLanczos側を選びます。

顔の切り出し:肌と口元を同じ倍率で見る

同じ原写真から顔を切り出してLanczosで拡大した処理例。肌の細かな粒と口元の線が残っている
顔の切り出し・Lanczos。元写真:NASA/切り出し・拡大:local-gen。 画像を拡大して見る
同じ顔の切り出しをRealESRGANで処理した比較例。肌が滑らかになり、髪や口元の描写も変わっている
顔の切り出し・AIモデル処理例。元写真はNASA、処理結果はlocal-genによるものです。 画像を拡大して見る

顔を大きく見ると、滑らかな肌だけでなく、髪や口元の描写の違いも見つけやすくなります。今回の6Bモデルは公式にもアニメ画像向けと説明されるモデルです。線画でよい結果が出ても、そのまま写真や顔へ使う理由にはなりません。写真向けの候補を試すときも、同じ元画像へ戻り、目・口・肌の質感を比べてから採用しましょう。

追加比較の処理条件と記録

CPU float32、PyTorch 2.11.0、Spandrel 0.4.2、Pillow 12.3.0、PyTorch計算4スレッドで各一回です。次の秒数はモデル読込と4倍の中間PNG保存を含みます。別アプリも動いていたため、一般的な速度順位やComfyUIの所要時間には使えません。

入力 方法 このCPU試行の処理秒数
線画 Lanczos 0.011
線画 RealESRGAN+縮小 10.435
写真 Lanczos 0.010
写真 RealESRGAN+縮小 9.234
顔の切り出し Lanczos 0.009
顔の切り出し RealESRGAN+縮小 9.061

追加6枚の処理ではGPUを使用していません。VRAMとモデル処理のRAMピークは未測定です。入力PNG・元の出力・処理レシピとhashで条件を追えます。原写真はNASAの利用方針に沿う情報提供用の比較素材として使い、NASAのロゴ部分は入力から除いています。NASAが処理結果を確認・推奨したことを示すものではありません。

大きさを変えるだけならImageScaleを使う

ImageScaleは、元の画像の点の間を補いながら、大きさを変えます。描く内容を文章で指定し直さずに済むので、文字入りの図や、構図をそのまま使いたい画像から試すのに向いています。追加モデルも要りません。

  1. Load Imageで元画像を開きます。
  2. IMAGE出力を Upscale Image(ImageScale)へつなぎます。
  3. upscale_methodをlanczos、幅と高さを目的のサイズにします。
  4. 出力をSave Imageへつなぎ、実行して保存します。

上の線画を同じように拡大するなら、幅1024、高さ1024、crop=disabledにします。Save Imageに結果が出たらPNGを保存し、元画像と並べて文字や図が残っているか見てみましょう。

縦横比を保って幅だけを指定したい場合は、高さを 0にします。両方に元画像と異なる比率を指定し、cropをdisabledにすると、縦や横に引き伸ばされます。指定サイズに合わせて中央で切り抜く場合は、cropのcenterを使います。

大きくなったものの線のぼやけが気になるなら、次の専用モデルで同じ画像を試してみましょう。サイズが足りれば十分な用途なら、ここで保存して使えます。

線や細部を整えたいなら、専用モデルを試す

専用のアップスケールモデルは、学習した特徴から線や細部を補います。写真向けとイラスト向けでは得意な描写が違うので、配布ページで自分の画像に近い作例を見て選びましょう。掲載例で使ったのは RealESRGAN_x4plus_anime_6B.pthです。Real-ESRGAN公式READMEのアニメ画像向け案内に、モデルの取得先が載っています。

Portableなら、普段使う起動batのある展開先からComfyUI → models → upscale_modelsを開き、取得した.pthファイルを入れます。手動導入なら、起動するmain.pyと同じComfyUIフォルダーからmodels → upscale_modelsへ進んでください。

Stability Matrixで共有モデルをConfig方式にしている場合は、使っているComfyUIパッケージのフォルダーを開き、extra_model_paths.yamlをテキストエディターで表示します。stability_matrixの中のupscale_modelsに並んでいる保存先を一つ選び、エクスプローラーでそのフォルダーを開いて.pthを入れます。相対パスならbase_pathと組み合わせた場所です。公式実装ではESRGAN・RealESRGAN・SwinIRの共有先がここへ登録されるため、名前を推測して別のフォルダーを作るより、手元の設定に書かれた先を使いましょう。設定を書き換える操作は不要です。

共有がSymlink方式なら、ComfyUIパッケージのフォルダーからmodels → upscale_modelsを開き、実際につながるフォルダーへ入れます。Desktopを使っている場合は、環境別のモデル保存先から、その環境が参照するupscale_modelsを開いてください。

配置したらComfyUIを再起動し、一覧を更新してLoad Upscale Modelでそのファイルを選びます。選べたら、画像を次のようにつなぎます。

接続元 接続先
Load ImageのIMAGE Upscale Image(using Model)のimage
Load Upscale Modelの出力 Upscale Image(using Model)のupscale_model
拡大後のIMAGE Save Image、または最終サイズを調整するImageScale
かがり

欲しいのは1024なのに、2048になったわ。倍率の指定を間違えたの?

ロコ

このモデルは4倍にするものなんだよ。その後ろで必要なサイズに整えれば、通常拡大の一枚とも比べられるよ。

512×512を入れると、いったん2048×2048になります。今回と同じ比較をするなら、モデルの後ろにImageScaleをつなぎ、lanczos、幅1024、高さ1024で縮小してからSave Imageへ渡してください。通常拡大の結果と同じ大きさで開くと、線の太さや細部の違いを見つけやすくなります。

描き直しも加えるなら、latentを拡大して再生成する

服や背景に描写を加えたいなら、生成計算で使うデータである潜在表現(latent)を拡大し、KSamplerで描き直す方法もあります。ここからは元画像を補うだけでなく、内容が変わることも受け入れて使います。

基本の流れは、Load Image → VAE Encode → Upscale Latent → KSampler → VAE Decode → Save Imageです。モデルと、それに合うVAE、プロンプトも使います。

Upscale Latentを通しただけでは、細部を描き足す処理まで終わりません。その後のKSamplerで再生成し、VAE Decodeで見える画像へ戻します。denoiseは描き直しの強さに関わり、高くすると元画像から離れやすくなります。最初の出力を開いたら、細かくなったかだけでなく、残したい顔や形が変わっていないかも見ましょう。

掲載したSD1.5の出力では、潜在表現をbilinearで2倍にしてから、次の設定で描き直しました。

項目 設定
シード 20260925
ステップ 12
CFG 6.5
サンプラー euler
スケジューラー normal
ノイズ除去 0.35

ポジティブは次の文章です。

a clean line-art mountain scene with a small sun and two simple houses, crisp ink lines, neutral colors

ネガティブには、次を指定しています。

blurry, distorted, noisy, extra buildings, watermark, illegible text

ネガティブへillegible textを入れても、この結果では「TEST 01」を保てませんでした。「読めない文字を避けて」と頼むことと、元の文字を正確に写すことは違うんですね。文字が必要な図なら、通常拡大や専用モデルの方へ戻って選びましょう。

使いたい仕上がりを、元画像と並べて選ぶ

比べる前に、保存した画像の幅と高さを見てください。片方が2048、もう片方が1024のままだと、線の違いに表示倍率の違いも混ざります。まず最終サイズをそろえ、その後に同じ文字や輪郭を同じ倍率で開きましょう。

拡大した画像を画面いっぱいに表示すると、それだけできれいに見えることもあります。最後は実際に使う大きさで開き、元画像と並べてみてください。文字が読めるか、顔が変わっていないか、輪郭に不自然な線が増えていないかを見ると、採用する一枚を決めやすくなります。

この線画では、通常拡大は文字を残し、専用モデルは輪郭をはっきりさせ、再生成は質感と文字を変えました。自分の画像でも、まずImageScaleで必要なサイズにしてから、不足を感じるところに合う方法を足してみましょう。元画像、採用したPNG、動いたワークフローを残しておけば、次の画像でもそこから始められます。

処理中にCUDA out of memoryが出たら、まず最後に動いた設定へ戻し、バッチサイズや処理する画像の大きさを確認します。アップスケールでは、画像を分割して処理する方式が使えるかも確認してください。

まとめ

  • サイズ変更だけならImageScale、線や細部を整えたいなら専用モデルから試す
  • 掲載した線画では通常拡大と専用モデルが文字を残し、SD1.5の再生成では文字が崩れた
  • 元画像と最終サイズをそろえ、変わってほしくない部分を見て選ぶ