11月7日、NVIDIAが「Speed Up Image Generation with FLUX 3 Image Klein on NVIDIA Blackwell GPUs」と題した記事を公開した。単一のNVIDIA B200 GPU上で、BF16ベースライン比最大4.45倍の高速化を達成したという実測結果が核心だ。驚くべきことに、推論時間の96.8%がデノイジング処理に費やされており、最適化の矛先はほぼ一点に絞られる。量子化・カーネル最適化・スパースアテンション・キャッシュ再利用という4つの手法を積み重ねることで、Baseモデルの生成時間を22秒から6秒台へ圧縮した過程を詳述している。
対象モデル:FLUX 3 Image Kleinとは
FLUX 3 Image Kleinは、Black Forest Labs(BFL)が開発した最新世代の画像生成・編集モデルだ。同社はFLUX.1シリーズで知られており、FLUX 3はその後継にあたる。NVIDIA GB200 NVL72でトレーニングされ、NVIDIA GPU向けに最適化されている点が特徴だ。テキスト条件付けにQwen3-VL-4B-Instruct、画像の潜在変数の精製に拡散トランスフォーマー(DiT)、エンコード/デコードにオートエンコーダを組み合わせた構成をとる。
なお、今回の記事では「Baseモデル(50ステップ)」と「distilled Kleinモデル」の2種類が登場する。distilledモデルは知識蒸留によってステップ数を大幅に削減した軽量版であり、もともとの推論時間が短いぶん、一部の最適化手法の恩恵が小さくなる点に注意が必要だ。
ボトルネックはデノイジング——最初に潰すべき箇所
まず押さえておくべき事実がある。2048×2048のBase(50ステップ)でのパイプライン内訳を見ると:
| フェーズ | 時間 | 全体比 |
|---|---|---|
| テキスト処理・準備 | 47 ms | 0.3% |
| デノイジング | 14.24 s | 96.8% |
| デコード・後処理 | 416 ms | 2.8% |
| 合計 | 14.70 s | — |
デノイジングが全体の**96.8%**を占める。最適化の標的はDiTに集中すべきであることが数字で示されている。
4つの最適化手法
① NVFP4量子化(ベースライン比1.62倍)
BFLが提供するNVFP4の事前量子化済みチェックポイントをそのまま使える。BF16と比べてT2Iで1.62倍、I2Iで1.58倍高速化される。設定はYAMLで1行:
pipeline_config:
variant: nvfp4
② GEMMカーネル最適化(1.02〜1.10倍)
FlashInferのPrimsTS FP8/NVFP4 GEMMカーネルを使用。CUTLASSのPrimitivesとTask Schedulingで構築されており、SwiGLUとのGEMM融合やQKV投影へのRoPE(回転位置埋め込み)融合が含まれる。デフォルトで有効。
③ アテンション最適化——ここが最も効く
アテンションはDiT GPU処理時間の約60%を占める最大のボトルネックだ。VisualGenは3つのアプローチを提供する:
cuDNN FP8アテンション:ベースラインのVANILLA BF16比でBase 1.08倍、distilled Klein 1.09倍の高速化。品質差異を示すLPIPSスコアはそれぞれ0.072・0.161。
attention_config:
backend: CUDNN
quant_attention_config:
qk_dtype: fp8
v_dtype: fp8
VC-Attention FP8:Base 1.18倍、distilled Klein 1.16倍。LPIPSは0.086・0.151。量子化誤差が大きいトークンを残差補正するvc_repair_budget(ρ=0.005を推奨)が精度維持のポイント:
attention_config:
backend: TRTLLM
quant_attention_config:
qk_dtype: fp8
v_dtype: fp8
vc_attention: true
vc_repair_budget: 0.005
Sol-Attention(スパースアテンション):スパース性パラメータτによって、各デノイジングステップで計算するアテンション量を制御する。τの値が大きいほどスパース性が高まり(より多くのアテンション計算をスキップ)、高速化率が上がる一方で品質とのトレードオフが生じる。τ=1.0・16ステップ初期dense設定でデノイジング+デコード全体で1.24倍、12ステップなら1.30倍。精度優先なら16ステップ、速度優先なら12ステップが推奨されている:
attention_config:
backend: TRTLLM
sparse_attention_config:
algorithm: sol_attn
tau: 1.0
disabled_until_timestep: 0.96
④ Cache-DiT——Baseモデルでほぼ半減
最も劇的な効果を示す最適化がこれだ。 Cache-DiTはデノイジングステップ間でトランスフォーマーの中間出力を再利用する手法で、モデルの再学習や重みの変更は不要。残差差分の閾値(residual_diff_threshold)で速度と品質のトレードオフを調整できる。
閾値0.24の設定で:
- 2048×2048 Base T2I:1.94倍高速化(LPIPS未報告)
- 1024×1024 Base T2I:1.97倍高速化(LPIPS 0.038)
- distilled Kleinでは1.20〜1.26倍(効果は小さい)
Baseモデルは50ステップとステップ数が多いため、隣接ステップ間でキャッシュを再利用できる機会が多く、Cache-DiTの恩恵が大きい。一方、蒸留によってステップ数を大幅に削減したdistilledモデルは、そもそも再利用できるステップ数が少ないため、効果が限定的になる。
cache_config:
cache_backend: cache_dit
Fn_compute_blocks: 1
Bn_compute_blocks: 0
max_warmup_steps: 4
max_continuous_cached_steps: 3
residual_diff_threshold: 0.24
マルチGPU構成
8GPU(DGX B200)構成では、Base T2IのレイテンシをシングルGPUの14.90秒から3.00秒に、distilledを2.73秒から1.08秒に削減できる。デノイジング単体での高速化はBaseで6.01倍、distilledで4.44倍に達する。
ただし、distilledモデルでは8GPUでも全生成時間の約半分がデノイジング外に残るため、エンドツーエンドの改善は限定的だ。並列化手法として採用されているのは、Ulyssesシーケンス並列(シーケンス長方向にテンソルを分割して複数GPUに分散する手法)のみで、かつCFG(Classifier-Free Guidance)なし構成に限られる。CFGはテキスト条件あり・なしの2つの推論パスを並走させることで生成品質を高める手法だが、distilled Kleinはそもそもこの2パス構造をとらないため、シーケンス並列だけではスケールアウトの恩恵を十分に受けられないという構造的な限界が露呈している。
累積効果の全体像
単一B200上で全最適化を積み重ねた結果:
- Base T2I:22.36秒 → 6.46秒(3.46倍)
- Base I2I:54.64秒 → 12.28秒(4.45倍)
- distilled Klein:最大2.34倍
NVIDIA RTX PRO 6000 Blackwell Server Edition GPUでも、コンパイル・NVFP4・Cache-DiTの組み合わせで1.73〜3.25倍の高速化が確認されている。
実際に試すには、feat/flux3-image-kleinブランチのデプロイメントガイドと、以下のコンテナイメージを使用する:
docker run --rm -it --ipc=host --gpus all -p 8000:8000 \
--name tensorrt_llm \
-e TLLM_FMHA_LIBS=+prims_ts \
-e HF_TOKEN=<your_hf_token> \
-v ~/.cache:/root/.cache:rw \
nvcr.io/nvidia/tensorrt-llm/release:feat-flux3-image-klein-1.4.0a0.dev202610280436
TLLM_FMHA_LIBS=+prims_tsの環境変数はVC-Attentionに必要なPrimsTS注意カーネルを有効にするため、忘れずに設定すること。
詳細はSpeed Up Image Generation with FLUX 3 Image Klein on NVIDIA Blackwell GPUsを参照していただきたい。




