西川和久の不定期コラム

さらばgpt-oss。VRAM 16GBあれば動作し、画像も理解してくれる「Qwen3.5」登場!

 長らくローカルでは環境に応じて「gpt-oss-20b」と「gpt-oss-120b」を使ってきたが、ほぼ1年経ってやっと代替できそうなモデル、「Qwen3.5」シリーズが出てきた。今回はこのモデルをいろいろ試したいと思う。

Qwen3.5 ミディアムモデル

 2月にコーディングに特化した言語モデル「Qwen3 Coder Next」の記事を書いたばかりなのに、2月25日、同じくAlibabaから

  • Qwen3.5-27B
  • Qwen3.5-35B-A3B
  • Qwen3.5-122B-A10B

 と、3つミディアムモデルがリリースされた。すべてVision対応、つまり画像解析も可能だ。

 Qwen3.5-35B-A3B、Qwen3.5-122B-A10BはMoEモデルで、アクティブパラメータ3Bと10B。同じMoEモデルで一世を風靡したgpt-oss-20bは3.6B、gpt-oss-120bが5.1Bなので、Qwen3.5の方が少し大きめといえるだろうか!?

 まず筆者の「MacBook Pro 14」(M4 Max/128GB)、DGX Spark互換機ともいえるGIGABYTEの「AI TOP ATOM」、GeForce RTX 4090/4080 SUPERなどで試したところ、速いのがQwen3.5-35B-A3B、少し遅いものの賢いのがQwen3.5-27Bといったところだろうか。もちろんQwen3.5-122B-A10Bは高性能だが、この2つと比較すると利用可能な環境が大幅に絞られる。

 しかし、筆者手持ちの環境だと“一般的”とは言えないため(笑)、先月扱ったGeForce RTX 5070 Ti(16GB)搭載の小型デスクトップ「ZOTAC MAGNUS ONE EU27507TC」の上で試してみたい。これなら多くのハイエンドゲーマーも所持しているのとほぼ同等の構成ではないだろうか。

 ただし、さすがに標準のメモリ16GBでAI関連は厳しいため、手持ちのメモリを使い、32GBに増設している。

SO-DIMM/DDR5 16GBを2枚使い、32GBへ一時的に増設(左上)

 これで準備完了!というわけで早速実験してみたい。残念ながらQwen3.5-122B-A10Bは動かないので除外している。

LM Studioで試す

 まずはZOTAC MAGNUS ONE EU27507TC(メモリ32GB)で動かしたいところだが、さすがにフル版はVRAMに乗り切らないため、モデルのファイルサイズと睨めっこしながら、以下の2つを選択した。

  • Qwen3.5-27B(Q3_K_S) / 14.1GB
  • Qwen3.5-35B-A3B(Q4_K_M) / 22.1GB

 前者は高速に動かすため、モデルをすべてVRAMに乗る必要があり、16GB未満にしなければならない。Q3は回答精度的に若干厳しく、できればQ4_K_M(S)を使いたいのだが仕方ないところ。逆に後者はVRAM容量を超えてしまうが、実際VRAMに乗るのはA3Bのいくつかなのでこのサイズでも大丈夫だ。

 以下のスクリーンショットで、LM Studioとタスクマネージャーの状態を見てほしい。お題はいつもの「OpenAIについて」。

Qwen3.5-27B(Q3_K_S)で動作中のLM Studio。ロード時の設定は、コンテキスト長100,000、GPU Offload 64、Keep Model in Memory/Try mmap() OFFといった設定で、34.67tok/s、1st token 0.2s
Qwen3.5-35B-A3B(Q4_K_M)で動作中のLM Studio。ロード時の設定は、コンテキスト長20,000、GPU Offload 30、Keep Model in Memory/Try mmap() OFFといった設定で、37.81tok/s、1st token 0.23s

 この2つで思ったほど差がつかなかったのは、Qwen3.5-35B-A3Bは全部VRAMに乗り切らず、メインメモリと併用しているため。この関係もあり、コンテキスト長を大きくするとさらにメモリを使用してしまい激遅になるため、20,000に留めている。いずれにしてもちょっとチャットしたり画像を確認したりであれば問題ないだろう。

 そうそう、画像解析の確認もしておかなければ。

Qwen3.5-27B(Q3_K_S)で動作中のLM Studio。画像解析。ロード時の設定は、コンテキスト長100,000、GPU Offload 64、Keep Model in Memory/Try mmap() OFFで34.92tok/s、1st token 1.65s
Qwen3.5-35B-A3B(Q4_K_M)で動作中のLM Studio。画像解析。ロード時の設定は、コンテキスト長20,000、GPU Offload 30、Keep Model in Memory/Try mmap() OFFで24.36tok/s、1st token 9.24s

 このケースだと、Qwen3.5-35B-A3Bのパフォーマンスが落ちる。特に1st tokenに9秒かかっているのが気になるところ。

 なお、Qwen3.5シリーズはどれもThinking時間が長過ぎる傾向がある。35B-A3Bはオン/オフのアイコンが出るものの、ほか2つはない。オフにするには、LM StudioのMy Models→モデル選択→右クリックでメニュー表示→Interface→Prompt Templateに

