curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
FLUX 3 Image
FLUX 3 Image 画像生成
テキストからの画像生成、単一画像の編集、最大 10 枚の参照画像に対応。複数のアスペクト比と最大 4k の解像度を提供します。
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
この API は非同期です。送信に成功すると
task_id が返ります。タスク照会で状態と画像を取得し、completed または failed になったらポーリングを停止してください。4k の生成には数分かかる場合があるため、全体の待機タイムアウトは 10 分を推奨します。curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "flux-3-image",
"prompt": "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
"aspect_ratio": "21:9",
"resolution": "2k"
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "flux-3-image",
prompt: "夜明けの霧に包まれた海沿いの道路、超ワイドな映画風ショット、ヘッドライトを点灯した一台のクラシックカー",
aspect_ratio: "21:9",
resolution: "2k"
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
リクエストヘッダー
string
必須
Bearer 認証。形式は
Bearer <token> で、<token> は APIMart API Key です。リクエストパラメータ
string
必須
flux-3-image 固定です。string
必須
テキストから生成する画像の説明、または画像編集の指示。ネガティブプロンプトは非対応です。生成したい内容を肯定的に記述してください。
prompt 内のタグと bbox JSON でレイアウトや部分編集の領域を指定できます。以下の例をご覧ください。string[]
参照画像のリスト。最大 10 枚に対応し、公開アクセス可能な HTTP(S) URL または Base64 入力を使用できます。省略するとテキストから画像を生成します。1 枚を指定すると単一画像の編集、複数枚を指定すると複数画像を参照できます。
string
デフォルト:"auto"
出力アスペクト比。対応値:
21:9、2:1、16:9、3:2、7:5、4:3、5:4、1:1、4:5、3:4、5:7、2:3、9:16、1:2、9:21 または auto。16x9 形式の比率表記にも対応します。auto の場合:- 編集または複数画像参照:最初の参照画像の比率に従います。
- テキストからの生成:プロンプトに基づいて決定し、比率が決まらない場合は
1:1を使用します。
string
アスペクト比の互換パラメータです。
aspect_ratio の代わりに使用でき、同じ値を受け付けます。どちらか一方のみを使用することを推奨します。1024x1024 などのピクセルサイズは非対応で、指定すると HTTP 400 が返ります。出力解像度は resolution で選択してください。string
デフォルト:"1k"
出力解像度。
768sq、1k、1.5k、2k、4k に対応し、大文字・小文字は区別しません。768 は 768sq と同等です。このパラメータで課金区分が決まります。省略時は 1k で生成・課金されます。3k などの非対応値は HTTP 400 を返します。integer
デフォルト:"2"
コンテンツ安全性の許容度。範囲は 0–4 で、0 が最も厳格です。
boolean
デフォルト:"true"
生成前のウェブ検索または画像検索を許可するかどうか。
false で無効にできます。ブール値で指定してください。文字列の "false" や "true" は使用できません。integer
デフォルト:"1"
1 リクエストにつき 1 枚を生成し、
1 のみ指定できます。複数枚が必要な場合は個別にタスクを送信してください。1 を超える値は HTTP 400 を返します。非対応のパラメータ
次のパラメータを指定すると HTTP 400 が返り、黙って無視されることはありません。width、height1024x1024など、ピクセルサイズ形式のsizeseed、steps、guidanceoutput_format、negative_prompt、prompt_upsampling、mask_url
resolution、特定の画面比率には aspect_ratio を使用してください。
参照画像の編集
{
"model": "flux-3-image",
"prompt": "画像の車を赤色に変更し、元の道路、背景、照明はそのまま残す",
"image_urls": ["https://example.com/car.jpg"],
"aspect_ratio": "auto",
"resolution": "2k"
}
image_urls に合計 10 枚以内の URL を指定します。
複数画像の参照
編集、部分編集、レイアウトは本ページの同じ API とモデルを使用し、resolution に基づいて課金されます。参照画像は順番に、1 枚目が ref_image_0、2 枚目が ref_image_1 です。プロンプトでは Image 1 / Image 2 とも記述できます。
{
"model": "flux-3-image",
"prompt": "Image 1 を Image 2 のスタイルに変換してください。",
"image_urls": [
"https://example.com/subject.jpg",
"https://example.com/style.jpg"
],
"aspect_ratio": "auto"
}
部分編集(bounding box)
prompt の先頭に自然言語の編集指示を書き、<car_1> のような <タグ> で要素を指定します。同じ文字列の後ろに JSON 配列を追加し、各オブジェクトで 1 つの枠を記述します。bbox は独立したリクエストパラメータではありません。
| フィールド | 説明 |
|---|---|
id | プロンプト内の要素タグに対応します。山括弧は含めません。 |
from | 要素の参照元。例:ref_image_0。新規描画や再描画する要素は null。 |
src_bbox | 元画像内の枠。from が null の場合はこの値も null。 |
tgt_bbox | 出力画像内の枠。src_bbox と同じなら元の位置に保持し、異なる場合は移動します。 |
desc | 要素の変更内容または保持する内容。 |
src_bbox、tgt_bbox、bbox)は [上, 左, 下, 右]、つまり [y1, x1, y2, x2] を使用します。0–1000 の正規化座標で、左上が [0,0]、右下が [1000,1000] です。ピクセル座標ではありません。
次の例では枠内の車を赤くし、保持する背景を記述します。URL と枠の位置は例なので、実際の画像に合わせて置き換えてください。
{
"model": "flux-3-image",
"prompt": "<ref_image_0> の車 <car_1> を赤くし、背景 <background_1> を保持してください。 [{\"id\":\"car_1\",\"from\":null,\"src_bbox\":null,\"tgt_bbox\":[250,300,750,800],\"desc\":\"元の形状と向きを保った赤い車。\"},{\"id\":\"background_1\",\"from\":\"ref_image_0\",\"src_bbox\":[0,0,1000,1000],\"tgt_bbox\":[0,0,1000,1000],\"desc\":\"元の道路、背景、照明を保持する。\"}]",
"image_urls": [
"https://example.com/car.jpg"
],
"aspect_ratio": "auto",
"resolution": "2k"
}
要素の移動
次のオブジェクトをプロンプト末尾の bbox 配列に入れます。from は元画像、src_bbox は元の位置、tgt_bbox は新しい位置です。自然言語の指示にも対応する <knight_1> タグを使用してください。
{
"id": "knight_1",
"from": "ref_image_0",
"src_bbox": [
500,
150,
850,
350
],
"tgt_bbox": [
194,
55,
544,
255
],
"desc": "小さな灰色の騎士のあみぐるみ。"
}
テキストからの画像生成のレイアウト
参照画像がなくてもレイアウトを指定できます。各枠はid、bbox、desc を使用します。座標グリッドが画面比率に合わせて伸縮するため、aspect_ratio を明示してください。
{
"model": "flux-3-image",
"aspect_ratio": "1:1",
"prompt": "純粋な黄緑色の背景 <background_1> に、走る人物の黒いシルエット <silhouette_1> を配したミニマルなイラスト。 [{\"id\":\"background_1\",\"bbox\":[0,0,1000,1000],\"desc\":\"かすかな紙の質感がある蛍光黄緑色の背景。\"},{\"id\":\"silhouette_1\",\"bbox\":[150,150,850,850],\"desc\":\"点描の質感がある走る人物の黒いシルエット。\"}]"
}
使用上の注意
-
bbox JSON は
prompt文字列の一部です。リクエスト JSON を手書きする場合、内部の二重引用符を\"としてエスケープしてください。SDK や JSON シリアライズでは自動処理できます。 -
保持する領域も列挙し、
descに保持内容を記述してください。 -
プロンプト内の要素タグと JSON の
idは一対一で対応させてください。<ref_image_0>などの参照識別子は入力画像を示します。 -
このモデルには
maskパラメータがなく、mask_urlも非対応です。mask_urlを指定すると HTTP 400 が返ります。bbox 編集ではマスクのアップロードパラメータを使用しません。
送信レスポンス
integer
レスポンスステータスコード。成功時は
200 です。array
タスク結果の照会
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.jpg"]
}
]
}
}
}
data.result.images[0].url 配列から画像リンクを取得します。状態が failed の場合は返されたエラーを確認し、画像を待ち続けないでください。
解像度と課金
画像単位で課金されます。単価はresolution のみで決まり、アスペクト比や参照画像の枚数には依存しません。参照画像による追加料金はありません。
| 解像度 | 出力規模の目安 |
|---|---|
768sq | 約 768×768 |
1k(デフォルト) | 約 1MP |
1.5k | 約 2MP |
2k | 約 4MP |
4k | 約 16MP |
よくあるパラメータエラー
| リクエスト | 結果と対処方法 |
|---|---|
resolution: "3k" | HTTP 400。対応する 5 種類の解像度から選択 |
size: "1024x1024" | HTTP 400。アスペクト比を指定し、resolution で解像度を選択 |
n: 2 | HTTP 400。1 リクエストにつき 1 枚のみ生成 |
| 参照画像 11 枚 | HTTP 400。最大 10 枚に制限 |
grounding: "false" | HTTP 400。ブール値 false を使用 |