curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1,
},
)
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: "minimax-h3-image",
prompt: "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
size: "16:9",
resolution: "2K",
n: 1,
}),
},
);
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KXXXXXXXXXXXXXXX"
}
]
}
{
"error": {
"code": 400,
"message": "リクエストパラメータが無効です",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。API キーを確認してください。",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "アカウント残高が不足しています",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "リクエストが多すぎます。しばらくしてから再試行してください。",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラーが発生しました。しばらくしてから再試行してください。",
"type": "server_error"
}
}
MiniMax-H3-Image
MiniMax-H3-Image 画像生成
- minimax-h3-image 標準版モデルを使用。写実的な写真、ポスター、製品画像、文字入りの画像が得意
- 非同期処理で task_id を返し、後から結果を取得
- テキスト画像生成と最大 16 枚の参照画像を使った編集に対応
- 1 回のリクエストで最大 10 枚を生成、プロンプト拡張を内蔵(無効化可能)
- 1K / 2K / 4K の解像度とアスペクト比の組み合わせ、またはピクセル寸法の直接指定に対応(最大 2,000 万ピクセル)
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": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1,
},
)
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: "minimax-h3-image",
prompt: "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
size: "16:9",
resolution: "2K",
n: 1,
}),
},
);
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KXXXXXXXXXXXXXXX"
}
]
}
{
"error": {
"code": 400,
"message": "リクエストパラメータが無効です",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。API キーを確認してください。",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "アカウント残高が不足しています",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "リクエストが多すぎます。しばらくしてから再試行してください。",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラーが発生しました。しばらくしてから再試行してください。",
"type": "server_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json",
},
json={
"model": "minimax-h3-image",
"prompt": "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
"size": "16:9",
"resolution": "2K",
"n": 1,
},
)
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: "minimax-h3-image",
prompt: "夕暮れの海辺のカフェ、写実的な写真風、暖色系",
size: "16:9",
resolution: "2K",
n: 1,
}),
},
);
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KXXXXXXXXXXXXXXX"
}
]
}
{
"error": {
"code": 400,
"message": "リクエストパラメータが無効です",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。API キーを確認してください。",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "アカウント残高が不足しています",
"type": "payment_required"
}
}
{
"error": {
"code": 429,
"message": "リクエストが多すぎます。しばらくしてから再試行してください。",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラーが発生しました。しばらくしてから再試行してください。",
"type": "server_error"
}
}
認証
モデル概要
| モデル | 特徴 | 推奨用途 |
|---|---|---|
minimax-h3-image | 標準版。単価が低い | 大量生成、写実的な写真、ポスター、製品画像、文字入りの画像 |
minimax-h3-image-highspeed | 高速版。生成がより速く、画像の入力 / 出力単価は標準版の 2 倍 | 応答速度が重要なシナリオ。詳しくは MiniMax-H3-Image-Highspeed を参照 |
revised_prompt で確認できます。元のテキストどおりに生成したい場合は、プロンプト拡張の無効化を参照してください。
resolution を省略すると 4K(約 1,600 万ピクセル)で出力され、単価は 1K / 2K の約 3 倍になります。4K が不要な場合は "resolution": "2K" を明示的に指定してください。リクエストパラメータ
string
必須
画像生成モデル名。
minimax-h3-image 固定です。string
必須
画像生成または編集の内容を説明するテキスト。プロンプトは中国語と英語に対応しています。前後の空白を除いた長さは
1 ~ 32,000 文字です。string[]
参照画像の配列。最大
16 枚です。指定すると自動的に編集モードになります。各要素には、公開アクセス可能な http(s):// の直リンク、または data:image/png;base64,... 形式のインライン Base64 を指定できます(プラットフォームがリンクに変換してからモデルに渡します)。詳しくは参照画像の要件を参照してください。string
デフォルト:"auto"
出力画像のアスペクト比、または正確なピクセル寸法。指定可能な値:
auto:プロンプトに基づいてモデルが構図と比率を決定- アスペクト比:
X:Y形式。X、Y は1~300の整数で、比率は1:3~3:1(両端を含む)。例:1:1、4:3、16:9、9:16、3:1 - ピクセル指定:
幅x高さ。例:2048x1152(区切り文字としてX、×、*も使用可能)
string
デフォルト:"4K"
解像度。アスペクト比と組み合わせて実際の出力ピクセル数を決定します。
1K:約 100 万ピクセル2K:約 420 万ピクセル4K(デフォルト):約 1,600 万ピクセル
size をピクセル形式で指定した場合、resolution は指定できません。指定すると 400 が返されます。integer
デフォルト:"1"
生成する画像の枚数。
1 ~ 10 の範囲で指定します。boolean
デフォルト:"true"
プロンプトを自動的に拡張するかどうか。
false はテキスト画像生成でのみ有効で、サイズの明示的な指定が必要です。詳しくはプロンプト拡張の無効化を参照してください。string
デフォルト:"jpeg"
出力ファイル形式。
jpeg(デフォルト。jpgも可)pngwebp
integer
デフォルト:"95"
圧縮品質。範囲は
0 ~ 100 で、png には適用されません。boolean
デフォルト:"false"
画像に可視の AI 生成ウォーターマークを追加するかどうか。画像メタデータ内の不可視の識別情報には影響しません。
次のパラメータはサポートされておらず、指定しても無視されます:
quality、style、seed、negative_prompt、background、mask_url。結果は常に URL で返されます。response_format: "b64_json" を指定すると 400 が返されます。サイズルール
| 目的 | 指定方法 |
|---|---|
| デフォルト(4K、比率はモデルが選択) | サイズ関連パラメータを指定しない |
| 解像度 + アスペクト比 | size: "16:9", resolution: "2K" |
| 解像度のみ指定し、比率はモデルに任せる | resolution: "1K"(size は省略または auto) |
| ピクセル単位で正確に指定 | size: "2048x1152"(resolution は指定しない) |
解像度 + アスペクト比
解像度が総面積を、アスペクト比が形状を決定します:| 解像度 | 目標面積 | 実測の出力例 |
|---|---|---|
1K | 約 1024×1024(約 100 万ピクセル) | モデル選択の比率 → 1184×880 |
2K | 約 2048×2048(約 420 万ピクセル) | 1:1 → 2048×2048 |
4K(デフォルト) | 約 4096×4096(約 1,600 万ピクセル) | モデル選択の比率 → 3552×4736 |
ピクセル指定
size: "幅x高さ" を使用する場合は、次の条件を満たす必要があります:
| 制約 | 値 |
|---|---|
| 総ピクセル数(幅 × 高さ) | 655,360 ~ 20,000,000 |
| アスペクト比 | 1:3 ~ 3:1 |
resolution との併用 | 不可 |
- ✅
1024x1024、2048x1152、1536x1536、4000x5000 - ❌
512x512(面積が小さすぎる)、4000x1000(比率が 3:1 を超える)、5000x5000(2,000 万ピクセルを超える)
参照画像の要件
| 項目 | 要件 |
|---|---|
| 枚数 | 最大 16 枚 |
| 形式 | JPG / JPEG / PNG / WebP / HEIC / HEIF(GIF は非対応) |
| ファイルサイズ | 1 枚あたり 64 MB 以下 |
| 画像サイズ | 各辺 128 ~ 8192 ピクセル、長辺 ÷ 短辺 ≤ 4 |
URL を使用する場合は、リンクが公開アクセス可能であることを確認してください。リンクにアクセスできない場合、タスクは生成段階で失敗します(
status が failed となり、料金は全額返金されます)。編集モードではプロンプト拡張が常に有効で、無効化できません。プロンプト拡張の無効化
デフォルトでは、モデルはプロンプトを拡張してから画像を生成します。元のテキストどおりに生成したい場合は"prompt_optimizer": false を指定できます。ただし、次の条件があります:
- テキスト画像生成でのみ使用可能。
image_urlsを含む場合は 400 が返されます - サイズの明示的な指定が必要:
sizeはアスペクト比(例:1:1)またはピクセル(例:1024x1024)とし、autoや省略は不可
Response
integer
レスポンスステータスコード。送信成功時は 200 です。
送信レスポンス
送信に成功すると、非同期タスク ID が即座に返されます:{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KXXXXXXXXXXXXXXX"
}
]
}
タスク結果の照会
送信レスポンスのtask_id を使って タスク状態 API を呼び出します:
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01KXXXXXXXXXXXXXXX \
--header 'Authorization: Bearer <token>'
completed または failed になるまで確認してください。1 つのタスクは最大 600 秒実行されるため、クライアント側のポーリングタイムアウトは 10 分に設定することを推奨します。
タスク成功
{
"code": 200,
"data": {
"id": "task_01KXXXXXXXXXXXXXXX",
"status": "completed",
"progress": 100,
"created": 1794450409,
"completed": 1794450428,
"actual_time": 19,
"estimated_time": 60,
"cost": 0.0493,
"result": {
"images": [
{
"url": [
"https://upload.apimart.ai/f/image/example_0.jpeg",
"https://upload.apimart.ai/f/image/example_1.jpeg"
],
"expires_at": 1794536828,
"revised_prompt": "The image is a realistic, close-up still life photograph of ...",
"revised_prompts": [
"The image is a realistic ...",
"The image is a professional ..."
]
}
]
}
}
}
data.result.images[0].url[] にあり、n 枚の画像はすべてこの配列に含まれます。expires_at までにダウンロードして保存してください。タスクが失敗した場合は status が failed となり、原因は error.message で確認できます。料金は自動的に全額返金されます。
使用例
テキスト画像生成(デフォルト 4K)
{
"model": "minimax-h3-image",
"prompt": "A cozy coffee shop by the sea at sunset, photorealistic, warm tones"
}
テキスト画像生成(1K + アスペクト比、4 枚同時)
{
"model": "minimax-h3-image",
"prompt": "ミニマルなヘッドホンの製品画像、白背景、柔らかい影",
"size": "1:1",
"resolution": "1K",
"n": 4
}
ピクセル指定 + PNG
{
"model": "minimax-h3-image",
"prompt": "都市の夜景ポスター、ネオン、サイバーパンク風、タイトル文字 NIGHT CITY",
"size": "2048x1152",
"output_format": "png"
}
参照画像による編集
{
"model": "minimax-h3-image",
"prompt": "1 枚目の画像の人物に 2 枚目の画像のジャケットを着せ、背景はそのままにする",
"image_urls": [
"https://example.com/person.jpg",
"https://example.com/jacket.png"
],
"resolution": "2K"
}
プロンプト拡張の無効化
{
"model": "minimax-h3-image",
"prompt": "a red apple on a wooden table, top view",
"size": "1:1",
"resolution": "1K",
"prompt_optimizer": false
}