MiniMax-H3-Image 图片生成 API
MiniMax-H3-Image 支持文生图和参考图编辑,提供 1K、2K、4K 三种分辨率、10 种固定画面比例,最多使用 10 张参考图,输出 PNG 图片。
通过共用的 /image/v1/* 异步图片接口调用:创建任务后获取 task_id,轮询任务状态,成功后从 output_url 下载结果。查询配置和创建任务时均需明确选择 MiniMax-H3-Image。
接入信息
- 请求地址:
https://cp.compshare.cn。 - 鉴权:
Authorization: Bearer <YOUR_API_KEY>,使用 MiniMax H3 模块的sk-ml-模型 API Key。获取步骤见获取 API Key。 - JSON 请求必须携带
Content-Type: application/json。 - 创建任务必须携带
Idempotency-Key,去除首尾空白后为 1~128 个字符,建议使用 UUID。 - 任务、参考图及积分余额归属于 API Key 对应的顶级组织,与工作台共享。
模型名称为 MiniMax-H3-Image,区分大小写。配置查询或创建请求省略 model、或传空字符串时,默认选择 Qwen-Image-2.1;未知模型名称返回 HTTP 400。
接口总览
| 功能 | 方法 | 路径 |
|---|---|---|
| 查询 H3 配置与价格 | GET | /image/v1/config?model=MiniMax-H3-Image |
| 创建图片生成任务 | POST | /image/v1/tasks |
| 查询单个任务 | GET | /image/v1/tasks/{task_id} |
| 查询任务列表 | GET | /image/v1/tasks |
| 取消任务 | POST | /image/v1/tasks/{task_id}/cancel |
| 删除任务 | DELETE | /image/v1/tasks/{task_id} |
| 获取参考图上传地址 | POST | /image/v1/upload_urls |
| 登记参考图素材 | POST | /image/v1/assets |
查询配置与价格
curl 'https://cp.compshare.cn/image/v1/config?model=MiniMax-H3-Image' \
-H 'Authorization: Bearer <YOUR_API_KEY>'响应参数
| 名称 | 类型 | 描述 |
|---|---|---|
| model | String | 本次查询的模型,为 MiniMax-H3-Image |
| available | Boolean | 所选模型当前是否可创建任务 |
| unavailable_reason | String | 不可用原因,可用时为空字符串 |
| price_version | String | H3 的当前价格版本,未配置时为 null |
| prices | Object | 包含 1K、2K、4K;未开放的档位为 null |
| prices.1K.base | Integer | 1K 每张生成图片的基础积分 |
| prices.1K.per_reference | Integer | 1K 每张参考图额外增加的积分 |
| prices.2K.base | Integer | 2K 每张生成图片的基础积分 |
| prices.2K.per_reference | Integer | 2K 每张参考图额外增加的积分 |
| prices.4K.base | Integer | 4K 每张生成图片的基础积分 |
| prices.4K.per_reference | Integer | 4K 每张参考图额外增加的积分 |
| moderation_available | Boolean | 提示词审核服务是否可用 |
| reference_moderation_available | Boolean | 参考图审核服务是否可用 |
| prompt_optimization_available | Boolean | 提示词智能优化是否可用 |
| prompt_optimization_default_enabled | Boolean | 平台配置的优化默认开关;API 调用以请求中的 optimize_prompt 为准 |
响应示例,价格仅供说明,实际以接口返回为准:
{
"model": "MiniMax-H3-Image",
"available": true,
"unavailable_reason": "",
"price_version": "1",
"prices": {
"1K": {"base": 12, "per_reference": 3},
"2K": {"base": 13, "per_reference": 3},
"4K": {"base": 38, "per_reference": 3}
},
"moderation_available": true,
"reference_moderation_available": true,
"prompt_optimization_available": true,
"prompt_optimization_default_enabled": true
}积分规则
单张积分费用 = 所选档位的 base + per_reference × 参考图张数H3 与 Qwen 分别维护价格和价格版本。创建任务时,平台自动查询 H3 的价格版本并提交,调用方无需传入 price_version。所选档位为 null 时不可创建。
创建任务时预占积分,成功后扣除;失败、取消或审核拦截后释放。两种图片模型与视频、语音共用组织积分余额,查询方式见查询积分余额。
创建图片生成任务
POST https://cp.compshare.cn/image/v1/tasks每次请求创建一个任务,生成一张 PNG 图片。
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| model | String | 是(调用 H3 时) | 明确选择 MiniMax-H3-Image;省略或为空会使用 Qwen | MiniMax-H3-Image |
| prompt | String | 是 | 原始提示词,最多 7000 个 Unicode 字符,不能只有空白 | 山谷中的木屋,清晨薄雾,电影感光影 |
| optimize_prompt | Boolean | 否 | 是否开启提示词智能优化,默认 false | true |
| aspect_ratio | String | 否 | 支持下表中的 10 种比例,默认 1:1 | 21:9 |
| resolution | String | 否 | 1K、2K 或 4K,默认 1K;可用性以 H3 配置中的档位价格为准 | 4K |
| reference_images | Array of Object | 否 | 最多 10 张,按数组顺序引用,每项填写已登记素材的 asset_id | [{"asset_id":"<ASSET_ID>"}] |
输出宽高由模型、分辨率和比例共同决定,无需传入 width、height 或 output_format。不支持的请求体字段会返回 HTTP 400。
输出尺寸
H3 使用独立尺寸表,与 Qwen 相同比例的像素尺寸也可能不同。提示词中的尺寸描述和参考图尺寸不会改变下表规格。
| 宽高比 | 1K(宽 × 高) | 2K(宽 × 高) | 4K(宽 × 高) |
|---|---|---|---|
| 21:9 | 1568 × 672 | 3136 × 1344 | 6272 × 2688 |
| 16:9 | 1376 × 768 | 2720 × 1536 | 5472 × 3072 |
| 5:4 | 1152 × 928 | 2304 × 1824 | 4576 × 3648 |
| 4:3 | 1184 × 896 | 2368 × 1760 | 4736 × 3552 |
| 3:2 | 1248 × 832 | 2496 × 1664 | 5024 × 3360 |
| 1:1 | 1024 × 1024 | 2048 × 2048 | 4096 × 4096 |
| 2:3 | 832 × 1248 | 1664 × 2496 | 3360 × 5024 |
| 3:4 | 896 × 1184 | 1760 × 2368 | 3552 × 4736 |
| 4:5 | 928 × 1152 | 1824 × 2304 | 3648 × 4576 |
| 9:16 | 768 × 1376 | 1536 × 2720 | 3072 × 5472 |
文生图示例
curl -X POST 'https://cp.compshare.cn/image/v1/tasks' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: h3-image-text-001' \
-d '{
"model": "MiniMax-H3-Image",
"prompt": "山谷中的木屋,清晨薄雾,远山层叠,电影感光影",
"aspect_ratio": "21:9",
"resolution": "4K"
}'成功响应:
{"task_id": "<TASK_ID>"}参考图生图示例
参考图先按获取上传地址 → PUT 上传 → 登记素材流程获取 asset_id。支持 JPG、JPEG、PNG、WebP,单张上限 30 MiB;API 上传原始图片,不进行缩放或裁剪。Qwen 与 H3 可使用同一组织的参考图素材。
curl -X POST 'https://cp.compshare.cn/image/v1/tasks' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: h3-image-reference-001' \
-d '{
"model": "MiniMax-H3-Image",
"prompt": "将图 1 中的角色放入图 2 的场景,保持角色服装不变,水彩风格",
"aspect_ratio": "4:5",
"resolution": "2K",
"reference_images": [
{"asset_id": "<ASSET_ID_1>"},
{"asset_id": "<ASSET_ID_2>"}
]
}'幂等与重试
- 同一组织使用相同
Idempotency-Key和相同参数重试,会返回原任务,不会重复创建或重复扣费。 - 创建请求超时后,保留原键重试;更换模型或修改生成参数后创建新任务,必须使用新的键。
- 取价与创建之间价格版本发生变化时,请求会被拒绝;使用原键重试,平台重新读取所选模型的价格版本。
查询任务与下载结果
curl 'https://cp.compshare.cn/image/v1/tasks/<TASK_ID>' \
-H 'Authorization: Bearer <YOUR_API_KEY>'响应中的 task.input.model 标明生成模型。以下为成功响应的主要字段:
{
"task": {
"task_id": "<TASK_ID>",
"status": "succeeded",
"can_cancel": false,
"input": {
"model": "MiniMax-H3-Image",
"prompt": "山谷中的木屋,清晨薄雾,远山层叠,电影感光影",
"optimize_prompt": false,
"aspect_ratio": "21:9",
"resolution": "4K",
"width": 6272,
"height": 2688,
"output_format": "png",
"reference_images": []
},
"prompt_optimization": {"status": "disabled"},
"point_cost": 38,
"point_status": "consumed",
"output_url": "https://example.com/generated/h3-image.png"
}
}建议每隔 3 秒轮询。succeeded、failed、cancelled、blocked 为终态;成功后下载 task.output_url,失败时查看 error_code、error_message。完整字段、时间戳与状态定义见查询单个任务和任务状态与错误处理。
列表、取消与删除
- 查询任务列表:支持分页、状态和时间筛选;列表包含当前组织的 Qwen 和 H3 任务,通过每条记录的
input.model区分模型。 - 取消任务:仅
can_cancel=true时可取消,成功后释放预占积分。 - 删除任务:须满足终态及结算条件,删除后结果文件会被删除,已消费积分不退回。
鉴权错误返回 HTTP 401,网关参数错误返回 400,下游连接或响应解析失败返回 502。业务错误保留下游响应:即使 HTTP 为 200,RetCode 非零仍表示失败。具体处理见请求错误。
完整调用示例
以下 Python 示例使用标准库完成「查 H3 价格 → 创建任务 → 轮询 → 下载」。先设置环境变量 COMPSHARE_API_KEY。
import json
import os
import time
import uuid
from pathlib import Path
from urllib.request import Request, urlopen
BASE_URL = "https://cp.compshare.cn"
API_KEY = os.environ["COMPSHARE_API_KEY"]
MODEL = "MiniMax-H3-Image"
RESOLUTION = "2K"
def api(method, path, body=None, idempotency_key=None):
headers = {"Authorization": f"Bearer {API_KEY}", "Accept": "application/json"}
data = None
if body is not None:
headers["Content-Type"] = "application/json"
data = json.dumps(body, ensure_ascii=False).encode("utf-8")
if idempotency_key:
headers["Idempotency-Key"] = idempotency_key
request = Request(BASE_URL + path, data=data, headers=headers, method=method)
# 非 2xx 响应由 urlopen 抛出 HTTPError;2xx 响应仍需检查业务错误。
with urlopen(request, timeout=60) as response:
result = json.load(response)
if result.get("RetCode", 0) != 0 or "error" in result:
raise RuntimeError(result)
return result
config = api("GET", f"/image/v1/config?model={MODEL}")
if not config["available"]:
raise RuntimeError(config.get("unavailable_reason") or "H3 图片生成当前不可用")
if config["prices"].get(RESOLUTION) is None:
raise RuntimeError(f"H3 的 {RESOLUTION} 档位暂未开放")
# 保存此键;若创建请求超时,应使用同一键和相同请求重试。
idempotency_key = str(uuid.uuid4())
print("Idempotency-Key:", idempotency_key)
result = api("POST", "/image/v1/tasks", {
"model": MODEL,
"prompt": "山谷中的木屋,清晨薄雾,远山层叠,电影感光影",
"aspect_ratio": "16:9",
"resolution": RESOLUTION,
}, idempotency_key=idempotency_key)
task_id = result["task_id"]
print("task_id:", task_id)
deadline = time.monotonic() + 1200
while time.monotonic() < deadline:
task = api("GET", f"/image/v1/tasks/{task_id}")["task"]
if task["status"] == "succeeded":
# 下载公共结果地址时无需携带模型 API Key。
with urlopen(task["output_url"], timeout=60) as image:
Path("h3-image.png").write_bytes(image.read())
print("已保存 h3-image.png,模型:", task["input"]["model"])
print("消耗积分:", task["point_cost"])
break
if task["status"] in {"failed", "cancelled", "blocked"}:
raise RuntimeError(task.get("error_message") or task["status"])
time.sleep(3)
else:
raise TimeoutError(f"轮询超时,可继续查询任务 {task_id}")