テーマを切り替える

ComfyUIで高解像度化と部分修正:Hires Fix、FaceDetailer、Inpaintingの使い分け

Easton editorial illustration: large rounded image-editing canvas with a pixel-soft left region and a clean detailed right region, orange translucent inpaint mask over one small facial area, magnifier revealing restored pixels

"ComfyUI公式の画像アップスケールチュートリアルは、Load Upscale Model、Upscale Image (Using Model)、upscale_modelsディレクトリを使う基本workflowを説明しています。"

768×1024のキャラクター画像を生成し、構図と光は気に入っています。しかし遠景の顔が少しぼやけています。4xでそのまま拡大すると細部が硬く貼り付いたようになり、FaceDetailerを使うと別人に見えます。背景の小さな欠陥だけ直したいのに、inpaint後は背景全体の色調まで変わりました。

ピクセル拡大、latent再サンプリング、FaceDetailer、手動inpaintingは、それぞれ解決する問題が違います。以下ではノード接続、パラメータの意味、最初の実行例に加え、拡大後のぼけ、mask外への影響、顔修正後の人物変化を切り分けます。


後処理で品質を上げる4つのルート

気に入った画像を生成した後に残る問題は、解像度が足りない、細部が甘い、部分的に修正したい、という3種類に分けられます。ComfyUIの後処理には主に4つのルートがあり、役割が異なります。

ピクセル拡大はESRGANなどのモデルで画像サイズを上げます。通常はpromptを再サンプリングしたり構図を意図的に変えたりしませんが、超解像モデルが質感を再構築または追加することはあります。元画像に満足し、出力だけ大きくしたい場合に向きます。

latent再サンプリングはlatentを拡大して再びサンプリングします。構造の変化を許容し、材質や細部を生成し直したい場合に使います。

FaceDetailerは顔領域を検出して局所的に修正します。遠景の小さな顔がぼやけた場合に便利です。手や別の物体には対応するDetector、Detailer、または手動maskが必要で、FaceDetailerは万能の修正ノードではありません。

手動inpaintingではMask Editorで変更対象を指定し、その領域を中心に再描画します。logoの境界、背景の小さな欠陥、特定の物体に向きますが、サンプリングと合成によってmask外の見え方まで変わることがあります。

4つのルートは置き換え可能ではありません。ピクセル拡大は人物の同一性を保証せず、FaceDetailerは顔交換ではなく、inpaintingもmask外の全画素が同一になるとは限りません。まず「サイズだけ」「細部を再生成」「検出領域を修正」「指定部分を変更」のどれかを判断します。


ピクセル拡大:UpscaleModelLoader + Upscale Image using Model

ピクセル拡大は最も基本的な後処理です。画像の内容が正しく、出力サイズだけ上げたいなら、通常は最も破壊性の低い出発点になります。

最初のアップスケール

768×1024で生成した画像を、より大きく出力する場合を考えます。

まずReal-ESRGANなど信頼できる配布元から、画像の種類に合うモデルを入手します。例はRealESRGAN_x4plus.pthRealESRGAN_x4plus_anime_6B.pthです。

次にモデルファイルをComfyUI/models/upscale_models/へ置きます。

ComfyUIの画面を更新するか再起動し、モデル一覧を再読み込みします。表示されなければパス、拡張子、extra_model_paths.yamlを確認します。

ノードを接続します。UpscaleModelLoaderでモデルを選び、Upscale Image (Using Model)upscale_modelimageへ接続します。生成画像はimage入力へ渡します。

実行後に出力サイズを確認します。4xモデルは通常、縦横を4倍にしますが、最終サイズとリソース使用量は実際のノード出力を基準にします。

アップスケールモデルの選び方

モデル最初に試す場面特徴
4x-ESRGAN汎用アップスケール公式チュートリアルの例で、比較の基準にしやすい
RealESRGAN_x4plus写真、写実的なシーン自然な質感で試しやすい汎用修復モデル
RealESRGAN_x4plus_anime_6Bアニメ、イラスト線と色面を比較しやすいアニメ向けモデル
realesr-general-x4v3軽量な汎用処理複数画像の比較に使いやすい軽量系の選択肢

