curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
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: "mai-image-2.6",
prompt: "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
MAI-Image-2.6
MAI-Image-2.6 画像生成
テキストからの画像生成、単一画像の編集、最大 5 枚の参照画像の合成、ウェブ情報による拡張に対応。高品質版と Flash 版を提供します。
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": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
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: "mai-image-2.6",
prompt: "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
モデルの選択
| モデル ID | 特徴 |
|---|---|
mai-image-2.6 | 画質を重視する用途向けの高品質版 |
mai-image-2.6-flash | 画質はやや低めですが、高速かつ低コスト |
この API は非同期です。送信後に
data[0].task_id から ID を取得し、タスク照会で結果を確認してください。3–5 秒間隔でポーリングし、全体の待機タイムアウトは 3 分を推奨します。completed または failed になったら停止してください。curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "mai-image-2.6",
"prompt": "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
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: "mai-image-2.6",
prompt: "夕暮れの大学キャンパスのポスター、写実的な写真風、映画のような照明",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
リクエストヘッダー
string
必須
Bearer 認証。形式は
Bearer <token> で、<token> は APIMart API Key です。リクエストパラメータ
string
必須
モデル ID:
mai-image-2.6 または mai-image-2.6-flash。string
必須
画像の説明または編集指示。中国語と英語に対応し、最大約 32,000 tokens(文字数ではありません)です。
string
デフォルト:"1:1"
アスペクト比(
16:9 など)、ピクセルサイズ(1536x1024 など)、または auto に対応します。- アスペクト比:
1:4から4:1の範囲の任意の整数比。resolutionと組み合わせて使用します。 - ピクセルサイズ:
幅x高さ、幅*高さ、幅×高さに対応。この場合、resolutionはサイズ決定に使用されません。 auto:モデルがプロンプトに基づいて比率を選択します。
string
デフォルト:"1K"
1K、2K に対応し、小文字も使用できます。4K などの他の値は非対応で、HTTP 400 を返します。テキストからの生成で比率を指定する場合にサイズ区分を決定します。ピクセルを直接指定する場合はサイズ計算に使われません。画像からの生成の出力サイズは指定できません。integer
ピクセル単位の幅。
height と必ず同時に指定してください。この組は size と resolution より優先してテキストからの生成サイズを決定します。幅と高さはいずれも 768 以上、総ピクセル数は 2,359,296 以下です。32 の倍数を推奨します。それ以外は幅と高さがそれぞれ 32 の倍数に切り下げられます。画像からの生成では、このパラメータで出力サイズを指定できません。integer
ピクセル単位の高さ。
width と同時に指定し、上記のサイズ制限に従ってください。画像からの生成の出力サイズには使用されません。string[]
参照画像のリスト。最大 5 枚です。省略するとテキストから生成し、1 枚なら単一画像の編集、複数枚なら合成を行います。各要素は公開アクセス可能な HTTP(S) 画像 URL、または
data:image/png;base64,... などの Base64 Data URL に対応します。JPEG、PNG に対応し、WEBP、GIF は自動で PNG に変換されます。URL が公開アクセスできない場合はタスクが失敗します。画像からの生成の出力サイズは参照画像に基づきモデルが決定します。約 100 万ピクセルで、参照画像に近い比率になります。size、resolution、width、height で出力サイズは指定できません。boolean
デフォルト:"false"
true にするとモデルがプロンプトに基づいて比率を選びます。size: "auto" と同等です。boolean
デフォルト:"false"
true にすると生成前に最新情報を検索します。実在の人物、場所、出来事に関する画像に適しています。integer
デフォルト:"1"
1 のみ対応します。複数枚が必要な場合は個別にタスクを送信してください。1 を超える値は HTTP 400 を返します。テキストからの生成サイズ
| 目的 | パラメータ |
|---|---|
| デフォルトの正方形 | サイズを省略:1:1 + 1K、出力 1024×1024 |
| 解像度と比率 | size: "16:9"、resolution: "2K" |
| ピクセル指定 | size: "1536x1024"、または width: 1536、height: 1024 |
| 比率の自動選択 | size: "auto" または auto_aspect_ratio: true |
width / height → ピクセル形式の size → 比率形式の size と resolution の組み合わせ。
解像度とアスペクト比
| アスペクト比 | 1K | 2K |
|---|---|---|
| 1:1 | 1024×1024 | 1536×1536 |
| 4:3 / 3:4 | 1152×864 / 864×1152 | 1760×1312 / 1312×1760 |
| 3:2 / 2:3 | 1248×832 / 832×1248 | 1856×1248 / 1248×1856 |
| 16:9 / 9:16 | 1344×768 / 768×1344 | 2048×1152 / 1152×2048 |
| 2:1 / 1:2 | 1536×768 / 768×1536 | 2144×1056 / 1056×2144 |
| 21:9 / 9:21 | 1792×768 / 768×1792 | 2336×992 / 992×2336 |
| 4:1 / 1:4 | 3072×768 / 768×3072 | 3072×768 / 768×3072 |
1K でも約 100 万ピクセルを超える場合があり、実際の出力ピクセルに対応するトークン量で課金されます。
ピクセル指定の制限
- 幅と高さはともに 768 以上。
- 幅 × 高さは 2,359,296(1536 × 1536)以下。
- 幅と高さはそれぞれ 32 の倍数に切り下げられます。例:
1000x1000は992x992になります。正確なサイズには 32 の倍数を指定してください。
1536x1024、2048x1152、3072x768 などに対応します。512x512 は辺が短すぎるため、2048x2048 は総ピクセル数超過のため拒否されます。
上限は総ピクセル数であり、各辺が 1536 以下という意味ではありません。
2048x1152 や 3072x768 は使用できますが、4K 区分は非対応です。これらのサイズ設定はテキストからの生成専用です。リクエスト例
ピクセル指定とウェブ情報の活用
{
"model": "mai-image-2.6-flash",
"prompt": "夜のエッフェル塔と花火、旅行ポスター風",
"width": 2048,
"height": 1152,
"web_grounding": true
}
単一画像の編集
{
"model": "mai-image-2.6",
"prompt": "自転車を青くし、隣に小さな犬を追加してください",
"image_urls": ["https://example.com/bicycle.png"]
}
複数画像の合成
{
"model": "mai-image-2.6-flash",
"prompt": "2 枚の参照画像を合成して、すっきりした未来的な商品写真にしてください",
"image_urls": [
"https://example.com/first.png",
"https://example.com/second.jpg"
]
}
非対応のパラメータ
quality、style、background、output_format、response_format、mask_url は非対応で、指定しても無視されます。出力は PNG 固定で、マスク編集は非対応です。
送信レスポンス
integer
レスポンスステータスコード。成功時は
200 です。タスク結果の照会
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"progress": 100,
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"]
}
]
}
}
}
| 状態 | 対応 |
|---|---|
pending | 待機中。ポーリングを継続 |
processing | 処理中。ポーリングを継続 |
completed | 成功。data.result.images[0].url 配列から画像リンクを取得 |
failed | 失敗。data.error.message で原因を確認し停止。全額返金 |
課金について
実際の入力・出力トークン使用量で課金されます。単価はモデル料金をご確認ください。- 画像出力トークン = 実際の出力幅 × 高さ ÷ 1024。1024×1024 は 1024 tokens、1536×1536 は 2304 tokens です。
- 各参照画像の入力トークンは、およそ幅 × 高さ ÷ 1024。テキストのプロンプトも入力使用量に含まれます。
- 送信時に区分に応じた金額を仮引き落としし、成功後に実使用量との差額を返金または追加請求します。
- 失敗時は自動で全額返金されます。送信段階でパラメータエラーにより拒否された場合はタスクを作成せず、課金されません。
よくあるエラー
| HTTP | 原因と対処 |
|---|---|
| 400 | 4K など非対応の resolution。1K または 2K を使用 |
| 400 | 幅か高さが 768 未満、または総ピクセル数が 2,359,296 超過 |
| 400 | width か height の片方のみ指定。必ず同時に指定 |
| 400 | 比率が 1:4 から 4:1 の範囲外、または size の形式が不明 |
| 400 | n が 1 を超える、または参照画像が 5 枚を超える |