输入文件

参考图、首尾帧、要改的视频:每个协议家族收文件的方式不同。这一页只写代码里有、实测过的。

三种给法

文件以三种形态进请求:公网URL写在JSON里;URL作为multipart表单的一个字段;或者文件本体作为表单分段。NextLabs的表单里永远填URL,由它换成对应接口要的形态。

格式接口文件怎么给收什么实测
OpenAI ImagesPOST /v1/images/editsmultipart/form-data文件本体作为表单分段图像最多1个 · 7个模型Nano Banana Pro · DRAW 2026-10-22输入:webp · 62.6 KB
OpenAI ImagesPOST /v1/images/generationsapplication/jsonURL写在JSON里图像最多10个 · 8个模型GPT Image 2 · DRAW 2026-10-19输入:webp
GeminiPOST /v1beta/models/{model}:generateContentapplication/jsonURL写在JSON里图像最多14个 · 7个模型Nano Banana Pro · DRAW 2026-10-22输入:webp
GeminiPOST /v1beta/models/{model}:streamGenerateContent?alt=sseapplication/jsonURL写在JSON里图像最多8个 · 30个模型还没带文件实测过
OpenAI VideosPOST /v1/videosmultipart/form-dataURL作为表单字段图像、视频最多1个 · 6个模型Gemini Omni Fast V2V · API 2026-10-18输入:mp4
Seedance (Ark)POST /seedance/api/v3/contents/generations/tasksapplication/jsonURL写在JSON里图像、视频、音频最多4个 · 4个模型还没带文件实测过
MiniMaxPOST /hailuo/v2/video_generationapplication/jsonURL写在JSON里图像、视频、音频最多6个 · 1个模型MiniMax H3 · DRAW 2026-10-19输入:webp
Kling (api)POST /klingapi/image-to-video/{model}application/jsonURL写在JSON里图像最多1个 · 5个模型Kling 3.0 Turbo · API 2026-10-28输入:webp
Kling (api)POST /klingapi/motion-control/{model}application/jsonURL写在JSON里图像、视频最多1个 · 2个模型还没带文件实测过
Kling (api)POST /klingapi/omni-video/{model}application/jsonURL写在JSON里图像、视频最多4个 · 3个模型Kling 3.0 Omni · API 2026-10-28输入:webp
MusePOST /v1/videosapplication/jsonURL写在JSON里图像、视频最多4个 · 6个模型Muse Video · API 2026-11-01输入:webp
xAIPOST /v1/videos/editsapplication/jsonURL写在JSON里视频最多1个 · 1个模型Grok Imagine Video · DRAW 2026-10-20输入:mp4
xAIPOST /v1/videos/extensionsapplication/jsonURL写在JSON里视频最多1个 · 1个模型Grok Imagine Video · DRAW 2026-10-20输入:mp4
xAIPOST /v1/videos/generationsapplication/jsonURL写在JSON里图像最多7个 · 2个模型Grok Imagine Video · DRAW 2026-10-22输入:webp
OpenAI ChatPOST /v1/chat/completionsapplication/jsonURL写在JSON里图像最多8个 · 172个模型还没带文件实测过
Anthropic MessagesPOST /v1/messagesapplication/jsonURL写在JSON里图像最多8个 · 22个模型还没带文件实测过
OpenAI ResponsesPOST /v1/responsesapplication/jsonURL写在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/gif30 MB
视频video/mp4 · video/webm · video/quicktime30 MB
音频audio/mpeg · audio/mp4 · audio/aac · audio/wav · audio/x-wav · audio/ogg · audio/flac30 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_blocked400提示词、参考图或生成结果触发了上游的内容安全策略。内容拦截

NextLabs自己的上传接口,返回这些:

codeHTTP含义
invalid_request400类型不在上表里(如SVG、HEIC)
too_large413超过大小上限
storage_full413你的存储配额满了
type_mismatch415实际传上去的类型和申报的不一致
upload_quota429今天的上传次数用完了

平台见过的每一种错误、是谁的问题、该怎么办,都在错误码页。