すべての画像に最適なモデルはありません。結果は画像の種類、ベースモデルの画風、圧縮痕、拡大率で変わります。イラストはanime系、写真は汎用系から試し、輪郭、肌、髪、微細な質感を比較します。

モデルディレクトリの確認

アップスケールモデルは通常upscale_modelではなくupscale_modelsへ置きます。UpscaleModelLoaderextra_model_paths.yamlで追加したパスも読み込めます。一覧が更新されなければ、まずパスとファイルを確認してから画面更新または再起動を行います。


latent拡大と2回目サンプリング:LatentUpscale + KSampler

ピクセル拡大はpromptを解釈し直しません。拡大後に材質や細部を生成し直したい場合は、latentを拡大してもう一度サンプリングします。denoiseが元画像を残す量と再描画する量を決めます。

LatentUpscaleのパラメータ

パラメータ役割注意点
upscale_method拡大アルゴリズムnearest-exactbilinearbislerpなど
width / height目標サイズ片方を0にすると、もう一方から縦横比を維持して計算
cropcrop方法主な選択肢はdisabledまたはcenter

LatentUpscaleの出力は拡大したlatentで、その後にKSamplerへ渡します。denoiseが1.0に近いほど再生成が増え、細部が増える一方で、構図、顔、服装も変化しやすくなります。0.0に近いほど元画像を残し、新しい細部は少なくなります。

すべてのモデルで通用するdenoise値はありません。細部を少し足したいなら低い値から始めます。seed、sampler、steps、CFG、checkpoint、LoRA weightを固定し、一度に1項目だけ変えます。値を上げて顔や服の質感が崩れ始めたら、直前の安定した値へ戻します。

ピクセル拡大との違い

ルート構造が変わるか細部が増えるか向いている場面
ピクセル拡大通常は構図を意図的に変えないピクセル細部を再構築元画像が正しく、解像度だけ必要
latent再サンプリングdenoiseに応じて変わる細部を生成し直すある程度の変化を許容し、材質や局所構造を描き直したい

latent再サンプリングは単純なresizeではありません。ControlNet、IPAdapter、regional promptingを使ったworkflowでは、2回目のpassが上流条件を弱めることがあります。再サンプリング用の分岐を試す前に、元の出力とworkflowを保存します。


FaceDetailerによる顔修正:Impact Packの自動処理

遠景の顔がぼやける問題はよく起こります。FaceDetailerはImpact Packの顔検出とDetailer処理を組み合わせ、局所領域を検出してcropへdetailまたはinpaintを適用します。小さな顔の改善には使えますが、人物の同一性維持や顔交換のツールではありません。

Impact Packのインストール

Impact Packはthird-party custom nodeで、maintainerはComfyUI Managerからのインストールを推奨しています。custom nodeのインストール画面でComfyUI-Impact-Packを検索し、インストール後にComfyUIを再起動します。

Impact Packは更新が多く、ノード構造や互換条件も変化します。現在のREADMEでは、一部のUltralytics Detector Providerに別のImpact Subpackが必要とも説明されています。古いworkflowで赤いノード、detectorの欠落、パラメータ差が出たら、古い画面をまねるのではなく、最新のREADME、Subpack説明、Manager状態を確認します。

最初の顔修正

生成画像の遠景に少しぼやけた顔がある場合を考えます。

まずImpact PackのメニューからFaceDetailerを追加します。

次にworkflowのimagemodelclipvae、detectorなど必要な入力を接続します。入力はversionで変わることがあるため、現在のノードとREADMEを基準にします。

検出領域、guide_sizemax_sizenoise_maskinpaint_modelcycleを先に確認します。guide_sizeは小領域をdetailするときの基準サイズ、max_sizeは領域の長辺とVRAM使用量を制限します。

