まずは
flux-2-pro で始めてください。Black Forest Labsは、最も精度の高い編集には flux-2-max、文字の描画や細部など細かな制御には flux-2-flex を勧めています。3つのモデルは同じリクエストを受け付けます。
始める前に
1
APIキーを作成する
FLUX.2のモデルは回数課金です。トークン管理でキーを作成(または既存のキーを編集)し、課金方式(计费模式)を従量優先(按量优先、推奨)または回数課金(按次计费)にします。従量優先のキーは回数課金と従量課金の両方のモデルを呼び出せますが、回数課金のキーが呼び出せるのは回数課金のモデルだけです。キーはサーバー側の環境変数に保存してください。

2
環境を準備する
キーを環境変数に設定し、Pythonの例で使う
requests をインストールします。3
ダウンロード用のスクリプトを保存する
次のスクリプトを
save_images.py として保存します。cURLの例では、レスポンスのファイルに対してこのスクリプトを実行し、すべての画像をダウンロードします。FLUXが返すのはURLだけですが、ほかの画像モデルが返す b64_json のデコードにも対応しています。save_images.py
画像を編集する
生成のリクエストにinput_image を追加すると、編集のリクエストになります。URLは公開アクセスできる画像に置き換えてください。
保存しました: flux-edit-1.png と表示されます。参照画像のURLはリクエストの処理中に取得されるため、ログイン、Cookie、ボット対策なしで読み込める必要があります。
ローカルファイルを編集する
手元のファイルを編集するときは、ファイルに合ったMIMEタイプのデータURLとして送ります。PNGならdata:image/png;base64,... です。ヒアドキュメントでボディを渡すと、大きな画像をコマンドラインに載せずに済みます。
参照画像を合成する
参照画像を増やすときはinput_image_2 〜 input_image_8 を追加し、プロンプトではフィールドの順に「画像1」「画像2」のように指定します。カレントディレクトリにある3つのPNGファイルを読み込む例です。
Pythonで編集する
次のスクリプトは1〜8枚の参照画像を受け取り、ローカルファイルはデータURLに変換し、公開URLはそのまま渡して、リクエストが返ったらすぐ結果を保存します。パラメーター
出力サイズは、
size か、width と height のどちらか一方で指定します。よく使う size の値は、FLUX.2の生成の「出力サイズ」に一覧があります。
レスポンスを処理する
レスポンスは、画像1枚をdata[0].url で返します。FLUXは b64_json を返さないため、response_format は送らないでください。リンクは画像の生成から10分で失効するので、特にバッチ処理では、リクエストが返ったらすぐにダウンロードしてください。
output_format を png にしない限り、画像はJPEGです。
プロンプトのコツ
- 各画像は、フィールドの順に「画像1」「画像2」「画像3」のように呼びます。
- ロゴ、顔、商品の色など、各参照画像から残すべき要素を明記します。
- 出力を1枚のまとまった画像にするよう指示します。
- コラージュ、画面分割、枠線、ラベルなど、避けたいものを書きます。
エラーと課金
- HTTP 400:フィールド名、参照画像の枚数、出力サイズを確認します。
- フィールド名:
input_image、続いてinput_image_2以降 - 参照画像の枚数:最大8枚
- 出力サイズ:16の倍数、64ピクセル以上、約4MPまで。
size、またはwidthとheightで指定
- フィールド名:
- 参照画像を読み込めない:URLは公開されている必要があります。公開できない場合は、ファイルをデータURLとして送ります。
- 結果のリンクが使えない:生成から10分が過ぎて失効しています。リクエストを再実行し、すぐに結果をダウンロードします。
- HTTP 401:キーと
Authorization: Bearerヘッダーを確認します。 - HTTP 429、5xx、タイムアウト:間隔を空けてリトライします。タイムアウトのあとは、二重に支払わないよう、再送する前に呼び出しログを確認します。
旧モデルのFLUX Kontext
flux-kontext-pro と flux-kontext-max は、既存の連携のためにモデル一覧に残っています。size の代わりに aspect_ratio フィールドを使います。詳しくはFLUX.2の生成の旧モデルの節を参照してください。新しく編集を組み込む場合は、FLUX.2を使ってください。
よくある質問
画像の一部だけを編集できますか?
できます。ただし範囲は言葉で指定します。リクエストにはマスクのフィールドがないため、変更する要素と変えずに残す部分をプロンプトに書いてください。編集は生成より高いですか?
いいえ。FLUX.2は回数課金なので、編集も生成と同じ1回あたりの料金です。参照画像が1枚でも8枚でも、出力サイズがいくつでも変わりません。実際の課金額は呼び出しログで確認できます。編集と生成は同じモデルですか?
はい。flux-2-pro、flux-2-flex、flux-2-max は、どちらにも使えます。input_image があるリクエストは編集、ない場合はFLUX.2の生成のとおり新しい画像の生成になります。
OpenAI SDKの images.edit() で編集できますか?
1枚の画像の編集だけなら可能です。images.edit() はマルチパートのフォームデータを /v1/images/edits にアップロードしますが、このエンドポイントは画像を1枚しか受け取らず、参照画像を合成できません。
代わりに client.images.generate() を使い、input_image(参照画像を増やすときは番号付きのフィールドも)を公開URLかデータURLとして extra_body に入れてください。このページのPythonヘルパーも、requests で同じことをしています。
関連ドキュメントと参考資料
- FLUX.2の生成:テキストからの画像生成、出力サイズ、旧モデルのKontext
- 画像APIの比較:FLUX.2とほかの画像モデルの比較
- Images API:共通のリクエストとレスポンスの形式
- AIモデルのAPI料金一覧:FLUXの現在の価格とグループ
- 呼び出しログ:リクエストごとのモデルと課金額の確認
- Black Forest Labs:FLUX.2の画像編集(英語):複数の参照画像による編集、参照画像の上限、結果URLの有効期間
- Black Forest Labs:FLUX.2の概要(英語):各FLUX.2モデルの用途