AutomationFlowsAI & RAG › Generate Video Ads with Gemini 2.5 Flash Images & Fal Wan Animation

Generate Video Ads with Gemini 2.5 Flash Images & Fal Wan Animation

ByJuan Carlos Cavero Gracia @carlosgracia on n8n.io

This automated workflow template transforms a single product image into a complete professional advertisement video with dynamic motion and custom soundtrack. Perfect for e-commerce businesses, marketing agencies, and content creators who need to quickly produce high-quality…

Event trigger★★★★★ complexityAI-powered61 nodesHTTP RequestOutput Parser StructuredTool ThinkAgentForm TriggerGoogle Gemini ChatN8N Nodes Upload Post
AI & RAG Trigger: Event Nodes: 61 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7964 — we link there as the canonical source.

This workflow follows the Agent → Form Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "sq0Sw4xPwLfXlmsP",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "generate ads from images",
  "tags": [],
  "nodes": [
    {
      "id": "94ecf4cf-877e-41e9-b7ec-49c0f91608ac",
      "name": "FAL WAN i2v (Queue) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e21122eb-5825-43fd-a3bc-e6ec0d2d89fa",
      "name": "FAL WAN i2v (Queue) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5c8c9078-271a-4671-a252-9b5b39b03468",
      "name": "FAL WAN i2v (Queue) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "112a413d-9a43-402d-886e-fb87f2a5b6c9",
      "name": "FAL WAN i2v (Queue) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d4905023-c46e-4184-99d1-471aac5cd3c0",
      "name": "Wait i2v 2",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        64
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "0e3c980c-471d-4ef5-98dd-7d369e7434d2",
      "name": "Wait i2v 3",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        240
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "b09b9c87-d606-4cf1-a299-5e5b9fdbe10f",
      "name": "Wait i2v 4",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        416
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "264bfe63-81d1-420b-8217-3b468d24eda2",
      "name": "Wait i2v 5",
      "type": "n8n-nodes-base.wait",
      "position": [
        -608,
        608
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "b44f41e0-dc25-4c47-97d6-e1e0112b3b3a",
      "name": "FAL WAN i2v (Result) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2a69dbfd-a519-457a-b024-16909a8e1ab6",
      "name": "FAL WAN i2v (Result) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ae7757c9-da28-4f8a-b0c9-300c6d36ca0c",
      "name": "FAL WAN i2v (Result) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "29554f1c-5931-4211-9e06-cba9e34c35ce",
      "name": "FAL WAN i2v (Result) 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "34039cff-4476-4c59-89bd-fb7f04f09b73",
      "name": "Animation Completed?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": "Animation Completed?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": "Animation Completed?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": "Animation Completed?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 (status)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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "165abdd2-696e-4b95-8ffd-653b1b9a425f",
      "name": "FAL WAN i2v (status)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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "65683844-23b1-4d37-bd3e-cd46dec082da",
      "name": "FAL WAN i2v (status)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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "907e2fd2-4041-46cf-a7a9-4ea2fd2150ad",
      "name": "FAL WAN i2v (status)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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "dc2a8820-9090-4103-955a-69d546880d98",
      "name": "Structured Output Parser2",
      "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\u2011in, 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": "Think2",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -3248,
        384
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8ed77dcf-cec3-465f-b2b3-cfd2e1754c06",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        192,
        128
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.1
    },
    {
      "id": "d40f627c-493e-40e9-b8bd-919428e65694",
      "name": "Storyboard Agent",
      "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\": \"<\u226460 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\": \"<\u226425 words: clean, minimalist setting that enhances product appeal>\",\n  \"sound\": \"<\u226420 words: modern, clean music with premium feel - suitable for luxury brand advertisement>\"\n}\n\nRules:\n\u2022 Keep ALL edits VERY SIMPLE - only lighting, background, or subtle color changes\n\u2022 Animations must be BASIC camera movements only (rotate, zoom, orbit, push-in)\n\u2022 NO complex effects, morphing, or dramatic changes\n\u2022 Each edit should enhance the SAME product without changing its core appearance\n\u2022 Focus on clean, professional aesthetics\n\u2022 Preserve product authenticity and visual identity\n\u2022 Language must follow input description language\n\u2022 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\u2019s language (ES/EN)."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "95788733-6ba3-4da5-9885-18e40833a55b",
      "name": "Set Storyboard Vars",
      "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 - Generate Image 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "37daf919-c133-43a1-abf0-fc8aa48ae58c",
      "name": "Separate Image Outputs 2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        64
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "f4dc09fa-e2e6-4266-b8ad-0a06843e3693",
      "name": "Rename to photo 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": "Upload Image to 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 - Generate Image 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9ef8baf9-5b5a-405a-ac75-67d281b80183",
      "name": "Separate Image Outputs 3",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        240
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "57305bf9-cdb5-4598-8320-8a58f750617e",
      "name": "Rename to photo 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": "Upload Image to 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 - Generate Image 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "14b4bda8-614d-44f3-9f88-06b1bf516d2c",
      "name": "Separate Image Outputs 4",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        416
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "ddacbcb8-2833-4df5-af9a-733a5c92a997",
      "name": "Rename to photo 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": "Upload Image to 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 - Generate Image 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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a486e44e-0b63-4a69-8744-b40cd96a4c98",
      "name": "Separate Image Outputs 5",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1888,
        560
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "80eca014-60bd-449a-9098-83f93785c45e",
      "name": "Rename to photo 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": "Upload Image to 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": "Sequence Video (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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d1cd4afc-0bf2-4054-ac27-19669f34b9bc",
      "name": "Wait Final Video",
      "type": "n8n-nodes-base.wait",
      "position": [
        704,
        160
      ],
      "parameters": {
        "amount": 200
      },
      "typeVersion": 1.1
    },
    {
      "id": "50165873-807b-4163-aa72-2328508d61bd",
      "name": "Get Final Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        832,
        160
      ],
      "parameters": {
        "url": "={{ $json.response_url }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3c2d69cb-2990-46bb-90f9-9828f3a5bd06",
      "name": "Create Sounds",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "225322bc-5f2d-4b9c-a4d4-aba7986ff994",
      "name": "Wait for Sounds",
      "type": "n8n-nodes-base.wait",
      "position": [
        1200,
        160
      ],
      "parameters": {
        "amount": 200
      },
      "typeVersion": 1.1
    },
    {
      "id": "15640f1f-f2af-4148-9d75-ae1f50f3bc18",
      "name": "Get Sounds",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bae8ce83-ccde-46b1-8615-c3945cc22ade",
      "name": "Download Final Video",
      "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": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1088,
        128
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.1
    },
    {
      "id": "2e1dda5b-e32f-4b4a-acea-c0c6e3f61384",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -976,
        160
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "7490aefc-6fed-4f79-b0de-8b904c957f16",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        336,
        160
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "c22a7e25-182d-4145-99bf-14df38e997be",
      "name": "Photo Upload Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -3776,
        48
      ],
      "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": "Set APIs Vars",
      "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": "Merge Vars + Photo1",
      "type": "n8n-nodes-base.merge",
      "position": [
        -2528,
        64
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "19695a1c-cf16-4e60-8190-fd148a5be452",
      "name": "Upload Original Image to 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 Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -3344,
        336
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f159c4ad-8e6b-4c45-abbe-98f59c6ae62e",
      "name": "HTTP Request",
      "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 Request1",
      "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 Request2",
      "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 Request3",
      "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": "Upload Post",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "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
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This automated workflow template transforms a single product image into a complete professional advertisement video with dynamic motion and custom soundtrack. Perfect for e-commerce businesses, marketing agencies, and content creators who need to quickly produce high-quality…

Source: https://n8n.io/workflows/7964/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

How it Works

Memory Buffer Window, Agent, Output Parser Structured +9
AI & RAG

This comprehensive n8n workflow automates the complete process of generating professional interior design moodboards from concept to client delivery. Users submit a design brief through a form, and th

Google Gemini Chat, Output Parser Structured, Tool Think +7
AI & RAG

This automation workflow is designed for e-commerce businesses, digital marketers, and entrepreneurs who need to create high-quality promotional content for their products quickly and efficiently. Fro

Output Parser Structured, Tool Think, Agent +5
AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

Creators, marketers, and brands that want to turn a single product photo into premium motion clips, then optionally publish to Instagram/TikTok/YouTube via LATE. No editing skills required.

Telegram, Agent Tool, Telegram Trigger +5