LeoStudio 控制台 · 扩展管理 · openapi.json

LeoStudio Leonardo API

这是一个面向本地 Leonardo Cookie 账号池的中转服务,提供图片、视频、异步视频队列、代理池和受限 API Key。

认证

调用 /v1/* 时发送 X-API-Key: SERVICE_KEY 或受限 Key。后台管理发送 X-Admin-Key: ADMIN_KEY。管理页的密钥只保存在浏览器 localStorage。

同步生成

POST/v1/images/generations

{"prompt":"a cinematic portrait","model":"MODEL_ID","aspect_ratio":"1:1","n":1,"image_urls":[]}

POST/v1/videos/generations

{"prompt":"a slow camera move through a neon street","model":"seedance-2.0","aspect_ratio":"16:9","resolution":"720p","duration":4,"audio":false,"image_url":""}

同步视频会等待上游完成,最长约 8 分钟;长任务建议使用队列。

视频/图片队列

POST/v1/queue/generations

{"type":"video","prompt":"neon street","model":"seedance-2.0","aspect_ratio":"16:9","resolution":"720p","duration":4,"audio":false,"image_id":""}

返回 HTTP 202 和 job.id。轮询 GET /v1/queue/jobs/{id};列表使用 GET /v1/queue/jobs。可用 POST /v1/queue/jobs/{id}/cancel 取消 pending,或 POST /v1/queue/jobs/{id}/retry 重试失败任务。

代理池

扩展管理 中导入每行一个代理:http://user:pass@HOST:PORTHOST:PORT:user:passsocks5://...。开启后,Leonardo 的认证、GraphQL、上传和下载会在同一请求尝试中使用一个代理;未开启或池为空时使用服务器东京出口。代理明文只保存在服务器 SQLite,界面只显示脱敏地址。

受限 API Key

后台创建 Key 时可设置允许模型(空数组=全部)、最大请求数(0=不限)和过期时间。明文只显示一次;数据库只保存 SHA-256 摘要。Key 只可查看自己的队列任务。

控制台自动添加账号

在控制台“独立账号”页填写 Leonardo 邮箱和密码后,可由东京 VPS 上的隔离浏览器自动完成登录、邮箱验证码读取、Cookie 提取与账号池导入。密码只通过 HTTPS 发送,并仅在任务进程内存中使用;临时浏览器目录会在任务结束后删除。

错误与排查

401  api key required / invalid api key
403  model is not allowed for this api key
400  请求参数或 Cookie 格式错误
503  所有 Cookie 都失败,检查 /admin/status 和 Cookie 状态
202  队列已接收,按 job.status 轮询

curl 示例

curl -X POST https://le.huinongxuan.top/v1/queue/generations \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: SERVICE_KEY' \
  -d '{"type":"video","prompt":"neon street","model":"seedance-2.0","duration":4,"aspect_ratio":"16:9","resolution":"720p"}'