Model
.ai
オープン AI モデルを追跡

ComfyUI の Ultimate SD Upscale ノード

Ultimate SD UpscaleはESRGANモデルで画像を拡大し、その後プロンプトを使って低いデノイズでタイルごとに拡散モデルで再サンプリングします。これによりVRAMを使い切ることなく2倍から4倍のリアルなディテールを追加します。
ノードパック:ComfyUI_UltimateSDUpscale
カテゴリ:アップスケール
Author: ssitu

Ultimate SD Upscale の役割

ComfyUI_UltimateSDUpscaleパックのノード(A1111スクリプトの移植版)は2つのアイデアを組み合わせています。まずピクセルアップスケーラーで画像を拡大し、その結果をtile_width x tile_heightのタイルに分割します。各タイルは低デノイズ(0.2-0.4)でサンプラーによって再レンダリングされ、モデルがテクスチャや肌、布、葉のディテールを描き込みます。重なり合うタイルとオプションのシーム修正パスでつなぎ目を隠します。
各タイルはモデル解像度での通常のサンプラーパスなので、最終サイズに関係なく単一画像をレンダリングできるGPUならどれでも動作します。メインのKSamplerと同じMODEL、ポジティブ、ネガティブ、VAEに加えアップスケールモデルを使い、Tile ControlNetと組み合わせて元画像に忠実なタイルを維持することが多いです。

入力

名前
型
意味
image
IMAGE
アップスケールする画像。
model / positive / negative / vae
MODEL, CONDITIONING, VAE
KSamplerと同じ接続。
upscale_model
UPSCALE_MODEL
最初のピクセルアップスケール用のESRGANモデル。
upscale_by
FLOAT
最終倍率、通常は2.0。
seed / steps / cfg / sampler_name / scheduler / denoise
sampler settings
デノイズ0.2-0.4で画像を保持。高い値は再描画。
mode_type
COMBO
Linear、Chess(推奨)、またはNone(アップスケールのみ)。
tile_width / tile_height / mask_blur / tile_padding
INT
タイルサイズ(SDXLは1024、SD1.5は512-768)、ぼかしと重なり。
seam_fix_mode
COMBO
None、Band Pass、Half Tile、Half Tile + Intersections。
force_uniform_tiles / tiled_decode
BOOLEAN
均等なタイルにするか、低VRAM用のタイルVAEデコード。

出力

名前
型
意味
IMAGE
IMAGE
アップスケールされてディテールが追加された画像。

Ultimate SD Upscale の使い方

  1. ComfyUI Managerでパックをインストール("Ultimate SD Upscale"で検索)。
  2. デコード済みIMAGE、サンプラーと同じmodel/positive/negative/VAE、アップスケールモデルを接続。
  3. upscale_byを2.0、denoiseを0.3、stepsを20、modeをChess、タイルサイズをSDXLなら1024に設定。
  4. 必要ならApply ControlNetでTile ControlNetをこのノードの前のポジティブに追加。
  5. キューに入れて実行後、100%ズームで入力と比較。ディテールを増やしたければdenoiseを上げ、忠実度を上げたければ下げる。

設定とコツ

  • プロンプトは一般的に("highly detailed, sharp focus"など)か元のものを使うのがいい。詳細な被写体のプロンプトはタイルごとに被写体が繰り返されることがある。
  • Tile ControlNetなしでdenoiseを0.45以上にするとタイル内に顔や物体が勝手に出てくる。
  • ChessモードとHalf Tileのシーム修正でほとんどのつなぎ目が隠れる。
  • 4倍アップは一度に4倍より2倍アップを2回実行するほうがいい。
  • tiled_decodeは8GBのVRAMで最終デコード時にVRAM節約になる。

Ultimate SD Upscale のトラブルシューティング

テクスチャ(草や壁)に顔や物体が現れる

原因
プロンプトに対してデノイズが高すぎて、Tile ControlNetがないため内容が固定されていない。

対処法
デノイズを0.25-0.35に下げるか、プロンプトを短くするか、Tile ControlNetを強さ0.5-0.8で追加する。

タイルのグリッドが見える

原因
seam_fix_modeがNone、小さいtile_padding、または強いデノイズのLinearモード。

対処法
Chessモード、tile_paddingを32-64、mask_blurを8-16、シーム修正をHalf Tileにする。

非常に遅い:タイルが何百枚もある

原因
大きなupscale_byに小さいタイルサイズでサンプラーパスが膨大になる。

対処法
モデルが対応する最大タイル(SDXLなら1024)を使い、2段階の2倍アップで拡大する。

インポート後にノードがない(赤いノード)

原因
パックがインストールされていないか、依存関係不足でインポートに失敗。

対処法
ComfyUI Managerで"ComfyUI_UltimateSDUpscale"をインストールし、再起動してコンソールのインポートエラーを確認。

Ultimate SD Upscale に関する質問

Tile ControlNetは必要?

必須ではないけど、内容のズレを防ぎつつ高いデノイズを使える。SDXLならTileかTTPlanetのタイルモデルを使うといい。

アップスケールモデルなしで使える?

使える。upscale_modelをNoneに設定するか、すでに拡大済みの画像にUltimate SD Upscale (No Upscale)を使う。

Flux対応は?

対応してる。cfg1.0でポジティブのコンディショニングにFlux Guidanceを使い、タイルは1024、denoiseは約0.3が目安。

その他の ComfyUI ノード

CLIP Text Encode (Prompt)
ComfyUI core
CLIP Text EncodeはテキストプロンプトをモデルのテキストエンコーダーでCONDITIONINGに変換します。1つのノードがポジティブプロンプトを、もう1つがネガティブプロンプトを持ちます。
ComfyUI Manager
ComfyUI-Manager
ComfyUI Managerは、インターフェース内からカスタムノードパックやモデルのインストール、更新、修正を行い、インポートしたワークフローの不足ノードを解決し、設定のスナップショットを作成する拡張機能です。
Load Checkpoint
ComfyUI core
Load Checkpoint(CheckpointLoaderSimple)は、.safetensorsまたは.ckptのモデルファイルを開いて、ワークフローで必要な3つのパーツ、つまりdiffusion MODEL、CLIPテキストエンコーダー、VAEを出力します。
Save Image
ComfyUI core
Save ImageはIMAGEテンソルをPNGとしてComfyUI/outputに保存します。ファイルのメタデータにワークフロー全体が埋め込まれているので、その画像をComfyUIにドラッグするとグラフを復元できます。
VAE Decode
ComfyUI core
VAE DecodeはサンプリングされたLATENTをVAEを使ってピクセルのIMAGEに変換します。VAE Decode (Tiled)はとても大きな画像をタイル単位で同じ処理をします。
Empty Latent Image
ComfyUI core
Empty Latent Imageは、テキストから画像を生成するときのスタート地点となる空の潜在キャンバス(幅、高さ、バッチサイズ)を作ります。サイズは8の倍数で、モデルファミリーに合っている必要があります。