{%- set enable_thinking = false %}

を追加する。オフにすると精度に問題が出るものの、実際試した結果やXの関連ポストを見る限り、気にしなくても大丈夫そうだ(後述の小型モデルも同様)。

 参考までにSnapdragon X Elite搭載「ASUS Zenbook SORA(UX3407RA)」だと(つまりGPUなしCPUとメモリのみ)、Qwen3.5-27B(Q4_K_S)が3.61tok/s、Qwen3.5-35B-A3B(Q3_K_S)が16.14tok/s。どちらもコンテキスト長4,096。後者の方が圧倒的に速い。

画像生成用のプロンプトに使ってみる

 ここまでは真面目?にLLMをテストした例だが、これからはちょっとした遊びだ。

 Vision対応モデルだからできる技なのだが、まずは架空の女子アイドルの画像を1枚生成してみよう。

 ちなみにZOTAC MAGNUS ONE EU27507TCのメモリを32GBに増設したので、ComfyUIを使って、Z-Image-Base/Turbo(画像生成)、Qwen-Image-Edit-2511(画像編集)が動作するようになっているが、画像生成にGemini(Nano Banana 2)、Grok Imagineなどサービス系を使うのもありだろう。

Z-Image-Baseで作った架空アイドル。一貫性の確認をし易くするため髪型/色、メガネ、衣装などを特徴的にしている

 次にVisionを使って画像の内容を把握させる。これによって一貫性をある程度担保する。そして簡単なプロンプト+特製システムプロンプトによって、いろいろなバリエーション生成用のプロンプトを出させる、という仕掛けだ。対象はLM Studio。

 元々はSDT氏考案のシステムなのだが、筆者がそれをClaudeとともに改良?したものとなる。手順は以下の通り。

  1. リファレンスになるアイドルを生成
  2. 何も入ってないシステムプロンプトをたとえばNoneとして保存
  3. 素人が撮ったスナップショット風版はここ、プロフェッショナルが撮った風版はここにシステムプロンプトがあるので、LM Studioのシステムプロンプトへセット、Snap/Proなど名前を付けて保存
  4. Qwen3.5-27B(35B-A3Bでも良い)をセット
  5. まずシステムプロンプトをNoneとして画像をアップロード。プロンプトを“Detail”とすれば画像の詳細が表示される
  6. 次にシステムプロンプトをSnapかProへ切り替え、プロンプトをたとえば“遊園地でのワンシーン”

 これで画像生成(もしくは編集でも良い)用のプロンプトが出力される。

 このシステムプロンプト、長いので掲載は見送るが(上記リンク先参照)、仕掛け的には(Snap版)、

  1. 画風の統一 — プロ撮影ではなく、友達や本人が気軽に撮ったような「ダサくてリアルな」写真に見せるための不完全さ(ピントずれ、傾き、ノイズなど)を毎回適用する
  2. 人物の品質担保 — 顔崩れ/指の増殖/歪みなどAI特有の破綻を防ぐためのハード制約
  3. シーン管理 — 日本の日常環境10種類のロケーションプールから選ばせ、ブランドロゴや読めるテキストを排除
  4. バリエーション強制 — 毎回9つの変数から3〜5個を変えさせることで同じ絵が続かないようにする
  5. プロンプト出力 — 上記のルールに従った画像生成用の英語プロンプトを、毎回統一フォーマットで出力する

 といったような内容が書かれている。従ってプロンプトで“アイドルが遊園地で遊ぶシーン”と入れただけで、それっぽい素人が撮ったスナップ写真用プロンプトが生成されるのだ。一方、Pro版の方はプロのカメラマンが撮ったような画風となる。

Z-Image-Base/Snap版。“アイドルが遊園地で遊んでいるのを4つのシーンに分けて、それを1つの画像へ。髪型、衣装、眼鏡はオリジナルのまま変更しない”
Z-Image-Base/Pro版。“アイドルが遊園地で遊んでいるのを4つのシーンに分けて、それを1つの画像へ。髪型、衣装、眼鏡はオリジナルのまま変更しない”

 ご覧のように、同じプロンプトなのにSnap版とPro版ではテイストがかなり違うのが分かる。

 “xxxを4つのシーンに分けて、それを1つの画像へ”とすれば、(画像生成モデルの性能にもよるが)画像を4分割にして、4つのシーンが入った1枚の画像用プロンプトが生成される。

 ただ、VRAM 16GBだとLLMと画像生成は同時に動けないため、いくつかプロンプトを作り溜めておき、画像生成する際はLM StudioからモデルをアンロードしてComfyUIを起動、プロンプトにセットする。もしくはGemini(Nano Banana 2)、Grok Imagineなど、外部サービス系に都度コピペする手もある(この場合はモデルのアンロードは不要)。

