技術 約3分で読めます

FLUX.2 Klein — 9Bパラメータの軽量画像生成モデルとApple Silicon対応状況

FLUX.2 Kleinとは

Black Forest Labs(Stable Diffusionの開発メンバーが設立した会社)が公開した画像生成モデル。FLUXシリーズの新ライン。

基本スペック

項目内容
パラメータ数90億(9B)
アーキテクチャRectified Flow Transformer
VRAM要件約29GB
推論速度RTX 4090で1秒以下
ライセンス非商用(FLUX Non-Commercial License)

FLUXシリーズの位置づけ

モデルパラメータ特徴
FLUX.1 [pro/dev]12Bフラッグシップ
FLUX.1 [schnell]12B(蒸留)高速だが多様性低い
FLUX.2 [klein]9B軽量かつ蒸留なし
FLUX.2 [klein] 4B4Bさらに軽量

kleinは「蒸留なしで軽量」がポイント。schnellは蒸留で高速化したが出力の多様性が犠牲になっている。kleinは蒸留せずにパラメータ数を減らすことで、多様性を維持しつつ軽量化している。


Apple Siliconで動くか

結論: 動くが、実用的ではない

M1 Max(64GB統合メモリ)で試した場合の想定:

項目状況
メモリ64GBあれば29GB要件はクリア
MPS対応diffusersのMPS対応は不安定
FP8量子化非対応
推定速度1024×1024で3〜5分

RTX 4090なら12秒で終わる処理に3分以上かかる。

生成時間の比較

チップ1024×1024生成時間
RTX 409012〜18秒
M4 Max85秒
M3 Max105秒
M2 Max145秒
M1 Max推定180〜240秒

なぜこんなに差が出るのか

RTX 4090のVRAMは24GBで、モデル要件の29GBより少ない。それでもM1 Max(64GB)より圧倒的に速い。VRAMサイズは「足りていればOK」であって、速度には直接関係しない。

1. メモリ帯域幅(最大の要因)

GPU/チップメモリ帯域幅
RTX 40901,008 GB/s
M4 Max546 GB/s
M1 Max400 GB/s

Transformerの推論はメモリ帯域律速。重みを読み出す速度がボトルネックになる。RTX 4090はM1 Maxの2.5倍の帯域幅があるため、単純にその分速い。

2. FP8量子化のサポート

形式CUDAMPS
FP16
BF16
FP8

FP8量子化を使えばVRAM使用量が半減し、帯域幅の効率も上がる。MPSはFP8に対応していないため、この恩恵を受けられない。

3. VRAMオーバー時の処理効率

RTX 4090(24GB)で29GBモデルを動かす場合:

pipe.enable_model_cpu_offload()  # 使わないレイヤーをRAMに退避
  • CUDA: GPU↔CPU間転送がPCIe 4.0 x16(32GB/s)で高速
  • MPS: 統合メモリだがMetal APIのオーバーヘッドが大きい

4. CUDAカーネルの最適化

NVIDIAは10年以上かけてTransformer向けカーネルを最適化してきた。Flash Attention、cuBLAS、TensorRTなどが効く。

MPSは比較的新しいAPIで、最適化が追いついていない。


Apple Siliconで使うなら

選択肢1: mflux(MLX実装)

Apple Silicon向けに最適化されたMLXベースの実装。

選択肢2: flux2.c(純C実装)

antirez(Redis作者)による純C実装。4B版向け。

  • リポジトリ: antirez/flux2.c
  • make mps でMPSアクセラレーション有効化

選択肢3: 別のモデルを使う

9Bモデルにこだわらないなら:

  • FLUX.2 Klein 4B: 半分のサイズ
  • Z-Image: 6Bで軽量、Apache 2.0ライセンス、比較記事も書いた

選択肢4: クラウドGPU

RunPod、Vast.ai、Lambda LabsなどでRTX 4090を時間課金で使う。本気で使うならこれが現実的。


関連記事