n8n 本地图片生成视频教程

官方入口:n8n 官网

更新于

适用范围:自部署 n8n 读取本地图片,使用 apizt OpenAI 格式视频接口;n8n Cloud 需改为获取云端图片的 binary 数据。

版本与验证:2026-09-28 核对本文配置项、步骤和资料入口,补齐验证与排错说明。未在真实账号中验证付费模型调用。

配置速查

配置项填写内容注意事项
创建请求POST https://api.apizt.com/v1/videosmultipart/form-data,不是 JSON。
鉴权Authorization: Bearer <apizt API Key>存入 n8n Header Auth 凭据。
input_referencen8n Binary File / data读取文件节点输出的 binary 字段。
model / seconds / sizesora-2 / 4 / 1280x720视频模型;时长与尺寸按接口和模型支持填写。
查询请求GET https://api.apizt.com/v1/videos/{id}保留完整 id,编码后放进路径。
下载请求GET https://api.apizt.com/v1/videos/{id}/contentResponse Format 选择 File。

还没有 API Key?注册获取免费体验额度 · 已注册:进入控制台创建 API Key

为此工具单独创建令牌,并设置合理额度和模型权限。截图中的模型仅作示例,以账号当前可用模型为准;不要公开密钥或上传含密钥的配置文件。

第 1 步:准备图片与执行环境

本文使用自部署 n8n。把参考图放到 n8n 可读取的 /files/reference.png;Docker 部署先挂载目录。图片内容、比例应符合目标视频模型要求。n8n Cloud 请使用 HTTP Request 等节点下载图片并输出 binary,不能直接读你电脑的路径。

第 2 步:读取图片

添加「Read/Write Files from Disk」节点,Operation 选 Read File(s) From Disk,File Selector 填 /files/reference.png,Put Output File in Field 设为 data。执行节点,在输出的 Binary 页签确认字段 data 存在。

第 3 步:创建视频请求

将 HTTP Request 节点命名为「创建视频」。方法 POST,URL 如图;Authentication 选择 Generic Credential Type → Header Auth,凭据名称填写 Authorization,值填写 Bearer 你的apizt令牌。启用 Send Body,Body Content Type 选 Form-Data。

创建视频:地址与鉴权;apizt 配置示意图
创建视频:地址与鉴权。原创配置示意图,字段位置以所装版本为准;演示密钥无效。点击图片可在页内放大,支持关闭按钮、点击图片外区域和 Esc 关闭。
字段填写内容说明
modelsora-2Form Data
prompt让参考图中的主体自然运动,镜头缓慢推进Form Data
seconds4Form Data;本接口示例时长 4 秒
size1280x720Form Data;参考图需满足模型比例要求
input_referencedatan8n Binary File;Input Data Field Name 为 data

不要自行添加 Content-Type,n8n 会生成 multipart boundary。创建节点关闭自动重试;遇到超时先检查是否已创建任务,避免重复计费。

上传图片,不上传路径文字;apizt 配置示意图
上传图片,不上传路径文字。原创配置示意图,字段位置以所装版本为准;演示密钥无效。点击图片可在页内放大,支持关闭按钮、点击图片外区域和 Esc 关闭。

第 4 步:保存任务 ID

执行创建节点,确认响应顶层有非空 id。保存完整值,包括可能出现的前缀、冒号与后缀;后续只查询此任务。创建返回 id 并不代表视频已完成。

第 5 步:设置有限次数的轮询

在创建节点后添加 Code 节点,Mode 选 Run Once for All Items,生成 60 个查询机会:

const id = $('创建视频').first().json.id;
if (typeof id !== 'string' || !id.trim()) {
  throw new Error('创建响应没有有效 id,请检查创建节点输出');
}
return Array.from({ length: 60 }, (_, i) => ({
  json: { task_id: id, attempt: i + 1 }
}));
  1. 连接 Loop Over Items,Batch Size 设为 1。它的 loop 输出接 Wait 节点,等待 10 秒。
  2. Wait 接 HTTP Request,命名「查询视频」,方法 GET,使用同一 Header Auth 凭据。URL 切换 Expression,填写下面表达式。
  3. 查询接 Switch 或 IF:status === completed 接下载;failed / cancelled / error 接 Stop And Error,并保留响应错误内容。
  4. queued / pending / in_progress / processing / running 接回 Loop Over Items 输入继续下一轮。其他状态先停止并查看原始响应,不默默视为成功。
  5. Loop 的 done 输出表示用尽 60 次查询:输出「仍在生成」和原始任务 id。等待后用该 id 单独查询,不再接创建节点。
{{ 'https://api.apizt.com/v1/videos/' + encodeURIComponent($('创建视频').first().json.id) }}
查询任务并按状态分流;apizt 配置示意图
查询任务并按状态分流。原创配置示意图,字段位置以所装版本为准;演示密钥无效。点击图片可在页内放大,支持关闭按钮、点击图片外区域和 Esc 关闭。

第 6 步:下载并保存结果

任务 completed 后添加 HTTP Request「下载视频」,方法 GET,使用同一凭据,URL 使用下方表达式。Options → Response → Response Format 选择 File,Put Output in Field 填 video。

{{ 'https://api.apizt.com/v1/videos/' + encodeURIComponent($('创建视频').first().json.id) + '/content' }}

自部署环境接 Read/Write Files from Disk,Operation 选 Write File to Disk,Input Binary Field 填 video,目标路径如 /files/result.mp4。如查询响应本身提供可访问的 video_url,可按返回地址获取;没有地址时使用 content 下载接口,不虚构公网播放 URL。Cloud 可把 binary 交给网盘或对象存储节点。

第 7 步:验收

  1. 确认界面上的请求域名均为 api.apizt.com。
  2. 核对创建、查询、下载使用同一完整 id。
  3. 打开保存的视频检查画面与时长,记录失败响应或请求 ID用于排查。

相关教程与接口

怎样确认配置已生效

  1. 读取节点的 Binary 标签中有 data。
  2. 创建返回非空 id,查询使用同一个完整 id。
  3. completed 后下载的视频 binary 非空,可保存并播放。

接入失败时逐项检查

现象检查与处理
找不到 /files/reference.png自部署容器须挂载文件目录;路径是容器内路径。Cloud 不能读取你电脑的本地路径。
input_reference 缺失Form-Data 参数类型选 n8n Binary File,Input Data Field Name 填 data;不要填本地路径字符串。
multipart boundary 错误删除手工 Content-Type,让 n8n 自动生成 multipart boundary。
一直 queued / processing最多轮询 60 次;保留任务 ID 后继续查询,不能重新创建同一任务。
completed 但没有公网 URL按 content 下载端点获取文件;不要将任务 ID 拼成未经文档说明的播放链接。

资料与下一步

遇到问题时保留软件版本、请求时间、模型 ID、错误码和请求 ID,联系支持时先隐藏 API Key。