CATHODE COASTaccess to tools
— 11 min read

Mac(Apple Silicon)の ComfyUI に Qwen-Image 2.1 を入れて、最初の1枚を出すまで

前回作った ComfyUI 環境に Qwen-Image 2.1 を導入するハンズオン。GGUF をやめて公式の bf16 版を使うことにした理由、テンプレートのモデル指定の切り替え、「無効な入力」エラーの回避方法をまとめました。

shareB!

はじめに

前回の記事では、Mac に ComfyUI を手動でインストールして、SDXL で1枚生成するところまで進めました。今回はその続きで、本来の目的だった Qwen-Image を導入します。

先に結果を書いておくと、M5 Max / 48GB の MacBook Pro で、1枚あたり約 55 秒で生成できました。追加ノードは使わず、ComfyUI の標準機能だけで動いています。

ただし、前回の最後に書いた「予習メモ」とは、やり方が大きく変わりました。また、今回も手順どおりに進めたつもりで1か所詰まっています。

  • 前回の予定(旧版の Qwen-Image を GGUF 形式で動かす)はやめて、新版の Qwen-Image 2.1 を公式の bf16 版で動かすことにした
  • テンプレートは軽量な int8 版のモデルを指定しているので、bf16 版に切り替える必要がある
  • 使わないはずの「プロンプト補正用モデル」の欄が原因で、「無効な入力」エラーが出て実行できなかった

動作環境

項目内容
マシンMacBook Pro(Apple M5 Max / メモリ 48GB)
ComfyUI前回の記事で手動インストールしたもの(今回の手順で最新版に更新)
モデルQwen-Image 2.1(bf16 版)
画面表示日本語

前回の記事の手順7(SDXL で1枚生成)まで終わっている状態から始めます。ターミナルの呼び名(ComfyUI 用ターミナルと作業用ターミナル)や、ComfyUI の再起動のしかたも、前回の記事と同じです。

前回の予定から変えたこと

旧版ではなく Qwen-Image 2.1 を使う

前回の予習メモは、旧版の Qwen-Image を前提に書いていました。ところが作業の前に調べ直したところ、2026年9月に新版の Qwen-Image 2.1 が公開されていて、ComfyUI も標準で対応していました。

大きな違いは、モデルの本体が小さくなったことです。

旧版(Qwen-Image)新版(Qwen-Image 2.1)
本体のファイルサイズ(bf16)約 41GB約 14.2GB
テキストエンコーダQwen2.5-VL 7BQwen3-VL 8B(bf16 で約 17.5GB)
画像編集別モデル(Qwen-Image-Edit)同じモデルで生成と編集の両方に対応

ComfyUI 公式のチュートリアルによると、2.1 は 2K(2048×2048)での生成や、背景が透明な画像の出力にも対応しています。

GGUF ではなく公式の bf16 版を使う

前回は「メモリに余裕を持たせるため、GGUF 形式の量子化版を使う」と書きました。旧版は本体だけで約 41GB あり、48GB の Mac にそのまま載せるのは厳しかったためです。

2.1 では事情が変わります。量子化していない bf16 版でも、必要なファイルの合計は約 32GB です。48GB のメモリに収まるので、量子化版を使う理由がなくなりました。その結果、ComfyUI-GGUF のような追加ノードも不要になり、手順がかなり短くなっています。

int8 版ではなく bf16 版を選んだ理由

ComfyUI 公式は、bf16 版のほかに、より軽い int8 版(本体 約 7.3GB、テキストエンコーダ 約 9.4GB)も配布しています。公式テンプレートが最初から指定しているのは、この int8 版です。

それでも bf16 版を選んだのは、int8 版が NVIDIA の GPU を前提にした形式で、Apple Silicon では高速化の恩恵がないという注記を、派生モデルの配布ページで見かけたためです。メモリが足りるなら、Mac では bf16 版のほうが確実だと判断しました。

なお、私は int8 版を試していないので、Mac で実際にどう動くかは確かめていません。

メモリとディスクの目安

項目目安
ダウンロードするファイルの合計約 32.4GB
ディスクの空き40GB 以上あると安心
メモリ48GB で動作を確認

