Python 对接 FrameFlow 模型 API
最后更新:2026-10-24
本文介绍如何用 Python 对接 FrameFlow 模型API中转站:接口地址 https://yimiagent.cn/v1,生图和生视频是「提交任务 → 查询结果」的异步接口,对话接口与 OpenAI 兼容。
1. 准备 API Key
登录 FrameFlow →「API 接入」→ 创建 API Key(以 ffk_ 开头,只显示一次,请立即保存),建议放进环境变量 FRAMEFLOW_API_KEY。
pip install requests openai
export FRAMEFLOW_API_KEY=ffk_xxxxxxxx2. 图生视频:提交任务并下载结果
提交后拿到任务 id,每 5–10 秒查询一次,状态变成 succeeded 后下载 outputs。结果链接 7 天内有效。
import os, time, requests
BASE = "https://yimiagent.cn/v1"
H = {"Authorization": "Bearer " + os.environ["FRAMEFLOW_API_KEY"]}
task = requests.post(f"{BASE}/videos/generations", headers=H, json={
"model": "seedance-2.0",
"prompt": "镜头缓缓推进,女孩回头微笑,樱花飘落",
"first_frame_url": "https://example.com/girl.jpg",
"duration": 5,
}, timeout=60).json()
if "error" in task:
raise SystemExit(task["error"])
while task["status"] in ("queued", "running"):
time.sleep(8)
task = requests.get(f"{BASE}/tasks/{task['id']}", headers=H, timeout=30).json()
if task["status"] == "succeeded":
for i, o in enumerate(task["outputs"]):
open(f"result_{i}.mp4", "wb").write(requests.get(o["url"], timeout=120).content)
print("花费", task["credits"], "积分")
else:
print("失败:", task["error"]["message"])3. 文生图
task = requests.post(f"{BASE}/images/generations", headers=H, json={
"model": "gpt-image-2.5",
"prompt": "一只橘猫坐在窗台上,午后阳光,胶片质感",
"aspect_ratio": "1:1",
}, timeout=60).json()
# 之后同样用 GET /tasks/{id} 查询结果4. 对话:直接用 OpenAI SDK
from openai import OpenAI
client = OpenAI(base_url="https://yimiagent.cn/v1", api_key=os.environ["FRAMEFLOW_API_KEY"])
r = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[{"role": "user", "content": "用三句话介绍图生视频"}],
)
print(r.choices[0].message.content, r.usage)可用的模型 ID 和价格见 模型API中转站,或调用 GET /v1/models。
5. 先查价格再提交
POST /v1/quote 参数与生成接口相同,另加 type(image 或 video),返回本次需要的积分,不扣费。网络超时重试时在请求头加 Idempotency-Key,不会重复下单。