ComfyUI-SUPIR
https://github.com/kijai/ComfyUI-SUPIRkijai/ComfyUI-SUPIR
SUPIRを実装するComfyUIカスタムノード
インストール
ComfyUI Managerからで問題なし
もし手動でしたいなら
$ cd path\to\ComfyUI\custom_nodes
$ git clone https://github.com/kijai/ComfyUI-SUPIR.git
$ ../../../python_embeded/python.exe -m pip install -r requirements.txt
xformersが必要なのでインストール
$ ../../../python_embeded/python.exe -m pip install -U xformers --no-dependencies
モデルのダウンロード
https://huggingface.co/camenduru/SUPIR/tree/maincamenduru/SUPIRからSUPIR-v0Q.ckptとSUPIR-v0F.ckptをpath\to\ComfyUI\models\checkpointsに置く
https://huggingface.co/Kijai/SUPIR_pruned/tree/mainKijai/SUPIR_pruned
上のモデルをPruningしたもので、サイズが半分になっています
VRAMの使用料が減るかもしれない
https://gyazo.com/714de907c1e69597d75ca038c8c5e824
ComfyUI-SUPIR.json
captions
論文ではLLaVA-1.5を使ってキャプションをつけているが、このノードではVLMによるキャプションを内臓していない
a_promptに手動でプロンプトをいれても良いし、ComfyUI VLM nodes等でVLMにキャプションを生成させてここに接続してもよい
ただし、例えばllava v1.6だとVRAM7GB占有してしまうので選ばれし民しか併用できない
上のworkflowではJoyTagを使用
正しいプロンプトは非常に大事で、プロンプトが適当だと生成される画像のクオリティが大分下がる
captionsとa_promptのテキストは単純に連結されてプロンプトとして使用される
supir_modelにはダウンロードしたSUPIRモデルのどちらかを選択
SUPIR-v0Q
論文で使われたモデル
SUPIR-v0F
SUPIR-v0FのStage1エンコーダは、光劣化に直面しても、より詳細な情報を残す。
sdxl_model
好きなモデルを選択
cfg_scale
現在議論されているところだが、4.0程度が良いらしい
scale_by
倍率
ここで画像を拡大しても良いし、ImageUpscaleWithModelノード等を使って先に画像をアップスケールしてからscale_byは1にしてSUPIRで綺麗にするという方法もある
use_tiled_vae
VRAM富豪以外はtrueにしないと動きもしない
use_tiled_sampling
TIlingによって生成速度は大分早くなるが、Tilingの弱点は引き継がれる
fp8_unet
fp8_vae
fp8をオンにするとVRAM12GBでも2048pxくらいまではタイルなしで生成できる
V2
https://gyazo.com/e8060c715351291eb96482b2b1643aa2
ComfyUI-SUPIR_V2.json
処理を細かいノードの分割したもの
基本的にSUPIRがやっていることはControlNet + image2image
なのでHires.fixのように先に画像を拡大してからSUPIR Samplerに流す
VRAM12GBのグラボの場合、fp8_unet / use_tiled_vae のすべてtrueにしないと多分動きません
V2改
https://gyazo.com/8ab13c8442526b4fb765a59f679a0048
ComfyUI-SUPIR_V2.1.json
🟨アップデートによりSUPIRモデルとSDXLモデルを別のノードで読み込めるようになった
これによりSDXL用のLoRAモデルを追加することができる
🟪JoyTagをJoyCaptionに変更
clear_cacheをtrueにしておかないとうまくVRAM開放されずに処理が止まるかもしれない
エラーを一応メモ
$ Error occurred when executing SUPIR_Upscale:
$ The size of tensor a (24) must match the size of tensor b (128) at non-singleton dimension 3
画像サイズ×scale_byがsampling_tile_sizeより小さいのにuse_tiled_samplingをtrueにすると発生する
それはそう
Stable Diffusion使ったアップスケーラー特有のよくわからない描き込みが増えることがあるので、実際の写真に対して使うかは微妙nomadoor.icon
生成画像に関してはSD upscale使うよりこれで仕上げる方が安定してて良いんではなかろうか