输入文件
参考图、首尾帧、要改的视频:每个协议家族收文件的方式不同。这一页只写代码里有、实测过的。
三种给法
文件以三种形态进请求:公网URL写在JSON里;URL作为multipart表单的一个字段;或者文件本体作为表单分段。NextLabs的表单里永远填URL,由它换成对应接口要的形态。
| 格式 | 接口 | 文件怎么给 | 收什么 | 实测 |
|---|---|---|---|---|
| OpenAI Images | POST /v1/images/editsmultipart/form-data | 文件本体作为表单分段 | 图像最多1个 · 7个模型 | Nano Banana Pro · DRAW 2026-10-22输入:webp · 62.6 KB |
| OpenAI Images | POST /v1/images/generationsapplication/json | URL写在JSON里 | 图像最多10个 · 8个模型 | GPT Image 2 · DRAW 2026-10-19输入:webp |
| Gemini | POST /v1beta/models/{model}:generateContentapplication/json | URL写在JSON里 | 图像最多14个 · 7个模型 | Nano Banana Pro · DRAW 2026-10-22输入:webp |
| Gemini | POST /v1beta/models/{model}:streamGenerateContent?alt=sseapplication/json | URL写在JSON里 | 图像最多8个 · 30个模型 | 还没带文件实测过 |
| OpenAI Videos | POST /v1/videosmultipart/form-data | URL作为表单字段 | 图像、视频最多1个 · 6个模型 | Gemini Omni Fast V2V · API 2026-10-18输入:mp4 |
| Seedance (Ark) | POST /seedance/api/v3/contents/generations/tasksapplication/json | URL写在JSON里 | 图像、视频、音频最多4个 · 4个模型 | 还没带文件实测过 |
| MiniMax | POST /hailuo/v2/video_generationapplication/json | URL写在JSON里 | 图像、视频、音频最多6个 · 1个模型 | MiniMax H3 · DRAW 2026-10-19输入:webp |
| Kling (api) | POST /klingapi/image-to-video/{model}application/json | URL写在JSON里 | 图像最多1个 · 5个模型 | Kling 3.0 Turbo · API 2026-10-28输入:webp |
| Kling (api) | POST /klingapi/motion-control/{model}application/json | URL写在JSON里 | 图像、视频最多1个 · 2个模型 | 还没带文件实测过 |
| Kling (api) | POST /klingapi/omni-video/{model}application/json | URL写在JSON里 | 图像、视频最多4个 · 3个模型 | Kling 3.0 Omni · API 2026-10-28输入:webp |
| Muse | POST /v1/videosapplication/json | URL写在JSON里 | 图像、视频最多4个 · 6个模型 | Muse Video · API 2026-11-01输入:webp |
| xAI | POST /v1/videos/editsapplication/json | URL写在JSON里 | 视频最多1个 · 1个模型 | Grok Imagine Video · DRAW 2026-10-20输入:mp4 |
| xAI | POST /v1/videos/extensionsapplication/json | URL写在JSON里 | 视频最多1个 · 1个模型 | Grok Imagine Video · DRAW 2026-10-20输入:mp4 |
| xAI | POST /v1/videos/generationsapplication/json | URL写在JSON里 | 图像最多7个 · 2个模型 | Grok Imagine Video · DRAW 2026-10-22输入:webp |
| OpenAI Chat | POST /v1/chat/completionsapplication/json | URL写在JSON里 | 图像最多8个 · 172个模型 | 还没带文件实测过 |
| Anthropic Messages | POST /v1/messagesapplication/json | URL写在JSON里 | 图像最多8个 · 22个模型 | 还没带文件实测过 |
| OpenAI Responses | POST /v1/responsesapplication/json | URL写在JSON里 | 图像最多8个 · 4个模型 | 还没带文件实测过 |
- 「文件本体」那一行:NextLabs先把URL下载下来,再作为分段上传。其余接口都收到URL,由平台自己去取——所以URL必须公网可读,不能带登录。
- base64:填一个data:地址时,Gemini、Gemini、Anthropic Messages会被改写成接口自己的内嵌格式(Gemini的inlineData、Anthropic的base64源);其余接口原样发出。实测都是用URL做的,data:地址平台是否接受没有实测。
大小与格式
平台没有公开输入文件的大小上限和格式清单。能确认的只有两件事:NextLabs的上传收什么,以及实测时什么通过了。
| 类型 | NextLabs的上传接受 | 上限 |
|---|---|---|
| 图像 | image/png · image/jpeg · image/webp · image/gif | 30 MB |
| 视频 | video/mp4 · video/webm · video/quicktime | 30 MB |
| 音频 | audio/mpeg · audio/mp4 · audio/aac · audio/wav · audio/x-wav · audio/ogg · audio/flac | 30 MB |
- 每个账号每天最多300次上传;超过大小返回413,类型不在表里返回400。
- 平台没公开,实测通过:作为文件本体上传的webp · 62.6 KB(Nano Banana Pro,DRAW 2026-10-22)。
- 通过URL给的输入,实测用的是NextLabs素材桶里的webp、mp4文件(960像素宽的静帧、几秒的短片);它们的字节数没有记录,平台对URL文件的上限没公开。
用NextLabs的上传
在任何参数表的文件项里选一个文件(要登录),它就变成平台能读的URL:浏览器先向POST /v1/uploads要一个预签名地址,把字节直接传进对象存储,再调/complete核对大小和类型。拿到的URL不带签名、公网可读,直接填进请求。
- 上传的文件只临时保存:24小时后由维护任务删除。范式和精选作品用到的不删。要留的自己下载。
- 作品的产物也一样:公开或不列出的作品,文件是普通URL;其他作品的文件走带签名的链接,签名至少一小时有效。
- 你自己的URL也行:只要公网可读、不需要登录,任何地址都能填进文件项。
常见错误
平台那边,和文件有关的错误码:
| 错误 | HTTP | 原因 | 谁的 |
|---|---|---|---|
| 内容被拦截content_blocked | 400 | 提示词、参考图或生成结果触发了上游的内容安全策略。 | 内容拦截 |
NextLabs自己的上传接口,返回这些:
| code | HTTP | 含义 |
|---|---|---|
| invalid_request | 400 | 类型不在上表里(如SVG、HEIC) |
| too_large | 413 | 超过大小上限 |
| storage_full | 413 | 你的存储配额满了 |
| type_mismatch | 415 | 实际传上去的类型和申报的不一致 |
| upload_quota | 429 | 今天的上传次数用完了 |
平台见过的每一种错误、是谁的问题、该怎么办,都在错误码页。