denoiseは保守的な値から始めます。0.3〜0.5は顔修正の実践的な開始範囲ですが、公式の固定値ではありません。元の顔が小さく、検出boxが大きいほど慎重にします。

元画像と修正版を比較し、顔が明瞭になっても人物、表情、髪、背景が必要以上に変わっていないか確認します。

FaceDetailerパラメータ表

パラメータ役割調整の考え方
guide_sizeDetailerが処理する領域の基準サイズ中程度から始め、大きくしすぎて再描画とVRAM負荷を増やさない
max_size処理領域の最大サイズ大きすぎる検出boxとVRAM使用量を抑える
noise_mask検出領域へnoise maskを使うかswitchとして扱い、インストール済みversionで動作を確認
inpaint_modelinpaint model経路を使うか専用inpaint checkpointを使うworkflowで設定
cycleDetailerの反復回数まず1回にし、繰り返しで元の顔から離れないか確認

detectorが処理領域を決めます。FaceDetailerで顔が悪化したら、detectorが正しい顔を選んだか確認し、領域、denoise、guide sizeを小さくします。手の崩れには手用detectorとDetailer、または手動inpaintingが必要で、FaceDetailerに自動修正を期待しません。

FaceDetailerの限界

FaceDetailerは顔の細部を改善できますが、元の人物を維持する保証はありません。人物の一貫性が目的ならFaceID、InstantID、ReActor、LoRAなどを使います。実在人物の顔には、自分が所有する素材または使用許諾を得た素材だけを利用します。


手動inpainting:全体を作り直さず一部分だけ変える

logoの境界、背景の小さな欠陥、片手だけを直すなら、手動inpaintingの方が制御しやすい場合があります。maskは処理対象を示しますが、最終的な影響範囲はencoding、conditioning、denoise、compositingで変わります。

Mask Editorの操作

商品画像の背景に小さな欠陥がある場合を考えます。

まず元画像をLoad Imageに読み込み、ノードを右クリックしてOpen in MaskEditorを選びます。

変更したい領域だけをbrushで塗ります。

塗りすぎた部分をeraserで修正し、境界には適切な遷移幅を残します。

最後にSaveを押し、maskを画像ノードへ戻してinpainting経路に渡します。

2つの一般的なinpainting接続

標準workflowでは、主に2種類のconditioning経路があります。両方を機械的に1本へ連結する必要はありません。

1つ目はVAE Encode (for Inpainting)です。pixelsvaemaskgrow_mask_byを受け取り、noise maskを含むlatentを出力します。そのlatentをKSamplerへ渡し、結果をVAE Decodeで画像へ戻します。

2つ目はInpaintModelConditioningです。positive、negative、vae、pixels、maskを受け取り、処理済みpositive、negative、latentを出力します。それぞれをKSamplerへ接続します。専用のinpaint conditioningが必要なworkflowで使います。

KSampler自体はmodel、positive、negative、latentなどのsampling入力を受け取ります。VAEは前後のencode/decodeノードで使い、KSamplerへ直接接続しません。

grow_mask_byの役割

grow_mask_byはmaskを外側へ広げ、latent空間に遷移領域を作ります。maskが狭すぎると硬い境界が出やすく、大きすぎると満足していた部分まで描き直します。小さな拡張から始め、継ぎ目と背景を確認しながら増やします。

継ぎ目を減らす方法

境界に継ぎ目、明るさの差、貼り付けたような見え方があれば、grow_mask_byを少し増やし、denoiseを下げ、maskをfeatherします。third-partyのinpaint nodesではExpand MaskやBlur Maskedも試せますが、ノード名と動作はインストールしたversionで確認します。


高度な選択肢:Ultimate SD Upscaleとcomfyui-inpaint-nodes

ピクセル拡大とlatent再サンプリングが基本です。ただし大画像を一括処理するとVRAMを使い切りやすく、難しい継ぎ目には精密なmask前処理が必要です。以下のcustom nodeは高度な選択肢で、最初のworkflowに必須ではありません。

Ultimate SD Upscale:タイル分割で高解像度化

