Skip to main content
POST
Edit or fuse one or more reference images by instruction
Playground の使い方: Authorization に API Key を入力します(形式 Bearer sk-xxx)。参照画像1の 公開URLinput_image に貼り付けます。複数参照の場合は、追加画像の URL を input_image_2input_image_8 に入力します。次に prompt / model を入力して送信してください。Playground は URL のみ受け付けます。base64 の data URL 入力の場合は、下のコードサンプルをコピーしてローカルで実行してください。
このページの用途: 「1枚以上の参照画像を編集または融合する」ことです。FLUX の画像編集は 2 つのオプションをサポートしています。
  • オプション A(このページの Playground、推奨): JSON + input_image から /v1/images/generations へ(テキストから画像生成と共通で、input_image を送信すると編集モードになります)。すべての FLUX モデル(Kontext を含み、検証済み)で動作し、複数参照の融合(input_image_2 ~ input_image_8)をサポートします。
  • オプション B: OpenAI 互換の multipart エンドポイント /v1/images/edits(下の「オプション B」セクションを参照)— 単一画像の編集に対応し、OpenAI SDK の client.images.edit() と直接互換です。
純粋なテキストから画像生成については、Text-to-Image endpoint を参照してください。
⚠️ 主な違い / 注意点(オプション A)
  • エンドポイントパス: /v1/images/generations(テキストから画像生成と共通です。OpenAI 互換の単一画像用 /v1/images/edits エンドポイントもあります — オプション B を参照してください)
  • Content-Type: application/json(オプション B の /edits エンドポイントでは代わりに multipart/form-data を使用します)
  • 各参照画像フィールドは文字列です: input_image / input_image_2input_image_8 は公開URL(推奨)または data:image/...;base64,xxx data URL を受け付けます
  • 参照画像の上限はモデルごとに異なります: FLUX.2 [pro/max/flex] は最大 8、FLUX.2 [klein] は最大 4、FLUX.1 Kontext はネイティブで 1 をサポートします
  • 各画像は 20MB または 20MP 以下、形式は png / jpg / webp です
  • 入力解像度: 最小 64×64、最大 4MP。寸法は 16 の倍数である必要があります
  • 結果URLの有効期限は 10 分のみですdata[0].url はすぐにダウンロードする必要があります
  • aspect_ratio が省略された場合、出力寸法は最初の入力画像と一致します
📎 複数参照では順序が重要ですinput_image / input_image_2 / input_image_3 … の番号付けは、プロンプト内の 「image 1 / image 2 / image 3」 で使われるインデックスとまったく同じです。
image 1 の人物を image 2 のシーンに配置し、image 3 のカラーパレットを適用します。
各値は、公開アクセス可能な URL(20MB 以下を推奨)または data:image/png;base64,xxx data URL である必要があります。

コード例

cURL (2画像フュージョン · URL)

cURL (3画像フュージョン · URL)

cURL (単一画像編集 · コンテキスト)

cURL (ローカルファイル · base64 データ URL)

Python (requests · 2画像フュージョン)

Python (requests · ローカルファイルを base64 として)

Python (OpenAI SDK · extra_body 経由で input_image を渡す)

Node.js (fetch · 複数参照フュージョン)

オプション B: OpenAI互換の編集エンドポイント(multipart)

上の JSON オプションに加えて、FLUX の画像編集は標準の OpenAI Images API edit endpoint もサポートしており、client.images.edit() と直接互換性があります(flux-kontext-max で 2026-07-04 に検証済み、生成成功):
  • エンドポイント: POST https://api.apiyi.com/v1/images/edits
  • Content-Type: multipart/form-data(SDK と curl -F によって自動設定されます — 手動で設定しないでください。設定すると boundary が失われ、解析に失敗します)
FLUX.1 Kontext series は入力画像を1枚のみ受け付けます。複数参照の融合にはオプション A(input_image ~ input_image_8)を使用してください。オプション B は現在、Kontext series で検証されています。

リクエストパラメータ(フォームフィールド)

cURL の例

Python(OpenAI SDK)の例

Node.js(fetch + FormData)の例

応答形式はオプション A(data[0].url、10分間有効な BFL 署名付き URL — 本番環境ではサーバー側で自分のストレージにダウンロードしてください)と同じです。

どのオプションを使うべきですか?

パラメータリファレンス

マルチリファレンス戦略