メモリが 32GB 以下の Mac では、bf16 版の一式(約 32GB)を載せるのは難しいはずです。その場合は int8 版や GGUF 版が候補になりますが、私の環境では試していません。

ライセンスに注意

旧版の Qwen-Image は Apache 2.0 でしたが、2.1 は Qwen Research License で公開されています。生成した画像を仕事などで使うつもりなら、先にライセンスの条文を確認してください。

手順1. ComfyUI を更新する

Qwen-Image 2.1 には、対応が入ったあとの新しい ComfyUI が必要です。前回インストールしてから日が経っている場合は、先に更新します。

ComfyUI が動いている場合は、ComfyUI 用ターミナルで Ctrl + C を押して止めてから、同じターミナルで次を実行します。pip を使うので、先頭に (venv) が付いていることを確認してください。

cd ~/ComfyUI
git pull
pip install -r requirements.txt

終わったら、ComfyUI を起動し直します。

python main.py

補足: (venv) が付いていないターミナルで実行すると command not found: pip になります。その場合は cd ~/ComfyUI と source venv/bin/activate を先に実行してください。

手順2. モデルをダウンロードする

2-1. 必要なファイル

必要なファイルは3つです。すべて Comfy-Org/Qwen-Image-2.1(Hugging Face)で配布されています。

ファイル役割置き場所サイズ
qwen_image_2.1_bf16.safetensors本体(拡散モデル)models/diffusion_models/約 14.2GB
qwen3vl_8b_bf16.safetensorsテキストエンコーダmodels/text_encoders/約 17.5GB
qwen_image_2.1_vae_bf16.safetensorsVAEmodels/vae/約 0.7GB

補足: 前回の記事のフォルダ構成では、Qwen-Image の本体の置き場所を models/unet/ と書いていました。公式の配布形式では models/diffusion_models/ に置きます。

2-2. ダウンロードする

ComfyUI は起動したままで構いません。作業用ターミナルで実行します。

cd ~/ComfyUI/models
mkdir -p diffusion_models text_encoders vae
 
curl -L -C - -o diffusion_models/qwen_image_2.1_bf16.safetensors \
  https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/diffusion_models/qwen_image_2.1_bf16.safetensors
 
curl -L -C - -o text_encoders/qwen3vl_8b_bf16.safetensors \
  https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/text_encoders/qwen3vl_8b_bf16.safetensors
 
curl -L -C - -o vae/qwen_image_2.1_vae_bf16.safetensors \
  https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/vae/qwen_image_2.1_vae_bf16.safetensors

合計で約 32GB あるので、回線によってはかなり時間がかかります。終わるまで Mac をスリープさせず、ターミナルも閉じないでください。

最初から -C - を付けているので、途中で止まった場合は、同じコマンドをもう一度実行すれば続きから再開します。

2-3. ダウンロードできたか確認する

ls -lh ~/ComfyUI/models/diffusion_models/ ~/ComfyUI/models/text_encoders/ ~/ComfyUI/models/vae/

前回の SDXL のときと同じく、ls は単位の数え方が違うため、配布元の表記より少し小さい数字で表示されます。本体が 13G 前後、テキストエンコーダが 16G 前後、VAE が 650M 前後なら完了です。明らかに小さい場合は途中で止まっているので、2-2 のコマンドをもう一度実行してください。

手順3. テンプレートを開く

  1. ダウンロードしたモデルを認識させるため、ブラウザを再読み込み(⌘ + R)します。
  2. 画面左上の ComfyUI ロゴをクリックしてメニューを開き、テンプレートを参照を選びます。
  3. 右上の検索欄に Qwen-Image-2.1 と入力します。
  4. Qwen Image 2.1:テキストから画像へ をクリックします(一覧では名前が途中で省略されて「Qwen Image 2.1:テキストから画…」と表示されます)。

テンプレート一覧を Qwen-Image-2.1 で検索した画面。「Qwen Image 2.1:テキストから画像へ」を選ぶ

注意: 隣にある「Qwen Image 2.1:画像編集」は、入力画像が必要な別のテンプレートです。まずは「テキストから画像へ」で動作を確認します。