1024×1536の画像を4096×6144へ拡大すると、一括の2回目サンプリングは負荷が高くなります。Ultimate SD Upscaleは画像をtileに分け、各tileへimage-to-image diffusionを行ってから結果を結合します。

タイル分割により、各処理サイズをdiffusion modelの学習サイズに近づけ、全体を一度に処理する負荷を下げられます。代わりに処理は遅くなり、tileの継ぎ目、質感の反復、局所的な画風の不一致が出ることがあります。

ComfyUI ManagerでComfyUI_UltimateSDUpscaleを検索してインストールできます。入口、メニュー、パラメータは変わる場合があるため、最新READMEとノード画面を確認します。

comfyui-inpaint-nodes:mask前処理

comfyui-inpaint-nodesはFooocus inpaint、LaMa、MAT、maskのexpand、shrink、blur、fillを提供します。Fooocus inpaint modelは通常ComfyUI/models/inpaintへ置きますが、model互換性とconditioning経路は現在のREADMEで確認します。

目的試す前処理
編集境界の継ぎ目が目立つExpand MaskとBlur Masked
mask範囲を細かく調整したいShrink MaskまたはExpand Mask
mask内の初期内容を整えたいFill Masked
物体削除またはoutpaintingLaMa、MAT、対応するoutpaint workflow

denoiseだけで問題は解決しません。1.0に近い値はmask領域を大きく描き直し、低い値は元の内容をより残しますが、modelとconditioning経路にも左右されます。mask外が変化したら、接続とcompositingを確認してからmask、denoise、遷移幅を調整します。


シーン別の選択表:どの後処理を使うか

シーン推奨ルート理由代替案
元画像が正しく、解像度だけ上げたいピクセル拡大通常は構図を保ちながらピクセルを強化細部を生成し直すならlatent再サンプリング
材質や細部を再生成したいlatent再サンプリングdenoiseで保持と再描画の割合を調整大画像ならUltimate SD Upscale
遠景の顔がぼやけているFaceDetailer顔を検出して局所的にdetail検出が不正確なら手動inpainting
手、物体、logoに局所的な誤りがある手動inpaintingまたは対応Detailermaskまたはdetectorで範囲を限定構造が誤っているなら生成へ戻る
目標解像度がVRAMに収まらないUltimate SD Upscaletiled img2imgでtileごとの負荷を下げる目標サイズを下げてピクセル拡大
編集境界に継ぎ目があるmaskの拡張とfeather局所再描画に遷移領域を与える変更強度とdenoiseを下げる

長所と注意点

ルート長所短所VRAM負荷
ピクセル拡大速く、通常は構図を保ち、モデル選択肢が多い構造エラーは直せず、人工的な質感が出ることがある低〜中
latent再サンプリング材質と細部を描き直せ、調整幅が広いdenoise調整が必要で、元画像からずれることがある中〜高
FaceDetailer顔を自動検出し、顔maskを手描きしなくてよい同一人物を保証せず、過剰修正の可能性がある中〜高
手動inpainting指定領域を明確に制御できるmask、境界、conditioningの調整が必要
Ultimate SD Upscale大画像をtile単位で処理できる遅く、tileの継ぎ目が出ることがあるtileとmodelによる

すべての後処理ノードを一度に有効にしないでください。現在の問題を解決する最も破壊性の低いルートを使い、中間結果を保存してから、追加のサンプリングや部分修正が必要か判断します。


推奨順序:拡大、顔修正、最後にinpaint

後処理の順序は結果に影響します。キャラクター画像なら、保守的な拡大、検出領域の修正、手動の局所変更という順序から始められます。ただし、すべての画像に固定された手順ではありません。

この順序を使う理由

まず元画像とworkflowを保存します。問題がサイズだけなら、promptを通常は再サンプリングしないピクセル拡大を使います。

次に顔、手、その他の小領域を確認します。顔はFaceDetailer、手や物体は対応するDetectorとDetailerまたは手動maskを使います。元画像が大きいほど、修正が過剰か判断しやすくなります。

