
StoryForge AI V2.09.25
説明
Categories
🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.noOpn8n-nodes-base.waitn8n-nodes-base.waitn8n-nodes-base.waitn8n-nodes-base.mergen8n-nodes-base.merge
Price無料
Views0
最終更新11/28/2025
workflow.json
{
"id": "PFysEJ5V4P8qFwri",
"meta": {
"instanceId": "4655497243705f66b47991d9dbe9a9222e8444b5c2782e466f572ff93867cb4c",
"templateCredsSetupCompleted": true
},
"name": "StoryForge AI V2.09.25",
"tags": [
{
"id": "2vNUPhGWCuXVVVSR",
"name": "ai-video",
"createdAt": "2025-08-31T21:12:18.615Z",
"updatedAt": "2025-08-31T21:12:18.615Z"
},
{
"id": "7ASMGI4lVr4Eo8rL",
"name": "tuguidragos.com",
"createdAt": "2025-08-23T19:10:40.177Z",
"updatedAt": "2025-08-23T19:10:40.177Z"
},
{
"id": "L8VY7enXtG8LpCmP",
"name": "workflow",
"createdAt": "2025-08-31T21:12:39.020Z",
"updatedAt": "2025-08-31T21:12:39.020Z"
},
{
"id": "NtEM4qJBPpIvfcPu",
"name": "automation",
"createdAt": "2025-08-31T21:12:32.130Z",
"updatedAt": "2025-08-31T21:12:32.130Z"
},
{
"id": "X1lXeZCucYH5GGXd",
"name": "narrative-ai",
"createdAt": "2025-08-31T21:12:53.224Z",
"updatedAt": "2025-08-31T21:12:53.224Z"
},
{
"id": "YC5jPYJYW6CyAwJn",
"name": "multimodal",
"createdAt": "2025-08-31T21:12:59.265Z",
"updatedAt": "2025-08-31T21:12:59.265Z"
},
{
"id": "ZllbFrrUYElUrmt2",
"name": "storytelling",
"createdAt": "2025-08-31T21:12:25.950Z",
"updatedAt": "2025-08-31T21:12:25.950Z"
},
{
"id": "fdwqjQvzTL3OIL9J",
"name": "post-production",
"createdAt": "2025-08-31T21:13:05.963Z",
"updatedAt": "2025-08-31T21:13:05.963Z"
},
{
"id": "hJikg468s5tXRJ6M",
"name": "distribution",
"createdAt": "2025-08-31T21:13:11.746Z",
"updatedAt": "2025-08-31T21:13:11.746Z"
},
{
"id": "jSvpJj29oUaYcCq2",
"name": "video-production",
"createdAt": "2025-08-31T21:12:11.434Z",
"updatedAt": "2025-08-31T21:12:11.434Z"
},
{
"id": "zF6deiKpnp5i0jim",
"name": "creative-suite",
"createdAt": "2025-08-31T21:12:46.383Z",
"updatedAt": "2025-08-31T21:12:46.383Z"
}
],
"nodes": [
{
"id": "c3e42087-f432-4be7-a53f-3696a50d43da",
"name": "Narrative LLM Core ",
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"position": [
1520,
-1424
],
"parameters": {
"options": {}
},
"credentials": {
"deepSeekApi": {
"id": "1YHwkILhG2AWzFyv",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 1
},
{
"id": "6d3448be-bf84-44e4-9142-a127261a3985",
"name": "Visual LLM Core",
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"position": [
1520,
-1072
],
"parameters": {
"options": {}
},
"credentials": {
"deepSeekApi": {
"id": "1YHwkILhG2AWzFyv",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 1
},
{
"id": "f6437d7e-5861-4c73-91f2-3c2159d36e11",
"name": "Score LLM Core",
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"position": [
1520,
-768
],
"parameters": {
"options": {}
},
"credentials": {
"deepSeekApi": {
"id": "1YHwkILhG2AWzFyv",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 1
},
{
"id": "df848f0d-8444-4227-be6b-42345f4383e7",
"name": "Voice LLM Core",
"type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
"position": [
1520,
-464
],
"parameters": {
"options": {}
},
"credentials": {
"deepSeekApi": {
"id": "1YHwkILhG2AWzFyv",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 1
},
{
"id": "645a4b31-4140-415f-b60a-2c5341ce469a",
"name": "Visual Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1664,
-1072
],
"parameters": {
"jsonSchemaExample": "[\n { \"image_prompt\": \"Line 1...\" },\n { \"image_prompt\": \"Line 2...\" },\n { \"image_prompt\": \"Line 3...\" },\n { \"image_prompt\": \"Line 4...\" },\n { \"image_prompt\": \"Line 5...\" },\n { \"image_prompt\": \"Line 6...\" }\n]"
},
"typeVersion": 1.2
},
{
"id": "6e859f62-8355-4e22-8fac-02f90b6faac7",
"name": "Score Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1664,
-768
],
"parameters": {
"jsonSchemaExample": "{\n\t\"music_prompt\":\"insert music prompt\"\n}"
},
"typeVersion": 1.2
},
{
"id": "b175d1c7-13dc-47f1-8aef-546f830342e6",
"name": "Voice Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1664,
-464
],
"parameters": {
"jsonSchemaExample": "[\n { \"voiceover\": \"Line 1...\" },\n { \"voiceover\": \"Line 2...\" },\n { \"voiceover\": \"Line 3...\" },\n { \"voiceover\": \"Line 4...\" },\n { \"voiceover\": \"Line 5...\" },\n { \"voiceover\": \"Line 6...\" }\n]"
},
"typeVersion": 1.2
},
{
"id": "5e938066-1637-492d-b731-a44e559b20be",
"name": "Narrative Director",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1520,
-1296
],
"parameters": {
"text": "=You are a creative scriptwriter tasked with generating a vivid, consistent cinematic story.\n\nYour task:\n\t1.\tRead the story concept provided here:\nInput (raw text from Slack via Webhook):\n{{ $('Creative Brief Intake').item.json.body.text }}\n\t2.\tWrite a concise story outline summary of exactly 30 words, ensuring it captures the essence of the input.\n\t3.\tCreate six detailed scene descriptions, each fewer than 20 words, that visually capture the main events.\n\t4.\tStrict rules:\n\t•\tAlways reference the main character exactly as described in the input (no pronouns, no abbreviations).\n\t•\tMaintain the same tone and style throughout (cinematic, consistent atmosphere).\n\t•\tEnsure scenes follow a logical narrative flow from beginning to climax to resolution.\n\t•\tEmphasize sensory details (setting, mood, lighting, sound).\n\t5.\tOutput format (must follow this exactly):\n\nStory Summary: {insert your 30-word outline here}\n\nScene 1: {insert scene description here}\nScene 2: {insert scene description here}\nScene 3: {insert scene description here}\nScene 4: {insert scene description here}\nScene 5: {insert scene description here}\nScene 6: {insert scene description here}",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "f59ad576-5776-458d-9927-c9738faac131",
"name": "Visual Art Director",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1520,
-944
],
"parameters": {
"text": "=You are an AI that generates vivid, cinematic image prompts for a storyboard.\n\nInstructions:\n1. Read the story text from: {{ $json.text }}.\n2. Identify exactly six distinct scenes in the story.\n3. Always reference the main character exactly as given in: {{ $json.text }}.\n4. For each scene, create one descriptive prompt with:\n - Maximum 50 words\n - Strong continuity across all scenes (same main character design, same overall style, same time period)\n - Evocative imagery: setting, lighting, atmosphere, cinematic composition\n - Avoid pronouns; always repeat the full main character description\n - Add a consistent visual style tag: “cinematic, painterly realism, muted colors, dramatic lighting”\n\nOutput:\nReturn only valid JSON in this format, with six objects:\n\n[\n { \"image_prompt\": \"Scene 1 prompt...\" },\n { \"image_prompt\": \"Scene 2 prompt...\" },\n { \"image_prompt\": \"Scene 3 prompt...\" },\n { \"image_prompt\": \"Scene 4 prompt...\" },\n { \"image_prompt\": \"Scene 5 prompt...\" },\n { \"image_prompt\": \"Scene 6 prompt...\" }\n]\n\nDo not include explanations, disclaimers, or additional text outside the JSON.",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "cc5ba781-7516-49bc-8c04-85a5935ee439",
"name": "Score Composer",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1520,
-640
],
"parameters": {
"text": "=Generate a descriptive prompt for a background music track that matches the tone, mood, and pacing of the story provided: {{ $json.text }}. \n\nYour response must be returned in the following JSON format:\n{\n \"music_prompt\": \"insert music prompt\"\n}",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "0690bae9-f5cc-4611-8d0e-68af19253fcc",
"name": "Narration Artist",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1520,
-336
],
"parameters": {
"text": "=Your task is to create voiceover scripts for each of the 6 scenes, no longer than 5 seconds each, using the story from: {{ $json.text }}\n\n\nReturn the output in **exactly** this JSON format (with the same number of objects as the number of scenes):\n[\n { \"voiceover\": \"Line 1...\" },\n { \"voiceover\": \"Line 2...\" },\n ...\n]",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "95844a55-56aa-4ec9-a3f2-9705b3e740c0",
"name": "Scene Breakdown",
"type": "n8n-nodes-base.splitOut",
"position": [
1808,
-944
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "=output"
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "5f98ddde-b441-4ddd-98ca-601d49c0a479",
"name": "Concept Art Studio",
"type": "n8n-nodes-base.httpRequest",
"position": [
2016,
-944
],
"parameters": {
"url": "https://api.replicate.com/v1/models/black-forest-labs/flux-pro/predictions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"input\": {\n \"width\": 768,\n \"height\": 1280,\n \"prompt\": \"{{ $json.output.image_prompt }}\"\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Prefer",
"value": "wait"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "d942e3a5-144d-42d6-af5b-92673ed61550",
"name": "Render Queue",
"type": "n8n-nodes-base.wait",
"position": [
2256,
-944
],
"webhookId": "6da9199c-87a5-439e-9625-bedde28f735b",
"parameters": {
"amount": 30
},
"typeVersion": 1.1
},
{
"id": "c394a2dc-434e-4aa9-88bc-2eaf7ad2c540",
"name": "Asset Fetcher",
"type": "n8n-nodes-base.httpRequest",
"position": [
2464,
-944
],
"parameters": {
"url": "={{ $json.output }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "8c442a46-a43e-4a77-8d9a-d55acd58f242",
"name": "Storyboard Assembler",
"type": "n8n-nodes-base.httpRequest",
"position": [
2656,
-944
],
"parameters": {
"url": "https://api.dev.runwayml.com/v1/image_to_video",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"gen4_turbo\",\n \"ratio\": \"720:1280\",\n \"duration\": 5,\n \"promptText\": \"{{ $json.input.prompt }}\",\n \"promptImage\": \"{{ $json.output }}\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "X-Runway-Version",
"value": "2024-11-06"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "aa52ece4-5706-4f28-ac9b-f5103049ffb0",
"name": "Encoding Queue",
"type": "n8n-nodes-base.wait",
"position": [
2896,
-944
],
"webhookId": "10f14749-0c6c-4f1c-b062-ed820fc2873d",
"parameters": {
"unit": "minutes",
"amount": 4
},
"typeVersion": 1.1
},
{
"id": "0e28f2c9-daaf-4d4a-ac7e-26ec2e9de9b1",
"name": "Media Retriever",
"type": "n8n-nodes-base.httpRequest",
"position": [
3072,
-944
],
"parameters": {
"url": "=https://api.dev.runwayml.com/v1/tasks/{{ $json.id }}",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "X-Runway-Version",
"value": "2024-11-06"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "99eb7ad3-1632-4d12-9d4f-f19fe120a788",
"name": "Metadata Curator",
"type": "n8n-nodes-base.set",
"position": [
3248,
-944
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5e18b7c0-0068-480d-9e6f-19c0c8185cd6",
"name": "=video{{$itemIndex+1}}",
"type": "string",
"value": "={{ $json.output[0] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b34d198a-3e07-44c8-a0d6-2ab3200ceb2d",
"name": "Orchestration Engine",
"type": "n8n-nodes-base.httpRequest",
"position": [
1808,
-640
],
"parameters": {
"url": "https://api.replicate.com/v1/predictions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"version\": \"96af46316252ddea4c6614e31861876183b59dce84bad765f38424e87919dd85\",\n \"input\": {\n \"prompt\": \"{{ $json.output.music_prompt }}\",\n \"duration\": 30\n }\n} ",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Prefer",
"value": "wait"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "818a7283-4bc0-48cd-ac98-0efffb489579",
"name": "Track Data Manager",
"type": "n8n-nodes-base.set",
"position": [
2016,
-640
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a4a362c1-78b7-4ada-bc34-8dc6574de6d0",
"name": "bgm",
"type": "string",
"value": "={{ $json.urls.stream }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ac26f143-9b0d-4a95-bc99-c3665b4a70e3",
"name": "Dialogue Segmenter",
"type": "n8n-nodes-base.splitOut",
"position": [
1808,
-336
],
"parameters": {
"options": {},
"fieldToSplitOut": "output"
},
"typeVersion": 1
},
{
"id": "13d97b68-aa75-4130-8c67-bbe0860a9772",
"name": "Line Delivery Manager",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2016,
-336
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "8036be89-da52-4089-95a3-618d576a29ec",
"name": "Voice Synthesis Studio",
"type": "n8n-nodes-base.httpRequest",
"position": [
2256,
-320
],
"parameters": {
"url": "https://api.elevenlabs.io/v1/text-to-speech/cgSgspJ2msm6clMCkdW9",
"method": "POST",
"options": {},
"sendBody": true,
"sendQuery": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $json['voiceover'] }}"
},
{
"name": "model_id",
"value": "eleven_multilingual_v2"
}
]
},
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "output_format",
"value": "mp3_44100_128"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "b6de8fa6-ef4a-476c-9289-11759468cd60",
"name": "Creative Archive",
"type": "n8n-nodes-base.notion",
"position": [
3440,
-1296
],
"parameters": {
"title": "=Slack Brief - {{$json[\"body\"][\"user_name\"]}} - {{$json[\"body\"][\"channel_name\"]}}",
"pageId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/tuguidragos/test"
},
"blockUi": {
"blockValues": [
{
"textContent": "={{$json[\"body\"][\"text\"]}}"
}
]
},
"options": {}
},
"credentials": {
"notionApi": {
"id": "ILpv5oMOYxb1i0sG",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 2.2
},
{
"id": "933035e0-c9a9-4cb3-8047-f685b4eefb6d",
"name": "Creative Brief Intake",
"type": "n8n-nodes-base.webhook",
"position": [
3104,
-1296
],
"webhookId": "cf398c7c-27cd-459e-a09a-54183f76daff",
"parameters": {
"path": "storytelling",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "d24f6a57-9e04-4e50-91be-d6b59364c33d",
"name": "Production Sync Hub",
"type": "n8n-nodes-base.merge",
"position": [
4032,
-960
],
"parameters": {
"mode": "combine",
"options": {
"includeUnpaired": true
},
"combineBy": "combineByPosition",
"numberInputs": 4
},
"typeVersion": 3
},
{
"id": "1273d850-726d-4366-91af-270be2e0928b",
"name": "Post-Production Orchestrator",
"type": "n8n-nodes-base.code",
"position": [
3664,
-720
],
"parameters": {
"jsCode": "const acc = {};\nfor (const item of $input.all()) {\n Object.assign(acc, item.json);\n}\nconst out = {\n voiceover0: acc.voiceover0 || \"\",\n voiceover1: acc.voiceover1 || \"\",\n voiceover2: acc.voiceover2 || \"\",\n voiceover3: acc.voiceover3 || \"\",\n voiceover4: acc.voiceover4 || \"\",\n voiceover5: acc.voiceover5 || \"\",\n video1: acc.video1 || \"\",\n video2: acc.video2 || \"\",\n video3: acc.video3 || \"\",\n video4: acc.video4 || \"\",\n video5: acc.video5 || \"\",\n video6: acc.video6 || \"\",\n bgm: acc.bgm || \"\"\n};\nreturn [{ json: out }];"
},
"typeVersion": 2
},
{
"id": "3d6ba423-c353-4231-93d4-762458223ef9",
"name": "Final Cut Renderer",
"type": "n8n-nodes-base.httpRequest",
"position": [
3840,
-720
],
"parameters": {
"url": "https://api.creatomate.com/v1/renders",
"method": "POST",
"options": {},
"jsonBody": "={\n \"template_id\": \"YOUR_id\",\n \"modifications\": {\n \"Music.source\": \"{{ $json.bgm }}\",\n \"voice0.source\": \"{{ $json.voiceover0 }}\",\n \"voice1.source\": \"{{ $json.voiceover1 }}\",\n \"voice2.source\": \"{{ $json.voiceover2 }}\",\n \"voice3.source\": \"{{ $json.voiceover3 }}\",\n \"voice4.source\": \"{{ $json.voiceover4 }}\",\n \"voice5.source\": \"{{ $json.voiceover5 }}\",\n \"video1.source\": \"{{ $json.video1 }}\",\n \"video2.source\": \"{{ $json.video2 }}\",\n \"video3.source\": \"{{ $json.video3 }}\",\n \"video4.source\": \"{{ $json.video4 }}\",\n \"video5.source\": \"{{ $json.video5 }}\",\n \"video6.source\": \"{{ $json.video6 }}\"\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "f8dad66d-85b1-49f9-8f05-2989666b51c5",
"name": "Rendering Buffer",
"type": "n8n-nodes-base.wait",
"position": [
4032,
-720
],
"webhookId": "eec1a382-929e-4f77-800c-a19e2ee631d9",
"parameters": {
"unit": "minutes",
"amount": 2
},
"typeVersion": 1.1
},
{
"id": "58c64f4e-c3a4-4cfa-8707-9e3b56b764fb",
"name": "Final Delivery Fetcher",
"type": "n8n-nodes-base.httpRequest",
"position": [
3664,
-432
],
"parameters": {
"url": "=https://api.creatomate.com/v1/renders/{{ $json.id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "q0T8YIt607jATTI7",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "b1ee2dcc-ec4c-4397-afb5-4aaf9ab787ee",
"name": "Release Announcement",
"type": "n8n-nodes-base.slack",
"position": [
4048,
-432
],
"webhookId": "aa9515f5-1830-4182-ba04-d80ffd82a4d6",
"parameters": {
"text": "=🎬 Here’s your rendered video: {{$json[\"url\"]}}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "YOUR_id"
},
"otherOptions": {
"includeLinkToWorkflow": false
}
},
"credentials": {
"slackApi": {
"id": "XuUwy2Lth9glqHbY",
"name": "Slack Test"
}
},
"typeVersion": 2.3
},
{
"id": "0242aa75-3bf3-43e7-96be-646b77214999",
"name": "Voiceover Collector",
"type": "n8n-nodes-base.merge",
"position": [
2464,
-336
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "55ce19ea-ade5-464f-a321-ea7af548bcd8",
"name": "Voice Upload Loop",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2656,
-336
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "3c9223a8-23ca-40d5-9560-2541441f1db2",
"name": "File Renamer",
"type": "n8n-nodes-base.noOp",
"position": [
2896,
-320
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4d2afbe3-5810-4cda-b2d7-af7394981938",
"name": "Dropbox Uploader",
"type": "n8n-nodes-base.dropbox",
"position": [
3072,
-352
],
"parameters": {
"path": "=/voiceovers/voice_{{$itemIndex+1}}.mp3",
"binaryData": true
},
"credentials": {
"dropboxApi": {
"id": "O0Qit0uCg0ReGstq",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 1
},
{
"id": "ae58150c-79d0-4afb-a5f6-08c6abab2be4",
"name": "Dropbox Link Generator",
"type": "n8n-nodes-base.httpRequest",
"position": [
3248,
-352
],
"parameters": {
"url": "https://api.dropboxapi.com/2/files/get_temporary_link",
"method": "POST",
"options": {},
"jsonBody": "={ \"path\": \"{{$json.path_lower}}\" }",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "oAuth2Api"
},
"credentials": {
"oAuth2Api": {
"id": "5vISQwrWF5GDhpeT",
"name": "YOUR_API_KEY"
}
},
"typeVersion": 4.2
},
{
"id": "502b74ce-a7a2-41be-88a8-55f4a416fe21",
"name": "Voiceover Mapper",
"type": "n8n-nodes-base.set",
"position": [
3440,
-352
],
"parameters": {
"include": "selected",
"options": {
"stripBinary": true
},
"assignments": {
"assignments": [
{
"id": "343fdf6d-f578-4295-975d-fff8be2d277f",
"name": "=voiceover{{$itemIndex}}",
"type": "string",
"value": "={{ $json.link }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "2207543a-4bca-4ba1-a67d-a1b4c875171f",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
2448,
-1408
],
"parameters": {
"color": 3,
"width": 368,
"content": "Features:\n- Story generation (DeepSeek LLM)\n- Visuals (Replicate + RunwayML)\n- Voice & music (ElevenLabs + Replicate)\n- Automated rendering with Creatomate\n- Trigger everything with /render in Slack"
},
"typeVersion": 1
},
{
"id": "457253cb-f456-4e1e-bcb1-188f5260b497",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-1504
],
"parameters": {
"color": 6,
"width": 1632,
"height": 384,
"content": "Generates the base story (script) split into scenes from the initial prompt. \nConnected to: Narrative Director → distributes text to Visual + Voice branches. \nAPI: DeepSeek (or any LLM). "
},
"typeVersion": 1
},
{
"id": "9e418202-2c16-4609-976e-0cb1ddb8e805",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-1120
],
"parameters": {
"color": 7,
"width": 3008,
"height": 320,
"content": "Transforms narrative text into visual prompts. \nConnected to: Scene Breakdown → Concept Art Studio → Asset Fetcher. \nAPIs: Replicate (image generation), RunwayML (image-to-video). "
},
"typeVersion": 1
},
{
"id": "88ffe05c-ab20-47c6-b3c2-d3dc4c3ba0b2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-800
],
"parameters": {
"color": 6,
"width": 1632,
"height": 304,
"content": "Creates background music and soundtrack for each scene. \nConnected to: Orchestration Engine → Track Data Manager. \nAPI: Replicate (AI music models). "
},
"typeVersion": 1
},
{
"id": "3c9f54e6-1048-426c-8288-77c05a67f63a",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-496
],
"parameters": {
"color": 7,
"width": 2992,
"height": 352,
"content": "Generates realistic voice-over from the story text. \nConnected to: Dialogue Segmenter → Line Delivery Manager → Voice Synthesis Studio. \nAPI: ElevenLabs (text-to-speech).\n"
},
"typeVersion": 1
},
{
"id": "a4cb07f9-6b80-4aeb-96e6-84b5bb31e9c8",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
3616,
-1504
],
"parameters": {
"color": 4,
"width": 608,
"height": 1360,
"content": "Main synchronization hub where text, visuals, voice, and music meet. \nConnected to: Post-Production Orchestrator → Final Cut Renderer. \nAPI: n8n core (orchestration logic). "
},
"typeVersion": 1
},
{
"id": "5f7132e2-ac53-43e6-b016-70540ece3e4b",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
3056,
-1504
],
"parameters": {
"color": 4,
"width": 512,
"height": 368,
"content": "Central node for collecting the creative brief and archiving project data. \nConnected to: Creative Archive → Production Sync Hub. \nAPI: Notion (or any database). "
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "3b199bd5-bcf6-40e3-b188-f6a25350d31a",
"connections": {
"File Renamer": {
"main": [
[
{
"node": "Voice Upload Loop",
"type": "main",
"index": 0
}
]
]
},
"Render Queue": {
"main": [
[
{
"node": "Asset Fetcher",
"type": "main",
"index": 0
}
]
]
},
"Score Parser": {
"ai_outputParser": [
[
{
"node": "Score Composer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Voice Parser": {
"ai_outputParser": [
[
{
"node": "Narration Artist",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Asset Fetcher": {
"main": [
[
{
"node": "Storyboard Assembler",
"type": "main",
"index": 0
}
]
]
},
"Visual Parser": {
"ai_outputParser": [
[
{
"node": "Visual Art Director",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Encoding Queue": {
"main": [
[
{
"node": "Media Retriever",
"type": "main",
"index": 0
}
]
]
},
"Score Composer": {
"main": [
[
{
"node": "Orchestration Engine",
"type": "main",
"index": 0
}
]
]
},
"Score LLM Core": {
"ai_languageModel": [
[
{
"node": "Score Composer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Voice LLM Core": {
"ai_languageModel": [
[
{
"node": "Narration Artist",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Media Retriever": {
"main": [
[
{
"node": "Metadata Curator",
"type": "main",
"index": 0
}
]
]
},
"Scene Breakdown": {
"main": [
[
{
"node": "Concept Art Studio",
"type": "main",
"index": 0
}
]
]
},
"Visual LLM Core": {
"ai_languageModel": [
[
{
"node": "Visual Art Director",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Creative Archive": {
"main": [
[
{
"node": "Narrative Director",
"type": "main",
"index": 0
},
{
"node": "Production Sync Hub",
"type": "main",
"index": 0
}
]
]
},
"Dropbox Uploader": {
"main": [
[
{
"node": "Dropbox Link Generator",
"type": "main",
"index": 0
}
]
]
},
"Metadata Curator": {
"main": [
[
{
"node": "Production Sync Hub",
"type": "main",
"index": 1
}
]
]
},
"Narration Artist": {
"main": [
[
{
"node": "Dialogue Segmenter",
"type": "main",
"index": 0
}
]
]
},
"Rendering Buffer": {
"main": [
[
{
"node": "Final Delivery Fetcher",
"type": "main",
"index": 0
}
]
]
},
"Voiceover Mapper": {
"main": [
[
{
"node": "Production Sync Hub",
"type": "main",
"index": 3
}
]
]
},
"Voice Upload Loop": {
"main": [
[
{
"node": "Dropbox Uploader",
"type": "main",
"index": 0
}
],
[
{
"node": "File Renamer",
"type": "main",
"index": 0
}
]
]
},
"Concept Art Studio": {
"main": [
[
{
"node": "Render Queue",
"type": "main",
"index": 0
}
]
]
},
"Dialogue Segmenter": {
"main": [
[
{
"node": "Line Delivery Manager",
"type": "main",
"index": 0
}
]
]
},
"Final Cut Renderer": {
"main": [
[
{
"node": "Rendering Buffer",
"type": "main",
"index": 0
}
]
]
},
"Narrative Director": {
"main": [
[
{
"node": "Visual Art Director",
"type": "main",
"index": 0
},
{
"node": "Score Composer",
"type": "main",
"index": 0
},
{
"node": "Narration Artist",
"type": "main",
"index": 0
}
]
]
},
"Track Data Manager": {
"main": [
[
{
"node": "Production Sync Hub",
"type": "main",
"index": 2
}
]
]
},
"Narrative LLM Core ": {
"ai_languageModel": [
[
{
"node": "Narrative Director",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Production Sync Hub": {
"main": [
[
{
"node": "Post-Production Orchestrator",
"type": "main",
"index": 0
}
]
]
},
"Visual Art Director": {
"main": [
[
{
"node": "Scene Breakdown",
"type": "main",
"index": 0
}
]
]
},
"Voiceover Collector": {
"main": [
[
{
"node": "Voice Upload Loop",
"type": "main",
"index": 0
}
]
]
},
"Orchestration Engine": {
"main": [
[
{
"node": "Track Data Manager",
"type": "main",
"index": 0
}
]
]
},
"Storyboard Assembler": {
"main": [
[
{
"node": "Encoding Queue",
"type": "main",
"index": 0
}
]
]
},
"Creative Brief Intake": {
"main": [
[
{
"node": "Creative Archive",
"type": "main",
"index": 0
}
]
]
},
"Line Delivery Manager": {
"main": [
[
{
"node": "Voiceover Collector",
"type": "main",
"index": 0
}
],
[
{
"node": "Voice Synthesis Studio",
"type": "main",
"index": 0
}
]
]
},
"Dropbox Link Generator": {
"main": [
[
{
"node": "Voiceover Mapper",
"type": "main",
"index": 0
}
]
]
},
"Final Delivery Fetcher": {
"main": [
[
{
"node": "Release Announcement",
"type": "main",
"index": 0
}
]
]
},
"Voice Synthesis Studio": {
"main": [
[
{
"node": "Line Delivery Manager",
"type": "main",
"index": 0
}
]
]
},
"Post-Production Orchestrator": {
"main": [
[
{
"node": "Final Cut Renderer",
"type": "main",
"index": 0
}
]
]
}
}
}