8
n8n 中文网amn8n.com

从图像生成广告

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 61 个节点。主要使用 If, Set, Code, Wait, Merge 等节点。 使用 Gemini 2.5 Flash 图片和 FAL WAN 动画生成视频广告

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "sq0Sw4xPwLfXlmsP",
  "meta": {
    "instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2",
    "templateCredsSetupCompleted": true
  },
  "name": "从图像生成广告",
  "tags": [],
  "nodes": [
    {
      "id": "94ecf4cf-877e-41e9-b7ec-49c0f91608ac",
      "name": "FAL WAN i2v(队列)2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -784,
        48
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/wan/v2.2-a14b/image-to-video",
        "body": "={\"image_url\":\"{{ $('Aggregate').item.json.data[0].data.url }}\",\"prompt\":\"{{ $('Set Storyboard Vars').first().json.i2v_prompt1 }}\",\"num_frames\":96,\"frames_per_second\":24,\"resolution\":\"480p\"}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e21122eb-5825-43fd-a3bc-e6ec0d2d89fa",
      "name": "FAL WAN i2v(队列)3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -784,
        240
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/wan/v2.2-a14b/image-to-video",
        "body": "={\"image_url\":\"{{ $('Aggregate').item.json.data[1].data.url }}\",\"prompt\":\"{{ $('Set Storyboard Vars').first().json.i2v_prompt2 }}\",\"num_frames\":96,\"frames_per_second\":24,\"resolution\":\"480p\"}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5c8c9078-271a-4671-a252-9b5b39b03468",
      "name": "FAL WAN i2v(队列)4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -816,
        416
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/wan/v2.2-a14b/image-to-video",
        "body": "={\"image_url\":\"{{ $('Aggregate').item.json.data[2].data.url }}\",\"prompt\":\"{{ $('Set Storyboard Vars').first().json.i2v_prompt3 }}\",\"num_frames\":96,\"frames_per_second\":24,\"resolution\":\"480p\"}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "112a413d-9a43-402d-886e-fb87f2a5b6c9",
      "name": "FAL WAN i2v(队列)5",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -816,
        608
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/wan/v2.2-a14b/image-to-video",
        "body": "={\"image_url\":\"{{ $('Aggregate').item.json.data[3].data.url }}\",\"prompt\":\"{{ $('Set Storyboard Vars').first().json.i2v_prompt4 }}\",\"num_frames\":96,\"frames_per_second\":24,\"resolution\":\"480p\"}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d4905023-c46e-4184-99d1-471aac5cd3c0",
      "name": "等待 i2v 2",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        64
      ],
      "webhookId": "wan-i2v-wait-2",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "0e3c980c-471d-4ef5-98dd-7d369e7434d2",
      "name": "等待 i2v 3",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        240
      ],
      "webhookId": "wan-i2v-wait-3",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "b09b9c87-d606-4cf1-a299-5e5b9fdbe10f",
      "name": "等待 i2v 4",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        416
      ],
      "webhookId": "wan-i2v-wait-4",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "264bfe63-81d1-420b-8217-3b468d24eda2",
      "name": "等待 i2v 5",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        608
      ],
      "webhookId": "wan-i2v-wait-5",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "b44f41e0-dc25-4c47-97d6-e1e0112b3b3a",
      "name": "FAL WAN i2v(结果)2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        16
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2a69dbfd-a519-457a-b024-16909a8e1ab6",
      "name": "FAL WAN i2v(结果)3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        224
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ae7757c9-da28-4f8a-b0c9-300c6d36ca0c",
      "name": "FAL WAN i2v(结果)4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        400
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "29554f1c-5931-4211-9e06-cba9e34c35ce",
      "name": "FAL WAN i2v(结果)5",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        576
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "34039cff-4476-4c59-89bd-fb7f04f09b73",
      "name": "动画完成?2",
      "type": "n8n-nodes-base.if",
      "position": [
        -288,
        64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "animation-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9223de8e-9d61-4888-91ef-0f0fc2a92146",
      "name": "动画完成?3",
      "type": "n8n-nodes-base.if",
      "position": [
        -288,
        240
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "animation-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "94ad8c79-fe2d-4956-8970-6335d3a76309",
      "name": "动画完成?4",
      "type": "n8n-nodes-base.if",
      "position": [
        -288,
        416
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "animation-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f9c6816b-4949-41f3-8729-042630631750",
      "name": "动画完成?5",
      "type": "n8n-nodes-base.if",
      "position": [
        -288,
        608
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "animation-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "55a545fe-108f-4ee2-9b82-f137b41ff6c4",
      "name": "FAL WAN i2v(状态)2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -448,
        64
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "165abdd2-696e-4b95-8ffd-653b1b9a425f",
      "name": "FAL WAN i2v(状态)3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -448,
        240
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "65683844-23b1-4d37-bd3e-cd46dec082da",
      "name": "FAL WAN i2v(状态)4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -448,
        416
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "907e2fd2-4041-46cf-a7a9-4ea2fd2150ad",
      "name": "FAL WAN i2v(状态)5",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -448,
        608
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/wan/requests/{{ $json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "dc2a8820-9090-4103-955a-69d546880d98",
      "name": "结构化输出解析器2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -3104,
        368
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"Pendulum, Shadow, and the Silent Lunar Mark\",\n  \"prompt1\": \"Vertical 9:16 top-down altar, matte black cloth; brass pendulum centered over minimalist star map of dots and thin lines; warm rim light; high contrast; no faces, no hands, no text, no letters, no numbers, no logos.\",\n  \"prompt2\": \"Vertical 9:16 macro side view; pendulum slows above a crescent metal cutout; precise shadow alignment on matte cloth; thin incense smoke; no faces, no hands, no text, no letters, no numbers, no logos.\",\n  \"prompt3\": \"Vertical 9:16 top-down; silver lunar talisman placed into the crescent cutout; shadow shape unchanged; clean composition; subtle micro-glitter specks; no faces, no hands, no text, no letters, no numbers, no logos.\",\n  \"prompt4\": \"Vertical 9:16 macro; candle off-frame flickers; highlight sweep across talisman; star map lines glint briefly; centered framing; no faces, no hands, no text, no letters, no numbers, no logos.\",\n  \"prompt5\": \"Vertical 9:16 top-down locked; pendulum fully still above talisman center; single glint travels once around edge then fades; pristine background; no faces, no hands, no text, no letters, no numbers, no logos.\",\n \"i2v_prompt1\": \"Animate frame 1 with gentle parallax and light sweep; may describe camera path/motion cues; preserve product/brand; no morphing; 9:16; ~4s; 24fps\",\n  \"i2v_prompt2\": \"Animate frame 2 (edit of frame 1): subtle motion consistent with the stated change (e.g., slight yaw/push‑in, highlight roll); preserve product; no morphing; 9:16; ~4s; 24fps\",\n  \"i2v_prompt3\": \"Animate frame 3 (edit of frame 2): continue the narrative motion (e.g., controlled tilt/glint/reveal); preserve product; no morphing; 9:16; ~4s; 24fps\",\n  \"i2v_prompt4\": \"Animate frame 4 (edit of frame 3): finishing move (e.g., short arc or glint wrap) into a clean hold; preserve product; no morphing; 9:16; ~4s; 24fps\",\n  \"environment\": \"Candlelit altar, matte black cloth, high contrast, thin incense smoke.\",\n  \"sound\": \"Soft candle crackle, faint ticking, distant single chime.\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "9b2e7a8f-4dd9-4cb4-bc51-e3cf92d45c01",
      "name": "思考2",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -3248,
        384
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8ed77dcf-cec3-465f-b2b3-cfd2e1754c06",
      "name": "合并1",
      "type": "n8n-nodes-base.merge",
      "position": [
        192,
        128
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.1
    },
    {
      "id": "d40f627c-493e-40e9-b8bd-919428e65694",
      "name": "故事板代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -3376,
        128
      ],
      "parameters": {
        "text": "==Use this product description:\n\n{{ $json[\"Product description\"] }}\n\nCreate a simple, elegant 4-frame visual story for a premium advertisement video. Focus on SIMPLE edits and SUBTLE animations that work well with AI image-to-video models.\n\nYour task:\n1. Design 4 independent SIMPLE edits of the SAME original product image\n2. Each edit should be minimal: lighting changes, background blur, simple color grading, or subtle effects\n3. Animations must be VERY SIMPLE: camera movements, rotations, zoom, or gentle lighting changes\n4. Make it suitable for social media with clean, professional look\n\nFor the product context, consider:\n- Clean, minimal edits that enhance the product\n- Simple lighting improvements\n- Subtle background changes (blur, color, gradient)\n- Easy camera movements for animation\n\nReturn ONLY a compact JSON with these keys (no prose):\n{\n  \"title\": \"<≤60 chars, catchy title that hooks viewers immediately>\",\n  \"prompt1\": \"<Simple edit: Enhance lighting and add subtle background blur - vertical 9:16, clean look>\",\n  \"prompt2\": \"<Simple edit: Change background to elegant gradient or solid color - maintain product focus>\",\n  \"prompt3\": \"<Simple edit: Add warm cinematic lighting with soft shadows - premium feel>\",\n  \"prompt4\": \"<Simple edit: Create depth with bokeh background and highlight the product - hero shot>\",\n  \"i2v_prompt1\": \"Gentle 360-degree rotation of the product, smooth and slow; 9:16; 5s\",\n  \"i2v_prompt2\": \"Slow camera push-in towards the product, steady movement; 9:16; 5s\", \n  \"i2v_prompt3\": \"Subtle lighting sweep across the product surface, gentle glow; 9:16; 5s\",\n  \"i2v_prompt4\": \"Slow camera orbit around the product, elegant reveal; 9:16; 5s\",\n  \"environment\": \"<≤25 words: clean, minimalist setting that enhances product appeal>\",\n  \"sound\": \"<≤20 words: modern, clean music with premium feel - suitable for luxury brand advertisement>\"\n}\n\nRules:\n• Keep ALL edits VERY SIMPLE - only lighting, background, or subtle color changes\n• Animations must be BASIC camera movements only (rotate, zoom, orbit, push-in)\n• NO complex effects, morphing, or dramatic changes\n• Each edit should enhance the SAME product without changing its core appearance\n• Focus on clean, professional aesthetics\n• Preserve product authenticity and visual identity\n• Language must follow input description language\n• Output must be strictly valid JSON",
        "options": {
          "systemMessage": "Role: You are a creative director specialized in short-form viral ads. You will produce a 4-frame visual story (vertical 9:16) and four matching animation prompts. The goal is a funny, curious, or satisfying mini-story that makes the product memorable.\n\nStorytelling rules:\n\n- The output ALWAYS in English\n- Preserve the product's appearance (shape, materials, logo) across all frames.\n- No new primary objects, no hands, no faces, no on-screen text/UI.\n- Background and lighting must remain consistent, only changing if it's part of the story (e.g., a light turns on).\n- Output strictly valid compact JSON, no prose, no markdown.\n\nLanguage: Follow the input description’s language (ES/EN)."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "95788733-6ba3-4da5-9885-18e40833a55b",
      "name": "设置故事板变量",
      "type": "n8n-nodes-base.set",
      "position": [
        -2944,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "603206a7-a63d-4fc1-8771-f5e6581b6b64",
              "name": "title",
              "type": "string",
              "value": "={{ $json.output.title }}"
            },
            {
              "id": "13789e95-b7c3-4952-afaa-5b86e212b225",
              "name": "prompt1",
              "type": "string",
              "value": "={{ $json.output.prompt1 }}"
            },
            {
              "id": "fb657b62-be6f-4d12-a2e5-884862394515",
              "name": "prompt2",
              "type": "string",
              "value": "={{ $json.output.prompt2 }}"
            },
            {
              "id": "90c41c48-b79d-4fde-aff6-7fbdcb287526",
              "name": "prompt3",
              "type": "string",
              "value": "={{ $json.output.prompt3 }}"
            },
            {
              "id": "74fca959-7fb8-4578-b98d-a9910f622845",
              "name": "prompt4",
              "type": "string",
              "value": "={{ $json.output.prompt4 }}"
            },
            {
              "id": "3257de17-c23a-4378-83d0-3583cd2662f7",
              "name": "i2v_prompt1",
              "type": "string",
              "value": "={{ $json.output.i2v_prompt1 }}"
            },
            {
              "id": "7b07631e-fbbe-40c3-a2cf-1d567a1338b0",
              "name": "i2v_prompt2",
              "type": "string",
              "value": "={{ $json.output.i2v_prompt2 }}"
            },
            {
              "id": "43beff27-abd0-40cf-8040-eefdab3829f3",
              "name": "i2v_prompt3",
              "type": "string",
              "value": "={{ $json.output.i2v_prompt3 }}"
            },
            {
              "id": "2b68fbbe-1800-4ecc-ba45-7ae281c477e0",
              "name": "i2v_prompt4",
              "type": "string",
              "value": "={{ $json.output.i2v_prompt4 }}"
            },
            {
              "id": "15224724-31ad-4fda-a812-f5b7b9593342",
              "name": "environment",
              "type": "string",
              "value": "={{ $json.output.environment }}"
            },
            {
              "id": "fbceb288-b55b-4c1d-828f-e47f66c6fa23",
              "name": "sound",
              "type": "string",
              "value": "={{ $json.output.sound }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cf37ab76-63a4-4e41-822f-fda96e5c21bb",
      "name": "Gemini 2.5 Flash - 生成图像 2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2112,
        64
      ],
      "parameters": {
        "url": "https://fal.run/fal-ai/gemini-25-flash-image/edit",
        "body": "={\"prompt\":\"{{ $('Set Storyboard Vars').item.json.prompt1 }}\",\"image_urls\":[\"{{ $('Upload Original Image to imgbb').item.json.data.url }}\"],\"num_images\":{{ $('Set APIs Vars').item.json.number_of_images }}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "37daf919-c133-43a1-abf0-fc8aa48ae58c",
      "name": "分离图像输出 2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        64
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "f4dc09fa-e2e6-4266-b8ad-0a06843e3693",
      "name": "重命名为照片 2",
      "type": "n8n-nodes-base.code",
      "position": [
        -1456,
        64
      ],
      "parameters": {
        "jsCode": "return items.map((i)=>({json:{url: i.json.url},binary:{photo2:i.binary.data}}));"
      },
      "typeVersion": 2
    },
    {
      "id": "f4b144f0-639f-4b02-bb81-54c3da4d3816",
      "name": "上传图像到 imgbb 2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1264,
        64
      ],
      "parameters": {
        "url": "https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "photo2"
            },
            {
              "name": "key",
              "value": "={{ $('Set APIs Vars').item.json.imgbb_api_key }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "7adb18d8-b5bd-437a-b91b-a1f8539a1315",
      "name": "Gemini 2.5 Flash - 生成图像 3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2112,
        240
      ],
      "parameters": {
        "url": "https://fal.run/fal-ai/gemini-25-flash-image/edit",
        "body": "={\"prompt\":\"{{ $('Set Storyboard Vars').item.json.prompt2 }}\",\"image_urls\":[\"{{ $('Upload Original Image to imgbb').item.json.data.url }}\"],\"num_images\":{{ $('Set APIs Vars').item.json.number_of_images }}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9ef8baf9-5b5a-405a-ac75-67d281b80183",
      "name": "分离图像输出 3",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        240
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "57305bf9-cdb5-4598-8320-8a58f750617e",
      "name": "重命名为照片 3",
      "type": "n8n-nodes-base.code",
      "position": [
        -1440,
        240
      ],
      "parameters": {
        "jsCode": "return items.map((i)=>({json:{url: i.json.url},binary:{photo3:i.binary.data}}));"
      },
      "typeVersion": 2
    },
    {
      "id": "1f441226-f188-48e5-9cf8-e8b26792fa7a",
      "name": "上传图像到 imgbb 3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1264,
        240
      ],
      "parameters": {
        "url": "https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "photo3"
            },
            {
              "name": "key",
              "value": "={{ $('Set APIs Vars').item.json.imgbb_api_key }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "fba27d6a-db85-4e17-b519-51c95801d406",
      "name": "Gemini 2.5 Flash - 生成图像 4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2112,
        416
      ],
      "parameters": {
        "url": "https://fal.run/fal-ai/gemini-25-flash-image/edit",
        "body": "={\"prompt\":\"{{ $('Set Storyboard Vars').item.json.prompt3 }}\",\"image_urls\":[\"{{ $('Upload Original Image to imgbb').item.json.data.url }}\"],\"num_images\":{{ $('Set APIs Vars').item.json.number_of_images }}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "14b4bda8-614d-44f3-9f88-06b1bf516d2c",
      "name": "分离图像输出 4",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        416
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "ddacbcb8-2833-4df5-af9a-733a5c92a997",
      "name": "重命名为照片 4",
      "type": "n8n-nodes-base.code",
      "position": [
        -1456,
        416
      ],
      "parameters": {
        "jsCode": "return items.map((i)=>({json:{url: i.json.url},binary:{photo4:i.binary.data}}));"
      },
      "typeVersion": 2
    },
    {
      "id": "54b561a3-6084-4c76-9e7e-36200a16b96a",
      "name": "上传图像到 imgbb 4",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1264,
        416
      ],
      "parameters": {
        "url": "https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "photo4"
            },
            {
              "name": "key",
              "value": "={{ $('Set APIs Vars').item.json.imgbb_api_key }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "856024cb-c12d-44c2-9c94-0fcdfde18368",
      "name": "Gemini 2.5 Flash - 生成图像 5",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2112,
        560
      ],
      "parameters": {
        "url": "https://fal.run/fal-ai/gemini-25-flash-image/edit",
        "body": "={\"prompt\":\"{{ $('Set Storyboard Vars').item.json.prompt4 }}\",\"image_urls\":[\"{{ $('Upload Original Image to imgbb').item.json.data.url }}\"],\"num_images\":{{ $('Set APIs Vars').item.json.number_of_images }}}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a486e44e-0b63-4a69-8744-b40cd96a4c98",
      "name": "分离图像输出 5",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        560
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "80eca014-60bd-449a-9098-83f93785c45e",
      "name": "重命名为照片 5",
      "type": "n8n-nodes-base.code",
      "position": [
        -1472,
        560
      ],
      "parameters": {
        "jsCode": "return items.map((i)=>({json:{url: i.json.url},binary:{photo5:i.binary.data}}));"
      },
      "typeVersion": 2
    },
    {
      "id": "bab4e33c-5104-4c88-929a-0cbcc8ede598",
      "name": "上传图像到 imgbb 5",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1264,
        560
      ],
      "parameters": {
        "url": "https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "photo5"
            },
            {
              "name": "key",
              "value": "={{ $('Set APIs Vars').item.json.imgbb_api_key }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "124128a9-914a-470d-bde1-82a0f5255a3d",
      "name": "序列视频(FFmpeg)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        512,
        160
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ffmpeg-api/compose",
        "body": "={\"tracks\":[{\"id\":\"v1\",\"type\":\"video\",\"keyframes\":[{\"url\":\"{{ $json.data[0].video.url }}\",\"timestamp\":0,\"duration\":5},{\"url\":\"{{ $json.data[1].video.url }}\",\"timestamp\":5,\"duration\":5},{\"url\":\"{{ $json.data[2].video.url }}\",\"timestamp\":10,\"duration\":5},{\"url\":\"{{ $('FAL WAN i2v (Result) 5').item.json.video.url }}\",\"timestamp\":15,\"duration\":5}]}]}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d1cd4afc-0bf2-4054-ac27-19669f34b9bc",
      "name": "等待最终视频",
      "type": "n8n-nodes-base.wait",
      "position": [
        704,
        160
      ],
      "webhookId": "compose-wait",
      "parameters": {
        "amount": 200
      },
      "typeVersion": 1.1
    },
    {
      "id": "50165873-807b-4163-aa72-2328508d61bd",
      "name": "获取最终视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        832,
        160
      ],
      "parameters": {
        "url": "={{ $json.response_url }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3c2d69cb-2990-46bb-90f9-9828f3a5bd06",
      "name": "创建声音",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        992,
        160
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/mmaudio-v2",
        "body": "={\"prompt\":\"Ambient suitable for a product ad. {{ $('Set Storyboard Vars').first().json.sound }}\",\"duration\":20,\"video_url\":\"{{ $json.video_url || $json.data?.video_url || $json.output_url || $json.data?.output_url }}\"}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "225322bc-5f2d-4b9c-a4d4-aba7986ff994",
      "name": "等待声音",
      "type": "n8n-nodes-base.wait",
      "position": [
        1200,
        160
      ],
      "webhookId": "audio-wait",
      "parameters": {
        "amount": 200
      },
      "typeVersion": 1.1
    },
    {
      "id": "15640f1f-f2af-4148-9d75-ae1f50f3bc18",
      "name": "获取声音",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1392,
        160
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/mmaudio-v2/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bae8ce83-ccde-46b1-8615-c3945cc22ade",
      "name": "下载最终视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1616,
        160
      ],
      "parameters": {
        "url": "={{ $json.video.url }}",
        "options": {
          "response": {
            "response": {}
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fddb3086-d5c1-4112-943e-b0a17a80d0c5",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1088,
        128
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.1
    },
    {
      "id": "2e1dda5b-e32f-4b4a-acea-c0c6e3f61384",
      "name": "聚合",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -976,
        160
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "7490aefc-6fed-4f79-b0de-8b904c957f16",
      "name": "聚合1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        336,
        160
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "c22a7e25-182d-4145-99bf-14df38e997be",
      "name": "照片上传表单",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -3776,
        48
      ],
      "webhookId": "animate-photo-form",
      "parameters": {
        "path": "generate-ad",
        "options": {},
        "formTitle": "Generate ads",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "photo",
              "multipleFiles": false,
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Product description",
              "placeholder": "Describe the product"
            }
          ]
        },
        "formDescription": "Upload photo and descriptipon"
      },
      "typeVersion": 2.1
    },
    {
      "id": "bf1b7c06-229f-4e89-a186-b3bce395909e",
      "name": "设置 API 变量",
      "type": "n8n-nodes-base.set",
      "position": [
        -2736,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "65f5780e-7894-4d4c-b1d7-b6b922aceebe",
              "name": "number_of_images",
              "type": "number",
              "value": 1
            },
            {
              "id": "e6d64db7-8c79-4f8f-96bf-edbc1faa365d",
              "name": "size_of_image",
              "type": "string",
              "value": "1024x1024"
            },
            {
              "id": "5614f0f0-92d2-4a42-98a7-401f43308b55",
              "name": "openai_image_model",
              "type": "string",
              "value": "gemini-25-flash-image"
            },
            {
              "id": "9ab52e7d-a777-4857-96bd-ae9e06317e54",
              "name": "format_image",
              "type": "string",
              "value": "webp"
            },
            {
              "id": "a7d62af0-baf3-4349-abe9-a75b91edc3f2",
              "name": "imgbb_api_key",
              "type": "string",
              "value": "add_api_token"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cc72decd-935c-4eda-897a-3de8bab92379",
      "name": "合并变量 + 照片1",
      "type": "n8n-nodes-base.merge",
      "position": [
        -2528,
        64
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "19695a1c-cf16-4e60-8190-fd148a5be452",
      "name": "上传原始图片到 imgbb",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2336,
        64
      ],
      "parameters": {
        "url": "https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "photo"
            },
            {
              "name": "key",
              "value": "={{ $('Set APIs Vars').item.json.imgbb_api_key }}"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "3a09ffc2-dd8b-480c-9fd4-e45a6818c31a",
      "name": "Google Gemini 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -3344,
        336
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "Pz5rkKL1ZRGrSYoQ",
          "name": "key studio google"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f159c4ad-8e6b-4c45-abbe-98f59c6ae62e",
      "name": "HTTP 请求",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1616,
        64
      ],
      "parameters": {
        "url": "={{ $('Separate Image Outputs 2').item.json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "0a64959a-0288-473f-8308-1dd79b44880f",
      "name": "HTTP请求1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1616,
        240
      ],
      "parameters": {
        "url": "={{ $('Separate Image Outputs 3').item.json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "c166343a-17c7-4c4c-a4aa-13d8a0c913bd",
      "name": "HTTP 请求2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1632,
        416
      ],
      "parameters": {
        "url": "={{ $('Separate Image Outputs 4').item.json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "3c3c8b82-af82-4461-984f-7759a9b15633",
      "name": "HTTP请求3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1648,
        560
      ],
      "parameters": {
        "url": "={{ $('Separate Image Outputs 5').item.json.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "c2391cac-c40d-4e30-8330-6d590b3347e2",
      "name": "上传帖子",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        1824,
        160
      ],
      "parameters": {
        "user": "upload-post-user",
        "title": "Description",
        "video": "data",
        "platform": [
          "tiktok",
          "instagram",
          "youtube"
        ],
        "operation": "uploadVideo",
        "instagramMediaType": "REELS"
      },
      "credentials": {
        "uploadPostApi": {
          "id": "vVoSR7aOKLILrtEE",
          "name": "vm.caverogracia@gmail.com"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "663a9d20-373a-48c8-8c30-6d6f5e897702",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Think2": {
      "ai_tool": [
        [
          {
            "node": "Storyboard Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (Queue) 2",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 3",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 4",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Sequence Video (FFmpeg)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Sounds": {
      "main": [
        [
          {
            "node": "Download Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait i2v 2": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (status)2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait i2v 3": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (status)3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait i2v 4": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (status)4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait i2v 5": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (status)5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Rename to photo 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Sounds": {
      "main": [
        [
          {
            "node": "Wait for Sounds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request1": {
      "main": [
        [
          {
            "node": "Rename to photo 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request2": {
      "main": [
        [
          {
            "node": "Rename to photo 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request3": {
      "main": [
        [
          {
            "node": "Rename to photo 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set APIs Vars": {
      "main": [
        [
          {
            "node": "Merge Vars + Photo1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get Final Video": {
      "main": [
        [
          {
            "node": "Create Sounds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Sounds": {
      "main": [
        [
          {
            "node": "Get Sounds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Storyboard Agent": {
      "main": [
        [
          {
            "node": "Set Storyboard Vars",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Final Video": {
      "main": [
        [
          {
            "node": "Get Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Photo Upload Form": {
      "main": [
        [
          {
            "node": "Merge Vars + Photo1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Storyboard Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename to photo 2": {
      "main": [
        [
          {
            "node": "Upload Image to imgbb 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename to photo 3": {
      "main": [
        [
          {
            "node": "Upload Image to imgbb 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename to photo 4": {
      "main": [
        [
          {
            "node": "Upload Image to imgbb 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rename to photo 5": {
      "main": [
        [
          {
            "node": "Upload Image to imgbb 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Vars + Photo1": {
      "main": [
        [
          {
            "node": "Upload Original Image to imgbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Storyboard Vars": {
      "main": [
        [
          {
            "node": "Set APIs Vars",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Final Video": {
      "main": [
        [
          {
            "node": "Upload Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Animation Completed?2": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (Result) 2",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 3",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait i2v 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Animation Completed?3": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (Result) 3",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 4",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait i2v 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Animation Completed?4": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (Result) 4",
            "type": "main",
            "index": 0
          },
          {
            "node": "FAL WAN i2v (Queue) 5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait i2v 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Animation Completed?5": {
      "main": [
        [
          {
            "node": "FAL WAN i2v (Result) 5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait i2v 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Queue) 2": {
      "main": [
        [
          {
            "node": "Wait i2v 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Queue) 3": {
      "main": [
        [
          {
            "node": "Wait i2v 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Queue) 4": {
      "main": [
        [
          {
            "node": "Wait i2v 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Queue) 5": {
      "main": [
        [
          {
            "node": "Wait i2v 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (status)2": {
      "main": [
        [
          {
            "node": "Animation Completed?2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (status)3": {
      "main": [
        [
          {
            "node": "Animation Completed?3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (status)4": {
      "main": [
        [
          {
            "node": "Animation Completed?4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (status)5": {
      "main": [
        [
          {
            "node": "Animation Completed?5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Result) 2": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FAL WAN i2v (Result) 3": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "FAL WAN i2v (Result) 4": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "FAL WAN i2v (Result) 5": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Sequence Video (FFmpeg)": {
      "main": [
        [
          {
            "node": "Wait Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image to imgbb 2": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image to imgbb 3": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Upload Image to imgbb 4": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Upload Image to imgbb 5": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Storyboard Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Separate Image Outputs 2": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separate Image Outputs 3": {
      "main": [
        [
          {
            "node": "HTTP Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separate Image Outputs 4": {
      "main": [
        [
          {
            "node": "HTTP Request2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separate Image Outputs 5": {
      "main": [
        [
          {
            "node": "HTTP Request3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "Storyboard Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Upload Original Image to imgbb": {
      "main": [
        [
          {
            "node": "Gemini 2.5 Flash - Generate Image 2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Gemini 2.5 Flash - Generate Image 3",
            "type": "main",
            "index": 0
          },
          {
            "node": "Gemini 2.5 Flash - Generate Image 4",
            "type": "main",
            "index": 0
          },
          {
            "node": "Gemini 2.5 Flash - Generate Image 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.5 Flash - Generate Image 2": {
      "main": [
        [
          {
            "node": "Separate Image Outputs 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.5 Flash - Generate Image 3": {
      "main": [
        [
          {
            "node": "Separate Image Outputs 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.5 Flash - Generate Image 4": {
      "main": [
        [
          {
            "node": "Separate Image Outputs 4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini 2.5 Flash - Generate Image 5": {
      "main": [
        [
          {
            "node": "Separate Image Outputs 5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量61
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Juan Carlos Cavero Gracia

Juan Carlos Cavero Gracia

@carlosgracia

Follow me in linkedin: https://www.linkedin.com/in/juan-carlos-cavero-gracia/

外部链接
在 n8n.io 查看

分享此工作流