FLUX 3 Image Klein:参照画像、レイアウト、ローカル編集の実践ガイド
最初の画像から意図を反映した編集まで、FLUX 3 Image Kleinを解説。ブラウザーとAPIの利用法、バウンディングボックス、WindowsとMacの選択肢、GPUメモリ、ライセンス、トラブルシューティングを扱います。
商品写真は使えるのに、次の用途にはレイアウトが合わない。被写体を左に寄せ、背景を変え、右側には見出し用の余白を残したい。画像生成を最初からやり直すのは簡単です。実際に使える修正版を得るのは、もっと難しいことです。
FLUX 3 Image Kleinは、テキストからの画像生成、画像編集、複数の参照画像を1つのモデルファミリーで扱います。Black Forest Labsは2026年10月15日に公開しました。注目点は、また美しい作例が増えたことではありません。画像に何が写っているかだけでなく、各要素をどこに置くかも指定できる点です。BFLの発表
このガイドでは、最初の小さな実験から、繰り返し使える編集ワークフローまで進みます。まずツールを理解するならブラウザー、アプリに組み込むならAPI、ファイル管理や反復利用の制御にセットアップの手間が見合うならローカル実行を選びましょう。選択のために拡散モデルの数学を理解する必要はありません。
役立つ最初の画像まで、最短の経路を選ぶ
| 目的 | 最初に試すもの | 追加で確認すること |
|---|---|---|
| プロンプトや参照画像を試す | 公式Hugging Face SpaceまたはBFL Playground | アクセス、現在の利用枠、画像をアップロードしてよいか |
| アプリに生成機能を追加する | BFL API | API認証情報、課金、再試行、結果の取り扱い |
| 自分のマシン内で推論する | 互換性のあるComfyUI、Diffusers、参照実装 | ランタイム全体のメモリ、対応GPU、モデルへのアクセス、ライセンス |
| 学習でビジュアルスタイルを適応させる | ベースチェックポイントと対応LoRA手順 | データセットの権利、学習リソース、再配布条件 |
これらは関連する重みを使う別々の製品であり、同じボタンではありません。モデルは学習済みの重み、ランタイムはそれを実行するものです。ComfyUIはワークフローのインターフェース、DiffusersはPythonコンポーネント、ホスト型APIは運用込みのサービスを提供します。あるインターフェースで見た機能に、別のインターフェースにはない処理が含まれている場合があります。
最初は公式SpaceまたはBFL Playgroundを開いてください。生成する前に、アカウントや課金の確認事項を読みます。ブラウザーを使うこの方法はWindows、macOS、Linuxで同じで、リモートサービスを使う限りローカルGPUは不要です。
自分が所有し、そのサービスに送って問題のない画像を使います。顧客の未公開商品より、自分のマグカップの写真のほうが学習用の入力に適しています。次の演習では、小さく具体的なタスクと結果の評価方法を用意します。
参照画像を10枚組み合わせる前に、変更を1つだけ加える
- 元画像を未変更のまま保存し、寸法を記録します。
- 編集方法を選び、画像を1枚だけ添付します。
- 何を残したいかも含め、完成シーン全体を説明します。
- 背景の変更など、変更を1つ依頼します。被写体、スタイル、構図を一度に変えないでください。
- 出力を元画像と原寸で比較します。サムネイルだけでなく、形、文字、輪郭、照明を確認します。
- 指示と結果を一緒に保管します。次の試行では変数を1つだけ変えます。
たとえば、次の情景説明から始めます。
A catalog photograph of the same plain ceramic mug from the reference image,
with its handle and proportions preserved, on a matte pale-green surface.
Soft light comes from the left. The mug sits in the left third of a wide
composition, leaving clear space on the right for text added later.
受け入れ条件は自分で決めます。取っ手が変わっておらず、マグのシルエットが使える状態で、空けるはずの領域に本当に何もないこと。ロゴを正確に保つ必要がある場合は、もっともらしく再現できたように見えても、必ず元画像と比較してください。綴りやブランドの形状が厳密に決まっているなら、最後の文字入れは通常のデザインツールで行います。
公式モデルカードでは、参照画像を最大10枚使えると説明されています。これは上限であり、毎回10枚使うべきだという意味ではありません。カメラ角度の食い違う参照画像を2枚渡すと、きれいな画像1枚より曖昧さが増す場合があります。各画像に、被写体、素材、構図、スタイルなど明確な役割を与えましょう。
レイアウトボックスは構図を誘導するもので、ピクセル固定ではない
FLUX 3は、正規化座標を使った領域指定に対応しています。「物を左に置いて」と言うだけでなく、ボックスと、その中に置く要素の説明を指定できます。座標範囲は0から1000なので、最終画像が幅1024でも2048でも、レイアウト説明を直接変える必要はありません。BFLのバウンディングボックスガイド
オリジナルの解説図。ボックスは要求する配置を表すもので、生成結果を観察したものでも、厳密な画像マスクでもありません。
以下は生成用の説明文の一例です。新しい構図を記述しており、参照画像の編集ではありません。ターミナルではなく、プロンプトに入れます。
A clean studio composition with a ceramic mug <mug_1> on the left.
[{"id":"mug_1","bbox":[200,80,850,480],"desc":"A plain ceramic mug with a visible handle"}]
順序は上、左、下、右です。この例ではボックスがキャンバスの上から20%、左から8%の位置に始まり、上から85%、左から48%の位置で終わります。実際のデザインでは、まず目標配置をスケッチしてから座標に置き換えます。横と縦の値を入れ替えると、意図の分かりにくい結果になりがちです。
編集では、移動先だけでなく元画像も特定します。次のAPI本文例は、中央のソースボックスにあるマグを左側のターゲットボックスへ移動します。例の画像URLは、自分が所有するアクセス可能な画像に置き換えてください。プレースホルダーのまま送ってはいけません。最初の参照画像はref_image_0です。
{
"images": ["https://example.com/your-own-mug.png"],
"output_format": "png",
"prompt": "In <ref_image_0>, move the mug <mug_1> to the left. Preserve the mug's handle and the plain background. [{\"id\":\"mug_1\",\"from\":\"ref_image_0\",\"src_bbox\":[200,300,850,700],\"tgt_bbox\":[200,80,850,480],\"desc\":\"The same plain ceramic mug with its handle visible\"}]"
}
ここではfromが参照画像を、src_bboxが元の領域を、tgt_bboxが希望する移動先を示します。要素を残す計画をより細かく指定するなら、別要素の行も追加します。ローカル参照CLIが別ファイルboxes.jsonで使う座標は0から1です。API用の0から1000の値を、そのファイルに貼り付けないでください。ホスト型編集の構文、ローカルのボックス形式
ボックスの外側がすべて変わらない保証として扱わないでください。生のチェックポイントのドキュメントでは、編集が別領域に影響する場合や、要素がボックスからはみ出す場合があると警告しています。BFLのホスト型編集経路にはピクセル復元処理も含まれますが、このサービス機能をあらゆるローカル処理にも備わるものとして説明してはいけません。利用中の実装を確認してください。チェックポイントの制限
印刷物や顧客案件では、編集ツール上で新旧画像を重ねて比較します。物の移動に成功してもパッケージの文字が変わっていたら、構図のタスクは成功し、素材を保持するタスクは失敗です。判断を分けると、修正を重ねる作業のストレスが大きく減ります。
APIリクエストはジョブの開始であり、完成ファイルではない
開発者は、ドキュメントに記載されたエンドポイントへ画像生成リクエストを送信できます。macOSまたはLinuxのターミナルでは、環境変数BFL_API_KEYに秘密情報を設定し、次の短い例を使います。サービス料金がかかる場合があります。キーを公開リポジトリやブラウザーバンドルに置かないでください。
curl --fail-with-body --request POST \
--url https://api.bfl.ai/v1/flux-3-image-klein \
--header "x-key: $BFL_API_KEY" \
--header "Content-Type: application/json" \
--data '{"prompt":"A simple studio photograph of a plain ceramic mug on a pale green surface","aspect_ratio":"16:9","output_format":"png"}' \
--output bfl-job.json
Windows PowerShellでは、同じエンドポイントをネイティブのJSONシリアライズで呼び出します。
$body = @{
prompt = "A simple studio photograph of a plain ceramic mug on a pale green surface"
aspect_ratio = "16:9"
output_format = "png"
} | ConvertTo-Json
$job = Invoke-RestMethod -Method Post `
-Uri "https://api.bfl.ai/v1/flux-3-image-klein" `
-Headers @{ "x-key" = $env:BFL_API_KEY } `
-ContentType "application/json" -Body $body
$job | ConvertTo-Json -Depth 10 | Set-Content -Encoding utf8 bfl-job.json
上の方法からどちらか1つを選びます。どちらも受付済みジョブをbfl-job.jsonに保存しますが、結果はダウンロードしません。次の標準ライブラリーだけを使うPythonスクリプトをpoll_result.pyとして同じフォルダーに保存します。実行プロセスからBFL_API_KEYを参照できるようにして、Windowsではpython poll_result.py、macOS/Linuxではpython3 poll_result.pyを実行します。既存ジョブの状態を確認し、別の生成を送信せずにresult.pngを保存します。
import json
import os
from pathlib import Path
import time
from urllib.parse import urlparse
from urllib.request import Request, urlopen
job = json.loads(Path("bfl-job.json").read_text(encoding="utf-8-sig"))
polling_url = job["polling_url"]
parsed = urlparse(polling_url)
if parsed.scheme != "https" or not (parsed.hostname or "").endswith(".bfl.ai"):
raise ValueError("Unexpected polling host; inspect the saved job")
headers = {"x-key": os.environ["BFL_API_KEY"]}
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
with urlopen(Request(polling_url, headers=headers), timeout=60) as reply:
result = json.load(reply)
status = result["status"]
print(job["id"], status)
if status == "Ready":
sample = result["result"]["sample"]
if urlparse(sample).scheme != "https":
raise ValueError("Unexpected result URL")
with urlopen(sample, timeout=120) as image:
Path("result.png").write_bytes(image.read())
print("Saved result.png; inspect it before accepting the asset")
break
if status not in {"Pending", "Reasoning", "Generating"}:
raise RuntimeError(f"Job stopped: {status}; keep bfl-job.json")
time.sleep(1.5)
else:
raise TimeoutError("Keep bfl-job.json and resume polling this job later")
結果APIでは、実行中、準備完了、モデレーション、不具合の状態を区別しています。このスクリプトがネットワーク例外で中断したら、ジョブファイルを残し、ポーリング側を再実行します。送信コマンドを再実行してはいけません。送信応答が不確かな場合は、再試行する前に内容を確認します。応答を受け取れなかったからといって、有料ジョブが拒否された証拠にはなりません。リクエストのスキーマ
実用的なアプリケーションでは、元アセット、生成ジョブ、採用した出力の3つを記録します。修正版を却下しても、元画像に戻れるようにします。中間工程を隠して正体不明のJPEGを作るだけのボタンより、こちらの設計のほうが価値があります。
ローカル導入ではメモリ全体の予算から考える
Kleinの5.6Bという表記が指すのは画像Transformerであり、ワークフローに必要なすべてのコンポーネントではありません。テキストエンコーダー、画像オートエンコーダー、プロンプトアップサンプラー、活性値、参照画像のトークンもリソースを使います。参照CLI、デモ、Python APIではアップサンプラーが既定で有効です。すでにアップサンプラー向けに整えたキャプションを用意するのでなければ、有効のままにするようBFLは明示しています。したがって、重みファイルのサイズだけではVRAM総量を見積もれません。大規模なローカル言語モデルを評価するときも、同じ違いが重要です。参照実装
BFLは、8GBカード向けINT8構成など、一般向けGPUで最適化した経路を掲げています。一方、参照コードのモデルカードでは別構成でかなり大きなピーク値が報告されています。これらは別々の手順に関する記述であり、すべてのインターフェース、解像度、参照枚数に共通する最低要件ではありません。メモリ値とともに、ランタイム、精度、画像サイズ、オフロード方式を記録してください。公開時のハードウェア例、参照コードのハードウェア詳細
オリジナルのリソース確認図であり、ベンチマークではありません。各要素のサイズとランタイムのピーク値は、手順によって異なります。
対応NVIDIA GPUを使うWindowsでは、現行のComfyUI連携またはBFLが推奨するランタイムから始めます。名前が似ているからといってFLUX 2用テンプレートを読み込まず、FLUX 3用の正確なワークフローを確認してください。モデルをダウンロードできても、カスタムノード、量子化カーネル、テキストエンコーダーの互換性が証明されたわけではありません。
Linuxでは、参照リポジトリとDiffusers連携ガイドに開発者向けの選択肢があります。以下の参照実装のインストールは、ドキュメントにあるCUDA 13手順であり、公開元はB200でテストしています。8GBカード向け手順ではありません。Windowsでは、これらのBashコマンドを使うために互換性のあるLinux/WSL環境が必要です。先にドライバー互換性とメモリ総量を確認してください。
- GitとPython 3.12をインストールし、分離環境を準備します。
git clone https://github.com/black-forest-labs/flux-3-image-klein.git
cd flux-3-image-klein
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -e . --extra-index-url https://download.pytorch.org/whl/cu130
- 自分のHugging Faceアカウントでチェックポイントの規約に同意し、
hf auth loginで認証して、記載されたdistilledバンドルをダウンロードします。参照READMEではモデル、アップサンプラー、安全性分類器に、ディスク上で約52GBを見積もっています。ディスク容量はVRAMではありません。
hf download black-forest-labs/flux-3-image-klein --local-dir weights/flux-3-image-klein --exclude 'variants/*'
hf download black-forest-labs/flux-3-image-klein-pup --local-dir weights/pup
hf download Falconsai/nsfw_image_detection --local-dir weights/nsfw-classifier
- プロンプトアップサンプリングを有効のまま生成を1回実行し、
out.pngと一緒に出力される設定JSONも確認します。
python scripts/cli.py "A plain ceramic mug on a pale green studio surface" --model distilled --out out.png --seed 7
- マシン上で動くブラウザーインターフェースを使う場合は、
python scripts/app.pyを起動し、http://127.0.0.1:7860を開いてEditを選びます。自分の元画像を添付し、変更を1つ入力してください。ボックスを描くための別タブはLayoutです。アプリはループバック接続だけで使い、機密素材で公開共有オプションを有効にしないでください。参照セットアップとデモ
最初の基準動作を確認してから、量子化やCPUオフロードを追加します。8GB GPUの場合は、参照コード全体のメモリ前提ではなく、別途提供されるComfyUI用ファイルと手順に従います。
MacではブラウザーとAPIが引き続き手軽な選択肢です。CUDAのインストールコマンドやNVIDIAの速度値をApple Siliconの性能として当てはめないでください。ローカル実行には、互換性のあるMetal/MPS実装と、全コンポーネントを動かせるユニファイドメモリが必要です。一般的なライブラリー例にmpsが登場しても、あらゆる量子化経路が動く証拠にはなりません。Intel MacはApple Siliconとは別のハードウェアです。
曖昧さを減らせるなら、長めのプロンプトにも意味がある
参照実装は、短い指示を画像生成前に詳細なシーン説明へ拡張します。このプロンプトアップサンプリングは独立した言語モデル処理で、参照CLI、デモ、Python APIでは既定で有効です。現行の参照READMEは、リクエストごとにアップサンプリングを実行するDiffusersパイプラインにもリンクしています。短い未展開プロンプトを同等の動作として扱わず、この処理を維持してください。プロンプト準備
アップサンプラーと画像モデルが同時にメモリへ収まらない場合、参照手順では先にアップサンプリングし、準備済みキャプションを生成に渡せます。公開されているシステムプロンプトを用い、外部の視覚言語モデルでキャプションを準備する方法もあります。--no-pupを指定してよいのは、その準備済みキャプションだけです。展開していない1行の依頼に対する、無料のメモリ節約フラグではありません。アップサンプリングとホスト型のピクセル復元は別機能です。一方を使っても、別のランタイムにもう一方が含まれるとは限りません。
専門的な記法を足す前に、被写体、背景、照明、意図する変更を普通の言葉で書きます。「プロらしくして」ではほとんど何も決まりません。「マグと取っ手は残し、背景は無地にして、右側3分の1を空ける」なら、相反する指示を減らせます。形容詞を増やすほど指示が良くなるわけではありません。
2つ目の用途として、記事用のイラストを一連で作れます。配色と被写体の説明を固定し、横長ヘッダーと正方形のSNS画像で構図だけ変えます。形式が変わっても物が一貫しているか確認してください。1つの縦横比で成功したからといって、別の比率でも完全に再現されるとは限りません。
3つ目は、パッケージのモックアップを社内で比較する用途です。架空のラベルか、使用が承認された素材を用い、出力にはコンセプトであることを明記します。魅力的なレンダリングでも、製造可能性、正確な色再現、写真に写る人物の肖像を使う許可が示されるわけではありません。生成後も製品デザインのレビューは必要です。
1回の成功リクエストではなく、完成アセットの費用を考える
公開発表では、API料金は画像1,000枚あたりUS$0.009からとされています(10月15日時点)。この開始単価が、すべての解像度やワークフローに適用されるわけではありません。キャンペーン費用を見積もる前に、最新のBFL料金、アカウントへの請求、リクエスト規則を確認してください。
予算を立てるときは、採用できるアセット1点を得るまでの試行回数を数えます。ある作業に修正が5回必要なら、該当する単位は5回分の試行とレビュー、仕上げの時間です。ローカル実行ではサービス料金の一部がハードウェア、電力、ストレージ、保守に置き換わります。出力確認のコストが消えるわけではありません。
オープンウェイトだからといって、商用利用の権利に制限がないわけではありません。FLUX Kommunity Licenseでは、非商用利用、条件を満たす商用の出力生成、その他の商用活動を区別しています。収益基準、関連会社、モデルの再配布、学習用途はそれぞれ確認が必要です。入力写真、商標、人物に関する権利は、モデルライセンスとは別です。
編集が失敗したら、問題の範囲を絞る
| 症状 | 最初に確認すること | 次に試すこと |
|---|---|---|
| 構図が指示どおりにならない | 座標の順序と、互いに矛盾する情景説明 | 参照画像を1枚、領域を1つに減らす |
| 画像の別部分も変わる | 生モデルの挙動か、ホスト型の保持機能か | 重ね合わせて比較し、必要ならマスク対応の仕上げツールを使う |
| ローカル実行でメモリ不足になる | 読み込んだ全コンポーネント、解像度、参照枚数 | ランタイムで公開された低メモリ手順に戻す |
| 文字が自然に見えるのに誤っている | サムネイルではなく原寸の文字 | 通常の編集ツールで正確な文字を配置する |
| API応答が画像ファイルをまだ返さない | ジョブ状態と結果のポーリング | すぐ再送せず、既存ジョブの状態を追う |
2つ目のプロジェクトに進む前に確認したいこと
FLUX 3 Image KleinはPhotoshopの代わりになりますか?
これは複数の実行方法がある生成・編集モデルであり、レイヤーを使う制作アプリケーション全体ではありません。アセットの作成や修正には役立ちますが、選択ツール、精密な文字組み、色管理、バージョン管理、納品作業は引き続き編集ツールで行う場合があります。
韓国語の文字を入力して、正確な字形を期待できますか?
納品時のサイズで実際の文字をテストしてください。モデルカードは、描画される文字が不正確になったり、歪んだりする可能性を警告しています。英語のデモで読める文字が出ても、韓国語の組版が信頼できる証明にはなりません。可能なら正確なコピーは編集可能なテキストとして保持します。
ローカル推論ならワークフローのすべてがオフラインですか?
意図的にそう構成した場合に限ります。初回ダウンロード、リモートでのプロンプト拡張、外部ノード、テレメトリーがネットワーク通信を発生させる場合があります。画像Transformerの実行場所だけでなく、ワークフロー全体を調べてください。
初心者はどのチェックポイントを選ぶべきですか?
まず、ドキュメントにあるdistilled生成経路を使います。ベースチェックポイントは適応や研究向けです。正常に動くタスクを作ってから、同じ入力で代替を比較し、モデル、プロンプト、解像度を一度に変えないようにします。
信頼できる修正を作れることが、本当の進歩
私たちは、画像AIは驚きの画像を大量に作るだけでなく、修正をより細かく制御できるときに実用性が高まると考えます。FLUX 3 Image Kleinでは、参照画像、レイアウト、複数のデプロイ経路によって、その制御が日々の作業に近づきます。元画像、依頼した変更、受け入れ条件を見える形にする作業は、引き続き必要です。
画像1枚と、意図した編集1つから始めましょう。変更点が分からず戸惑う高速モデルより、承認済みアセットを安定して作れるワークフローのほうが、優れた成果です。
出典とメディア
2026年10月18日確認。製品機能と性能値はリンク先の公開元に基づき、このガイドでローカルベンチマークや有料生成を行ったとは主張していません。3つの図はオリジナルの解説図です。BFLの公式出力ギャラリーと公式インタラクティブデモで作例を確認できます。第三者の画像はここには転載していません。
実験を再利用できる形で残す
完成画像だけを保存するのではなく、元資料のリンク、プロンプト、設定、レビュー記録を一緒に保管しましょう。Telli.shは調査メモの整理に役立ちますが、画像生成連携ではありません。Telli.shアカウントを作成