LogoApinfer文档

API指南

将Apinfer AI模型集成到您的应用程序中

API指南

基础URL

https://apinfer.com/api/v1

认证

在Authorization头部包含您的API密钥:

Authorization: Bearer YOUR_API_KEY

生成图像(异步)

端点:POST /api/generate-images,然后轮询 GET /api/generations/{id}

  1. 入队生成

请求:

{
  "prompt": "美丽的山间日落",
  "negative_prompt": "模糊,低质量",
  "aspect_ratio": "1:1",
  "seed": 12345,
  "model": "Qwen-Image"
}

提示:图像编辑模型(例如 Qwen-Image-Edit-2509)需要传入 images(base64 数组)。

响应(202):

{
  "success": true,
  "data": { "job_id": "<id>", "status": "queued", "credit_cost": 1.75 },
  "message": "Image generation enqueued using model Qwen-Image"
}
  1. 轮询任务状态

请求:GET /api/generations/<job_id>

响应:

  • 处理中:
{ "success": true, "data": { "status": "queued" } }
  • 成功:
{
  "success": true,
  "data": {
    "status": "succeeded",
    "type": "image",
    "model": "Qwen-Image",
    "result": { "images": ["<base64>"], "seed": 12345 },
    "credit_cost": 1.75
  }
}
  • 失败:
{ "success": true, "data": { "status": "failed", "error": "..." } }

错误处理

401 未授权:

{
  "success": false,
  "error": "无效或过期的API密钥",
  "message": "请检查您的API密钥并重试"
}

402 积分不足:

{
  "success": false,
  "error": "积分不足",
  "message": "您需要10积分来生成1024x1024图像。您有5积分。"
}

代码示例

cURL

# 1) 入队
curl -X POST "https://apinfer.com/api/generate-images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "美丽的山间日落",
    "aspect_ratio": "1:1",
    "model": "Qwen-Image"
  }'

# 2) 轮询(用上一步返回的 job_id 替换 <job_id>)
curl -X GET "https://apinfer.com/api/generations/<job_id>" \
  -H "Authorization: Bearer YOUR_API_KEY"

Python

import requests
import time

enqueue = requests.post(
    "https://apinfer.com/api/generate-images",
    headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "prompt": "美丽的山间日落",
        "aspect_ratio": "1:1",
        "model": "Qwen-Image"
    }
).json()

if not enqueue.get("success"):
    raise Exception(enqueue.get("message") or enqueue.get("error"))

job_id = enqueue["data"]["job_id"]

for _ in range(60):
    r = requests.get(
        f"https://apinfer.com/api/generations/{job_id}",
        headers={"Authorization": "Bearer YOUR_API_KEY"}
    ).json()
    status = r.get("data", {}).get("status")
    if status in ("queued", "processing"):
        time.sleep(2)
        continue
    if status == "succeeded":
        print("Generated images:", r["data"]["result"]["images"])
    else:
        print("错误:", r.get("message") or r.get("error"))
    break

JavaScript

// 1) 入队
const response = await fetch('https://apinfer.com/api/generate-images', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    prompt: '美丽的山间日落',
    aspect_ratio: '1:1',
    model: 'Qwen-Image'
  })
});

const enqueue = await response.json();
if (!enqueue.success) {
  throw new Error(enqueue.message || enqueue.error);
}
const jobId = enqueue.data.job_id;

// 2) 轮询
async function poll() {
  const r = await fetch('https://apinfer.com/api/generations/' + jobId, {
    headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
  });
  return r.json();
}

let status;
do {
  const data = await poll();
  status = data?.data?.status;
  if (status === 'queued' || status === 'processing') {
    await new Promise(r => setTimeout(r, 2000));
  } else if (status === 'succeeded') {
    console.log('Generated images:', data.data.result.images);
  } else {
    console.error('错误:', data?.message || data?.error);
  }
} while (status === 'queued' || status === 'processing');

API密钥管理

创建API密钥

  1. 前往您的仪表板
  2. 导航到API密钥
  3. 点击**"创建新API密钥"**
  4. 输入名称并点击**"生成密钥"**
  5. 复制并安全存储

安全

  • 将API密钥存储在环境变量中
  • 永远不要将密钥提交到版本控制
  • 定期轮换密钥
  • 在仪表板中监控使用情况

支持