管理员登录
正在验证当前会话。
正在验证当前会话。
chrome://extensions 或 edge://extensions 点击“重新加载”。不同浏览器个人资料需分别升级。管理 Muse 工作台的登录账号及创作权限。上游 Muse 会话在「账号池」管理。
| 用户名 | 邮箱 | 状态 | 创作权限 | 操作 |
|---|
磁盘容量包含同一文件系统上的其他项目和系统文件。
最近检查 —
| 磁盘位置 | 总容量 | 已使用 | 可用 | 占用比例 |
|---|
按 Muse 管理的目录统计文件大小和数量。
| 统计范围 | 文件大小 | 文件数 | 状态 |
|---|
仅统计本站登记且已确认内容的图片附件,不代表整个 Release、仓库或组织的用量。
仓库 — · 发布版本 —
| 附件类型 | 已登记占用 | 附件数 | 其中待删占用 |
|---|
待删除(含已到期)和未完成上传的已核验附件均包含在登记总数中;确认永久删除后移除。
最近检查 —
占用量仅统计下方 Release 中供 Muse 下载的 ZIP 资源。
仓库 — · 发布版本 —
最近检查 —
CNB 按自然月的日均用量计费。下方数据覆盖整个组织的对象存储。
最近检查 —
接入密钥可在服务器私有配置中查看。
muse-spark(对话/代码)、muse-image(生图)、muse-video(生视频)。
完整调用示例见「接入文档」页签。
hatch_sess。hatch_vml 为可选工作区令牌,缺少时不阻止导入。
批量导入时每行一个账号,格式 标签 | cookie串(标签可省略)。
| 标签 | 账号 ID | 状态 | 有效期 | 额度 | 启用 | Cookie | 最后使用 | 备注 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| 加载中… | |||||||||
httpOnly 标记,网页脚本(F12 里敲 document.cookie、
小书签)读不到;只有浏览器扩展的 cookies 接口能拿到。
D:\muse2api-extension。
chrome://extensions 回车https://muse.ai/ 并登录
(登录到能看到聊天界面为止),再点浏览器工具栏上的扩展图标,
把下面两项填进去,点「读取并导入」。
cookie: 一行包含 httpOnly 的那几条,Console 读不到。
https://muse.ai/,停在聊天界面cookie: 开头的那一行,把冒号后面的整串复制
(从 hatch_sess= 开始,一直到行尾)cookie:,不是「响应标头」。
响应标头里的 set-cookie 只有部分 cookie,会缺东西。
复制正在生成命令…
| cookie | httpOnly | 实测有效期 | 作用 |
|---|---|---|---|
| hatch_sess | 是 | 约 30 天 | 主会话,决定能不能登录 |
| hatch_gw | 是 | 约 1 年 | 可选的网关路由缓存(不是登录必要项) |
| hatch_vml | 是 | 约 2 天 | 可选工作区令牌,不是导入必要项 |
| hatch_native_auth_device | 是 | 约 30 天 | 可选设备标识(匿名访客也有,不是登录凭证) |
| 任务 ID | 类型 | 提示词 | 状态 | 耗时 | 创建时间 | 结果 / 错误 | |
|---|---|---|---|---|---|---|---|
| 加载中… | |||||||
base_url 和 api_key。
—
| 模型 ID | 用途 | 接口 |
|---|---|---|
| muse-spark | 文本 / 代码对话(支持流式) | POST /v1/chat/completions POST /v1/responses |
| muse-image | 文生图 / 图像编辑 | POST /v1/images/generations |
| muse-video | 文生视频 / 图生视频 | POST /v1/videos → GET /v1/videos/{id} |
model 字段只用于兼容下游 —— 传 gpt-4o、
claude-sonnet-4、dall-e-3 等常见名字会自动映射到对应能力。
复制# 非流式 curl -X POST "BASE/v1/chat/completions" \ -H "Authorization: Bearer $MUSE2API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"muse-spark","messages":[{"role":"user","content":"写一个 Python 快排"}]}' # 流式:加 "stream":true,返回标准 SSE(data: {...} / data: [DONE])
复制curl -X POST "BASE/v1/images/generations" \ -H "Authorization: Bearer $MUSE2API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"一只戴宇航头盔的柴犬","size":"1:1","response_format":"url"}' # 返回 {"created":1790148495,"data":[{ "revised_prompt":"一只戴宇航头盔的柴犬", "url":"http://your-server:18610/v1/media/xxxx.webp", "kind":"image","bytes":23860}]} # url 是完整绝对地址,可直接给下游渲染 / 下载;/v1/media/* 无需鉴权。 # 想要 base64 就传 "response_format":"b64_json"。
复制# ① 创建任务 curl -X POST "BASE/v1/videos" \ -H "Authorization: Bearer $MUSE2API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"一只小猫在草地上走动","duration":5,"size":"16:9"}' # → {"id":"task_xxx","status":"queued"} # ② 轮询结果 curl "BASE/v1/videos/task_xxx" -H "Authorization: Bearer $MUSE2API_KEY" # → {"status":"succeeded","result":{"url":"/v1/media/xxx.mp4"}}
复制from openai import OpenAI import time client = OpenAI(base_url="BASE/v1", api_key="m2a_...") # 生图 r = client.images.generate(model="muse-image", prompt="一只戴宇航头盔的柴犬") print(r.data[0].url) # 生视频(走原生接口,因为是异步任务) import requests t = requests.post("BASE/v1/videos", json={"prompt":"小猫走动","duration":5}, headers={"Authorization":"Bearer m2a_..."}).json() while True: s = requests.get(f"BASE/v1/videos/{t['id']}", headers={"Authorization":"Bearer m2a_..."}).json() if s["status"] in ("succeeded","failed"): break time.sleep(5) print(s)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /admin/status | 服务总览 + 账号池 + 最近任务 |
| GET | /admin/accounts | 账号列表 |
| POST | /admin/accounts | 添加账号(单条 / batch 批量文本) |
| PATCH | /admin/accounts/{id} | 改标签 / 启用禁用 |
| DELETE | /admin/accounts/{id} | 删除账号 |
| POST | /admin/accounts/{id}/test | 真实校验会话有效性(顺带刷新额度) |
| POST | /admin/accounts/{id}/quota | 实时读取该账号剩余额度 |
| POST | /admin/accounts/{id}/cookies | 更新该账号 cookie |
| GET | /admin/tasks | 任务记录 |
| GET | /admin/media | 媒体库列表 |
| POST | /admin/media/delete | 批量删除媒体文件 |
/healthz、/readyz、/v1/media/* 外,其余接口均需
Authorization: Bearer <API Key>。API Key 在服务器
/opt/muse2api/.env 的 MUSE2API_KEY 中配置。
| 配置项 | 填什么 |
|---|---|
| Base URL / API 地址 | http://<你的服务器IP或域名>:18610/v1 |
| API Key | m2a_...(本页顶部「接入信息」里那个) |
| 模型名 | muse-spark |
gpt-4o、gpt-5、
claude-sonnet-4、deepseek-chat、gemini-2.5-pro 等)
会自动映射到对应能力;完全没见过的名字会原样透传,muse.ai 那边本来就是自动路由,
不影响结果。
| 客户端类型 | 依赖能力 | 状态 |
|---|---|---|
| 对话 / 聊天类(桌面端、Web UI、浏览器插件) | POST /v1/chat/completions | ✅ 可用 |
| 流式输出(打字机效果) | stream:true(标准 SSE) | ✅ 可用 |
| 代码补全 / 内联补全插件 | POST /v1/chat/completions | ✅ 可用 |
| 翻译 / 总结 / 解释类工具 | POST /v1/chat/completions | ✅ 可用 |
| 画图类客户端 | POST /v1/images/generations | ✅ 可用 |
| 视频生成客户端 | POST /v1/videos(异步轮询) | ✅ 可用 |
| 需要「工具调用」的自主 Agent 模式 | tool_calls / function calling | ⚠️ 不可用 |
tool_calls 的自主 Agent 模式(自动读写文件、执行命令那一类)接不了;
但所有问答式用法 —— 对话、写代码、解释、翻译、总结、生图、生视频 —— 全部完全可用。tools 字段,接口不会报错,会忽略工具声明、按普通对话正常回答。