缪斯网关
自托管Muse会话池+ openai兼容网关(/v1/chat/completions, /v1/responses, /v1/tasks, /v1/models)与web仪表板和Windows系统托盘集成。它运行在你自己的机器上,有你自己的Muse帐户,任何使用OpenAI API的工具都可以使用它。
许可要求。 任何人都可以安装和打开仪表板,但是
/v1/*网关API保持锁定(HTTP 402),直到您激活购买的许可密钥。 买一把钥匙 https://www.storetiki.online (浮动或hwid绑定,时间限制)-支持:电报 @storetiki_bot。
安装
npm install -g muse-gateway
运行
muse-gateway
如果 muse-gateway 安装后不识别,npm的全局bin
目录可能不在您的PATH - npx muse-gateway 是这样的
Case (npx解析全局安装的包本身)。为了解决它
永久地,添加npm的全局bin dir(通常是 %APPDATA%\npm,与
npm prefix -g)到你的路径。
打开一个交互式菜单:
=======================================================
Muse Gateway v1.0.2
Server: http://127.0.0.1:1412 ● running — pro
=======================================================
> Open Dashboard (Web UI)
Hide to Tray (Background)
Run in this terminal (foreground)
Enter License Key…
Stop Server
Exit
- 打开仪表板 -启动服务器,如果需要,打开http://127.0.0.1:1412
- 隐藏到托盘 -运行在后台的系统托盘图标(打开仪表盘/自动启动/退出)和一个通知,确认您可以关闭终端
- 在这个终端运行 —前台服务器,按Ctrl+C停止
- 输入许可密钥 -粘贴a
MUSE1.…钥匙,无需打开仪表盘即可启动
激活license
三种方式——都是等价的:
muse-gateway菜单→ 输入许可密钥… →粘贴钥匙- 仪表板→ Bản quyền TAB键→粘贴键→ Kich hoạt
curl -X POST http://127.0.0.1:1412/api/license -H "content-type: application/json" -d '{"action":"activate","licenseKey":"MUSE1.…"}'
在激活有效密钥之前,每个 /v1/* 请求返回 402 license_required。
仪表盘和 /api/* 管理路由始终可用。
连接你的工具
在仪表板中激活并添加Muse帐户后,在任何带有自定义OpenAI端点的工具中使用这三个值:
| 设置 | 价值 |
|---|---|
| 基URL | http://127.0.0.1:1412/v1 |
| API密匙 | 在仪表板中创建一个。在第一个键存在之前,本地调用不需要。 |
| 模型 | muse-chat, muse-image 或 muse-video |
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:1412/v1", api_key="YOUR_KEY")
reply = client.chat.completions.create(
model="muse-chat",
messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)
模型
模型决定了你能得到什么。网关从不根据提示进行猜测。
| 模型 | 返回 | 笔记 |
|---|---|---|
muse-chat | 文本 | 当回复确定时返回。如果Muse附加了一个文件,它的链接也会包含在内。 |
muse-image | 图片 | 总是向Muse请求图像并等待它。没有图像是错误的。 |
muse-video | 一个视频 | 就像 muse-image,并等待所请求的长度(duration). |
| 组合名称 | 同类 | 每个组合都在仪表板中设置为聊天,图像或视频,并且行为与该模型相似。 |
GET /v1/models 列出每个带有 kind 字段(chat, image 或 video). 名称如 gpt-4o 或 claude-3-5-sonnet 是只提供这些名字的客户的别名;缪斯的回答是 muse-chat。
对于另一台机器上的工具,打开仪表板中的隧道并使用它提供的公共地址,例如 https://u-xxxx.storetiki.online/v1. 通过隧道总是需要API密钥,因此将该密钥视为密码。
生成图像和视频
图片: POST /v1/images/generations
标准的OpenAI图像端点,因此具有内置图像功能的工具直接工作:
curl http://127.0.0.1:1412/v1/images/generations \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"model": "muse-image", "prompt": "a cat on the grass", "size": "1024x1792"}'
size 被映射为Muse所理解的最接近的比例(1:1,16:9,9:16,4:3,3:4,3:2,2:3)。 n 返回Muse制作的多达4张图像。 response_format 是 url (默认)或 b64_json. 答案是 { "created": ..., "data": [{ "url": "...", "revised_prompt": "..." }] }。
视频和长作业:任务API
视频需要几分钟,所以使用任务API:创建一个任务,然后轮询它或接收一个webhook。结果存储在您的机器上。
创建任务
curl http://127.0.0.1:1412/v1/tasks \
-H "content-type: application/json" \
-H "authorization: Bearer YOUR_KEY" \
-d '{
"model": "muse-video",
"prompt": "A cat playing piano on a rooftop at night",
"duration": 30,
"ratio": "9:16",
"images": ["https://example.com/cat.jpg"],
"webhook_url": "https://example.com/hooks/muse",
"webhook_secret": "choose-a-secret"
}'
门户的答案 202 马上就有了一个任务 status 是 running。
| 场 | 要求 | 意义 |
|---|---|---|
prompt | 是 | 创建什么,多达20,000个字符 |
model | 否 | muse-video (默认), muse-image 或 muse-chat |
duration | 否 | 视频长度,以秒为单位,1到60 |
ratio | 否 | 9:16, 16:9, 1:1, 4:3 或 3:4 |
images | 否 | 多达16个参考图像,如 http(s) url或 data:image/... url,每个最多20MB |
webhook_url | 否 | 任务结束时调用一次 |
webhook_secret | 否 | 在webhook上签名 |
idempotency_key | 否 | 再次发送相同的键返回现有的任务 |
new_chat | 否 | 默认的 true. 集 false 继续当前的对话 |
thread, account | 否 | 继续一个Muse线程;通过之前的结果 |
无法加载的URL将导致请求失败 400,因此,如果没有您发送的参考,作业永远不会运行。
读取结果
curl http://127.0.0.1:1412/v1/tasks/TASK_ID -H "authorization: Bearer YOUR_KEY"
{
"id": "task_3f9c...",
"object": "task",
"status": "succeeded",
"model": "muse-video",
"requested_duration_sec": 30,
"url": "http://127.0.0.1:1412/api/media/media-abc.mp4",
"duration_sec": 30.1,
"media": [{ "url": "http://127.0.0.1:1412/api/media/media-abc.mp4", "kind": "video", "duration_sec": 30.1 }],
"partial": false,
"text": "Your video is ready.",
"thread_url": "https://muse.ai/thread/...",
"account_id": "...",
"error": null,
"webhook_status": "delivered"
}
status是running,succeeded,failed或cancelled. 每10秒左右轮询一次。url是最终文件。media列出所有已交付的内容。partial: true表示Muse在请求的长度之前停止,并且url是它发出的最长的剪辑。开放thread_url检查一下。- 媒体链接只有在网关保存文件时才是永久的。复制你想要保留的结果。
其他电话:
| 呼叫 | 效果 |
|---|---|
GET /v1/tasks?limit=20 | 你最近的任务,多达100个 |
DELETE /v1/tasks/TASK_ID | 停止等待任务。已经在Muse内部的渲染会继续在那里运行,并可能使用您的Muse配额。 |
重新启动网关会使仍在运行的任务失败;完成的结果保持可读性。最后500个已完成的任务被保留。
Webhook
当任务结束时,网关发送一个 POST 来 webhook_url,如果您的服务器没有响应,请重试两次 2xx:
{ "event": "task.succeeded", "task": { "id": "task_3f9c...", "status": "succeeded", "url": "..." } }
事件是 task.succeeded, task.failed 或 task.cancelled。与一个 webhook_secret,验证 X-Muse-Signature,也就是 sha256= 加上原始体的HMAC-SHA256:
import crypto from "node:crypto";
const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const valid =
signature.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
网络钩子需要一个网关可以到达的地址。通过隧道发出的呼叫不能针对私有网络地址,所以 localhost Webhooks只适用于本地调用者。
使用聊天完成功能
POST /v1/chat/completions 与 muse-image 或 muse-video (或图像/视频组合)也生成媒体,这适合只讲OpenAI API的工具。发送 stream: true,因为代理切断了长时间的静默请求。额外的字段有 duration, thread, account, new_chat 和 idempotency_key. 图像输入 image_url 部件,作为url或数据url,在最后一个用户消息上。
链接显示为文本 Attachments:,最后一块也以结构化的形式携带它们:
{ "muse": { "media": [{ "url": "...", "kind": "video", "duration_sec": 30.1 }], "partial": false, "thread_url": "...", "account_id": "..." } }
很高兴知道
- 一份工作可提供长达60秒的时间。将较长的视频分成几个任务。
- 一段长视频可能需要好几分钟。网关等待请求的长度,并在没有进展的情况下在5分钟后返回它所拥有的长度。将其更改为
MUSE_LONG_RENDER_GRACE_MS。 - 每个帐户一次运行几个作业;额外的工作在排队等待。
- 不支持音频输入。
/v1/responses不接受参考图片。
错误
| HTTP | 意义 |
|---|---|
400 | 无效请求,或者无法加载参考图像 |
401 | API密钥丢失或错误 |
402 | License未激活 |
403 | 这把钥匙不能用那个型号 |
404 | 没有找到任务,或者它属于另一个键 |
你的责任
大门驱动着你自己的灵感。通过浏览器访问帐户。在使用Muse之前,请检查是否符合Muse的条款,并接受账户可能被限制或禁止的风险。只生成你有权制作的内容,尤其是使用真人面孔的内容。
命令
| 命令 | 效果 |
|---|---|
muse-gateway | 交互式菜单 |
npx muse-gateway | 同样的,不需要npm在PATH上的bin dir |
muse-gateway stop | 停止后台实例 |
muse-gateway --open | 打开仪表盘 |
muse-gateway --serve | 在前台运行服务器(内部使用) |
muse-gateway --version | 打印版本 |
MUSE_PORT=4000 muse-gateway | 自定义端口(默认1412) |
数据位置
所有运行时状态(会话、许可证、API密钥、使用情况、媒体、日志)都存在
~/.muse-gateway -不要在已安装的包中。卸载保留数据;
删除 ~/.muse-gateway 完全重置。
~/.muse-gateway/server.log-后台服务器日志~/.muse-gateway/data/- sessions, license。json,钥匙。Json,池,媒体
需求
- Windows 10/11, Node.js≥20.9
- 安装Chrome或Edge(用于Muse帐户登录捕获)
许可证
商业, UNLICENSED. 网关API需要购买激活密钥。