图像生成 API
使用最先进的 AI 模型生成和编辑图像。支持文本生成图像和带蒙版的图像编辑。兼容 OpenAI 格式。
基础 URL: https://api.jarvisclaw.ai/v1
认证
两种方式均支持 — 所有请求通过 x402 链上结算:
| 方式 | Header | 描述 |
|---|---|---|
| API Key | Authorization: Bearer sk-... | 平台自动从你的 HD 钱包签名 x402 |
| 私钥(x402) | 通过 SDK 自动 | Agent 直接从自身钱包签名 x402 |
详见 Agent 支付(x402) 了解完整详情。
端点
POST /v1/images/generations
根据文本提示词生成图像。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型标识符(见下方可用模型) |
| prompt | string | 是 | 要生成的图像文本描述 |
| n | integer | 否 | 生成图像数量(默认: 1) |
| size | string | 否 | 图像尺寸(默认: "1024x1024") |
| quality | string | 否 | "standard" 或 "hd"(取决于模型) |
| response_format | string | 否 | 输出格式: "url" 或 "b64_json"(默认: "url") |
| style | string | 否 | 图像风格: "vivid" 或 "natural"(仅 DALL·E 3,当前未上架) |
| user | string | 否 | 终端用户唯一标识符 |
| background | string | 否 | 背景模式: "transparent" 或 "opaque"(gpt-image-1+) |
| output_format | string | 否 | 文件格式: "png", "jpeg", "webp"(gpt-image-1+) |
| output_compression | integer | 否 | 有损格式压缩级别 0–100(jpeg/webp) |
| moderation | string | 否 | 内容审核级别: "auto" 或 "low" |
| watermark | boolean | 否 | 是否添加隐形水印(默认: true) |
图像编辑参数
以下额外参数适用于 /v1/images/edits:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| images | array | 是 | 用于编辑的输入图像(base64 或 URL) |
| mask | string/file | 否 | 蒙版图像,指示要编辑的区域(透明 = 编辑区域) |
| input_fidelity | string | 否 | 对输入的遵循程度: "low", "medium", "high" |
| partial_images | integer | 否 | 流式模式下的中间帧数 |
响应
json
{
"id": "cbdf0464-0ca8-476e-8bf9-e0d66dc21efa",
"status": "queued",
"poll_url": "/v1/images/generations/cbdf0464-0ca8-476e-8bf9-e0d66dc21efa"
}轮询直到完成:
json
{
"status": "completed",
"data": [
{
"url": "https://cdn.jarvisclaw.ai/images/cbdf0464-...png",
"revised_prompt": "..."
}
]
}异步流程
图像生成使用异步轮询模式:
- 提交 — POST 返回
id+poll_url,状态为queued - 轮询 — GET
poll_url每 5 秒检查一次,直到status: "completed" - 结果 —
data数组包含生成的图像 URL
SDK 自动处理轮询 — 你只需等待结果。
可用模型
默认 1024×1024 下的参考价。更大尺寸费用更高。
| 模型 | 尺寸 | 价格/张 |
|---|---|---|
auto/image(智能路由) | 依路由模型 | 按实际路由模型计费 |
openai/gpt-image-1 | 1024x1024, 1536x1024, 1024x1536 | $0.021 |
openai/gpt-image-2 | 1024x1024, 1536x1024, 1024x1536 | $0.063 |
google/nano-banana | 1024x1024 | $0.053 |
google/nano-banana-pro | 1024x1024, 2048x2048, 4096x4096 | $0.105 |
zai/cogview-4 | 512x512 – 1440x1440(16 的倍数) | $0.015 |
xai/grok-imagine-image | 1024x1024 | $0.021 |
xai/grok-imagine-image-pro | 1024x1024 | $0.074 |
以下模型当前未上架
openai/dall-e-3、openai/dall-e-3-hd、stability/*、flux/*、ideogram/*、recraft/v3、 google/imagen-3 都不在当前模型清单内。请以 GET /v1/models 为准。 style 参数(vivid/natural)依赖 DALL·E 3,因此在上表模型上无效。
代码示例
bash
# 步骤 1: 提交生成请求
curl -X POST https://api.jarvisclaw.ai/v1/images/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-image-1",
"prompt": "日落时分的未来主义城市景观,有飞行汽车",
"size": "1024x1024",
"quality": "hd"
}'
# → {"id": "cbdf0464-...", "status": "queued", "poll_url": "/v1/images/generations/cbdf0464-..."}
# 步骤 2: 每 5 秒轮询直到完成
curl https://api.jarvisclaw.ai/v1/images/generations/cbdf0464-0ca8-476e-8bf9-e0d66dc21efa \
-H "Authorization: Bearer sk-your-api-key"
# → {"status": "completed", "data": [{"url": "https://cdn.jarvisclaw.ai/...png"}]}python
import requests
import time
BASE = "https://api.jarvisclaw.ai/v1"
HEADERS = {"Authorization": "Bearer sk-your-api-key", "Content-Type": "application/json"}
# 步骤 1: 提交
resp = requests.post(f"{BASE}/images/generations", headers=HEADERS, json={
"model": "openai/gpt-image-1",
"prompt": "日落时分的未来主义城市景观,有飞行汽车",
"size": "1024x1024",
"quality": "hd",
})
job = resp.json()
poll_url = BASE.split("/v1")[0] + job["poll_url"]
# 步骤 2: 轮询直到完成(约 20-40 秒)
while True:
time.sleep(5)
result = requests.get(poll_url, headers=HEADERS).json()
if result["status"] == "completed":
print(result["data"][0]["url"])
breakpython
from jarvisclaw import ImageClient
# ─── 选项 A: Base 链 (EVM) ───
# 十六进制私钥 → Base 上的 USDC (Chain ID 8453)
image = ImageClient(private_key="0x<evm-private-key>")
# ─── 选项 B: Solana ───
# Base58 密钥对 → Solana 主网上的 USDC SPL
# image = ImageClient(private_key="<solana-bs58-keypair>")
# SDK 从密钥格式自动检测链 — 无需配置
# 智能路由(自动选择最佳模型)
result = image.generate("日落时分的未来主义城市景观,有飞行汽车", size="1024x1024")
print(result.url)
# 指定模型
result = image.generate("日落时分的未来主义城市景观", model="openai/gpt-image-1", size="1024x1024")
print(result.url)go
package main
import (
"context"
"fmt"
jc "github.com/api-jarvisclaw/go-sdk/v2"
)
func main() {
ctx := context.Background()
ic, _ := jc.NewImageClient(jc.WithAPIKey("sk-your-api-key"))
// 智能路由(自动选择最佳模型)
img, _ := ic.Generate(ctx, "日落时分的未来主义城市景观,有飞行汽车",
jc.WithSize("1024x1024"))
fmt.Printf("图像 URL: %s\n", img.URL)
// 指定模型
img, _ = ic.Generate(ctx, "日落时分的未来主义城市景观",
jc.WithImageModel("openai/gpt-image-1"), jc.WithSize("1024x1024"))
fmt.Printf("图像 URL: %s\n", img.URL)
}go
package main
import (
"context"
"fmt"
jc "github.com/api-jarvisclaw/go-sdk/v2"
)
func main() {
ctx := context.Background()
// x402 Agent 钱包 — 通过 Base 上的 USDC 按调用付费 (Chain ID 8453)
ic, _ := jc.NewImageClient(jc.WithPrivateKey("0x<evm-private-key>"))
// 智能路由(自动选择最佳模型)
img, _ := ic.Generate(ctx, "日落时分的未来主义城市景观,有飞行汽车",
jc.WithSize("1024x1024"))
fmt.Printf("图像 URL: %s\n", img.URL)
// 指定模型
img, _ = ic.Generate(ctx, "日落时分的未来主义城市景观",
jc.WithImageModel("openai/gpt-image-1"), jc.WithSize("1024x1024"))
fmt.Printf("图像 URL: %s\n", img.URL)
}