木木AI
统一管理文本、图片与视频模型的中转接口。上游密钥只保存在服务端,客户端只使用本站令牌。
OpenAI 兼容HTTPS按实际渠道计费失败任务自动对账
字字动画专用插件
在字字动画中使用本站的图片与视频模型。插件是独立编写的本地适配器,只填写本站中转令牌,不包含任何上游密钥。
v0.3.4 修复同作品木木图片原图被复制、改名后的公网参考图识别;BD仅对已确认原图使用本站原字节存储兜底,不上传第三方图床。保存作品、检查更新并重启字字动画;保留配置和作品记录。
- 解压后把
plugins/image_plugins/mumu_relay_image与plugins/video_plugins/mumu_relay_video复制到字字动画的_internal/plugins对应目录;也可直接运行包内安装.ps1。 - 打开作品,在图片/视频模型管理器选择“自定义插件”→“木木中转 · 图片 / 视频”。
- 中转地址填
https://api.mumugofe.com,令牌填本站创建的中转站令牌,不要填上游密钥。 - 模型名单与参数由本站统一发布,打开设置页即自动同步;同协议新模型无需重新安装插件。
快速开始
在控制台创建 API 令牌,然后把客户端的 Base URL 设置为:
https://api.mumugofe.com/v1
www.mumugofe.com 仅用于浏览器永久跳转;API 客户端请直接使用上面的正式地址,避免依赖客户端对 308 重定向的处理。
鉴权请求头:
Authorization: Bearer sk-你的中转站令牌
不要把上游供应商密钥或管理员密码填进客户端,也不要把自己的中转站令牌放进公开安装包。
常用接口
| 用途 | 方法与路径 | 说明 |
|---|---|---|
| 模型列表 | GET /v1/models | 返回当前令牌可访问的模型。 |
| 文本/多模态对话 | POST /v1/chat/completions | 使用 OpenAI Chat Completions 格式。 |
| 图片生成 | POST /v1/images/generations | 能力和参数以模型广场标注为准。 |
| 图片编辑/参考图 | POST /v1/images/edits | JSON 或 multipart;参考图能力取决于模型。 |
| 图片任务查询 | GET /v1/images/generations/tasks/{task_id} | 成功后读取 data[0].url 下载成品。 |
| 视频提交 | POST /v1/videos | JSON 或 multipart,返回异步任务 ID。 |
| 视频查询 | GET /v1/videos/{task_id} | 轮询至完成、失败或取消。 |
| 视频成品下载 | GET /v1/videos/{task_id}/content | 携带本站令牌,任务完成后返回媒体二进制。 |
完整调用指南 · 2026-09-07
模型参数 · 素材上传 · 文本 · 图片/多图编辑 · 视频/多图参考 · 任务与下载 · 完整 Python 客户端 · 错误处理
执行生成示例会产生费用。本文按当前程序接口核对;不代表每个模型的每种参考素材组合均做过付费验收。模型是否开放及价格以你的令牌权限、模型广场和管理员确认结果为准。
当前模型与参数
模型名称区分大小写;SD2.0 满血 中间有一个空格。所有生成请求必填 model;文本必填 messages,图片/视频必填非空 prompt。以下为目前这批模型的接口说明,不自动承诺新增模型兼容。
| 模型 | 接口与参数 | 参考素材与限制 |
|---|---|---|
glm-5.2glm-5.3 | chat/completions;messages、max_tokens;stream=false 返回 JSON,stream=true 返回 SSE。输入/输出 Token 分别计费。 | 本指南提供文本示例;不将图片、视频输入视为已验收能力。 |
gpt-image-2.5gpt-image-2.5-flaregpt-image-2.5-sunburst | POST /v1/images/generations;model、prompt 必填。建议 n=1、size=1024x1024、response_format=b64_json;同步返回 data[0].b64_json,Base64 解码后保存为图片。 | 3.64 积分/张。2.5 系列使用直接出图接口,请勿按旧版图片任务轮询。url 格式可能返回需要上游授权的地址,客户端应使用 b64_json。 |
gpt-image-2 | images/generations 或 images/edits;n 必须为 1;async 为布尔值;response_format 为 url 或 b64_json;不支持 stream=true。 | 编辑接口本地参考图用 image / image[],可选 mask。多图编辑请求构造已核对,但具体参考组合尚未付费验收。size、quality 等为模型专属可选参数,不建议盲目填入其他模型的参数。 |
sd25-30s | videos;seconds 固定 30;size 可填 1280x720 / 720x1280,也可用 ratio 指定比例。按次计费。 | 最多 30 张参考图,支持本地多文件或公网图片 URL 数组。单文件不超过 20 MiB。仅在此接口明确支持重复 input_reference 文件字段。 |
sd2.5 | videos;seconds=30;建议显式填写 size=1280x720 或 720x1280。按次计费。 | 模型标称最多 10 张图,但本站通用视频 multipart 当前只接受 1 个 input_reference 文件;不把多文件直接重复上传当作已支持。音频/视频参考不支持。 |
SD2.0 满血 | videos;seconds=5–15;本指南使用 720p 的 1280x720 / 720x1280。固定按次收费,不乘时长。 | 模型标称支持 720p/1080p、图片及音视频参考;本站通用接口当前仅明确提供单张本地参考图示例。1080p 和音视频参考字段需另行验收,不凭模型简介推断传参名称。 |
wan3.0-video | videos;显式填写 seconds、size=1280x720 或 720x1280;按秒计费,10 秒费用=每秒单价×10。 | 本指南仅提供文本或单图参考。模型标称的多图/音频能力尚无本站完整验收的参数示例;不支持视频参考。 |
sd2.0-720 | videos;720p,显式填写 seconds;按秒模型。 | 文档发布核对时基础价格仍未配置完成,暂勿调用。管理员完成定价后才能按同类视频请求使用;具体时长范围尚待确认。 |
seedance-2.0超分 | videos;seconds=5–15,720p;按秒计费。 | 可参考下方单图视频请求;实际模型生成能力尚未逐项付费验收。 |
sd25-30s 的 ratio 可选:1:1、3:4、4:3、9:16、16:9、21:9。不要同时填写相互冲突的 ratio/size 或 seconds/duration;推荐只用本文示例字段。通用视频 size 校验目前明确支持 720x1280、1280x720、1792x1024、1024x1792,后两项不是通用的“1080p 开关”。
参考素材上传:不需要先创建文件 ID
本站当前示例采用随生成请求直接上传,没有已文档化的独立“上传后返回 file_id”接口;不要先调用 /v1/files 再猜参数。
- 本地文件:使用
multipart/form-data,curl 的-F或 Python requests 的files自动生成 boundary。不要手写 Content-Type: application/json 或不带 boundary 的 multipart 请求头。 - 公网素材:使用无需登录、可被服务器访问的 HTTPS 图片地址。不要填电脑路径、局域网地址、需要 Cookie 的网盘分享页或 localhost;URL 示例中的 example.com 必须替换为你实际可访问的图片地址。
- 网关整个请求体上限配置为 32 MB,包含所有文件和表单开销;建议文件合计低于 30 MiB。30 张图不表示可以上传 30×20 MiB。
- sd25-30s 文件支持 PNG、JPEG、WebP、BMP。其他模型素材格式受模型限制,建议先使用 PNG/JPEG。
- 多张“参考图”不等于多张“输出图”;图片生成当前 n 只能是 1。要生成多张成品,需要分别提交多项任务并分别计费。
- 音频和视频参考素材尚未形成本站已验收的统一上传协议,本文不提供猜测的 audio[] / video[] 参数。
curl 准备
以下多行 curl 为 Bash 写法(Linux/macOS/Git Bash)。Windows PowerShell 推荐直接用下方 Python 示例;PowerShell 中 curl 可能是别名,且不能用 Bash 的反斜线换行。
BASE_URL='https://api.mumugofe.com/v1'
read -rsp '请输入本站 API Key: ' MU_API_KEY; echo
curl --fail-with-body "$BASE_URL/models" \
-H "Authorization: Bearer $MU_API_KEY"
不要将真实密钥写进示例文件、截图、公开仓库或浏览器网页源码。curl 不要增加自动重试生成 POST 的参数。
文本调用
curl --fail-with-body "$BASE_URL/chat/completions" \
-H "Authorization: Bearer $MU_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"写一句简短的产品介绍"}],"max_tokens":256,"stream":false}'
非流式正文在 choices[0].message.content。将 model 改为 glm-5.3 可调用另一个文本模型。需要流式时将 stream 改为 true,并给 curl 加 -N;按 SSE 逐条读取 data,不要把整段响应当成一个 JSON 对象。
图片生成与多图编辑
异步文生图
curl --fail-with-body "$BASE_URL/images/generations" \
-H "Authorization: Bearer $MU_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"gpt-image-2","prompt":"一只坐在窗边的橘猫,柔和自然光","n":1,"async":true,"response_format":"url"}'
立即保存返回的 task_id 或 id。省略 async 或设为 false 时服务端会等待结果,成功返回 data[0].url 或 data[0].b64_json;等待超时并不表示任务失败,见下方恢复示例。
上传两张参考图生成一张图片(编辑接口)
curl --fail-with-body "$BASE_URL/images/edits" \
-H "Authorization: Bearer $MU_API_KEY" \
-F 'model=gpt-image-2' \
-F 'prompt=保留第一张图的主体,参考第二张图的色彩生成一张新图' \
-F 'n=1' -F 'async=true' -F 'response_format=url' \
-F 'image[]=@./subject.png;type=image/png' \
-F 'image[]=@./style.png;type=image/png'
这是本站适配器支持的多文件构造方式,不代表该账号对应的模型已完成多图编辑付费验收;如上游拒绝,不要改成自动重试。可选蒙版用 -F 'mask=@./mask.png;type=image/png',蒙版尺寸及透明区域语义以模型要求为准。
视频提交与多图参考
30 秒视频:本地多图上传
curl --fail-with-body "$BASE_URL/videos" \
-H "Authorization: Bearer $MU_API_KEY" \
-F 'model=sd25-30s' -F 'seconds=30' -F 'size=1280x720' \
-F 'prompt=保持参考人物外观一致,镜头缓慢推进,人物自然行走' \
-F 'input_reference=@./person.png;type=image/png' \
-F 'input_reference=@./scene.jpg;type=image/jpeg'
增加参考图时继续添加同名 input_reference 文件字段,最多 30 张;并注意整个请求体限制。此种重复文件传法不要直接复制到其他视频模型。
同一模型:公网图片 URL 数组
curl --fail-with-body "$BASE_URL/videos" \
-H "Authorization: Bearer $MU_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"sd25-30s","prompt":"保持人物一致,参考场景生成自然运动镜头","seconds":30,"size":"1280x720","images":["https://example.com/person.png","https://example.com/scene.jpg"]}'
WAN:10 秒单图参考视频
curl --fail-with-body "$BASE_URL/videos" \
-H "Authorization: Bearer $MU_API_KEY" \
-F 'model=wan3.0-video' -F 'seconds=10' -F 'size=1280x720' \
-F 'prompt=镜头缓慢推进,参考主体自然移动' \
-F 'input_reference=@./subject.png;type=image/png'
纯文生视频可省略 input_reference,或使用 JSON:
curl --fail-with-body "$BASE_URL/videos" \
-H "Authorization: Bearer $MU_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"wan3.0-video","prompt":"清晨海边,镜头缓慢推进","seconds":10,"size":"1280x720"}'
满血版示例将 model 改为 SD2.0 满血,seconds 取 5–15;sd2.5 改为 seconds=30;seedance-2.0超分取 5–15。不要省略时长:通用适配器缺省可能按 4 秒估算,不等于模型默认支持 4 秒。
任务状态、失败处理和成品下载
以下 JSON 是字段结构示意,task_example 不是可用任务。只使用本站返回的任务 ID,不使用其他平台后台的 ID。
{"id":"task_example","object":"video","status":"queued","progress":0}
常见状态:queued(排队)、in_progress(生成中)、completed(完成)、failed(失败)。遇到未知状态应继续查询或联系管理员,不自动重复提交。建议间隔 5–10 秒轮询。
图片查询与下载
TASK_ID='替换为本站返回的任务ID'
curl --fail-with-body "$BASE_URL/images/generations/tasks/$TASK_ID" \
-H "Authorization: Bearer $MU_API_KEY"
成功时读取 data[0].url(同时可能有 image_url)。这是本站带签名的成品地址,有时效且等同访问凭据。直接下载该地址,不要拼造 /v1/images/{id}/content;那不是本文确认的本站公开下载接口。
IMAGE_URL='粘贴本次查询返回的 data[0].url,仅在自己终端使用'
# 先确认地址是 https://api.mumugofe.com/ 下的链接;不向其他域名发送 API Key。
curl --fail-with-body "$IMAGE_URL" --output result-image.bin
实际图片格式看 Content-Type;修改文件扩展名不会转换格式。URL 过期时重新查询同一任务获取新地址,不重新生成。
视频查询与下载
TASK_ID='替换为本站返回的任务ID'
curl --fail-with-body "$BASE_URL/videos/$TASK_ID" \
-H "Authorization: Bearer $MU_API_KEY"
# 仅在 status=completed 后执行:
curl --fail-with-body "$BASE_URL/videos/$TASK_ID/content" \
-H "Authorization: Bearer $MU_API_KEY" \
--output result.mp4
HTTP 200 不一定就是有效成品,保存前检查 Content-Type 是否为 image/* 或 video/*;下载接口返回 JSON 错误时不要把它当图片或 MP4。下方 Python 客户端已包含检查。
完整 Python 示例:上传 → 查询 → 下载
下载 mumu_api_example.py(Python 3.9+)。首次运行安装 requests;密钥在终端隐藏输入,不放在命令参数中。程序只提交一次,网络错误不自动重发 POST;输出任务 ID 后请保存。
python -m pip install requests
# 文本(以下生成命令都会按模型价格收费)
python mumu_api_example.py --kind text --model glm-5.2 --prompt "写一句产品介绍"
# 图片生成
python mumu_api_example.py --kind image --model gpt-image-2 --prompt "窗边的橘猫" --out cat.bin
# 两张参考图编辑(模型组合仍需验收)
python mumu_api_example.py --kind edit --model gpt-image-2 --prompt "主体参考第一张,色彩参考第二张" --image subject.png --image style.png --out edited.bin
# 30 秒多图视频
python mumu_api_example.py --kind video --model sd25-30s --seconds 30 --size 1280x720 --prompt "人物自然行走" --image person.png --image scene.jpg --out video.mp4
# WAN 10 秒视频
python mumu_api_example.py --kind video --model wan3.0-video --seconds 10 --size 1280x720 --prompt "清晨海边" --out wan.mp4
# 仅恢复查询/下载:不会创建新任务,--task-id 替换为已有 ID
python mumu_api_example.py --kind video --task-id task_example --out resumed.mp4
python mumu_api_example.py --kind image --task-id task_example --out resumed-image.bin
客户端默认查询最多 1800 秒,可用 --wait 调整;停止等待不会取消任务。输出文件已存在时拒绝覆盖,下载中断可能留下部分文件,请用新的文件名恢复下载。公网参考图可将 --image 替换为 --image-url,并且 sd25-30s 可重复使用多次;示例不混用本地文件和 URL。
错误码与避免重复扣费
| 情况 | 处理 |
|---|---|
| 400 / 422 | 参数、格式、时长或素材不符合要求;检查字段和模型支持范围,不自动重试。 |
| 401 / 403 | 检查本站令牌、模型/分组权限、余额或额度限制。不能只凭状态码判断一定是余额不足。 |
| 404 | 确认接口路径、任务归属与任务 ID;下载前确认任务已完成。 |
| 413 | 请求体超过网关限制,压缩或减少素材。 |
| 429 | 降低并发;GET 查询可以退避后再查。生成 POST 是否成功不明时先查任务日志。 |
| 502 / 504 / 网络断开 | 不等于生成失败。响应有 task_id 就查询同一任务;没有 ID 时到控制台任务日志核查。不要自动重新生成。 |
| completed 但下载失败 | 重查同一任务、刷新成品链接或联系管理员;不要为了重新下载再调用生成接口。 |
明确失败的任务按本站实际结算记录处理退款;不要把“停止轮询”“客户端超时”当作取消或退款成功。当前文档不提供未经确认的取消接口,也不承诺 Idempotency-Key 对所有生成接口都能去重。
额度与计费
- 页面以“积分”展示,100 积分按 1 元人民币的口径换算。
- 不同上游使用独立计费分组;最终按实际命中的渠道倍率扣费。
- 异步任务提交时可能预扣;失败任务的退款以实际结算记录为准,对账任务会检查异常记录。停止等待不等于取消任务。
- 客户端超时不代表上游任务失败,请先用任务 ID 查询状态,避免重复提交造成二次扣费。
安全建议
- 每个设备或客户使用独立令牌,并设置额度、模型白名单和到期时间。
- 怀疑泄露时立即禁用旧令牌并重新签发;不要通过聊天截图或公开文件传递令牌。
- 注册、充值和模型生成均受限流与审计。平台无法承诺绝对不受攻击,公网运营仍建议接入 Cloudflare WAF 与防 DDoS。
可用模型
请以站点顶部的“模型广场”和 GET /v1/models 实时结果为准。上游维护、余额不足或风控可能导致个别模型临时不可用。