按能力

图片

选模型、复制请求、拿到图片。下面的内容都跟着你选的模型变。

#1. 选模型

gemini-3-pro-image-preview$0.03 / 次异步任务限制和状态

这个能力有 12 个在线模型,切换后下面的代码会跟着变。

#2. 复制请求

把 YOUR_API_KEY 换成你的密钥再运行。显示的选项都是这个模型支持的。

POSThttps://www.aisplice.store/v1/images/tasksBearer API key异步任务

选项这里只展示当前模型已公开支持的选项。

# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"

# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/images/tasks \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
  -d '{
  "model": "Nano Banana Pro",
  "prompt": "A cinematic scene with careful composition",
  "size": "auto",
  "resolution": "1K",
  "n": 1
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
  printf '%s\n' "$SUBMITTED" >&2
  exit 1
fi
echo "task_id=$TASK_ID"

# 2. Poll until terminal
while true; do
  STATUS_JSON=$(curl --fail-with-body -sS \
    "https://www.aisplice.store/v1/images/tasks/$TASK_ID" \
    -H "Authorization: Bearer $API_KEY")
  STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|succeeded|success) break ;;
    failed|failure|cancelled|canceled)
      printf '%s\n' "$STATUS_JSON" | jq .
      exit 1
      ;;
  esac
  sleep 3
done

# 3. Fetch the final result
curl --fail-with-body -sS \
  "https://www.aisplice.store/v1/images/tasks/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" | jq .

生产环境推荐使用公网媒体地址。 先上传本地文件,再把 public_url 放入模型请求;避免发送大体积 Base64 请求体。

查看上传指南

全部参数

这个模型支持的全部字段和可选值。

model
string必填

本次请求使用的精确模型标识。

gemini-3-pro-image-preview
prompt
string必填

描述期望结果的指令。

size
string可选

输出宽高比或尺寸。

auto1:12:33:23:44:34:55:49:1616:921:9
resolution
string可选

请求的输出分辨率。

1K2K4K
n
integer可选
images
string[]可选

Optional reference images, up to 14.

响应流程

查看任务状态、终态和结果响应示例。

提交
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "image.task",
  "model": "Nano Banana Pro",
  "status": "queued"
}
结果内容
{
  "created": 1720000000,
  "data": [
    {
      "url": "https://media.example/result.png"
    }
  ]
}

等待中

queued · submitted · in_progress · processing

成功

completed · succeeded · success

失败

failed · failure · cancelled · canceled

全部字段:见 API 参考里的 /v1/images/tasks →

#3. 拿到结果

提交后马上返回 task_id。每隔几秒查一次,直到 status 变成 completed;也可以传 webhook_url,完成后我们回调你。

GET https://www.aisplice.store/v1/images/tasks/{task_id}

GET https://www.aisplice.store/v1/images/tasks/{task_id}/content

成功才扣费

失败或取消的任务自动退款,请求日志里能看到每个任务的最终费用。

状态值和查询方式 →改用回调,不用反复查询 →

#出错了怎么办

  • 400 并提示某个字段:这个模型不支持该选项,用第 2 步列出的取值。
  • 内容被模型拒绝:换个说法重写提示词;被拒绝的请求不扣费。
  • 402:余额不够这次请求,到「钱包」充值后重试。
  • 429:请求太快,按 Retry-After 给的秒数等一下再试。
  • 503 model_not_found:模型名写错了或模型暂时下线,从第 1 步重新选一个。

查其他报错 →

#参考图

在第 2 步列出的参考图字段里填公开的图片地址。本地文件先上传,再用返回的地址。

怎么上传本地文件 →

做进你的产品里先给你的用户放哪些选项,哪些以后再加。
先给用户放哪些选项先放提示词和一个影响价格的选项,基础流程跑通后再加其他的。+

创作意图

像 prompt 这样的字段应该出现在 UI 中,因为用户能直接理解它会改变什么结果。

成本倍率项

像 duration、resolution、size、count 这样的字段,只有在价格已经能被清楚解释时才应引入。

模式切换项

像 image、mask 或 continuation ID 这类字段会改变整个工作流本身,只应出现在专门模式中。

系统接线项

像 webhook_secret 这样的字段是给集成方用的,不是给日常创作者用的,所以应从默认 UI 中移除。

  • prompt
    何时暴露
    始终暴露。它是图片任务最核心的创作输入。
    推荐默认值
    在 UI 中设为必填。
    为什么重要
    它直接决定产出结果;隐藏后功能基本不可用。
  • size
    何时暴露
    如果计费会随输出尺寸变化,第一版就应暴露。
    推荐默认值
    先只提供一个推荐宽高比,例如 1:1。
    为什么重要
    它同时影响成本和画面构图,所以用户通常需要一个简单的尺寸选择。
  • quality
    何时暴露
    只有当用户明确提出更高或更低档位诉求时再暴露。
    推荐默认值
    默认留在服务端,使用模型默认值。
    为什么重要
    它会改变价格和延迟,但通常不需要成为第一天就开放的控制项。
  • n
    何时暴露
    只有当批量生成是核心工作流时才暴露。
    推荐默认值
    默认设为 1。
    为什么重要
    它会立刻放大成本,也容易让首版体验变得复杂嘈杂。
  • mask / image
    何时暴露
    仅在编辑类或参考图类产品中暴露。
    推荐默认值
    在文生图模式中隐藏。
    为什么重要
    这些字段会把产品从“生成”切换成“编辑”,因此不应混入基础流程。
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

结果只保留一个真源

任务完成后,让应用统一围绕 /content 返回的平台 URL 运作。这样既能隐藏供应商细节,也能让历史回放更稳定。

还是没解决?

把请求 ID 或报错信息发给我们,我们来查。