同じキャラクターの複数のショットを参照としてアップロードすると、モデルがアイデンティティの特徴を自動で維持します。広告キャンペーン、コミックパネル、ファッションエディトリアルに最適です。
1枚のコンテンツ画像 + 1枚のスタイル画像を用意し、promptで参照を明示します:
複数の画像のオブジェクトを1つの新しいシーンに組み合わせます:
ある画像の服装を別の被写体に差し替えます:
反復編集: data[0].urlをダウンロードし、次の呼び出しで新しい指示とともにinput_imageとして再投入し、段階的に洗練します。各ラウンドは画像1枚分として課金されます。

レスポンス形式

⚠️ data[0].url は10分間のみ有効です
  • delivery-eu.bfl.ai / delivery-us.bfl.ai にホストされた URL、署名は10分後に期限切れになります
  • CORS は無効です — ブラウザの fetch はブロックされます
  • 本番環境では、サーバーサイドで自前の OSS / CDN にダウンロードする必要があります
  • FLUX の編集エンドポイントは b64_json返しません — URL のみです
Edit リクエストの料金は text-to-image と同じです(1 image あたりであり、token あたりではありません)。マルチリファレンスでは追加の画像に対する追加料金は発生しません(OpenAI gpt-image-2 の編集とは異なります)。

FAQ

リクエストは /v1/images/edits エンドポイント(オプション B)に届きましたが、ゲートウェイはリクエスト本文内に画像を見つけられませんでした。よくある原因は次のとおりです:
  1. multipartフォームに image の file フィールドがない、またはフィールド名が間違っている場合です(例: image[], file
  2. Content-Type: multipart/form-data が boundary なしで手動設定されている(SDK / fetch / curl を使う場合は、このヘッダーを自分で設定しないでください)
  3. クライアント側の画像変換に失敗したにもかかわらず、そのままリクエストが送信された場合です(image フィールドに実際に 0 バイトより多く入っていることを確認してください)
  4. JSON で画像を送るつもりだったのに /edits に当たってしまった場合です — JSON + input_image/v1/images/generations(オプション A)に送られます

承認

Authorization
string
header
必須

API Key from the APIYI Console

ボディ

application/json
model
enum<string>
デフォルト:flux-2-pro
必須

FLUX model ID. For multi-reference fusion prefer flux-2-pro / flux-2-max; for single-image edits also flux-kontext-max / flux-kontext-pro.

利用可能なオプション:
flux-2-pro,
flux-2-max,
flux-2-flex,
flux-2-klein-9b,
flux-2-klein-4b,
flux-kontext-max,
flux-kontext-pro
prompt
string
必須

Edit / fusion instruction. In multi-reference scenarios, refer to images by index: 'image 1' / 'image 2' / 'image 3' map to input_image / input_image_2 / input_image_3.

:

"Naturally blend these two images"

input_image
string
必須

Public URL for reference image 1 (required). Use plain URLs in the Playground; for local code you can also pass a data:image/png;base64,xxx data URL.

:

"https://static.apiyi.com/apiyi-logo.png"

input_image_2
string

Public URL for reference image 2 (optional)

input_image_3
string

Public URL for reference image 3 (optional)

input_image_4
string

Public URL for reference image 4 (optional)

input_image_5
string

Public URL for reference image 5 (optional)

input_image_6
string

Public URL for reference image 6 (optional)

input_image_7
string

Public URL for reference image 7 (optional)

input_image_8
string

Public URL for reference image 8 (optional, only FLUX.2 [pro/max/flex] supports up to 8)

aspect_ratio
string

Aspect ratio, e.g. 1:1 / 16:9 / 9:16 / 4:3 / 3:4. Defaults to first input image.

seed
integer

Fix for reproducibility.

safety_tolerance
integer

Moderation level. 0 = strictest, 6 = most permissive. Default 2.

必須範囲: 0 <= x <= 6
output_format
enum<string>

Output format. Default jpeg.

利用可能なオプション:
jpeg,
png
prompt_upsampling
boolean

Auto-upsample the prompt. Default false.

steps
integer

Only flux-2-flex. Inference steps. Default 50.

必須範囲: 1 <= x <= 50
guidance
number

Only flux-2-flex. Guidance scale. Default 4.5.

必須範囲: 1.5 <= x <= 10

レスポンス

Image generated

created
integer
:

1776832476

data
object[]

Result array (single image per call)