跳转到主要内容

第一步:获取 API Key

访问 API Keys 管理页面 创建您的 API 密钥。
  1. 登录您的 SinanCode 账户
  2. 进入 Dashboard → API Keys
  3. 点击「创建新密钥」
  4. 保存生成的 API Key(请妥善保管,仅显示一次)

第二步:发起 API 请求

所有 API 请求需要在 HTTP Header 中包含认证信息:
Authorization: Bearer YOUR_API_KEY

基础请求示例

以下是一个使用 Imagen4 生成图片的完整示例:
curl -X POST https://api.sinancode.com/v1/generate/k/imagen4 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a beautiful sunset over the mountains",
    "aspect_ratio": "16:9",
    "num_images": 1
  }'
响应示例:
{
  "task_id": "01234567-89ab-cdef-0123-456789abcdef"
}

第三步:查询任务状态

由于 AI 模型生成需要时间,大多数 API 采用异步方式。使用返回的 task_id 查询任务状态:
curl -X GET https://api.sinancode.com/v1/tasks/01234567-89ab-cdef-0123-456789abcdef \
  -H "Authorization: Bearer YOUR_API_KEY"
响应示例:
{
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "status": "completed",
  "result": [
    "https://storage.example.com/generated-image.jpg"
  ]
}

任务状态说明

  • pending - 任务排队中
  • processing - 正在生成
  • completed - 生成完成
  • failed - 生成失败

常用模型快速参考

图片生成模型

Imagen 4

  • 端点: POST /generate/k/imagen4
  • 特点: Google 最新图片生成模型,质量优秀
  • 参数: prompt, aspect_ratio, num_images, seed

Midjourney

  • 端点: POST /generate/k/midjourney-txt2img
  • 特点: 艺术风格强,适合创意设计
  • 参数: prompt, aspectRatio, version, stylization

Flux Kontext

  • 端点: POST /generate/k/flux-kontext
  • 特点: 支持中文提示词,自动翻译
  • 参数: prompt, aspect_ratio, model, enable_translation

视频生成模型

Sora 2

  • 端点: POST /generate/k/sora2-text-to-video
  • 特点: OpenAI 视频生成模型
  • 参数: prompt, aspect_ratio, n_frames

Veo 3

  • 端点: POST /generate/k/veo3-text-to-video
  • 特点: Google 视频生成模型,支持图生视频
  • 参数: prompt, aspectRatio, model

完整代码示例

Python 示例

import requests
import time

API_KEY = "your_api_key_here"
BASE_URL = "https://api.sinancode.com/v1"

# 创建任务
response = requests.post(
    f"{BASE_URL}/generate/k/imagen4",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "prompt": "a futuristic cityscape at sunset",
        "aspect_ratio": "16:9",
        "num_images": 1
    }
)

task_id = response.json()["task_id"]
print(f"任务创建成功,ID: {task_id}")

# 轮询任务状态
while True:
    status_response = requests.get(
        f"{BASE_URL}/tasks/{task_id}",
        headers={"Authorization": f"Bearer {API_KEY}"}
    )

    task = status_response.json()
    status = task["status"]

    print(f"任务状态: {status}")

    if status == "completed":
        print(f"生成完成!图片地址: {task['result'][0]}")
        break
    elif status == "failed":
        print(f"生成失败: {task.get('error_msg', 'Unknown error')}")
        break

    time.sleep(2)  # 等待 2 秒后重试

JavaScript/TypeScript 示例

const API_KEY = "your_api_key_here";
const BASE_URL = "https://api.sinancode.com/v1";

async function generateImage() {
  // 创建任务
  const createResponse = await fetch(`${BASE_URL}/generate/k/imagen4`, {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      prompt: "a serene mountain landscape",
      aspect_ratio: "16:9",
      num_images: 1
    })
  });

  const { task_id } = await createResponse.json();
  console.log(`任务创建成功,ID: ${task_id}`);

  // 轮询任务状态
  while (true) {
    const statusResponse = await fetch(`${BASE_URL}/tasks/${task_id}`, {
      headers: { "Authorization": `Bearer ${API_KEY}` }
    });

    const task = await statusResponse.json();
    console.log(`任务状态: ${task.status}`);

    if (task.status === "completed") {
      console.log(`生成完成!图片地址: ${task.result[0]}`);
      break;
    } else if (task.status === "failed") {
      console.log(`生成失败: ${task.error_msg}`);
      break;
    }

    await new Promise(resolve => setTimeout(resolve, 2000)); // 等待 2 秒
  }
}

generateImage();

下一步

  • 📖 查看完整 API 文档 - 了解所有可用模型和参数
  • 💰 查看积分消耗 - 使用 /calculate-credits/{model} 端点计算成本
  • 🔔 配置 Webhook - 任务完成时自动通知您的服务器

常见问题

如何选择合适的模型?

  • 追求质量: Imagen 4 Ultra, Midjourney v7
  • 追求速度: Imagen 4 Fast, Nano Banana
  • 中文提示词: Flux Kontext, 通义万相
  • 视频生成: Sora 2 Pro, Veo 3

请求限制是什么?

每个 API Key 都有速率限制,具体限制取决于您的订阅计划。超出限制时会返回 429 Too Many Requests 错误。

如何计算积分消耗?

使用积分计算 API:
curl -X POST https://api.sinancode.com/v1/calculate-credits/k/imagen4 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"num_images": 2}'
需要帮助?访问 sinancode.com 联系我们的技术支持团队。