01

アップスケール前後の比較

アップスケール前の人物イラスト
アップスケール前
アップスケール後の人物イラスト
アップスケール後

このあと紹介するHires.fix(Upscale Latent)の手順で生成した例です。アップスケール後は、髪の毛の束や毛先がより細かく描かれ、服のしわや陰影もはっきりしています。

02

Hires.fix(Upscale Latent)とは

Hires.fix方式でUpscale Latentを使ったComfyUIのワークフロー全体図

Hires.fixは、通常のサイズで一度生成した結果を拡大し、2回目の生成で仕上げる方法です。上のワークフローでは、画像に変換する前の潜在データ(LATENT)をUpscale Latentで拡大し、2つ目のKSamplerで描き込みます。

03

手順

以下でダウンロードできるワークフローをもとに、縦長の画像を840 × 1224から1248 × 1824へ約1.5倍に拡大する手順を説明します。横長の場合はwidthとheightを入れ替えてください。

この手順で使うワークフロー(JSON)をダウンロード

配布ワークフローの主な設定

1回目のサイズ
840 × 1224
拡大後のサイズ
1248 × 1824
拡大方法
bicubic / crop: disabled
2回目のSteps
20
2回目のCFG
4.5
Sampler / Scheduler
euler / karras
2回目のdenoise
0.60

この手順で配布するJSONの値です。共通プロンプト記事の通常生成サイズとは異なります。

  1. 通常の画像生成ワークフローを用意する

    使用するモデルとプロンプトを設定します。Empty Latent Imageのwidthを840、heightを1224に設定してください。

    手順1:通常の画像生成ワークフローを用意するのComfyUI画面
  2. Upscale Latentを追加する

    Upscale Latentノードを追加し、1つ目のKSamplerのLATENT出力を、Upscale Latentのsamplesに接続します。

    手順2:Upscale Latentを追加するのComfyUI画面
  3. 拡大後のサイズを設定する

    Upscale Latentのupscale_methodをbicubic、widthを1248、heightを1824、cropをdisabledに設定します。

    手順3:拡大後のサイズを設定するのComfyUI画面
  4. 2つ目のKSamplerを追加する

    Upscale LatentのLATENT出力を、2つ目のKSamplerのlatent_imageに接続します。モデルとポジティブ・ネガティブの条件も接続し、stepsを20、CFGを4.5、samplerをeuler、schedulerをkarras、denoiseを0.60に設定します。

    手順4:2つ目のKSamplerを追加するのComfyUI画面
  5. 画像の保存先まで接続して実行する

    2つ目のKSamplerのLATENT出力をVAE Decodeのsamplesに、Load CheckpointのVAE出力をVAE Decodeのvaeに接続します。VAE DecodeのIMAGE出力をSave Imageにつなぎ、Runを押します。

    手順5:画像の保存先まで接続して実行するのComfyUI画面

拡大後の見た目はモデルやdenoiseの値で変わります。元の構図から大きく変化する場合は、denoiseを下げて試してください。

04

まとめ

この記事では、縦長840 × 1224の画像を、Hires.fix(Upscale Latent)で1248 × 1824へ約1.5倍に拡大しました。

私のPC(CPU:AMD Ryzen 7 9700X、GPU:AMD Radeon RX 9070 XT・専用GPUメモリ16GB、メモリ:32GB)では、アップスケールなしの生成が約10秒、この記事のワークフローでアップスケールまで行うと全体で約30秒です。追加で約20秒かけるだけで、髪や服の細部がよりきれいに描かれました。生成時間は使用するモデルやPC環境によって変わります。

Upscale Latentのwidthとheightをさらに大きくすれば、約2倍などの拡大もできます。ただし、倍率を上げるほど処理に時間がかかり、GPUメモリの使用量も増えます。メモリが足りないと生成が止まることがあり、大きくすれば必ず細部がきれいになるわけでもありません。仕上がりと処理時間を見ながらサイズを調整してください。

使用モデルと普段の生成設定を見る

05

困ったときの対処法

設定・配置・指定の競合を確認し、1項目ずつ変更して切り分けます。

01拡大後に顔や構図が変わりすぎる

2回目のKSamplerのdenoiseを下げて比較します。この手順の0.60は掲載ワークフローの値で、すべての画像の最適値ではありません。

モデルとプロンプト、1回目のSeedを揃え、denoiseだけを1項目ずつ変えると違いを確認しやすくなります。

02GPUメモリ不足で生成が止まる

拡大後のwidth・heightを下げて試します。大きくするほど処理時間や必要なGPUメモリが増えるため、最初から高倍率にしすぎないようにします。

元のサイズで通常生成できることも確認し、拡大の追加前後で切り分けてください。

03ノードをつないでも実行できない

Upscale Latentと2つのKSamplerはLATENTでつなぎ、最後にVAE Decodeで画像に戻します。モデル・Positive・Negativeの接続も全体図と照合してください。

ダウンロードしたワークフローで読み込みを試す方法もあります。モデルやVAEは、自分の環境にあるものを選び直してください。

ワークフローJSONを開く
04プロンプトに8Kと書いても画像が大きくならない

プロンプトの8Kは実際の画像サイズを設定する項目ではありません。出力サイズはEmpty Latent ImageやUpscale Latentのwidth・heightで確認します。

06

よくある質問

画像の拡大倍率は必ず1.5倍ですか?

この手順では840 × 1224から1248 × 1824へ約1.5倍に拡大しています。倍率を変えることもできますが、画質・構図・処理時間・GPUメモリを確認して調整してください。

普通の画像拡大と何が違いますか?

この手順は潜在データを拡大した後に、2回目のKSamplerで再度生成して仕上げます。画像のピクセル数を増やすだけの処理と異なり、細部や形が変わる場合があります。

横長の画像にも使えますか?

横長にする場合は、widthとheightを入れ替えて使えます。元の画像と拡大後の画像の縦横比が大きく変わらないように確認してください。

関連する記事

この記事の最初に戻る ↑