接入流程
普通接入无需调用全部接口。先在网站创建 API Key,按下面的流程选择自己需要的功能即可。
选择模型 → 上传素材(文生图/文生视频可跳过)→ 提交一个创作接口 → 按批次查询并下载
模型列表可在接入时获取并保存所选 modelCode,无需每次任务都查询;模型下架或能力调整时重新获取。
每种功能实际需要什么
| 功能 | 核心参数 | 素材 |
|---|---|---|
| 文字生图 / 生视频 | modelCode、prompt | 无 |
| 参考图生图 / 生视频 | modelCode、prompt、refImageKeys | 先上传并登记参考图 |
| 抠图 | modelCode(推荐)、imageKeys | 一张或多张图片 |
| 消除 | modelCode(推荐)、imageKey、maskKey | RGB 原图 + 同尺寸 PNG 蒙版 |
| 放大 | modelCode(推荐)、imageKey | 原图 |
| 图片翻译 | modelCode(推荐)、imageKeys、源语言、目标语言 | 图片 |
| 视频翻译 | modelCode(推荐)、videoKey、源语言、目标语言 | 视频 |
比例、清晰度、数量、保护商品文字、配音等都是按需选项。每个功能页先展示核心参数,并可切换查看网站实际发送的设置示例。
1. 注册并登录网站,充值积分,在「鉴权与 API Key」创建密钥。
2. 调用 GET /models,选择实际可用的 modelCode,按模型支持能力传参。
3. 有素材时先上传并登记,再提交生成,保存 batchNo 和 taskNo。
4. 轮询任务,成功后下载 assets 中的结果。接口接收成功不表示生成完成。
Base URL: https://wacaoai.com/api/v1
Authorization: Bearer $WACAO_API_KEY
Content-Type: application/json私有部署请替换域名。示例里的尖括号是待替换值。页面不直接执行计费请求,复制示例到服务端运行。
Python:生图到获取结果
# pip install requests
import os, time, requests
base = os.environ.get('WACAO_BASE_URL', 'https://wacaoai.com/api/v1')
session = requests.Session()
session.headers['Authorization'] = 'Bearer ' + os.environ['WACAO_API_KEY']
def call(method, path, **kwargs):
response = session.request(method, base + path, timeout=120, **kwargs)
body = response.json()
if not response.ok or body.get('code') != 0:
raise RuntimeError(str(body))
return body.get('data')
models = call('GET', '/models?category=IMAGE')
model = next(m for m in models if 'T2I' in m['supportModes'])
# 此 POST 会消耗账户积分;请先确认模型价格。
batch = call('POST', '/gen/image', json={
'modelCode': model['modelCode'], 'mode': 'T2I',
'prompt': '白色背景上的商品摄影', 'n': 1
})
deadline = time.monotonic() + 900
while time.monotonic() < deadline:
tasks = call('GET', '/tasks/batch/' + batch['batchNo'])
if any(t['status'] == 'SUBMIT_UNKNOWN' for t in tasks):
raise RuntimeError('受理结果未知:保留 batchNo 联系支持,不要重发')
if tasks and all(t['status'] in ('SUCCESS','FAILED','TIMEOUT','CANCELED') for t in tasks):
for t in tasks:
if t['status'] == 'SUCCESS':
print([a['url'] for a in t.get('assets', [])])
else:
print(t['taskNo'], t['status'], t.get('errorMessage'))
break
time.sleep(5)
else:
raise TimeoutError('保留 batchNo,稍后查询,不要重新提交')Apifox:导入 → OpenAPI/Swagger → 上传下载的 openapi.json;设置环境 Base URL 和 Bearer Token。默认导入文件只含 11 个常用接口;进阶模式可下载完整目录。