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:PORT、HOST:PORT:user:pass 或 socks5://...。开启后,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"}'