服务 — 账号 — 浏览器 — 自动刷新 API Key

接入信息 下游项目填这两个值

把下面两项填进你的项目就能调用。BASE URL 就是接口地址前缀。
模型名:muse-spark(对话/代码)、muse-image(生图)、muse-video(生视频)。 完整调用示例见「接入文档」页签。
账号总数
0
可用
0
异常
0
已禁用
0
媒体文件
0

添加账号 支持批量

从浏览器复制 muse.ai 的 Cookie 字符串粘贴进来即可。关键 cookie: hatch_sess、hatch_gw、hatch_vml。 批量导入时每行一个账号,格式 标签 | cookie串(标签可省略)。

账号列表 0

● 自动保活轮转中 (30m)
系统已开启后台每 30 分钟静默保活与多账号公平轮转(LRU);「测试」会真实打开 muse.ai 验证会话。
标签账号 ID状态有效期额度启用Cookie 最后使用备注操作
加载中…

生成任务记录 0

生视频是异步任务,状态会从 queued → processing → succeeded / failed。
任务 ID类型提示词状态 耗时创建时间结果 / 错误
加载中…

媒体库 0

所有已生成并落盘的图片 / 视频,可直接下载或把链接给下游项目使用。
加载中…

在线生图测试 POST /v1/images/generations

真实调用 muse.ai 生成,图片约 10–30 秒返回。

在线生视频测试 POST /v1/videos

异步任务,一般 60–120 秒完成,页面会自动轮询进度。

接入说明

接口与 OpenAI 风格对齐,下游项目只需改 base_url 和 api_key。
BASE URL:—

1. 可用模型

模型 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}
这三个就是 Muse 系列的真实能力:Muse Spark(语言 / 代码)、Muse Image(生图)、 Muse Video(生视频)。muse.ai 网页是自动路由的 agent、界面没有模型选择器, 所以 model 字段只用于兼容下游 —— 传 gpt-4o、 claude-sonnet-4、dall-e-3 等常见名字会自动映射到对应能力。

2. 对话 / 写代码

复制# 非流式
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])

3. 生图(curl)

复制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"。

4. 生视频(curl,异步)

复制# ① 创建任务
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"}}

5. Python(openai SDK 兼容)

复制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)

6. 管理接口

方法路径说明
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媒体库列表

7. 鉴权

除 /healthz、/readyz、/v1/media/* 外,其余接口均需 Authorization: Bearer <API Key>。API Key 在服务器 /opt/muse2api/.env 的 MUSE2API_KEY 中配置。

8. 接入各类客户端 / 智能体

凡是支持「自定义 OpenAI 兼容端点」的客户端,都只填三个值就能用:
配置项填什么
Base URL / API 地址http://<你的服务器IP或域名>:18610/v1
API Keym2a_...(本页顶部「接入信息」里那个)
模型名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⚠️ 不可用
关于「工具调用」这条限制(重要,已实测):
muse.ai 的网页助手对「输出伪工具调用 JSON」有明确的对齐拒绝策略 —— 实测原话是 「我不会按这种 JSON 格式输出'伪工具调用'——我没有 get_weather 这个工具」。 用三种不同措辞、不同位置的提示词协议去适配,全部失败。
所以:依赖 tool_calls 的自主 Agent 模式(自动读写文件、执行命令那一类)接不了; 但所有问答式用法 —— 对话、写代码、解释、翻译、总结、生图、生视频 —— 全部完全可用。
客户端若强行带上 tools 字段,接口不会报错,会忽略工具声明、按普通对话正常回答。