Black Forest Labs、FLUX.3 Image KleinをDiffusersで初日対応

スペック

重みの公開オープンチェックポイント(蒸留版、ベース版)
配布形式・量子化bf16、fp8r(rowwise FP8)、nvfp4

メモリの目安はパラメータ数×0.6バイトの概算で、実際はコンテキスト長と実装で変わります

Black Forest Labsはオープンな画像生成モデルFLUX.3 Image Kleinを公開し、Hugging Face Diffusersはリリース初日から対応しました。蒸留チェックポイントはH100上で1024×1024画像を約2秒、16 stepsで生成します。

何が新しいか

FLUX.3 Image Kleinは、テキストから画像、複数参照画像による画像から画像、そしてプロンプト内にバウンディングボックスを書くレイアウト制御を1つのモデルで扱います。チェックポイントは蒸留版black-forest-labs/flux-3-image-klein(16 steps、CFGなし)とベース版black-forest-labs/flux-3-image-klein-base(50 steps、classifier-free guidance)の2つです。テキストエンコーダーにはQwen3-VLを使います。Qwenは Alibaba Cloudが開発するモデルファミリーです。DiffusersではModular Pipelineとして提供され、ブロックの差し替えや追加ができます。

メモリ使用量

形式(GPU) ロード後ピーク 推論後ピーク
nvfp4(RTX6000) 13.4 GiB 15.3 GiB
fp8r(H100) 14.35 GiB 16.27 GiB
bf16(H100) 18.80 GiB 20.72 GiB

fp8r(rowwise FP8)の高速カーネルはCompute capability 8.9以上(Ada、Hopper、Blackwell)で動きます。nvfp4はBlackwellで、flashinfer-pythonとflashinfer-cubinを同じバージョンで揃える必要があります。それ以外のGPUでは各ステップで重みを逆量子化するため、メモリは減りますが高速化はしません。原文は、メモリが少ない場合の対策として量子化transformerのロードと、テキストエンコーダーを別に実行して解放する方法を挙げています。

試し方

インストールはpip install -U diffusers transformersです。蒸留版は次のように動かします。

import torch
from diffusers import ModularPipeline
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")
pipe(prompt="a red fox", output="images")[0].save("fox.png")
  • height、width、num_inference_stepsでサイズとステップ数を変更できます。
  • 画像から画像ではimage引数に参照画像を渡します。複数枚はimage=[red_fox, bench]のように渡し、プロンプト内で渡した順に参照します。
  • レイアウト制御では、キャプションの後にid・bbox・descを持つJSONリストを追加します。bboxは[y_min, x_min, y_max, x_max]の順で0〜1000に正規化するため、画像サイズに依存しません。
  • 参照画像内の領域移動では各領域にfrom・src_bbox・tgt_bbox・descを指定し、両boxが同じ領域は動きません。
  • ベース版ではpipe.guider = pipe.guider.new(guidance_scale=5.0)でCFGを設定できます。
  • 単一ファイルのbf16・fp8r・nvfp4はFlux3Transformer2DModel.from_single_fileにBFLQuantizationConfigを渡してロードし、pipe.update_components(transformer=transformer)で差し込みます。

LoRA学習

LoRA学習はベースチェックポイントを対象にします。Diffusersはテキストから画像用のtrain_dreambooth_lora_flux3_klein.pyと、(参照画像、目標画像、指示)の3つ組で学習する画像編集用のtrain_dreambooth_lora_flux3_klein_img2img.pyを提供します。原文の例はタロットカード風スタイルを--rank=16、--resolution=1024、--max_train_steps=1500で学習しており、省メモリ用に--gradient_checkpointing、--cache_latents、--use_8bit_adamを追加できます。Ostris' AI Toolkitでも学習できます。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内