Radeon 780MでQwen-Image-2.1を試す:生成速度とRGBAスプライト

780mcomfyuiimage-generation

琥珀色に光る小型PCの上に浮かぶガラス板と、その上に置かれた赤いポーションの瓶

以前のQwen-Image-2512のテストで、Radeon 780Mでも20B級の画像モデルが動くことは確かめた。ただ、1024x1024の画像を1枚作るのに約20分かかる。

Qwen-Image-2.1は2512よりずっと小さいモデルで、透明背景の出力に標準で対応している。ComfyUI 0.37.2ならそのまま使える。同じミニPCで、同じ5つのプロンプトを512x768と1024x1024で生成した。設定は25ステップのEulerで、シードも固定している。

2.1は512x768で約9.3倍、1024x1024で約5.5倍速かった。このミニPCで、背景除去を別に通さずに使えるRGBAスプライトが出たのも今回が初めてだ。

使った機材とモデル

これまでと同じGMKtec K8 Plusを使った。Ryzen 7 8845HS、Radeon 780M(gfx1103)、共有DDR5 32GBで、単体GPUは積んでいない。ComfyUIはComfyUI-TheRock経由で動かしていて、HIP版のPyTorchが内蔵GPUを直接使う。

設定はComfyUI 0.37.2、25ステップ、Euler/simple、シード固定で統一した。モデルファイルの構成は下の表にまとめた。

Qwen-Image-2512Qwen-Image-2.1
Diffusion modelQ4_K_M GGUF、12.34GBint8 convrot、6.76GB
Text encoderQwen2.5-VL fp8、8.74GBQwen3-VL int8、8.71GB
VAE0.24GB0.63GB
ディスク上の合計21.32GB16.10GB

2.1のウェイトはComfy-Orgの再パッケージ版を使った。ComfyUIの公式ワークフローには、モデルの配置と透明画像用のプロンプト例が載っている。リンク先は公式テンプレートで、今回の計測に使ったワークフローそのものではない。

ベンチマーク

プロンプトは5つ用意した。暖色のデスクランプ、ちび騎士のゲームスプライト、夕暮れの日本の路地、文字ラベル入りのリンゴ、透明背景の赤いポーションスプライトだ。両モデルを両解像度で回したので、全部で20枚になる。プロンプトの全文、シード値、計測に使ったワークフローJSONは掲載していない。下の表は今回の実行結果で、同条件での完全な再現に必要な情報は揃っていない。

512x768の比較。左がQwen-Image-2512、右がQwen-Image-2.1

1024x1024の比較。左がQwen-Image-2512、右がQwen-Image-2.1

下の表の時間は、ジョブを投げてからPNGが保存されるまでの実測値だ。モデルのロード、テキストエンコード、VAEデコードも含む。2.1の10枚中7枚は通常のVAEデコードを使い、クラッシュ後の3枚はタイル分割してデコードした。2.1の平均値には両方が含まれる。

プロンプト2512 512x7682.1 512x7682512 1024²2.1 1024²
デスクランプ16.3分1.6分22.5分4.3分
ちび騎士14.0分1.6分22.3分3.9分
夕暮れの路地14.0分1.5分22.7分3.9分
リンゴのラベル14.0分1.6分22.8分4.5分
RGBAポーション14.0分1.5分22.9分4.1分
平均14.5分1.6分22.6分4.1分

10枚の合計は、2512が185.4分、2.1が28.5分だった。512x768でプロンプトを5回直すなら、2.1は8分ほどで終わる。同じ手直しを2512でやると1時間を超える。

画質

2512はスタイル指定をより文字どおりに守った。騎士は完成したゲームイラストのようで、路地の画像には自動販売機、赤い郵便ポスト、屋台、密集した電線が一枚にきっちり収まっている。

2.1は全体に写真寄りで、ランプと路地はよくできていたものの、構図は指定から少し外れた。コンセプトを詰める段階なら、このトレードオフは受け入れられる。512x768なら次の1枚が13分ほど早く出るからだ。

ラベルは両モデルとも、両解像度でAPPLEと780Mを正しく描けた。OCRは使わず目で確認しただけなので、4枚という小さなサンプルでの結果として読んでほしい。

透明度の確認

ポーションのプロンプトでは、透明背景のRGBA画像をはっきり指定した。2512は両解像度とも、暗い背景で塗りつぶされたRGBのPNGを保存した。ポーション自体はきれいだが、スプライトにするには背景除去を一度挟む必要がある。

2.1は両解像度でRGBAのPNGを保存し、アルファ値は0から255までフルに使われていた。透明な部分はファイルにそのまま入っているので、後からクロマキーで抜く作業はいらない。

2.1が512x768で生成したRGBAポーション

ポーション画像のPNGには透明度の情報が入っている。スプライトアトラスやUIのレイヤーへ置く際に、背景除去を別途かける必要はない。異なる背景に重ねたときの輪郭の見え方は、まだ確認していない。

なお、2.1のワークフローはどのプロンプトでもRGBAで保存する。リンゴのラベル画像では、画素の8〜18%が半透明で、アルファ値の最小は241だった。スプライト以外の用途では、単色の背景に合成してから使ったほうが安全だ。

VAEデコード中のクラッシュ

最初の2.1の実行は途中で止まった。17ジョブを終えたあと、残りの1024²ケースのVAEデコード中にComfyUIのプロセスが落ちた。サンプリングは終わっていて、潜在表現をピクセルに戻す段階でクラッシュしている。

リカバリーでは、デコードノードだけをVAEDecodeTiledに差し替え、タイル512ピクセル、オーバーラップ64ピクセルに設定した。これで未完了だった3ケースも最後まで通った。2.1の10件のうち7件は通常のデコード、3件はタイルデコードで測っているので、2.1の数字はその混在込みのワークフロー時間として見てほしい。

内蔵GPUでは、VAEデコードも他の処理と同じ共有メモリを使う。拡散ステップが収まっても、デコードでメモリが足りなくなることがある。ベンチマーク用のスクリプトは、今は2.1のジョブすべてでタイルデコードを使っている。

どちらを使うか

今回の画像では、2512のほうが指定したスタイルと構図に近かった。再生成には計測した範囲で1枚約14〜23分かかった。

780Mで実用的なのは2.1のほうだ。512x768なら1枚2分かからないので、スタイルがずれたプロンプトを回し直す負担は小さい。

この記事のOGP画像の背景も、Qwen-Image-2.1で生成した。1216x640、25ステップでシードを変えて2枚作り、1枚あたり3.3〜3.4分で終わった。OGP画像のワークフローの記事で使った2512の背景は、20ステップで平均15分45秒かかっている。左側にタイトルを置く余白が広いほうを選んだ。2.1の出力はRGBAだったので、タイトルを重ねる前にRGBへ変換している。