Skip to main content

概述

所有生成请求都遵循相同的基本生命周期: Job lifecycle diagram

任务状态

queued 任务在队列中等待处理 backlogged 任务因当前并发上限而在等待 scheduled 任务已被接受并计划处理 processing 任务正在由 worker 处理中 sampling 任务正在生成输出样本 intermediate-complete 任务已有中间结果,可能仍在继续处理 completed 任务成功完成,结果位于 result.urls failed 任务因错误失败,详情位于 result.error cancelled 任务已被用户或系统取消

失败与取消

任务可能因以下原因失败:
  • 生成服务的 API 错误
  • 无效参数或不支持的配置
  • 内容审核(NSFW 过滤)
  • 自动超时检测(托管工具为 3 分钟,外部提供方为 2 小时)
取消任务:/jobs/{id} 发送 DELETE 请求。注意:任务只能在状态为 queuedprocessing 时才可以取消。
重要: 失败和取消的任务不会计费。你只需为已完成的任务付费。

检查任务状态

通过向 /jobs/{id} 发送 GET 请求来轮询任务状态。推荐做法:
  • 任务处于 pending 状态(backloggedqueuedscheduledprocessingsamplingintermediate-complete)时,每 2–5 秒轮询一次
  • 对长时间运行的任务使用指数退避
  • 当状态变为 completedfailedcancelled 时停止轮询
  • 部分任务在 processing 期间可能会在响应中包含预览图
轮询实现示例:
// npm install @krea-ai/sdk
import { Krea } from "@krea-ai/sdk";

const krea = new Krea({ apiKey: process.env.KREA_API_KEY });

async function waitForJob(jobId) {
  const job = await krea.jobs.wait(jobId, { intervalMs: 2000 });
  return job.result;
}

下一步

Webhooks

在任务完成时收到通知

速率限制

了解各套餐层级的 API 限制

Model APIs

探索所有可用端点及参数

API Keys & Billing

创建和管理你的 API 密钥