最後にlogo、境界、背景の欠陥など指定部分へ手動inpaintingを行い、前の全体処理で局所修正が再び崩れないようにします。

2回目passのリスク

ControlNet、IPAdapter、regional promptingを使ったworkflowでは、latent再サンプリングとDetailer内部の局所samplingが上流条件を弱めることがあります。pose、line art、髪色、服、参照人物が変化する可能性があります。

2回目passが必要なら、元の条件を残し、seedと他のパラメータを固定し、低いdenoiseから始めます。新しい細部より上流結果が重要なら、先にピクセル拡大を試し、再サンプリングの価値を判断します。

関連記事


よくある失敗:ぼけ、顔の変化、継ぎ目、mask外への影響

症状主な原因対処
拡大後にぼける、または不自然に硬いモデルが画像の種類に合わない、または拡大を繰り返しすぎている汎用、写真向け、アニメ向けモデルを比較し、処理の繰り返しを減らす
顔が別人に見える2回目サンプリングのdenoiseが高い、またはDetailer領域が大きいdenoiseを下げ、検出領域を小さくする。同一性が問題なら専用手段を使う
不要な質感が増えるtiled upscaleまたは高denoiseが過剰に再描画しているdenoiseを下げ、promptに新しい情報を加えず、小画像で先に試す
mask境界に継ぎ目が出るmaskが狭い、遷移がない、または局所的な明るさが変わるgrow_mask_byとfeatherを調整し、変更強度を下げる
mask外が変化するmask、noise mask、conditioning、compositingの接続が不正確接続を確認し、maskを小さくしてdenoiseを下げる
FaceDetailerが顔を検出しない顔が小さい、角度が特殊、またはdetectorが合わない保守的に拡大するかdetectorを変え、高denoiseで無理に直さない
アップスケールモデルが表示されないパスや拡張子が違う、または一覧を更新していないupscale_modelsへ置くか追加パスを設定し、更新または再起動する
Ultimate SD Upscaleが赤いノードになるcustom nodeがない、versionまたは依存関係が合わないManagerでインストールと更新を確認し、複雑な競合は別途切り分ける
workflowがVRAM不足になる解像度、tile、batch、Detailer領域が大きすぎるサイズとbatchを下げ、max_sizeとtileを小さくするか、ピクセル拡大を使う

次は修正を続けるか、生成へ戻るか

構図、人物、pose、商品形状が正しく、解像度、小さな顔、手、局所的な欠陥だけが残っているなら後処理を続けます。理想的な変更は小さな検出boxまたはmaskに収まります。

人物、pose、服、主体数、商品構造が誤っているなら生成へ戻ります。denoiseとinpaintingを重ねても、根本の条件を直すより不確実性が増えやすくなります。prompt、ControlNet、参照画像、モデル選択を修正します。

複数出力で同じキャラクターや商品を維持する場合も、inpaintingの繰り返しだけでは足りません。後処理はほぼ正しい1枚を仕上げる工程であり、同一性asset、構造制御、trainingの代わりにはなりません。


まとめ

ComfyUIの後処理には、ピクセル拡大、latent再サンプリング、FaceDetailerによる顔修正、手動inpaintingという4つの主なルートがあります。元画像の内容が正しければピクセル拡大から始めます。細部を生成し直す場合だけ低denoiseのlatent再サンプリングを使います。遠景の顔にはFaceDetailerを使いますが同一人物の維持とは分け、指定部分の誤りには手動maskとinpaint conditioningを使います。

キャラクター画像では、保守的な拡大、検出領域の修正、最後の手動変更という順序が実用的です。一括の2回目サンプリングがVRAMに収まらない場合、Ultimate SD Upscaleでタイル処理できますが、継ぎ目と局所的な画風は確認が必要です。各中間画像を元画像と比較すれば、顔の変化、人工的な質感、mask外への影響を特定しやすくなります。

ComfyUIの後処理ルートを選んで実行する