Z-Image-Base/Pro版。“口紅のCM撮影を4つのシーンに分けて、それを1つの画像へ。髪型、衣装、眼鏡はオリジナルのまま変更しない“
Grok Imagine/Pro版。“口紅のCM撮影を4つのシーンに分けて、それを1つの画像へ。髪型、衣装、眼鏡はオリジナルのまま変更しない”

 この2つは生成するモデルが異なり、Z-Image-Base vs Grok Imagine。同じプロンプトでも結構画風が違うことが分かる。

 この時、普通のt2iでは、リファレンス画像の顔までは似ない。もし似せたいのであれば、リファレンス画像、画像生成とともに同じ顔LoRAを当てる必要がある。Grok Imagineなどサービス系はLoRAが使えないため似せる術はない。

 LoRAを使わずに似せる方法は、i2iのEdit系を使うことだ。リファレンス画像そのままプロンプトで指定した内容に書き変えるため、多くのケースで顔を似せることができる。

Qwen-Image-Edit-2511/Snap版。“アイドルの1日を4つのシーンに分けて、それを1つの画像へ”
Grok Imagine(編集)/Snap版。“アイドルの1日を4つのシーンに分けて、それを1つの画像へ”

 Qwen-Image-Edit-2511、Grok Imagine(編集)ともにリファレンス画像からの編集なので、顔などはそのまま保たれている。

 いかがだろうか?この方法を使えば簡単なプロンプトでこんなにもバリエーション豊富な画像を生成することができる。手で書いたら(少なくとも筆者では)不可能なレベルとなる。そしてQwen3.5のVision対応というのが、一貫性を保つのに一役買ってるのがお分かりいただけたと思う。

 余談になるが、この1つの画像に4枚のシーンが入っている画像を、Sora2やGrok Imagine(動画)のi2vにアップロード、適当なプロンプトを入れ生成すると、全部のシーンがつながった動画が1本できる。ただし、肌露出が高い(ヘソ出し程度でも)?と、検閲に引っかかるので要注意(笑)。

Gemini(Nano Banana 2)で編集。Pro版で“アイドルのライブステージを4つのシーンに分けて、それを1つの画像へ。髪型、衣装、眼鏡はオリジナルのまま変更しない”
Sora2(API)で横位置/10秒で動画へ

 今回は試していないが、動画まで視野に入れる場合、システムプロンプトへ動画用のプロンプト出力も出るようにすれば、もっと面白いのができるかもしれない……。

Qwen3.5 Smallモデル

 と、ここまで原稿を書き上げた3月2日、今度は小型モデル4つがリリースされた。

  1. Qwen3.5-0.8B
  2. Qwen3.5-2B
  3. Qwen3.5-4B
  4. Qwen3.5-9B

 1と2はスマホなども考慮した感じだろうか。9Bに関してはある意味、ミディアムモデルと競合するかも知れない。何より、驚くことにすべてがVision対応。驚異的な進化となる。

 取り急ぎ、ここまで書いたことすべてを9Bで実験したところ、そつなくこなしてしまった。速度的にはQ4_K_M(7.5GB)で96.58tok/s、0.23s(画像解析で0.84s) 1st tokenと爆速!コンテキスト長はVRAMをあふれない範囲だと50,000だった。

LM Studioでの動作。Q4_K_M(7.5GB)で96.58tok/s、0.23s(画像解析で0.84s) 1st tokenと爆速!コンテキスト長はVRAMを溢れない範囲だと50,000
チャットアプリであるOpenWebUIはComfyUIとの連携ができるので、上記の一連の作業をチャット内で完結できる(9B/Q8_0使用)。ただしLLMとComfyUIが同時に動くためVRAM 16GBでは無理。連携をComfyUIではなく、対応しているOpenAIかGeminiにすればLLMと同時に画像生成もできるはずだが、未確認だ

 また以下の表見ると(Qwenの公式投稿より)、

各種ベンチマーク結果。Qwenの公式発表資料から。下段4項目以降、gpt-oss-120bとの比較がないのはVision非対応のため

 9Bは、Qwen3のどれよりも優れており、一部gpt-oss-120bに勝っている項目もある。下剋上とはまさにこのことではないだろうか。

 0.8Bから9Bまで、いずれにしてもVRAM容量が少なくても動くモデルだ。GGUF版だとQ4_K_SもしくはQ4_K_Mがおすすめである。


 以上のように、Qwen3.5 27B/35B-A3Bは、1年ほど前に登場したgpt-oss-20bと入れ替わるべくして登場したモデルだ。VRAM容量が少ないなど環境的に厳しい場合は小型のモデルを使う手もある。この記事を見て「お!」っと思ったらいろいろ遊んで、AIの進化を体感してほしい。