{
  "name": "Generate multi-scene AI videos from scripts with Claude, Stability AI and Runway",
  "nodes": [
    {
      "id": "6e619e44-562f-4177-8530-3c397e408c21",
      "name": "Main Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -672,
        -208
      ],
      "parameters": {
        "width": 1624,
        "height": 1676,
        "content": "## Description\n### This workflow is a fully automated AI video production pipeline. It accepts a raw script or topic via webhook, uses Claude AI to break the script into optimized video scenes, genera"
      }
    },
    {
      "id": "b67002da-f86c-43f9-8bf3-53f4a40225ba",
      "name": "Stage 1 Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        240
      ],
      "parameters": {
        "width": 580,
        "height": 748,
        "content": "## Stage 1 — Script Intake & Validation\n\n**Nodes:** Receive Script → Set Credentials → Validate Script\n\nWebhook accepts POST with script, style, aspect ratio, duration, brand, and platform. Set node n"
      }
    },
    {
      "id": "2dd40706-c59d-40ae-aa98-1bcbdabe4695",
      "name": "Stage 2 Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1696,
        224
      ],
      "parameters": {
        "width": 468,
        "height": 784,
        "content": "## Stage 2 — Claude AI Scene Breakdown\n\n**Nodes:** Claude Scene Planner → Parse Scenes JSON\n\nClaude reads the full script and returns structured JSON with 4-6 scenes. Each scene contains: scene number"
      }
    },
    {
      "id": "f695b963-0752-4c05-a1b6-19e7b566eae2",
      "name": "Stage 3 Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        304
      ],
      "parameters": {
        "width": 596,
        "height": 624,
        "content": "## Stage 3 & 4 — Scene Loop & Image Generation\n\n**Nodes:** Split Scenes → Format Scene Prompts → Generate Scene Image (Stability AI)\n\nSplitInBatches processes each scene individually. Format node buil"
      }
    },
    {
      "id": "7aece542-67bd-4826-8bad-a97ab791f073",
      "name": "Stage 4 Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2832,
        112
      ],
      "parameters": {
        "width": 1780,
        "height": 836,
        "content": "## Stage 5 — Runway Video Generation & Polling\n\n**Nodes:** Submit to Runway Gen-3 → Wait 30s → Poll Job Status → Check Complete (IF) → loop back or continue\n\nScene prompt and reference image URL are s"
      }
    },
    {
      "id": "19955446-0bf6-4bcf-a59a-e6c7ed8b7980",
      "name": "Stage 5 Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4656,
        160
      ],
      "parameters": {
        "width": 660,
        "height": 848,
        "content": "## Stage 6 & 7 — Package, Deliver & Log\n\n**Nodes:** Assemble Video Package → Notify Slack + Email Report + Log to Sheets → Return Response\n\nAfter all scenes complete, Code node assembles the full pack"
      }
    },
    {
      "id": "6d47ad64-d0dd-43a8-b494-d165749e9073",
      "name": "Receive Script",
      "type": "n8n-nodes-base.webhook",
      "position": [
        1104,
        736
      ]
    },
    {
      "id": "b64cb024-4436-4834-9449-626c73f8051c",
      "name": "Set Credentials and Config",
      "type": "n8n-nodes-base.set",
      "position": [
        1328,
        736
      ]
    },
    {
      "id": "be9f89d4-830d-4378-97c4-f84abce07fc6",
      "name": "Validate Script",
      "type": "n8n-nodes-base.if",
      "position": [
        1552,
        736
      ]
    },
    {
      "id": "ff42fd0d-2f32-490b-8360-08d54ae40f2f",
      "name": "Return Validation Error",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1776,
        832
      ]
    },
    {
      "id": "f469d4ec-8ad4-4866-9d14-72d3589e8bff",
      "name": "Claude Scene Planner",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1776,
        640
      ]
    },
    {
      "id": "48752f9a-4207-42db-b560-e5f3d8f0723c",
      "name": "Parse Scenes JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        2000,
        640
      ]
    },
    {
      "id": "9c55f227-798c-408f-a3e3-1b793a671b45",
      "name": "Split Scenes Into Batches",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2224,
        640
      ]
    },
    {
      "id": "aa137714-81fe-46be-aab3-4fd3a8e952b1",
      "name": "Format Scene Prompts",
      "type": "n8n-nodes-base.code",
      "position": [
        2448,
        640
      ]
    },
    {
      "id": "95988318-053f-4db0-ac38-e3fcd3d14f88",
      "name": "Generate Scene Image Stability",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2672,
        640
      ]
    },
    {
      "id": "ea43d099-a122-4518-93db-b93858d32062",
      "name": "Extract Image Data",
      "type": "n8n-nodes-base.code",
      "position": [
        2896,
        640
      ]
    },
    {
      "id": "5a7bc6f9-d64a-4c48-82b9-b87f932c3fd7",
      "name": "Submit to Runway Gen3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3120,
        640
      ]
    },
    {
      "id": "e7b4f70c-3dac-47d7-8459-670f928c7a57",
      "name": "Store Runway Task ID",
      "type": "n8n-nodes-base.code",
      "position": [
        3344,
        640
      ]
    },
    {
      "id": "e4485653-b46d-4fd9-b24e-51e226fff195",
      "name": "Wait 30 Seconds",
      "type": "n8n-nodes-base.wait",
      "position": [
        3568,
        640
      ]
    },
    {
      "id": "048f6d34-a25e-4c27-a977-f3b7a6922769",
      "name": "Poll Runway Job Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3792,
        496
      ]
    },
    {
      "id": "f3289261-d3ba-4b2d-a832-fd909f5eef53",
      "name": "Check Job Complete",
      "type": "n8n-nodes-base.code",
      "position": [
        4016,
        496
      ]
    },
    {
      "id": "44e51190-0c5b-42ed-b6d2-341d647c8f0d",
      "name": "Is Video Ready",
      "type": "n8n-nodes-base.if",
      "position": [
        4240,
        640
      ]
    },
    {
      "id": "b90c217c-c7da-409d-ba88-b217c7b3001e",
      "name": "Collect Completed Scene",
      "type": "n8n-nodes-base.code",
      "position": [
        4464,
        640
      ]
    },
    {
      "id": "54fe57d1-9f88-4f98-9b4a-12ca4e0f41fd",
      "name": "Assemble Video Package",
      "type": "n8n-nodes-base.code",
      "position": [
        4688,
        640
      ]
    },
    {
      "id": "43a3fe3f-ae01-4986-a249-079b064e1ef7",
      "name": "Notify Slack",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4912,
        448
      ]
    },
    {
      "id": "12626376-0f1a-4275-bf2f-1108c8b8f7e0",
      "name": "Email Video Report",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4912,
        640
      ]
    },
    {
      "id": "970b8843-5214-4769-907e-bb4dba885de1",
      "name": "Log Job to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4912,
        832
      ]
    },
    {
      "id": "233f60d4-4f7c-46cd-a47a-c8ac4503aa6a",
      "name": "Return Final Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        5136,
        544
      ]
    }
  ],
  "connections": {
    "Notify Slack": {
      "main": [
        [
          {
            "node": "Return Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Video Ready": {
      "main": [
        [
          {
            "node": "Collect Completed Scene",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 30 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Script": {
      "main": [
        [
          {
            "node": "Set Credentials and Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Script": {
      "main": [
        [
          {
            "node": "Claude Scene Planner",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Return Validation Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30 Seconds": {
      "main": [
        [
          {
            "node": "Poll Runway Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log Job to Sheets": {
      "main": [
        [
          {
            "node": "Return Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Scenes JSON": {
      "main": [
        [
          {
            "node": "Split Scenes Into Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Job Complete": {
      "main": [
        [
          {
            "node": "Is Video Ready",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Video Report": {
      "main": [
        [
          {
            "node": "Return Final Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Image Data": {
      "main": [
        [
          {
            "node": "Submit to Runway Gen3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Scene Planner": {
      "main": [
        [
          {
            "node": "Parse Scenes JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Scene Prompts": {
      "main": [
        [
          {
            "node": "Generate Scene Image Stability",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Runway Task ID": {
      "main": [
        [
          {
            "node": "Wait 30 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Submit to Runway Gen3": {
      "main": [
        [
          {
            "node": "Store Runway Task ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assemble Video Package": {
      "main": [
        [
          {
            "node": "Notify Slack",
            "type": "main",
            "index": 0
          },
          {
            "node": "Email Video Report",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Job to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll Runway Job Status": {
      "main": [
        [
          {
            "node": "Check Job Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect Completed Scene": {
      "main": [
        [
          {
            "node": "Assemble Video Package",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Scenes Into Batches": {
      "main": [
        [
          {
            "node": "Format Scene Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Credentials and Config": {
      "main": [
        [
          {
            "node": "Validate Script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Scene Image Stability": {
      "main": [
        [
          {
            "node": "Extract Image Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}