検索しても出てこない場合は、ComfyUI の更新が足りていません。手順1をやり直してください。

手順4. モデルの指定を bf16 版に切り替える

テンプレートを開くと、Text to Image (Qwen Image 2.1) という大きなノードが1つ配置されます。プロンプトの入力欄から各種設定、モデルの指定まで、このノードにまとまっています。

開いた直後は、ノードが赤い枠で囲まれています。テンプレートが int8 版のモデルを指定していて、そのファイルが手元にないためです。

Text to Image (Qwen Image 2.1) ノード。下のほうにモデルを指定する行が並んでいる

4-1. 本体とテキストエンコーダを切り替える

ノードの下のほうにある2行を変更します。行をクリックすると候補の一覧が開くので、bf16 版を選びます。

行テンプレートの初期値変更後
unet_nameqwen_image_2.1_int8_convrot.safetensorsqwen_image_2.1_bf16.safetensors
clip_nameqwen3vl_8b_int8_convrot.safetensorsqwen3vl_8b_bf16.safetensors

vae_name は最初から qwen_image_2.1_vae_bf16.safetensors になっているので、そのままで構いません。

一覧に bf16 版のファイルが出てこないときは、ブラウザを再読み込みしてください。それでも出てこなければ、手順2の置き場所とファイル名を確認します。

4-2. プロンプト補正用モデルの欄も変更する

ここが今回のつまずきポイントでした。 4-1 の2行を変えて実行したところ、まだエラーが残りました。画面右側の「ワークフロー概要」の「問題」タブには、次のように表示されていました。

  • 無効な入力: 一部の入力値はこのノードで利用できません。(Text to Image (Qwen Image 2.1) - clip_name_1)
  • 不足しているモデル: qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safetensors(text_encoders · 8.82 GB)

ワークフロー概要の「問題」タブ。無効な入力と、不足しているモデルが表示されている

原因は、vae_name の下にある、qwen3.5_9b_qwen_image_2.1_pe_t2i.int8_convrot.safete… と表示されている行です。これは、短いプロンプトを詳しい文章に書き直す「プロンプト補正」用のモデルの指定です。

プロンプト補正は、ノードの上のほうにある refine_prompt が false のあいだは使われません。それでも ComfyUI は、実行前に、指定されたファイルが存在するかを確認します。手元にないファイル名が残っていたので、そこで止まっていました。

補正用モデル(約 8.8GB)をダウンロードしなくても、次の方法で回避できました。

  1. qwen3.5_9b_…pe_t2i… と表示されている行をクリックします。
  2. 一覧から qwen3vl_8b_bf16.safetensors を選びます。

これは、存在確認を通すための仮の指定です。refine_prompt が false のあいだ、この欄のモデルは読み込まれないので、生成結果には影響しません。

注意: この状態で refine_prompt を true にすると、補正用ではないモデルが読み込まれてしまい、正しく動きません。プロンプト補正を使いたくなったら、「問題」タブのダウンロードボタンなどで補正用モデルを入手して、この欄を元に戻してください。なお、補正用モデルは int8 版しか配布されておらず、Mac での動作は確かめていません。

手順5. 生成する

ここまでの変更で、赤い枠とエラーが消えます。プロンプトは最初から入っている例文のままで構いません。実行するボタンを押します(⌘ + Enter でも実行できます)。

初回は約 32GB のモデルを読み込むので、生成が始まるまで時間がかかります。進み具合は ComfyUI 用ターミナルのログで確認できます。画像が表示されれば、Qwen-Image 2.1 の導入は完了です。生成した画像は、SDXL のときと同じく ~/ComfyUI/output に保存されます。

私の環境では、1枚あたり 55.21 秒でした。

手順6. プロンプトを変えてみる

テンプレートの例文のままだと海外のモデルのような人物が生成されたので、日本人の女性のポートレートを試しました。

Qwen-Image は、単語を並べるよりも、文章で描写したほうが意図が伝わります。人物、場所、光、撮影の条件まで書き込んだ、次のプロンプトを使いました。ノード上部のテキスト欄の中身を、まるごと置き換えます。