問題をサイズ、細部の再生成、小領域の欠陥、指定部分の変更に分け、破壊性の低いルートから試します。

  1. 1

    ステップ 1: 元の出力を保存する

    元画像、workflow、seed、checkpoint、sampler、steps、CFGを保存し、後の比較では一度に1項目だけ変更します。
  2. 2

    ステップ 2: 単に大きくしたいだけか判断する

    構図、人物、質感が正しいなら、UpscaleModelLoaderとUpscale Image (Using Model)から始めます。
  3. 3

    ステップ 3: 再サンプリングが必要か判断する

    材質や細部を生成し直したい場合だけLatentUpscaleとKSamplerを使い、低いdenoiseから始めます。
  4. 4

    ステップ 4: 小さな顔または検出領域を修正する

    FaceDetailerまたはDetectorとDetailerの組み合わせを使い、guide_size、max_size、denoiseを抑えて背景全体を描き直さないようにします。
  5. 5

    ステップ 5: 指定部分にmaskを描く

    Mask Editorで変更箇所だけを覆い、境界に小さな遷移幅を残して、VAE Encode (for Inpainting)またはInpaintModelConditioningの経路へ接続します。
  6. 6

    ステップ 6: 継ぎ目とmask外の変化を確認する

    硬い境界、色のずれ、貼り付けたような部分があれば、grow_mask_by、ぼかし、denoiseを調整し、maskとnoise maskを確認します。
  7. 7

    ステップ 7: 大画像のVRAM負荷を下げる

    目標サイズを下げるかUltimate SD Upscaleでタイル処理し、すべてのタイル境界と質感の移り変わりを確認します。
  8. 8

    ステップ 8: 変更が最小の成功版を残す

    元画像、ピクセル拡大、再サンプリング、部分修正版を比較し、目的を満たしながら構造のずれが最も少ないものを残します。

FAQ

ComfyUIでHires Fixを組むにはどうすればよいですか?
ComfyUIでは通常、低解像度で生成し、latentまたはimageを拡大し、KSamplerで低〜中denoiseの2回目サンプリングを行います。固定名のノードを探すより、再サンプリング強度を制御することが重要です。
Latent UpscaleとUpscale Image (Using Model)の違いは何ですか?
Latent Upscaleはlatentを拡大して再サンプリングするため、細部や構造が変化します。Upscale Image (Using Model)はピクセル画像を処理し、内容は正しく解像度だけ上げたい場合に向きます。
ComfyUIのアップスケールモデルはどこに置きますか?
公式チュートリアルとノード資料ではComfyUI/models/upscale_modelsを使用します。extra_model_paths.yamlに追加した別パスも読み込めます。配置後は画面を更新するか再起動します。
FaceDetailerは顔交換ツールですか?
違います。FaceDetailerは顔領域を検出し、detailまたはinpaintで小さな顔を整えます。同一人物を維持するにはFaceID、InstantID、ReActor、LoRAなどの専用手段が必要で、権利を持つ素材だけを使用します。
Inpaintingでmask外まで変わるのはなぜですか?
denoiseが高すぎる、maskまたはnoise maskの接続が違う、遷移範囲が広すぎる、サンプリングや合成がlatent全体に影響する、といった原因があります。maskを小さくし、denoiseを下げ、conditioning経路を確認します。
FaceDetailerで顔が不自然になったら何を調整しますか?
まずdetectorが正しい領域を選んでいるか確認します。次に検出範囲またはguide_sizeを小さくし、denoiseを下げます。元の顔の画素が少なすぎる場合は、強い修正の前に保守的な全体拡大を試します。
Ultimate SD Upscaleはどんなときに使いますか?
目標画像が大きく、一括の2回目サンプリングがVRAMに収まらない場合や、ピクセル拡大だけでは細部が足りない場合に使います。設定項目が増え、タイルの継ぎ目や局所的な画風の差が出ることがあります。

10分で読めます · 公開日: 2026年7月22日 · 更新日: 2026年7月21日

コメント

GitHubアカウントでログインしてコメントできます

Easton BlogEaston Blog