FalAI_SeeDanceV1.0_英文模板
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 38 个节点。主要使用 If, Code, Wait, Switch, YouTube 等节点。 使用GPT-4o、Fal.AI Seedance和音频从文本提示生成电影级视频
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (38)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "FqIyXIEKFojlkN9k",
"meta": {
"instanceId": "2c12b0b552404dc07af67cd5f092afd21d18c808d4fdabdb04cb4b064195b6fb",
"templateCredsSetupCompleted": true
},
"name": "FalAI_SeeDanceV1.0_英文模板",
"tags": [
{
"id": "vQcdMpzndwlrDhbx",
"name": "n8n_official_template",
"createdAt": "2025-07-02T13:54:20.087Z",
"updatedAt": "2025-07-02T13:54:20.087Z"
}
],
"nodes": [
{
"id": "00c39b14-561e-4217-81c5-693cfea0f5ee",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
100,
-180
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"story\": {\n \"type\": \"string\",\n \"description\": \"the detailed story\"\n }\n },\n \"required\": [\n \"story\"\n ]\n}"
},
"typeVersion": 1.2
},
{
"id": "d7d2e2a8-8515-4406-9b4b-48e363a15c96",
"name": "结构化输出解析器1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
440,
-160
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"scenes\": {\n \"type\": \"array\",\n \"description\": \"the scenes\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"scenes\"\n ]\n}"
},
"typeVersion": 1.2
},
{
"id": "736ee87b-08fd-438e-aabf-f6a3a7e02f35",
"name": "拆分输出",
"type": "n8n-nodes-base.splitOut",
"position": [
940,
-180
],
"parameters": {
"options": {},
"fieldToSplitOut": "scenes"
},
"typeVersion": 1
},
{
"id": "81b11247-8002-487b-a50f-7669e89fbb14",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-60,
-160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "3ffdfc3f-7e33-43a9-9990-82873291d992",
"name": "OpenAI 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-300,
100
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "d4611c08-9d64-4d55-a2d1-778ca51d45f5",
"name": "结构化输出解析器2",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-120,
100
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"characters\": {\n \"type\": \"array\",\n \"description\": \"the list of characters in the scene\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"the name of the character\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the character (visual outlook)\"\n }\n },\n \"required\": [\n \"name\",\n \"description\"\n ]\n }\n },\n \"scene_description\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the scene\"\n },\n \"camera_movement\": {\n \"type\": \"string\",\n \"description\": \"the description of the camera movement (if any)\"\n },\n \"object_movements\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the movement of the objects on the screen\"\n },\n \"sound_effects\": {\n \"type\": \"string\",\n \"description\": \"the sound effects the viewer can hear during the scene\"\n }\n },\n \"required\": [\n \"characters\",\n \"scene_description\",\n \"camera_movement\",\n \"object_movements\",\n \"sound_effects\"\n ]\n}"
},
"typeVersion": 1.2
},
{
"id": "d0982700-b832-4bb8-8322-56077fe3f4bc",
"name": "等待视频生成",
"type": "n8n-nodes-base.wait",
"position": [
380,
80
],
"webhookId": "caba57a6-b262-418a-95e2-4df44f9efb90",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "2b7da46b-f063-4c88-aa28-13769564cef8",
"name": "获取视频状态",
"type": "n8n-nodes-base.httpRequest",
"position": [
540,
80
],
"parameters": {
"url": "={{ $('Loop Over Items').item.json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "b9b2a0d9-65d3-4e25-b3cd-baab375a93b1",
"name": "视频状态",
"type": "n8n-nodes-base.switch",
"position": [
700,
80
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "COMPLETED",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6fc5bea4-1567-474b-bfca-5394eb303217",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_PROGRESS",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0882f634-2472-4d24-a1c3-a39f0cd94855",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_PROGRESS"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_QUEUE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e6c8b207-13ac-4537-8c5c-677039bc2fef",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_QUEUE"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "e8907f8b-9afa-4775-ab7d-77ba09f2ea00",
"name": "获取视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
920,
60
],
"parameters": {
"url": "={{ $('Loop Over Items').item.json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "02b6f642-f1f0-4524-8af8-5693d56c3af6",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
200,
40
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "5c22a8e1-9394-431f-be1c-1ee4c5ddf3cf",
"name": "获取音频状态",
"type": "n8n-nodes-base.httpRequest",
"position": [
-320,
460
],
"parameters": {
"url": "={{ $('Start adding audio to the video').item.json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "b993b68f-3698-499f-a847-a5bb18afac99",
"name": "获取带音频的视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
-120,
320
],
"parameters": {
"url": "={{ $('Start adding audio to the video').item.json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "b2e1ac2f-ae1e-4dc1-8cf6-58f02085408b",
"name": "开始为视频添加音频",
"type": "n8n-nodes-base.httpRequest",
"position": [
-540,
340
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/mmaudio-v2",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "video_url",
"value": "={{ $json.video.url }}"
},
{
"name": "prompt",
"value": "={{ $('Describe Each Scene for Video').item.json.output.sound_effects }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "6a802e7d-7de7-4fad-a614-ad32949551fe",
"name": "等待音频添加完成",
"type": "n8n-nodes-base.wait",
"position": [
-320,
320
],
"webhookId": "d1a0d62d-bba2-41d7-948c-fab6cd4aef9f",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "d11f1211-015d-40d1-8789-889f6592b129",
"name": "音频状态",
"type": "n8n-nodes-base.switch",
"position": [
-120,
460
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "COMPLETED",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6fc5bea4-1567-474b-bfca-5394eb303217",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_PROGRESS",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0882f634-2472-4d24-a1c3-a39f0cd94855",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_PROGRESS"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_QUEUE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e6c8b207-13ac-4537-8c5c-677039bc2fef",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_QUEUE"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "d79854b0-b7f3-46d6-80f0-3b90f9d99889",
"name": "循环遍历项目1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-540,
520
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "30094be7-d29c-457e-badc-8795c18ead3e",
"name": "开始合并视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
400,
320
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/ffmpeg-api/compose",
"method": "POST",
"options": {},
"jsonBody": "={\n \"tracks\": [\n {\n \"id\": \"1\",\n \"type\": \"video\",\n \"keyframes\": {{ JSON.stringify($json.data.map((item, index) => ({ url: item.video.url, timestamp: index * 6000, duration: 6000 }))) }}\n }\n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "2d8ada58-7d79-4949-97bb-842103c60cf0",
"name": "等待合并完成",
"type": "n8n-nodes-base.wait",
"position": [
620,
320
],
"webhookId": "0f68d1ee-0e4d-4f8d-ae01-e3380438e294",
"parameters": {
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "57398a78-a190-4ad6-96e9-a581a12acc20",
"name": "合并视频状态",
"type": "n8n-nodes-base.switch",
"position": [
960,
320
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "COMPLETED",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6fc5bea4-1567-474b-bfca-5394eb303217",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_PROGRESS",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0882f634-2472-4d24-a1c3-a39f0cd94855",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_PROGRESS"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_QUEUE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e6c8b207-13ac-4537-8c5c-677039bc2fef",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_QUEUE"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "d6f4680c-7529-492c-8874-41495623d51e",
"name": "获取合并视频状态",
"type": "n8n-nodes-base.httpRequest",
"position": [
780,
320
],
"parameters": {
"url": "={{ $('Start merging videos').item.json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "a3c0f988-fe00-4f5c-a32e-992e5fa9f507",
"name": "获取合并后的视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
400,
480
],
"parameters": {
"url": "={{ $('Start merging videos').item.json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "af84d7a6-b3af-4172-9700-320a07406a3c",
"name": "聚合带音频的视频",
"type": "n8n-nodes-base.aggregate",
"position": [
200,
500
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "f144eb30-1d37-4d66-8c71-f6875626fd92",
"name": "OpenAI 聊天模型2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
260,
-160
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "03af94eb-ce5a-4bf6-931c-ffe9c793a596",
"name": "当点击\"执行工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-340,
-220
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0b2c7943-2b56-4f83-892d-2136361ed24e",
"name": "获取数据",
"type": "n8n-nodes-base.googleSheets",
"position": [
-200,
-220
],
"parameters": {
"options": {
"returnFirstMatch": false
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1FuDdvkzq5TZ3Evs92BxUxD4qOK0EDLAzB-SayKwpAdw/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1FuDdvkzq5TZ3Evs92BxUxD4qOK0EDLAzB-SayKwpAdw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1FuDdvkzq5TZ3Evs92BxUxD4qOK0EDLAzB-SayKwpAdw/edit?usp=drivesdk",
"cachedResultName": "n8n_Longform_Video"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "10532f87-9662-4c50-a314-ecd558b57230",
"name": "验证场景数量",
"type": "n8n-nodes-base.code",
"position": [
600,
-220
],
"parameters": {
"jsCode": "const scenes = $json.output?.scenes || [];\n\nreturn [\n {\n sceneCount: scenes.length,\n scenes: scenes\n }\n];"
},
"typeVersion": 2
},
{
"id": "bab94a54-bc4f-4b74-a42c-7d18d2324689",
"name": "根据提示生成完整叙述",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-60,
-220
],
"parameters": {
"text": "=Instructions:\n\nCreate a captivating, vivid, and detailed short video story based on the idea provided below. The story should feel immersive, emotional, and cinematic — suitable for visual storytelling.\nPlease ensure the following:\n\nInclude a rich, visually descriptive setting (lighting, weather, architecture, colors).\n\nDescribe the main characters clearly: their appearance, mood, clothing, and motivations.\n\nBuild a sense of mood, tension, or emotional arc.\n\nKeep the tone aligned with the theme of the original idea.\n\nFormat your output as long-form narrative text.\n\nIdea: {{ $json.story }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "4aa3acce-76cd-437b-938e-1daaedd3d9d7",
"name": "将叙述拆分为{{n}}个场景",
"type": "@n8n/n8n-nodes-langchain.agent",
"onError": "continueRegularOutput",
"position": [
260,
-220
],
"parameters": {
"text": "=<Instructions>\n\nBreak down the following story into a script (for short video) with exacly {{ $('Get Data').item.json.number_of_scene }} scenes.\n\n</Instructions>\n\n<Story>\n{{ $json.output.story }}\n</Story>",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "52dabb38-9c47-4e05-a52c-c45022ea4f58",
"name": "为视频描述每个场景",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-300,
40
],
"parameters": {
"text": "=Prompt Template: Generate Detailed Scene (5s Clip)\n\nInstructions:\nCreate a detailed visual breakdown of the following scene.\nUse the full story context to ensure continuity, tone, and emotional flow.\n\nFor this scene, include:\n\n1. Characters in the Scene:\n- List all characters present\n- Describe their age, attire, appearance, posture, emotion, and current action\n\n2. Scene Background & Environment:\n- Describe the setting in detail (lighting, background elements, color palette, time of day)\n- Mention any objects in the environment that affect mood or action\n\n3. Camera Direction:\n- Describe camera angle, motion (e.g. dolly, pan, zoom), perspective, or transitions during the 5s scene\n\n4. Object & Character Movement:\n- Describe how characters or objects move within this 5-second clip\n- Use dynamic motion where appropriate\n\n5. Sound Effects & Ambience:\n- Describe background sound, music, or specific SFX\n- Include emotional tone and pacing of sound\n\nScene Input:\n{{ $json.scenes }}\n\n\nFull Story Reference:\n{{ $('Generate Full Narrative from Prompt').item.json.output.story }}\n\nOutput Format Example:\n\nCharacters:\n- Anya (17): Wears a tattered blue coat. Snow clings to her hair. She breathes heavily, face flushed from the cold. Her eyes are locked ahead, determined.\n- The Old Man (60s): Frail, cloaked in furs, holding a lantern that flickers with a weak flame.\n\nScene Background: A narrow trail carved through pine trees covered in frost. The sky is turning orange. In the distance, the silhouette of a crumbling tower. Mist coils low to the ground.\n\nCamera Movement: Slow push-in from behind Anya’s shoulder, transitioning to a side dolly as she steps forward and the tower comes into view.\n\nMovement in Scene: Snowflakes fall steadily. Anya trudges forward. The Old Man stops, raises his lantern slightly, casting light across the branches. A raven flutters from a tree.\n\nSound Design:\n- Soft wind whistling through trees\n- Crunching snow with each step\n- Distant echo of a bell\n- Faint strings rise in tension as the tower is revealed",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "f0ab8b68-99ee-45cc-9337-393c7cce3c37",
"name": "调用 Fal.ai API (Seedance)",
"type": "n8n-nodes-base.httpRequest",
"position": [
20,
40
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/{{ $('Get Data').item.json.model }}",
"method": "=POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "=<Characters>\n{{ $json.output.characters.map(character => `<Character>\n <Name>${character.name}</Name>\n <Description>${character.description}</Description>\n</Character>`).join('\\n') }}\n</Characters>\n\n<SceneDescription>\n{{ $json.output.scene_description }}\n</SceneDescription>\n\n<CameraMovements>\n{{ $json.output.camera_movement }}\n</CameraMovements>\n\n<ObjectMovements>\n{{ $json.output.object_movements }}\n</ObjectMovements>"
},
{
"name": "aspect_ratio",
"value": "={{ $('Get Data').item.json.aspect_ratio }}"
},
{
"name": "resolution",
"value": "={{ $('Get Data').item.json.resolution }}"
},
{
"name": "duration",
"value": "={{ $('Get Data').item.json.duration }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "f3e869f9-e3b0-4854-a5ba-ea03f30d629d",
"name": "场景计数",
"type": "n8n-nodes-base.if",
"position": [
760,
-220
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5e3573c7-f98e-4d2a-a58e-ae75b76eb0a6",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.sceneCount }}",
"rightValue": "={{ $('Get Data').item.json.number_of_scene }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9b4fc0d5-6aac-45c4-bf95-ca5987af22a7",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
-240
],
"parameters": {
"width": 1840,
"height": 240,
"content": "### 🟨 区域1:提示输入与故事转场景"
},
"typeVersion": 1
},
{
"id": "0053d123-eca8-4bf0-9f39-74828c064588",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
20
],
"parameters": {
"color": 2,
"width": 1840,
"height": 240,
"content": "### 🟫 区域2:创建场景提示并生成视频"
},
"typeVersion": 1
},
{
"id": "bde2f1bf-2565-4f74-93c5-0b2cddfc9b02",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
280
],
"parameters": {
"color": 3,
"width": 780,
"height": 400,
"content": "### 🟥 区域3:使用 Fal AI 为视频添加音频"
},
"typeVersion": 1
},
{
"id": "73d36aac-1900-41ac-9e48-e314bf8725cd",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
280
],
"parameters": {
"color": 4,
"width": 1040,
"height": 400,
"content": "### 🟩 区域4:合并视频并下载最终输出"
},
"typeVersion": 1
},
{
"id": "7a8d7f32-698e-40fd-a485-e422bacda446",
"name": "YouTube",
"type": "n8n-nodes-base.youTube",
"position": [
780,
540
],
"parameters": {
"title": "={{ $('Get Data').item.json.story }}",
"options": {},
"resource": "video",
"operation": "upload",
"categoryId": "28",
"regionCode": "TH"
},
"credentials": {
"youTubeOAuth2Api": {
"id": "LlhzPMwf7cLH2kk2",
"name": "YouTube account"
}
},
"typeVersion": 1
},
{
"id": "1cb21431-1cb8-4170-90f4-bb4153619c6d",
"name": "获取视频1",
"type": "n8n-nodes-base.httpRequest",
"position": [
600,
540
],
"parameters": {
"url": "={{ $json.video_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "54c6b074-84bb-4f98-a9fb-3812d5a6f387",
"connections": {
"Get Data": {
"main": [
[
{
"node": "Generate Full Narrative from Prompt",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Describe Each Scene for Video",
"type": "main",
"index": 0
}
]
]
},
"Scene count": {
"main": [
[
{
"node": "Break Narrative into {{n}} Scenes",
"type": "main",
"index": 0
}
],
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Audio status": {
"main": [
[
{
"node": "Get video with audio",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for adding the audio",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for adding the audio",
"type": "main",
"index": 0
}
]
]
},
"Video status": {
"main": [
[
{
"node": "Get the video",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for the video",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for the video",
"type": "main",
"index": 0
}
]
]
},
"Get the video": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Get the video1": {
"main": [
[
{
"node": "YouTube",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Start adding audio to the video",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for the video",
"type": "main",
"index": 0
}
]
]
},
"Get audio status": {
"main": [
[
{
"node": "Audio status",
"type": "main",
"index": 0
}
]
]
},
"Get merged video": {
"main": [
[
{
"node": "Get the video1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[
{
"node": "Aggregate videos with audio",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for adding the audio",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Generate Full Narrative from Prompt",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Describe Each Scene for Video",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "Break Narrative into {{n}} Scenes",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Wait for the video": {
"main": [
[
{
"node": "Get the video status",
"type": "main",
"index": 0
}
]
]
},
"Merge videos status": {
"main": [
[
{
"node": "Get merged video",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for the merge to complete",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for the merge to complete",
"type": "main",
"index": 0
}
]
]
},
"Get the video status": {
"main": [
[
{
"node": "Video status",
"type": "main",
"index": 0
}
]
]
},
"Get video with audio": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Start merging videos": {
"main": [
[
{
"node": "Wait for the merge to complete",
"type": "main",
"index": 0
}
]
]
},
"Verify number of scene": {
"main": [
[
{
"node": "Scene count",
"type": "main",
"index": 0
}
]
]
},
"Get merge videos status": {
"main": [
[
{
"node": "Merge videos status",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Generate Full Narrative from Prompt",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Break Narrative into {{n}} Scenes",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser2": {
"ai_outputParser": [
[
{
"node": "Describe Each Scene for Video",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Wait for adding the audio": {
"main": [
[
{
"node": "Get audio status",
"type": "main",
"index": 0
}
]
]
},
"Call Fal.ai API (Seedance)": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Aggregate videos with audio": {
"main": [
[
{
"node": "Start merging videos",
"type": "main",
"index": 0
}
]
]
},
"Describe Each Scene for Video": {
"main": [
[
{
"node": "Call Fal.ai API (Seedance)",
"type": "main",
"index": 0
}
]
]
},
"Wait for the merge to complete": {
"main": [
[
{
"node": "Get merge videos status",
"type": "main",
"index": 0
}
]
]
},
"Start adding audio to the video": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Break Narrative into {{n}} Scenes": {
"main": [
[
{
"node": "Verify number of scene",
"type": "main",
"index": 0
}
]
]
},
"Generate Full Narrative from Prompt": {
"main": [
[
{
"node": "Break Narrative into {{n}} Scenes",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Get Data",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Gemini_NanoBanana_模板
使用 Fal.ai 模型(nano-banana、WAN2.2、Veo3)从 Google Sheets 生成 UGC 广告
If
Set
Code
+13
36 节点Jaruphat J.
内容创作
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+27
125 节点Daniel Ng
内容创作
Multi_Ad_Image
使用Fal.ai和OpenAI从Google表格生成AI产品广告图像
If
Set
Wait
+10
22 节点Jaruphat J.
内容创作
AIAuto - 带深度研究的终极人机回环内容v2
WordPress博客自动化,集成Airtable界面、人工审核和AI研究v2
If
Set
Xml
+23
228 节点Daniel Ng
内容创作
内容生成器 v3
AI驱动博客自动化:使用GPT-4生成并发布SEO文章至WordPress和Twitter
If
Set
Code
+25
144 节点Jay Emp0
内容创作
💥 使用NanoBanana、Seedream 4、ChatGPT Image和Veo 3自动化视频广告 - VIDE
使用AI(NanoBanana、Seedream、GPT-4o、Veo 3)自动化和发布视频广告活动
Set
Code
Wait
+16
63 节点Dr. Firas
内容创作
工作流信息
难度等级
高级
节点数量38
分类2
节点类型15
作者
Jaruphat J.
@jaruphatjProject Manager who passionate about Automation & AI and continuously explore innovative ways to improve business processes through intelligent workflow automation. Let’s connect and automate the future!
外部链接
在 n8n.io 查看 →
分享此工作流