Evidence Gate
先看证据等级,再决定能否提交
| 等级 | 含义 | 可以得出的结论 |
|---|---|---|
| E1 | 协议或静态路由已确认 | 可以说明请求结构,不能证明某个模型可用 |
| E2 | 当前公开模型元数据匹配 | 可以按标签筛选候选模型,不能证明上游成功返回图片 |
| E3 | 请求已进入路由或转换链路 | 可以定位失败层级,仍不等于生成成功 |
| E4 | 当前生产版本完成低额度真实调用并验证结果 | 才可以把精确路径、参数和响应写为“已验证” |
Media / Images
先用模型广场的实时端点确定协议,再按本页的能力门槛提交请求。页面提供完整结构与停止条件,但不会把未经真实调用验证的编辑、尺寸或 Banana 图片路径写成可用承诺。
Evidence Gate
| 等级 | 含义 | 可以得出的结论 |
|---|---|---|
| E1 | 协议或静态路由已确认 | 可以说明请求结构,不能证明某个模型可用 |
| E2 | 当前公开模型元数据匹配 | 可以按标签筛选候选模型,不能证明上游成功返回图片 |
| E3 | 请求已进入路由或转换链路 | 可以定位失败层级,仍不等于生成成功 |
| E4 | 当前生产版本完成低额度真实调用并验证结果 | 才可以把精确路径、参数和响应写为“已验证” |
OpenAI Images
POST /v1/images/generations 作为候选生成入口。model 与 prompt;尺寸、质量、数量、格式都等最小请求成功后再逐项添加。Authorization: Bearer YOUR_API_KEYhttps://api.muxllm.com/v1/images/generationsGPT Image / Text to Image
公开模型元数据中存在 GPT Image 系列和 image-generation 标签,这是 E2 级候选信息。下面示例刻意不填写尺寸、质量和数量,避免把某一上游的可选字段误写为全系列通用能力。
curl https://api.muxllm.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME_FROM_MARKETPLACE",
"prompt": "一张明亮、真实的现代工作台产品图,主体完整,背景整洁"
}'
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["MUXLLM_API_KEY"],
base_url="https://api.muxllm.com/v1",
max_retries=0,
)
result = client.images.generate(
model="MODEL_NAME_FROM_MARKETPLACE",
prompt="一张明亮、真实的现代工作台产品图,主体完整,背景整洁",
)
print(result.model_dump_json(indent=2))
model必须来自当前模型广场,并显示图片生成端点;不要使用本文标题代替真实模型 ID。prompt写清主体、场景、构图、光线、风格和需要避免的内容;不要在 Prompt 中放入密钥或个人敏感数据。GPT Image / Image to Image
image-generation 只证明模型被展示为生成候选,不能推出它接受图片文件、遮罩或 /v1/images/edits。当前编辑能力未达到 E4,因此本节提供受控验证流程,而不是“可直接使用”的承诺。
EDIT_URL="COPY_THE_CONFIRMED_EDIT_URL_HERE"
curl "$EDIT_URL" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=MODEL_NAME_FROM_MARKETPLACE" \
-F "image=@PATH_TO_NON_SENSITIVE_TEST_IMAGE.png" \
-F "prompt=保留主体,将背景替换为明亮的现代办公室"
Gemini Images
Nano Banana 系列应按当前模型详情显示的协议选择 OpenAI 对话兼容或 Gemini 原生请求。历史真实测试已证明:在当时版本中,把当时验证的 Banana 图片模型直接提交到 /v1/images/generations 会在 NEW API 本地转换阶段失败,请求未到达上游。
v1.0.0-rc.10 对 gemini-3.1-flash-image-preview 和 gemini-3-pro-image-preview 的受控测试均返回 HTTP 500、local:convert_request_failed: not supported model for image generation;请求未到达上游。这只能证明当时该路径不可用;截至本页核验日期,尚无新的 E4 证据允许把 Banana 图片专用端点写为已恢复。| 模型详情标签 | 候选协议 | 动作 |
|---|---|---|
| gemini | generateContent | 使用 MuxLLM 根地址和 x-goog-api-key,再核对模型支持的内容结构 |
| openai | chat/completions | 使用 OpenAI 兼容根地址,但不能由此推断一定返回图片 |
| image-generation | 图片生成候选 | 仍需当前版本 E4 复验;不要用历史展示标签替代真实结果 |
| 无明确标签或互相冲突 | 未知 | 停止并报告模型名、公开标签和缺失信息 |
Nano Banana / Size Planning
常见构图比例可用于描述设计目标,但它们不是 MuxLLM 当前 Banana 模型的已验证像素白名单。精确尺寸、最大边长、输出格式和是否支持尺寸字段均未达到 E4。
| 目标 | 参考比例 | Prompt 表达 | 请求参数 |
|---|---|---|---|
| 头像 / 方形封面 | 1:1 | 方形构图,主体居中,四周留安全边距 | 未确认前不发送尺寸字段 |
| 横版内容 | 4:3 或 16:9 | 横向构图,主体完整,预留文字区域 | 以模型详情的精确字段为准 |
| 竖版内容 | 3:4 或 9:16 | 纵向构图,关键元素避开上下裁切区 | 不得照搬其他站点像素值 |
若上游只支持固定像素组合,应在一次最小请求成功后,从当前模型说明中选择;不要把“比例建议”转换成未经确认的 size 值。
Nano Banana / Conversational Flow
对话模式适合在同一会话中描述生成目标或修改意见,但“能对话”不等于“会返回图片”。先确认目标模型同时支持所选协议和图片输出,再使用以下最小骨架。
curl https://api.muxllm.com/v1beta/models/MODEL_NAME_FROM_MARKETPLACE:generateContent \
-H "x-goog-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{ "text": "生成一张主体完整、背景简洁的产品图片" }]
}]
}'
curl https://api.muxllm.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_NAME_FROM_MARKETPLACE",
"messages": [{
"role": "user",
"content": "生成一张主体完整、背景简洁的产品图片"
}]
}'
Nano Banana / Generate
从实时模型广场复制完整模型名和全部端点标签。
优先使用模型详情明确列出的 Gemini 或 OpenAI 对话协议。
只传模型和 Prompt;不猜尺寸、质量、数量或模态字段。
确认 MIME、文件头、完整解码和实际尺寸,再报告成功。
Nano Banana / Edit
编辑通常需要把原图作为远程 URL 或 Base64 内容块与文字指令放在同一请求中,但具体字段名、MIME 写法、多图顺序和输出配置会随协议变化。当前没有 E4 证据允许把某一结构写成 MuxLLM Banana 的固定规范。
Result Handling
| 响应形态 | 处理方法 | 是否可以重提生成 |
|---|---|---|
| Base64 图片 | 严格解码,检查文件头、MIME、完整像素解码和大小上限 | 解码失败先保留响应并停止 |
| 图片 URL | 只对下载 GET 做有限重试,验证内容类型与图片结构后保存 | 下载失败不等于生成失败,不重发 POST |
| URL 与文件 ID | 优先使用可验证 URL,并记录文件 ID 供排查 | 不重复生成 |
| 只有文件 ID、空数组或未知字段 | 保留脱敏原始响应并停止,检查日志或文档 | 禁止自动重发 |
Cost & Safety
在模型广场核对模型、分组和实时计费方式;不要把其他站点价格复制到本站。
若数量字段未确认,不发送;批量任务应在单张结果完成文件验证后再单独批准。
不要把 API Key 写进 Prompt、网页、仓库、截图、日志或输出文件。
POST 超时、5xx、解析失败或下载失败都不能触发第二次生成;先核对日志与原响应。
Troubleshooting
| 现象 | 优先检查 | 处理 |
|---|---|---|
| 401 | 认证头、Key 来源、Key 是否属于当前站点 | 修正凭证配置,不更换模型试撞 |
| 404 | Base URL 是否重复或遗漏 /v1,路径是否来自模型详情 | 按协议修正完整 URL |
| 400 参数错误 | 先移除尺寸、质量、数量、格式和其他可选字段 | 回到只有模型与 Prompt 的最小请求 |
local:convert_request_failed | 模型是否被错误提交到图片转换器 | 停止;按模型标签重新确认 Chat 或 Gemini 协议,不自动轮试 |
| 5xx 或超时 | 请求日志、是否已扣费、是否已有结果标识 | 不重发 POST,先核对原任务 |
| 有响应但无有效图片 | URL、Base64、文件头、MIME 与文件 ID | 保存脱敏响应并停止,不把文字说明当图片 |
Next
先完成模型、协议、价格和单次预算确认,再使用只提交一次的 AI 绘图 Skill Prompt。