A portrait photograph of a beautiful Japanese woman in her late twenties, standing by a large window in a quiet Tokyo café in the late afternoon. She has shoulder-length straight black hair with soft see-through bangs, dark brown eyes, and a gentle, natural smile. Her makeup is light and natural, and her skin shows realistic texture. She wears a cream-colored knit sweater and small gold earrings. Soft natural window light falls on her face from the side, with a warm, softly blurred café interior in the background. Shot on a full-frame camera with an 85mm lens at f/1.8, shallow depth of field, eye-level angle, upper-body composition, photorealistic, high detail.

試すときのポイントは3つあります。

  • 縦長にする: ノードの左につながっている Resolution Selector ノードで、縦横比を 3:4 や 2:3 にすると、人物写真らしい構図になります。
  • シードを変える: 同じプロンプトでも、seed が変わると顔立ちや構図が変わります。
  • 一部だけ差し替える: 場面や服装の部分を書き換えると、雰囲気を大きく変えられます。

差し替えの例です。

雰囲気差し替える内容
和装場面を in a traditional Kyoto garden in autumn、服装を an elegant indigo kimono with a subtle floral pattern, hair in a neat updo にする
夜の街場面を on a Shibuya street at night, neon signs reflecting on wet pavement、光を lit by colorful neon light にする
スタジオ場面を in a photo studio against a plain light gray backdrop、光を soft diffused studio lighting にする

設定のメモ

テンプレートの初期値と、公式チュートリアルに書かれている調整の目安をまとめておきます。調整のほうは、私はまだ試していません。

項目初期値メモ
steps25手や指などの細部が崩れるときは、30〜40 に増やすと改善するとされています。
cfg1.0この値では negative_prompt は効きません。効かせたい場合は上げますが、上げすぎると画質が崩れるとされています。
sampler / schedulereuler / simple公式の推奨値です。
解像度1.0 MP(約 1024×1024)Resolution Selector ノードで縦横比と画素数を指定します。4.0 MP にすると 2048×2048 になります。

困ったときは

症状対処
テンプレートを検索しても Qwen Image 2.1 が出てこないComfyUI が古い可能性があります。手順1で更新してから、起動し直してください。
unet_name や clip_name の一覧に bf16 版が出てこないブラウザを再読み込みしてください。出てこなければ、手順 2-1 の置き場所とファイル名を確認します。
「無効な入力」(clip_name_1)と表示されて実行できないプロンプト補正用モデルの欄に、手元にないファイルが指定されています。手順 4-2 の方法で、仮の指定に変更してください。
refine_prompt を true にしたら動かなくなった手順 4-2 の仮の指定のままでは、プロンプト補正は使えません。false に戻すか、補正用モデルをダウンロードして欄を元に戻してください。
生成時に MetadataIncompleteBuffer や HeaderTooLarge などモデル読み込みのエラーが出るモデルファイルが途中までしかダウンロードされていない可能性があります。手順 2-3 でサイズを確認し、足りなければ 2-2 のコマンドをもう一度実行してください。
メモリ不足で落ちる、極端に遅いブラウザのタブや重いアプリを閉じてください。それでも厳しい場合は、解像度を下げるか、int8 版や GGUF 版を検討します(私の環境では未検証です)。
command not found: pip(または python)仮想環境が有効になっていません。cd ~/ComfyUI と source venv/bin/activate を実行してからやり直してください。

まとめ

  • Qwen-Image 2.1 は本体が小さくなり、48GB の Mac なら量子化していない bf16 版がそのまま動きます。GGUF 用の追加ノードは不要でした。
  • 必要なファイルは、本体、テキストエンコーダ、VAE の3つで、合計約 32GB です。
  • テンプレート「Qwen Image 2.1:テキストから画像へ」を開いたら、unet_name と clip_name を bf16 版に切り替えます。
  • 「無効な入力」エラーが出たら、プロンプト補正用モデルの欄を、手元にあるファイルに変更すれば実行できます。その場合、refine_prompt は false のままにします。
  • M5 Max / 48GB の環境では、1枚あたり約 55 秒で生成できました。
  • ライセンスは Qwen Research License です。利用目的によっては、条文の確認が必要です。

同じモデルで画像編集もできるので、次はそちらを試すつもりです。

参考リンク