跳到主要内容

Python 示例

安装依赖

pip install requests

完整示例:生图 + 轮询结果

import requests
import time

BASE_URL = "https://pico.5884.cn"
API_KEY = "sk-你的API密钥"

headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}


def generate_image(prompt, model="GEM-3.0", size="1024x1024"):
"""提交生图任务"""
resp = requests.post(
f"{BASE_URL}/v1/images/generations",
headers=headers,
json={
"model": model,
"prompt": prompt,
"size": size,
},
)
resp.raise_for_status()
data = resp.json()
print(f"任务已提交: {data['task_id']}")
return data["task_id"]


def poll_result(task_id, timeout=120, interval=3):
"""轮询任务结果"""
start = time.time()
while time.time() - start < timeout:
resp = requests.get(
f"{BASE_URL}/v1/videos/generations/{task_id}",
headers=headers,
)
data = resp.json()
status = data["status"]

if status == "success":
url = data["data"][0]["url"]
print(f"✅ 生成完成: {url}")
return url
elif status == "failed":
print(f"❌ 生成失败: {data.get('error', {}).get('message')}")
return None
else:
progress = data.get("progress", "")
print(f"⏳ {status} {progress}")
time.sleep(interval)

print("⏰ 超时")
return None


# 使用示例
if __name__ == "__main__":
task_id = generate_image("一只可爱的卡通猫咪,坐在窗台上看日落")
url = poll_result(task_id)
if url:
# 下载图片
img = requests.get(url)
with open("output.png", "wb") as f:
f.write(img.content)
print("图片已保存到 output.png")

视频生成示例

def generate_video(prompt, model="GV-3.1"):
"""提交生视频任务"""
resp = requests.post(
f"{BASE_URL}/v1/videos/generations",
headers=headers,
json={
"model": model,
"prompt": prompt,
"output_config": {
"Resolution": "1080P",
"AspectRatio": "16:9",
},
},
)
resp.raise_for_status()
data = resp.json()
print(f"视频任务已提交: {data['task_id']}")
return data["task_id"]


# 视频生成(轮询间隔建议 5s,超时 5min)
task_id = generate_video("一只金毛犬在花田里奔跑")
url = poll_result(task_id, timeout=300, interval=5)