Qwen Image 2.1をComfyUIでローカル実行:VRAM別セットアップ
VRAM別に公式のINT8/W4A8を選び、ComfyUIで最初のPNGを保存し、モデル未検出やOOMを切り分け、必要な場合だけGGUFへ進むための実践ガイドです。
目次

一般向けGPUでQwen Image 2.1を安定して動かすなら、最初から最小サイズのGGUFを探すのではなく、ComfyUIを更新し、公式のText-to-Imageワークフローを読み込み、公式INT8拡散モデル・対応するQwen3-VLテキストエンコーダ・VAEの組み合わせで小さな画像を1枚生成して保存するのが近道です。VRAMが8GBまたは12GBなら、BF16、2K出力、プロンプト拡張を同時に有効化しないでください。
QwenもComfy Orgも、すべてのPCに当てはまる最低VRAMを公開していません。以下の8GB・12GB向け構成は、切り分けしやすい保守的な開始点であり、動作保証ではありません。システムRAM、モデルのオフロード、ドライバ、解像度、他のGPUプロセスによってピーク使用量は変わります。
まず重みを選ぶ:ファイル容量は実行時VRAMではない
2026年9月28日時点で、Comfy Orgの公式モデルリポジトリには、拡散モデル2種、メインのテキストエンコーダ3種、VAE 1種、独立したプロンプト拡張モデル2種があります。最初の1枚に必要なのは、拡散モデル、メインエンコーダ1つ、VAEです。qwen3.5_9b_..._pe_t2iは任意のプロンプト拡張用で、qwen3vl_8b_...の代わりにはなりません。
| 役割 | 初回に推奨するファイル | ダウンロード容量の目安 | 配置先 |
|---|---|---|---|
| 拡散モデル | qwen_image_2.1_int8_convrot.safetensors | 7.26 GB | ComfyUI/models/diffusion_models/ |
| メインテキストエンコーダ、省メモリ側 | qwen3vl_8b_w4a8.safetensors | 6.31 GB | ComfyUI/models/text_encoders/ |
| メインテキストエンコーダ、公式テンプレート既定 | qwen3vl_8b_int8_convrot.safetensors | 9.35 GB | ComfyUI/models/text_encoders/ |
| VAE | qwen_image_2.1_vae_bf16.safetensors | 0.68 GB | ComfyUI/models/vae/ |
| 任意のT2Iプロンプト拡張 | qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors | 9.47 GB | ComfyUI/models/text_encoders/ |
これはリポジトリ上のファイル容量であり、実行時VRAMではありません。INT8拡散モデル + W4A8エンコーダ + VAEは約14.24GB、公式テンプレート既定のINT8 + INT8 + VAEは約17.28GBのダウンロードになります。プロンプト拡張を追加すると、さらに約9.47GBの保存領域と、大型モデルを読み込む追加工程が必要です。
VRAM別の現実的な初期構成
| 使用可能VRAM | 最初に試す構成 | 初回生成の設定 | 成功後に試すこと |
|---|---|---|---|
| 8GB | INT8拡散 + W4A8メインエンコーダ + VAE、プロンプト拡張OFF | 768×768またはおよそ1MP以下、batch 1、CFG 1 | 次に1024。公式構成がなおOOMならコミュニティGGUFを検討 |
| 12GB | INT8拡散 + W4A8メインエンコーダ、INT8エンコーダは後で | 1024×1024、batch 1、CFG 1 | 拡張または解像度を1項目ずつ変更 |
| 16GB以上 | 公式テンプレートのINT8拡散 + INT8エンコーダ + VAE | 1024×1024、25 steps、CFG 1 | プロンプト拡張と2Kを別々に試す |
| VRAMとRAMに十分な余裕 | まずINT8経路を確認してからBF16を比較 | prompt、seed、寸法を固定 | 大きな負荷を許容し、比較目的がある場合だけBF16を使用 |
8GB・12GBの行はトラブルシューティングを簡単にするための開始点で、公式要件ではありません。Qwenは限られたメモリ向けのモデルオフロードを案内しており、ComfyUIは端末ごとにGPUへ残すコンポーネントを判断します。同じGPUでも環境によって結果は変わります。
1. カスタムノードを探す前にComfyUIを更新する
Qwen Image 2.1はComfyUIでネイティブ対応しています。公式ワークフローのためにサードパーティーのノードパックを先に入れる必要はありません。赤いノード、Qwen Image 2.1テンプレートがない、TextEncodeQwenImage21が見つからない、といった場合は、まずCoreや依存関係が古い可能性を疑います。
- Windows Portable: ComfyUIを終了し、
ComfyUI_windows_portable/update/update_comfyui.batを実行して再起動します。通常更新の最初の手段としてupdate_comfyui_and_python_dependencies.batを使うと、依存関係一式が再インストールされます。 - ComfyUI Desktop: Manage → UpdateからEngineを更新します。Stableは最新モデル対応が遅れることがあります。ノードがまだなければ、利用可能な
Latest on GitHubチャンネルを使うか、Portable/手動導入へ移行します。 - Gitによる手動導入: ComfyUIを実行しているPython環境内で、コードと依存関係を更新してから再起動します。
cd /path/to/ComfyUI
git pull
python -m pip install -r requirements.txt
python main.py
公式更新ガイドでは、git pullだけだとフロントエンド、ワークフローテンプレート、新しいノードが古いままになる可能性があると説明されています。requirements.txtの更新も手順の一部です。
2. 各モデルをローダーが読むフォルダへ置く
選んだファイルを公式ComfyUIモデルリポジトリからダウンロードします。ファイル名は変更しないでください。ブラウザが重複ダウンロードに付ける(1)などの接尾辞によって、テンプレートがモデルを見つけられないことがあります。
省メモリでの初回実行は次の構成にできます。メインエンコーダはW4A8またはINT8のどちらかを選びます。
ComfyUI/
└── models/
├── diffusion_models/
│ └── qwen_image_2.1_int8_convrot.safetensors
├── text_encoders/
│ ├── qwen3vl_8b_w4a8.safetensors
│ └── qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors # optional
└── vae/
└── qwen_image_2.1_vae_bf16.safetensors
公式テンプレートの既定構成に合わせる場合は、qwen3vl_8b_w4a8.safetensorsをqwen3vl_8b_int8_convrot.safetensorsへ置き換えます。コピー後にComfyUIを再起動してください。ローダーの選択肢は通常、起動時に検出したファイルから作られます。
3. 公式Text-to-Imageワークフローを読み込む
ComfyUIのTemplatesパネルからQwen Image 2.1のtext-to-imageテンプレートを開くか、公式T2IワークフローJSONをダウンロードしてキャンバスへドラッグします。現在の公式テンプレートはメイングラフをsubgraphにまとめ、初期値は1024×1024、25 steps、CFG 1、euler + simpleです。
次の順番でローダーと設定を確認します。
- 拡散モデルに
qwen_image_2.1_int8_convrot.safetensorsを選びます。 - メインテキストエンコーダに
qwen3vl_8b_w4a8.safetensorsまたはqwen3vl_8b_int8_convrot.safetensorsを選び、typeをqwen_imageにします。 - VAEに
qwen_image_2.1_vae_bf16.safetensorsを選びます。 - 初回は
refine_promptをfalseのままにします。PEモデルの選択欄はプロンプト拡張専用です。 - 8GBは768×768、12GB以上は1024×1024から始めます。縦横は32で割り切れる値を優先します。
- batch size 1、CFG 1を維持します。LoRA、ControlNet、参照画像、アップスケールはまだ追加しません。
成功を判断しやすい、単純なpromptを最初に使います。
A red ceramic teapot on a wooden table, soft window light, plain background.
最初から2Kにしないでください。ネイティブ2K対応とは、モデルが2048×2048を直接生成できるという意味で、8GBや12GBのすべての構成で完走できるという意味ではありません。
4. 1件だけQueueし、待って、PNGの保存を確認する
Queue Promptは1回だけ押します。初回は数十GB規模のファイルを読み込み、VRAM、システムRAM、CPUの間でコンポーネントを移動することがあります。プレビューがすぐ出なくても、同じジョブを重ねず、起動したターミナルやログを確認します。
次の4つがすべてそろったときだけ、初回成功と判断します。
model not found、missing node type、CUDA out of memory、プロセス終了なしでQueueが完了した。SaveImageAdvancedに画像が表示された。Samplerが終わっただけでは保存確認にならない。ComfyUI/output/にPNGがある。公式テンプレートの既定プレフィックスはQwen_image_2.1。Save Imageノードを変えた場合は、そのノードの保存先を確認する。- PNGが正常に開き、想定寸法で、全面黒・全面透明・破損ファイルではない。
NVIDIA環境では、別ターミナルでメモリを監視できます。
nvidia-smi -l 1
使用した拡散ファイル、テキストエンコーダ、寸法、観測したピークを記録します。その後は1回に1変数だけ変更すると、新しい失敗の原因を特定しやすくなります。
5. 全部を入れ替えず、症状ごとに切り分ける
ノードが赤い、またはmissing node typeと表示される
ComfyUI Coreと依存関係を更新して再起動します。公式ワークフローのTextEncodeQwenImage21、ResolutionSelector、ロジックスイッチはCoreノードです。似た名前の無関係なサードパーティーパックを入れると、切り分けが複雑になります。
モデル欄が空、またはmodel not foundになる
フォルダ、拡張子、正確なファイル名を確認して再起動します。メインエンコーダをmodels/clip/へ置いた、拡散モデルをmodels/checkpoints/へ置いた、ブラウザがファイル名を変えた、というミスがよくあります。
Sampling開始前にVRAMが足りなくなる
プロンプト拡張をOFFにし、メインエンコーダをINT8からW4A8へ変え、batch 1を維持します。GPUを使うブラウザ、ゲーム、動画ツールも閉じます。8GBは768×768へ、12GBは1024×1024へ戻し、任意の枝を外します。
VAE Decode中または保存直前にOOMになる
幅と高さを下げて、1件だけ再実行します。stepsを減らすと主に時間が短くなりますが、解像度を下げる方がlatentとVAE Decodeのメモリを直接減らせます。
ディスクやCPUは動いているのにQueueが止まって見える
モデル読み込みやオフロード中で、まだ失敗していない場合があります。明確な完了またはエラーまで待ちます。繰り返しクリックすると重いジョブが積み上がります。RAMが増え続けて激しいswapが起きたら、キャンセルして構成を下げ、ComfyUIを再起動します。
画像が薄い、過剰、または構造が崩れる
CFGが1のままか確認します。公式テンプレートではCFG 1でnegative promptは使われません。SDXLで使っていた高いCFGをそのまま持ち込むのは適切な開始点ではありません。
1024は動くが2Kは常にOOMになる
1024を動作基準として残します。batch 1、プロンプト拡張OFFのまま、1280、1536、2048の順に1段ずつ試します。モデル自体が2Kに対応していることと、ローカルのメモリに収まることは別問題です。
8GB・12GBユーザーが実際に選ぶべき構成
8GBでは、全機能を使うより処理の一連を成立させることが目的です。 INT8拡散、W4A8メインエンコーダ、VAEを使い、PEをOFF、768×768、batch 1から始めます。それでも失敗する場合は、GGUFへ進む前にComfyUIの更新とシステムRAMの余裕を確認します。出所不明の量子化ファイルを標準ワークフローへ入れ、互換だと決めつけないでください。
12GBでは1024×1024を最初の目標にします。 余裕を残すためW4A8から始め、ベース生成が安定してから公式テンプレートのINT8エンコーダを試します。プロンプト拡張は別の9Bモデルを読み込んでpromptを書き換える第2段階の機能です。基本グラフが失敗している間は追加しません。
コミュニティ投稿は個別例であり、最低要件を示すものではありません。あるユーザーは8GBのノート向けRTX 5060で実行しつつ最適化中だと述べ、別のRTX 3060 12GBユーザーは8GB環境にW4A8を提案しました。前者の報告と後者の提案には共通条件のテストや完全なログがないため、保証ではなくヒントとして扱います。
GGUFは省メモリ向けの任意経路で、公式の初手ではない
QwenとComfy Orgの公式テンプレートは.safetensorsを使います。GGUFには、サードパーティーローダー、Qwen Image 2.1専用の量子化ファイル、そのローダー用に組んだグラフが必要です。ComfyUI-GGUFは自らをwork in progressと説明しており、第三者が配布するすべてのQwen量子化を保証していません。
公式INT8/W4A8構成がメモリ不足でなお動かない場合に限って、次のコミュニティ経路を検討します。
- ComfyUIを更新し、Managerまたはリポジトリから
ComfyUI-GGUFを導入する。 - Qwen Image 2.1用と明記されたファイルを入手し、配布者、ライセンス、hash、必要loaderを確認する。
- 標準の拡散loaderを
Unet Loader (GGUF)へ置き換える。Qwen Image 2.1対応のメインエンコーダとVAEは維持する。 - 正確なファイル名を選び、約1MP未満、CFG 1、batch 1でテストする。
- 失敗時は、その量子化の説明へ戻る。Qwen Image 1.x、Flux、一般的なStable Diffusionのグラフを混ぜて診断しない。
ロシア語圏のユーザーはqwen-image-2.1-UC-Q4_K_M.ggufをComfyUIで動かしたと報告しましたが、導入には追加の助けが必要だったとも述べています。別のコミュニティQ8_0ワークフローはGGUFと公式エンコーダ、VAEを組み合わせています。これは代替経路があることを示すだけで、任意のQ4/Q8の互換性や安全性を証明するものではありません。
ベース動作後にプロンプト拡張、2K、編集を追加する
ベース画像が安定して保存できたら、次の順序で拡張します。
- プロンプト拡張:
qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensorsをダウンロードして選択し、refine_promptをONにします。比較時はseed、寸法、stepsを固定します。 - 高解像度: 1024から2048×2048へ一気に上げず、段階的に増やします。アルファチャンネルが必要ならPNGで保存します。
- 画像編集: 公式Image Editワークフローへ切り替えます。プロンプト拡張にはT2Iではなく
..._pe_i2i...を使います。 - 透過出力: 公式のRGBA/transparent background向けpromptを使い、PNGで保存します。まず通常の不透明画像を確認し、透過だけを新しい変数にします。
最終確認チェックリスト
- ComfyUI Core、フロントエンド依存関係、ワークフローテンプレートが最新で、再起動後にCoreノードが赤くない。
- 拡散モデル、メインテキストエンコーダ、VAEが正しいフォルダにあり、正確な名前で選択できる。
- プロンプト拡張OFF、batch 1、CFG 1。8GBは768、12GBは1024から開始している。
- Queueは1件だけで、ターミナルがモデル・ノード・OOMエラーなしで完了する。
ComfyUI/output/に指定寸法の正常なPNGがある。- PE、高解像度、編集、GGUFを追加する前に、成功した重みの組み合わせ、解像度、観測ピークを記録した。
6項目がそろえば、再現可能なQwen Image 2.1のローカル基準が完成です。以後の最適化では、その基準から1要素ずつ変更し、原因を特定できない大型グラフへ一度に置き換えないでください。