生成图片
描述画面,选择模型与画质,右侧实时跟踪任务
1
2
3
4
张并行
高级选项(负面提示词 / 种子)
个人中心
查看余额、消费记录与账号安全设置
账户信息
用户名
—
积分余额
—
注册时间
—
使用的邀请码
—
修改密码
积分流水
| 时间 | 类型 | 变动 | 余额 | 原因 |
|---|---|---|---|---|
| 加载中… | ||||
素材库
管理您的图片和音频素材,用于视频生成
加载中…
生成视频
配置参考素材与镜头描述,任务队列自动调度
创作配置
添加参考素材并描述你想要生成的视频内容
API 密钥
通过 HTTP 接口调用图片生成和视频生成,与网页共用同一账户积分
我的密钥
| 名称 | 密钥前缀 | 最后使用 | 创建时间 | 操作 |
|---|---|---|---|---|
| 加载中… | ||||
API 接入文档
REST API 使用 HTTPS 访问,提交成功后返回异步任务,请轮询任务状态获取结果。
Base URL
https://your-domain.com/api
认证方式
Authorization: Bearer ak-xxxxxxxx
密钥安全密钥仅在创建时完整显示一次。请保存在服务端环境变量中,不要写入前端代码、公开仓库或日志。
端点目录
所有端点均需 Bearer 认证| 方法 | 端点 | 说明 |
|---|---|---|
| POST | /api/images/generate | 文生图,使用表单参数 |
| POST | /api/images/edit | 图生图,上传一张或多张参考图 |
| GET | /api/images/task/{id} | 查询图片任务状态 |
| GET | /api/images/history | 查询图片生成历史 |
| POST | /api/videos/reference/generate | 参考生成,支持全模态素材 |
| POST | /api/videos/first_frame/generate | 使用首帧图片生成视频 |
| GET | /api/videos/task/{task_id} | 查询视频任务状态 |
| GET | /api/videos/history | 查询视频生成历史 |
| GET | /api/videos/{task_id}/file | 下载已完成的视频文件 |
图片生成参数
multipart/form-data| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
prompt | string | 是 | — | 图片描述,不能为空 |
size | string | 否 | 1:1 | 画面比例;以 GET /api/images/models 返回为准 |
quality | string | 否 | auto | auto、2k 或 4k,受模型能力限制 |
config_id | integer | 否 | 系统默认 | 图片模型配置 ID |
negative_prompt | string | 否 | — | 不希望出现在画面中的内容 |
seed | integer | 否 | 随机 | 随机种子,用于提高结果可复现性 |
images | file[] | 图生图必填 | — | 仅用于 /images/edit,最多 6 张参考图 |
reference_task_id | integer | 否 | — | 复用本人历史图生图任务的原参考图;与 images 二选一 |
视频生成参数
application/json| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
prompt | string | 是 | — | 视频提示词,最长 4000 字符 |
duration | integer | 否 | 5 | 时长 1–60 秒,最终范围以模型配置为准 |
resolution | string | 否 | 720p | 480p、720p 或 1080p |
aspect_ratio | string | 否 | 16:9 | 如 16:9、9:16、1:1、4:3、3:4 |
model | string | 否 | 系统默认 | 公开模型名称;可先调用 GET /api/videos/configs |
config_id | integer | 否 | 系统默认 | 视频模型配置 ID,与 model 二选一 |
temp_image_urls | string[] | 否 | [] | 公网图片 URL;首帧生成至少提供一张 |
temp_video_urls | string[] | 否 | [] | 公网视频 URL,仅参考生成支持 |
temp_audio_urls | string[] | 否 | [] | 公网音频 URL,仅参考生成支持 |
generate_audio | boolean | 否 | true | 是否生成音频 |
watermark | boolean | 否 | false | 是否添加 AI 水印 |
seed | integer | 否 | 随机 | 范围 -1 至 2³²-1 |
Python · 图片生成
requestsimport requests
API_BASE = "https://your-domain.com/api"
API_KEY = "ak-xxxxxxxxxxxxxxxx"
# ── 文生图 ──
resp = requests.post(
f"{API_BASE}/images/generate",
headers={"Authorization": f"Bearer {API_KEY}"},
data={
"prompt": "一只在森林里的发光水母",
"size": "16:9",
"quality": "2k",
},
timeout=30,
)
resp.raise_for_status()
task = resp.json()
print(f"任务ID: {task['id']}")
# ── 查询任务 ──
import time
while True:
r = requests.get(
f"{API_BASE}/images/task/{task['id']}",
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=30,
)
r.raise_for_status()
data = r.json()
if data["status"] == "completed":
print(f"图片URL: {data['view_url']}")
break
elif data["status"] == "failed":
print(f"失败 [{data.get('error_code')}]: {data.get('error_message')}")
break
time.sleep(2)
Python · 视频生成
异步任务轮询import requests, time
API_BASE = "https://your-domain.com/api"
API_KEY = "ak-xxxxxxxxxxxxxxxx"
# ── 方式一:参考生成(支持图片/视频/音频素材)──
resp = requests.post(f"{API_BASE}/videos/reference/generate",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"prompt": "一只猫在草地上奔跑,阳光明媚",
"duration": 5, # 1-60 秒,受模型配置限制
"resolution": "720p", # 480p / 720p / 1080p
"aspect_ratio": "16:9" # 16:9 / 9:16 / 1:1
})
resp.raise_for_status()
# ── 方式二:首帧生成(需先上传图片,从图片生成视频)──
# 1. 先上传参考图获取临时 URL
with open("reference.jpg", "rb") as f:
upload_resp = requests.post(f"{API_BASE}/materials/upload-temp",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f})
upload_resp.raise_for_status()
temp_url = upload_resp.json()["url"]
# 2. 提交首帧生成任务
resp = requests.post(f"{API_BASE}/videos/first_frame/generate",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"prompt": "让图片中的角色微笑并挥手",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9",
"temp_image_urls": [temp_url] # 数量上限由所选模型配置决定
})
resp.raise_for_status()
# ── 轮询直到完成(两种方式通用)──
task = resp.json()
print(f"任务ID: {task['task_id']}")
while True:
r = requests.get(f"{API_BASE}/videos/task/{task['task_id']}",
headers={"Authorization": f"Bearer {API_KEY}"})
r.raise_for_status()
data = r.json()
if data["status"] == "completed":
print(f"视频URL: {data['video_url']}")
video = requests.get(data["video_url"])
with open("output.mp4", "wb") as f:
f.write(video.content)
print("视频已保存到 output.mp4")
break
elif data["status"] == "failed":
print(f"失败 [{data.get('error_code')}]: {data.get('error_message')}")
break
print(f"状态: {data['status']}, 等待中...")
time.sleep(10)
cURL · 快速调用
命令行# 文生图
curl -X POST https://your-domain.com/api/images/generate \
-H "Authorization: Bearer ak-xxxxxxxxxxxxxxxx" \
-F "prompt=一只猫" \
-F "size=1:1" \
-F "quality=2k"
# 视频生成 - 参考生成(纯文本/图片/视频/音频素材)
curl -X POST https://your-domain.com/api/videos/reference/generate \
-H "Authorization: Bearer ak-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"prompt":"一只猫在草地上奔跑","duration":5,"resolution":"720p","aspect_ratio":"16:9"}'
# 视频生成 - 首帧生成(需上传图片作为首帧)
curl -X POST https://your-domain.com/api/videos/first_frame/generate \
-H "Authorization: Bearer ak-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"prompt":"让图片中的角色微笑挥手","duration":5,"resolution":"1080p","aspect_ratio":"16:9","temp_image_urls":["https://example.com/ref.jpg"]}'
# 查询任务状态
curl https://your-domain.com/api/videos/task/任务ID \
-H "Authorization: Bearer ak-xxxxxxxxxxxxxxxx"
# 查询图片任务
curl https://your-domain.com/api/images/task/任务ID \
-H "Authorization: Bearer ak-xxxxxxxxxxxxxxxx"
状态与错误
标准 HTTP 状态码200请求成功或异步任务已创建400 / 422参数格式或取值不正确401密钥缺失、无效或已撤销402账户积分不足404任务或资源不存在429请求频率或活跃任务达到上限{
"detail": {
"error_code": "VID_20260821_A1B2C3D4",
"detail": "请求处理失败"
}
}
调用扣分规则与网页端一致。排查失败请求时,请保留响应中的 error_code 并提供给管理员。