Advertisement
Guest User

Automated Faceless Shorts with AI in n8n

a guest
Mar 13th, 2025
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 42.42 KB | None | 0 0
  1. {
  2.   "name": "Faceless Shorts System V2",
  3.   "nodes": [
  4.     {
  5.       "parameters": {},
  6.       "type": "n8n-nodes-base.manualTrigger",
  7.       "typeVersion": 1,
  8.       "position": [
  9.         -200,
  10.         -80
  11.       ],
  12.       "id": "461b97de-4792-4351-96e4-79afbc7401d9",
  13.       "name": "When clicking ‘Test workflow’"
  14.     },
  15.     {
  16.       "parameters": {
  17.         "documentId": {
  18.           "__rl": true,
  19.           "mode": "list",
  20.           "value": ""
  21.         },
  22.         "sheetName": {
  23.           "__rl": true,
  24.           "value": "",
  25.           "mode": "list",
  26.           "cachedResultName": "",
  27.           "cachedResultUrl": ""
  28.         }
  29.       },
  30.       "type": "n8n-nodes-base.googleSheets",
  31.       "typeVersion": 4.5,
  32.       "position": [
  33.         20,
  34.         -160
  35.       ],
  36.       "id": "52898d87-db16-41f1-bfdd-af9c6c711a69",
  37.       "name": "Grab Idea",
  38.       "credentials": {
  39.         "googleSheetsOAuth2Api": {
  40.           "id": "wwE70mh6N2QEfZRL",
  41.           "name": "Google Sheets account 3"
  42.         }
  43.       }
  44.     },
  45.     {
  46.       "parameters": {
  47.         "assignments": {
  48.           "assignments": [
  49.             {
  50.               "id": "aefd1ab6-29fc-46a8-b817-cf86d62d5e4d",
  51.               "name": "animals",
  52.               "value": "=[\"{{ $json['animal 1'] }}\",\"{{ $json['animal 2'] }}\",\"{{ $json['animal 3'] }}\",\"{{ $json['animal 4'] }}\"]",
  53.               "type": "array"
  54.             },
  55.             {
  56.               "id": "16c0db54-c132-4719-87e6-9253a3fc6a54",
  57.               "name": "style",
  58.               "value": "={{ $json.style }}",
  59.               "type": "string"
  60.             }
  61.           ]
  62.         },
  63.         "options": {}
  64.       },
  65.       "type": "n8n-nodes-base.set",
  66.       "typeVersion": 3.4,
  67.       "position": [
  68.         240,
  69.         -160
  70.       ],
  71.       "id": "56ef3191-635e-4c72-b570-73627089d66c",
  72.       "name": "Set Animals"
  73.     },
  74.     {
  75.       "parameters": {
  76.         "fieldToSplitOut": "animals",
  77.         "options": {}
  78.       },
  79.       "type": "n8n-nodes-base.splitOut",
  80.       "typeVersion": 1,
  81.       "position": [
  82.         460,
  83.         -160
  84.       ],
  85.       "id": "15767609-ec11-4a14-b5e9-41520c061dac",
  86.       "name": "Split Out"
  87.     },
  88.     {
  89.       "parameters": {
  90.         "model": {
  91.           "__rl": true,
  92.           "value": "gpt-4o",
  93.           "mode": "list",
  94.           "cachedResultName": "gpt-4o"
  95.         },
  96.         "options": {}
  97.       },
  98.       "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
  99.       "typeVersion": 1.2,
  100.       "position": [
  101.         580,
  102.         0
  103.       ],
  104.       "id": "824ef653-9eff-4f9d-887f-8ac830c00c90",
  105.       "name": "GPT 4o",
  106.       "credentials": {
  107.         "openAiApi": {
  108.           "id": "BP9v81AwJlpYGStD",
  109.           "name": "OpenAi account"
  110.         }
  111.       }
  112.     },
  113.     {
  114.       "parameters": {
  115.         "promptType": "define",
  116.         "text": "=Animal: {{ $json.animals }}\nStyle: {{ $('Set Animals').item.json.style }}",
  117.         "options": {
  118.           "systemMessage": "=# Overview\nYou are a master image prompt generator specialized in crafting detailed, high-quality prompts for advanced image models like Flux. Your task is to generate vivid, well-structured prompts that accurately depict an animal dressed in a specified style, with a matching background that complements the theme.\n\n## Instructions:\n- Clearly describe the animal's appearance, including fur, feathers, or scales.\n- Specify the outfit and accessories that reflect the given style, ensuring they fit naturally.\n- Include details about the background that reinforce the style, creating a cohesive scene.\n- Use rich, descriptive language to enhance visual fidelity.\n- Avoid generic terms—opt for precise, imaginative descriptions that maximize prompt effectiveness.\n- Never output quotation marks (\"\") or newlines (\\n)\n\n## Example \n- Input:\nAnimal: Fox\nStyle: Cyberpunk\n\n- Output:\nA sleek red fox with vibrant fur and piercing blue cybernetic eyes, wearing a futuristic black leather jacket with neon blue accents and glowing circuitry patterns. A high-tech visor covers one eye, displaying holographic data. The fox stands confidently on a rain-slicked city street illuminated by neon signs in Japanese and English. Hovering drones and bustling pedestrians in cybernetic attire add depth to the scene, while distant flying cars streak through the dark, misty skyline.\n\n\n## IMPORTANT\n- All prompts must be family friendly, no sensitive words should be used.\n- No references to weapons (even toy guns).\n- No reference of “showdowns\" or violent events.\n"
  119.         }
  120.       },
  121.       "type": "@n8n/n8n-nodes-langchain.agent",
  122.       "typeVersion": 1.7,
  123.       "position": [
  124.         680,
  125.         -160
  126.       ],
  127.       "id": "a5723f13-ce4f-4f9b-8f0e-40a02e7c3f4b",
  128.       "name": "Image Prompt Agent"
  129.     },
  130.     {
  131.       "parameters": {
  132.         "jsCode": "// N8N Code Node to remove all newline characters from previous node outputs\n\n// Process all items in the array\n// This will work regardless of whether we're running once for all items or once per item\nfor (let i = 0; i < items.length; i++) {\n  const currentItem = items[i];\n  \n  // Check if the item has an output property\n  if (currentItem.json && currentItem.json.output !== undefined) {\n    // Replace all newline characters with empty string\n    // Using a global regex to catch ALL instances of \\n\n    currentItem.json.output = currentItem.json.output.replace(/\\\\n/g, '');\n    \n    // Also replace actual newline characters if they exist\n    currentItem.json.output = currentItem.json.output.replace(/\\n/g, '');\n  }\n}\n\n// Return the processed items array\nreturn items;"
  133.       },
  134.       "type": "n8n-nodes-base.code",
  135.       "typeVersion": 2,
  136.       "position": [
  137.         1040,
  138.         -160
  139.       ],
  140.       "id": "3f8a185f-4366-4a9f-848a-32174fa9ba56",
  141.       "name": "Remove \\n"
  142.     },
  143.     {
  144.       "parameters": {
  145.         "assignments": {
  146.           "assignments": [
  147.             {
  148.               "id": "3f7846c8-2c7f-440f-8245-71bf158ea311",
  149.               "name": "prompts",
  150.               "value": "={{ $json.output }}",
  151.               "type": "string"
  152.             }
  153.           ]
  154.         },
  155.         "options": {}
  156.       },
  157.       "type": "n8n-nodes-base.set",
  158.       "typeVersion": 3.4,
  159.       "position": [
  160.         1240,
  161.         -160
  162.       ],
  163.       "id": "e28c11b3-8e6b-4f33-9620-f24e86dda6e5",
  164.       "name": "Set Prompts"
  165.     },
  166.     {
  167.       "parameters": {
  168.         "method": "POST",
  169.         "url": "https://api.piapi.ai/api/v1/task",
  170.         "sendBody": true,
  171.         "specifyBody": "json",
  172.         "jsonBody": "={\n    \"model\": \"Qubico/flux1-dev\",\n    \"task_type\": \"txt2img\",\n    \"input\": {\n        \"prompt\": \"{{ $json.prompts }}\",\n        \"width\": 540, \n        \"height\": 960\n    } \n}",
  173.         "options": {}
  174.       },
  175.       "type": "n8n-nodes-base.httpRequest",
  176.       "typeVersion": 4.2,
  177.       "position": [
  178.         -220,
  179.         260
  180.       ],
  181.       "id": "b5a57719-1c2c-4241-9c45-dd811171850e",
  182.       "name": "Generate Image"
  183.     },
  184.     {
  185.       "parameters": {
  186.         "amount": 90
  187.       },
  188.       "type": "n8n-nodes-base.wait",
  189.       "typeVersion": 1.1,
  190.       "position": [
  191.         -40,
  192.         260
  193.       ],
  194.       "id": "53f8e387-ad18-4d76-8ed9-bee9897ce754",
  195.       "name": "90 seconds",
  196.       "webhookId": "ffdc5132-c0fe-44f6-af2b-4b3bb8894153"
  197.     },
  198.     {
  199.       "parameters": {
  200.         "url": "=https://api.piapi.ai/api/v1/task/{{ $json.data.task_id }}",
  201.         "options": {}
  202.       },
  203.       "type": "n8n-nodes-base.httpRequest",
  204.       "typeVersion": 4.2,
  205.       "position": [
  206.         140,
  207.         260
  208.       ],
  209.       "id": "7743ca4a-60e2-459f-a32c-9d8e2c9e88af",
  210.       "name": "Get Images"
  211.     },
  212.     {
  213.       "parameters": {
  214.         "amount": 8,
  215.         "unit": "minutes"
  216.       },
  217.       "type": "n8n-nodes-base.wait",
  218.       "typeVersion": 1.1,
  219.       "position": [
  220.         -60,
  221.         1040
  222.       ],
  223.       "id": "9d6cb270-2cab-4285-a9bd-4cd47c4f80e0",
  224.       "name": "8 Minutes",
  225.       "webhookId": "501d3896-713d-4546-bc42-7e9e7943d92f",
  226.       "disabled": true
  227.     },
  228.     {
  229.       "parameters": {},
  230.       "type": "n8n-nodes-base.limit",
  231.       "typeVersion": 1,
  232.       "position": [
  233.         -260,
  234.         560
  235.       ],
  236.       "id": "db855a1e-d63b-4e0b-ae79-3d9d29e84aef",
  237.       "name": "Limit"
  238.     },
  239.     {
  240.       "parameters": {
  241.         "operation": "update",
  242.         "sheetName": {
  243.           "__rl": true,
  244.           "value": "gid=0",
  245.           "mode": "list",
  246.           "cachedResultName": "Sheet1",
  247.           "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-Btbc1KvhIK-ShsRhFpcPpxR604vHwNACz0Ohwf7Gk/edit#gid=0"
  248.         },
  249.         "columns": {
  250.           "mappingMode": "defineBelow",
  251.           "value": {
  252.             "row_number": "={{ $('Grab Idea').item.json.row_number }}",
  253.             "videoStatus": "Created"
  254.           },
  255.           "matchingColumns": [
  256.             "row_number"
  257.           ],
  258.           "schema": [
  259.             {
  260.               "id": "title",
  261.               "displayName": "title",
  262.               "required": false,
  263.               "defaultMatch": false,
  264.               "display": true,
  265.               "type": "string",
  266.               "canBeUsedToMatch": true,
  267.               "removed": true
  268.             },
  269.             {
  270.               "id": "animal 1",
  271.               "displayName": "animal 1",
  272.               "required": false,
  273.               "defaultMatch": false,
  274.               "display": true,
  275.               "type": "string",
  276.               "canBeUsedToMatch": true,
  277.               "removed": true
  278.             },
  279.             {
  280.               "id": "animal 2",
  281.               "displayName": "animal 2",
  282.               "required": false,
  283.               "defaultMatch": false,
  284.               "display": true,
  285.               "type": "string",
  286.               "canBeUsedToMatch": true,
  287.               "removed": true
  288.             },
  289.             {
  290.               "id": "animal 3",
  291.               "displayName": "animal 3",
  292.               "required": false,
  293.               "defaultMatch": false,
  294.               "display": true,
  295.               "type": "string",
  296.               "canBeUsedToMatch": true,
  297.               "removed": true
  298.             },
  299.             {
  300.               "id": "animal 4",
  301.               "displayName": "animal 4",
  302.               "required": false,
  303.               "defaultMatch": false,
  304.               "display": true,
  305.               "type": "string",
  306.               "canBeUsedToMatch": true,
  307.               "removed": true
  308.             },
  309.             {
  310.               "id": "style",
  311.               "displayName": "style",
  312.               "required": false,
  313.               "defaultMatch": false,
  314.               "display": true,
  315.               "type": "string",
  316.               "canBeUsedToMatch": true,
  317.               "removed": true
  318.             },
  319.             {
  320.               "id": "caption",
  321.               "displayName": "caption",
  322.               "required": false,
  323.               "defaultMatch": false,
  324.               "display": true,
  325.               "type": "string",
  326.               "canBeUsedToMatch": true,
  327.               "removed": true
  328.             },
  329.             {
  330.               "id": "videoStatus",
  331.               "displayName": "videoStatus",
  332.               "required": false,
  333.               "defaultMatch": false,
  334.               "display": true,
  335.               "type": "string",
  336.               "canBeUsedToMatch": true
  337.             },
  338.             {
  339.               "id": "publishStatus",
  340.               "displayName": "publishStatus",
  341.               "required": false,
  342.               "defaultMatch": false,
  343.               "display": true,
  344.               "type": "string",
  345.               "canBeUsedToMatch": true,
  346.               "removed": true
  347.             },
  348.             {
  349.               "id": "videoLink",
  350.               "displayName": "videoLink",
  351.               "required": false,
  352.               "defaultMatch": false,
  353.               "display": true,
  354.               "type": "string",
  355.               "canBeUsedToMatch": true,
  356.               "removed": true
  357.             },
  358.             {
  359.               "id": "row_number",
  360.               "displayName": "row_number",
  361.               "required": false,
  362.               "defaultMatch": false,
  363.               "display": true,
  364.               "type": "string",
  365.               "canBeUsedToMatch": true,
  366.               "readOnly": true,
  367.               "removed": false
  368.             }
  369.           ],
  370.           "attemptToConvertTypes": false,
  371.           "convertFieldsToString": false
  372.         },
  373.         "options": {}
  374.       },
  375.       "type": "n8n-nodes-base.googleSheets",
  376.       "typeVersion": 4.5,
  377.       "position": [
  378.         -120,
  379.         560
  380.       ],
  381.       "id": "380110da-27bd-4349-8326-42d9fdf93bce",
  382.       "name": "Video Status",
  383.       "credentials": {
  384.         "googleSheetsOAuth2Api": {
  385.           "id": "wwE70mh6N2QEfZRL",
  386.           "name": "Google Sheets account 3"
  387.         }
  388.       }
  389.     },
  390.     {
  391.       "parameters": {
  392.         "modelName": "models/gemini-2.0-flash",
  393.         "options": {}
  394.       },
  395.       "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
  396.       "typeVersion": 1,
  397.       "position": [
  398.         20,
  399.         760
  400.       ],
  401.       "id": "7b8e303f-09b8-42c4-903a-59dbb28d55ed",
  402.       "name": "Flash 2.0",
  403.       "credentials": {
  404.         "googlePalmApi": {
  405.           "id": "DW8owDXDeMHnr1rA",
  406.           "name": "Google Gemini(PaLM) Api account"
  407.         }
  408.       }
  409.     },
  410.     {
  411.       "parameters": {
  412.         "promptType": "define",
  413.         "text": "=Style: {{ $('Grab Idea').item.json.style }}",
  414.         "options": {
  415.           "systemMessage": "=# Overview\nYou are a master sound prompt generator. Given a style, generate a vivid one-to-two sentence prompt that describes the ambiance, tone, and key sound elements to create an immersive audio scene. Use evocative language to capture the essence of the style.\n\n## Example\n- Style: Haunted Ghost Hunters\n- Output: Eerie whispers echo through a decaying mansion as floorboards creak under cautious footsteps. A distant, distorted radio crackles with ghostly voices, while a cold wind howls through shattered windows."
  416.         }
  417.       },
  418.       "type": "@n8n/n8n-nodes-langchain.agent",
  419.       "typeVersion": 1.7,
  420.       "position": [
  421.         40,
  422.         560
  423.       ],
  424.       "id": "5f5ccf7d-b7ec-4660-9112-38dd60c2fbe1",
  425.       "name": "Sound Agent"
  426.     },
  427.     {
  428.       "parameters": {
  429.         "assignments": {
  430.           "assignments": [
  431.             {
  432.               "id": "5bf4beb2-3a46-4825-9292-13de8ed56400",
  433.               "name": "audio",
  434.               "value": "={{ $json.output.trimEnd() }}",
  435.               "type": "string"
  436.             }
  437.           ]
  438.         },
  439.         "options": {}
  440.       },
  441.       "type": "n8n-nodes-base.set",
  442.       "typeVersion": 3.4,
  443.       "position": [
  444.         360,
  445.         560
  446.       ],
  447.       "id": "c1822a00-991c-4e03-9527-543e339cc3ca",
  448.       "name": "Set Audio"
  449.     },
  450.     {
  451.       "parameters": {
  452.         "method": "POST",
  453.         "url": "https://api.elevenlabs.io/v1/sound-generation",
  454.         "sendBody": true,
  455.         "bodyParameters": {
  456.           "parameters": [
  457.             {
  458.               "name": "text",
  459.               "value": "={{ $json.audio }}"
  460.             },
  461.             {
  462.               "name": "duration_seconds",
  463.               "value": "20"
  464.             }
  465.           ]
  466.         },
  467.         "options": {}
  468.       },
  469.       "type": "n8n-nodes-base.httpRequest",
  470.       "typeVersion": 4.2,
  471.       "position": [
  472.         500,
  473.         560
  474.       ],
  475.       "id": "7c95120c-ddab-4834-8b78-df642a599c6b",
  476.       "name": "Generate Audio"
  477.     },
  478.     {
  479.       "parameters": {
  480.         "name": "={{ $('Grab Idea').item.json.style }}.mp3",
  481.         "driveId": {
  482.           "__rl": true,
  483.           "mode": "list",
  484.           "value": "My Drive"
  485.         },
  486.         "options": {}
  487.       },
  488.       "type": "n8n-nodes-base.googleDrive",
  489.       "typeVersion": 3,
  490.       "position": [
  491.         640,
  492.         560
  493.       ],
  494.       "id": "ba04a4cd-7924-464c-acf7-6bc2c16cda5e",
  495.       "name": "Upload to Drive",
  496.       "credentials": {
  497.         "googleDriveOAuth2Api": {
  498.           "id": "60zdCK3Sx2Shlbb4",
  499.           "name": "Google Drive account"
  500.         }
  501.       }
  502.     },
  503.     {
  504.       "parameters": {
  505.         "mode": "combine",
  506.         "combineBy": "combineAll",
  507.         "options": {}
  508.       },
  509.       "type": "n8n-nodes-base.merge",
  510.       "typeVersion": 3,
  511.       "position": [
  512.         1060,
  513.         300
  514.       ],
  515.       "id": "2d799813-3039-4df7-bac0-a7ce61ecab00",
  516.       "name": "Merge"
  517.     },
  518.     {
  519.       "parameters": {
  520.         "method": "POST",
  521.         "url": "https://api.creatomate.com/v1/renders",
  522.         "sendHeaders": true,
  523.         "headerParameters": {
  524.           "parameters": [
  525.             {
  526.               "name": "Authorization",
  527.               "value": "Bearer API KEY HERE"
  528.             }
  529.           ]
  530.         },
  531.         "sendBody": true,
  532.         "specifyBody": "json",
  533.         "jsonBody": "={\n  \"template_id\": \"d02f8e71-6e1b-4ab9-9c5e-629c35a845b7\",\n  \"modifications\": {\n    \"Video-1.source\": \"{{ $json.urls[0].url }}\",\n    \"Video-2.source\": \"{{ $json.urls[1].url }}\",\n    \"Video-3.source\": \"{{ $json.urls[2].url }}\",\n    \"Video-4.source\": \"{{ $json.urls[3].url }}\",\n    \"Audio-Track.source\": \"{{ $('Upload to Drive').first().json.webContentLink }}\",\n    \"Text-1.text\": \"{{ $('Grab Idea').first().json['animal 1'] }}\",\n    \"Text-2.text\": \"{{ $('Grab Idea').first().json['animal 2'] }}\",\n    \"Text-3.text\": \"{{ $('Grab Idea').first().json['animal 3'] }}\",\n    \"Text-4.text\": \"{{ $('Grab Idea').first().json['animal 4'] }}\"\n  }\n}",
  534.         "options": {}
  535.       },
  536.       "type": "n8n-nodes-base.httpRequest",
  537.       "typeVersion": 4.2,
  538.       "position": [
  539.         1460,
  540.         300
  541.       ],
  542.       "id": "5c631bce-ca56-421a-b175-e077db0677a8",
  543.       "name": "Render Video"
  544.     },
  545.     {
  546.       "parameters": {
  547.         "amount": 25
  548.       },
  549.       "type": "n8n-nodes-base.wait",
  550.       "typeVersion": 1.1,
  551.       "position": [
  552.         1660,
  553.         300
  554.       ],
  555.       "id": "17c35549-dbb6-43bb-a39e-fff9007081df",
  556.       "name": "25 Seconds",
  557.       "webhookId": "d5cd29e8-d3f7-491c-a6b6-2d705aa47931"
  558.     },
  559.     {
  560.       "parameters": {
  561.         "url": "={{ $json.url }}",
  562.         "options": {}
  563.       },
  564.       "type": "n8n-nodes-base.httpRequest",
  565.       "typeVersion": 4.2,
  566.       "position": [
  567.         1060,
  568.         520
  569.       ],
  570.       "id": "6155768f-7352-40fe-bf47-072fb776b587",
  571.       "name": "Download Video"
  572.     },
  573.     {
  574.       "parameters": {
  575.         "resource": "video",
  576.         "operation": "upload",
  577.         "title": "={{ $('Grab Idea').first().json.title }}",
  578.         "regionCode": "US",
  579.         "categoryId": "1",
  580.         "options": {
  581.           "description": "={{ $('Grab Idea').first().json.caption }}",
  582.           "privacyStatus": "unlisted"
  583.         }
  584.       },
  585.       "type": "n8n-nodes-base.youTube",
  586.       "typeVersion": 1,
  587.       "position": [
  588.         1260,
  589.         520
  590.       ],
  591.       "id": "a61ed997-9c27-4393-9935-3c99fa55e603",
  592.       "name": "Upload Video",
  593.       "credentials": {
  594.         "youTubeOAuth2Api": {
  595.           "id": "8L84tcidZ1zLMfss",
  596.           "name": "YouTube account"
  597.         }
  598.       }
  599.     },
  600.     {
  601.       "parameters": {
  602.         "operation": "update",
  603.         "sheetName": {
  604.           "__rl": true,
  605.           "value": "gid=0",
  606.           "mode": "list",
  607.           "cachedResultName": "Sheet1",
  608.           "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1K-Btbc1KvhIK-ShsRhFpcPpxR604vHwNACz0Ohwf7Gk/edit#gid=0"
  609.         },
  610.         "columns": {
  611.           "mappingMode": "defineBelow",
  612.           "value": {
  613.             "row_number": "={{ $('Grab Idea').first().json.row_number }}",
  614.             "publishStatus": "Processed",
  615.             "videoLink": "={{ $('Download Video').item.json.url }}"
  616.           },
  617.           "matchingColumns": [
  618.             "row_number"
  619.           ],
  620.           "schema": [
  621.             {
  622.               "id": "title",
  623.               "displayName": "title",
  624.               "required": false,
  625.               "defaultMatch": false,
  626.               "display": true,
  627.               "type": "string",
  628.               "canBeUsedToMatch": true,
  629.               "removed": true
  630.             },
  631.             {
  632.               "id": "animal 1",
  633.               "displayName": "animal 1",
  634.               "required": false,
  635.               "defaultMatch": false,
  636.               "display": true,
  637.               "type": "string",
  638.               "canBeUsedToMatch": true,
  639.               "removed": true
  640.             },
  641.             {
  642.               "id": "animal 2",
  643.               "displayName": "animal 2",
  644.               "required": false,
  645.               "defaultMatch": false,
  646.               "display": true,
  647.               "type": "string",
  648.               "canBeUsedToMatch": true,
  649.               "removed": true
  650.             },
  651.             {
  652.               "id": "animal 3",
  653.               "displayName": "animal 3",
  654.               "required": false,
  655.               "defaultMatch": false,
  656.               "display": true,
  657.               "type": "string",
  658.               "canBeUsedToMatch": true,
  659.               "removed": true
  660.             },
  661.             {
  662.               "id": "animal 4",
  663.               "displayName": "animal 4",
  664.               "required": false,
  665.               "defaultMatch": false,
  666.               "display": true,
  667.               "type": "string",
  668.               "canBeUsedToMatch": true,
  669.               "removed": true
  670.             },
  671.             {
  672.               "id": "style",
  673.               "displayName": "style",
  674.               "required": false,
  675.               "defaultMatch": false,
  676.               "display": true,
  677.               "type": "string",
  678.               "canBeUsedToMatch": true,
  679.               "removed": true
  680.             },
  681.             {
  682.               "id": "caption",
  683.               "displayName": "caption",
  684.               "required": false,
  685.               "defaultMatch": false,
  686.               "display": true,
  687.               "type": "string",
  688.               "canBeUsedToMatch": true,
  689.               "removed": true
  690.             },
  691.             {
  692.               "id": "videoStatus",
  693.               "displayName": "videoStatus",
  694.               "required": false,
  695.               "defaultMatch": false,
  696.               "display": true,
  697.               "type": "string",
  698.               "canBeUsedToMatch": true,
  699.               "removed": true
  700.             },
  701.             {
  702.               "id": "publishStatus",
  703.               "displayName": "publishStatus",
  704.               "required": false,
  705.               "defaultMatch": false,
  706.               "display": true,
  707.               "type": "string",
  708.               "canBeUsedToMatch": true
  709.             },
  710.             {
  711.               "id": "videoLink",
  712.               "displayName": "videoLink",
  713.               "required": false,
  714.               "defaultMatch": false,
  715.               "display": true,
  716.               "type": "string",
  717.               "canBeUsedToMatch": true
  718.             },
  719.             {
  720.               "id": "row_number",
  721.               "displayName": "row_number",
  722.               "required": false,
  723.               "defaultMatch": false,
  724.               "display": true,
  725.               "type": "string",
  726.               "canBeUsedToMatch": true,
  727.               "readOnly": true,
  728.               "removed": false
  729.             }
  730.           ],
  731.           "attemptToConvertTypes": false,
  732.           "convertFieldsToString": false
  733.         },
  734.         "options": {}
  735.       },
  736.       "type": "n8n-nodes-base.googleSheets",
  737.       "typeVersion": 4.5,
  738.       "position": [
  739.         1460,
  740.         520
  741.       ],
  742.       "id": "3afea92d-848f-4316-91cd-cb6264b0073a",
  743.       "name": "Update Sheet",
  744.       "credentials": {
  745.         "googleSheetsOAuth2Api": {
  746.           "id": "wwE70mh6N2QEfZRL",
  747.           "name": "Google Sheets account 3"
  748.         }
  749.       }
  750.     },
  751.     {
  752.       "parameters": {
  753.         "subject": "=New Short Processed: {{ $('Grab Idea').first().json.title }}",
  754.         "emailType": "text",
  755.         "message": "=[Name],\n\nA new short has been created and is awaiting your approval.\n\nIt is called \"{{ $('Grab Idea').first().json.title }}\".\n\nYou can view it here: \n\nCheers!",
  756.         "options": {
  757.           "appendAttribution": false
  758.         }
  759.       },
  760.       "type": "n8n-nodes-base.gmail",
  761.       "typeVersion": 2.1,
  762.       "position": [
  763.         1660,
  764.         520
  765.       ],
  766.       "id": "1eefb240-30b4-4f0d-8545-fa160d72b025",
  767.       "name": "Notification",
  768.       "webhookId": "495213a9-3d81-40bf-a612-1240bf7498db",
  769.       "credentials": {
  770.         "gmailOAuth2": {
  771.           "id": "MHutgNQIvAz7qMgP",
  772.           "name": "Gmail account"
  773.         }
  774.       }
  775.     },
  776.     {
  777.       "parameters": {
  778.         "rule": {
  779.           "interval": [
  780.             {}
  781.           ]
  782.         }
  783.       },
  784.       "type": "n8n-nodes-base.scheduleTrigger",
  785.       "typeVersion": 1.2,
  786.       "position": [
  787.         -200,
  788.         -240
  789.       ],
  790.       "id": "0e7f130f-dba4-494e-a4db-dc19f65b9631",
  791.       "name": "Schedule Trigger"
  792.     },
  793.     {
  794.       "parameters": {
  795.         "content": "# Generate Image Prompts",
  796.         "height": 460,
  797.         "width": 1840,
  798.         "color": 4
  799.       },
  800.       "type": "n8n-nodes-base.stickyNote",
  801.       "position": [
  802.         -300,
  803.         -340
  804.       ],
  805.       "typeVersion": 1,
  806.       "id": "bc2c4f9d-9116-43b5-971f-dd6d172ac78b",
  807.       "name": "Sticky Note3",
  808.       "disabled": true
  809.     },
  810.     {
  811.       "parameters": {
  812.         "content": "# Generate Images\n",
  813.         "height": 260,
  814.         "width": 600,
  815.         "color": 5
  816.       },
  817.       "type": "n8n-nodes-base.stickyNote",
  818.       "position": [
  819.         -300,
  820.         160
  821.       ],
  822.       "typeVersion": 1,
  823.       "id": "fe62abb5-bbbb-41d5-a016-abc0caf5c2d9",
  824.       "name": "Sticky Note4"
  825.     },
  826.     {
  827.       "parameters": {
  828.         "content": "# Generate Videos (Kling)\n",
  829.         "height": 260,
  830.         "width": 820,
  831.         "color": 5
  832.       },
  833.       "type": "n8n-nodes-base.stickyNote",
  834.       "position": [
  835.         -300,
  836.         940
  837.       ],
  838.       "typeVersion": 1,
  839.       "id": "04570711-4085-4255-b027-02ade7b01245",
  840.       "name": "Sticky Note1"
  841.     },
  842.     {
  843.       "parameters": {
  844.         "content": "# Generate Audio\n\n",
  845.         "height": 280,
  846.         "width": 1240,
  847.         "color": 5
  848.       },
  849.       "type": "n8n-nodes-base.stickyNote",
  850.       "position": [
  851.         -300,
  852.         460
  853.       ],
  854.       "typeVersion": 1,
  855.       "id": "4ca03457-46bf-48ac-852f-4135694533bb",
  856.       "name": "Sticky Note"
  857.     },
  858.     {
  859.       "parameters": {
  860.         "content": "# Render & Upload\n",
  861.         "height": 580,
  862.         "width": 880
  863.       },
  864.       "type": "n8n-nodes-base.stickyNote",
  865.       "position": [
  866.         980,
  867.         160
  868.       ],
  869.       "typeVersion": 1,
  870.       "id": "85c11e20-ba50-4222-9123-d63b407c5ac5",
  871.       "name": "Sticky Note2"
  872.     },
  873.     {
  874.       "parameters": {
  875.         "url": "=https://api.piapi.ai/api/v1/task/{{ $json.data.task_id }}",
  876.         "options": {}
  877.       },
  878.       "type": "n8n-nodes-base.httpRequest",
  879.       "typeVersion": 4.2,
  880.       "position": [
  881.         120,
  882.         1040
  883.       ],
  884.       "id": "08996d71-b0ef-45d7-8002-e07afd9e076c",
  885.       "name": "Get Videos (Kling)",
  886.       "disabled": true
  887.     },
  888.     {
  889.       "parameters": {
  890.         "url": "=https://api.dev.runwayml.com/v1/tasks/{{ $json.id }}",
  891.         "sendHeaders": true,
  892.         "headerParameters": {
  893.           "parameters": [
  894.             {
  895.               "name": "X-Runway-Version",
  896.               "value": "2024-11-06"
  897.             }
  898.           ]
  899.         },
  900.         "options": {}
  901.       },
  902.       "type": "n8n-nodes-base.httpRequest",
  903.       "typeVersion": 4.2,
  904.       "position": [
  905.         720,
  906.         260
  907.       ],
  908.       "id": "e06ec525-b048-465d-8a64-3ed9378f7176",
  909.       "name": "Get Videos"
  910.     },
  911.     {
  912.       "parameters": {
  913.         "method": "POST",
  914.         "url": "https://api.piapi.ai/api/v1/task",
  915.         "authentication": "genericCredentialType",
  916.         "genericAuthType": "httpHeaderAuth",
  917.         "sendBody": true,
  918.         "specifyBody": "json",
  919.         "jsonBody": "={\n    \"model\": \"kling\",\n    \"mode\": \"std\",\n    \"task_type\": \"video_generation\",\n    \"input\": {\n        \"prompt\": \"{{ $json.data.input.prompt }}\",\n        \"negative_prompt\": \"bad quality\",\n        \"cfg_scale\": 0.5,\n        \"duration\": 5,\n        \"image_url\": \"{{ $json.data.output.image_url }}\",\n        \"aspect_ratio\": \"9:16\",\n        \"camera_control\": {\n            \"type\": \"simple\",\n            \"config\": {\n                \"horizontal\": 0,\n                \"vertical\": 0,\n                \"pan\": 0,\n                \"tilt\": 0,\n                \"roll\": 0,\n                \"zoom\": 0\n            }\n        },\n        \"mode\": \"std\"\n    },\n    \"config\": {}\n}",
  920.         "options": {}
  921.       },
  922.       "type": "n8n-nodes-base.httpRequest",
  923.       "typeVersion": 4.2,
  924.       "position": [
  925.         -240,
  926.         1040
  927.       ],
  928.       "id": "f1485f67-f17c-4d04-af45-be40661c4bae",
  929.       "name": "Generate Videos (Kling)",
  930.       "credentials": {
  931.         "httpHeaderAuth": {
  932.           "id": "md5n1H9xDvznGBAK",
  933.           "name": "PIAPI"
  934.         }
  935.       },
  936.       "disabled": true
  937.     },
  938.     {
  939.       "parameters": {
  940.         "method": "POST",
  941.         "url": "https://api.dev.runwayml.com/v1/image_to_video",
  942.         "sendHeaders": true,
  943.         "headerParameters": {
  944.           "parameters": [
  945.             {
  946.               "name": "X-Runway-Version",
  947.               "value": "2024-11-06"
  948.             }
  949.           ]
  950.         },
  951.         "sendBody": true,
  952.         "bodyParameters": {
  953.           "parameters": [
  954.             {
  955.               "name": "promptImage",
  956.               "value": "={{ $json.data.output.image_url }}"
  957.             },
  958.             {
  959.               "name": "model",
  960.               "value": "gen3a_turbo"
  961.             },
  962.             {
  963.               "name": "ratio",
  964.               "value": "768:1280"
  965.             },
  966.             {
  967.               "name": "duration",
  968.               "value": "5"
  969.             },
  970.             {
  971.               "name": "promptText",
  972.               "value": "={{ $json.data.input.prompt }}"
  973.             }
  974.           ]
  975.         },
  976.         "options": {}
  977.       },
  978.       "type": "n8n-nodes-base.httpRequest",
  979.       "typeVersion": 4.2,
  980.       "position": [
  981.         380,
  982.         260
  983.       ],
  984.       "id": "a65eff47-0107-468d-b2c5-5b744e34f0fc",
  985.       "name": "Generate Videos"
  986.     },
  987.     {
  988.       "parameters": {
  989.         "amount": 2,
  990.         "unit": "minutes"
  991.       },
  992.       "type": "n8n-nodes-base.wait",
  993.       "typeVersion": 1.1,
  994.       "position": [
  995.         560,
  996.         260
  997.       ],
  998.       "id": "b5089e94-137b-48dd-80c8-77b1e971b3ea",
  999.       "name": "2 minutes",
  1000.       "webhookId": "3ce99001-8f5a-4c0a-9b25-e3e261fcc778"
  1001.     },
  1002.     {
  1003.       "parameters": {
  1004.         "content": "# Generate Videos\n",
  1005.         "height": 260,
  1006.         "width": 600,
  1007.         "color": 5
  1008.       },
  1009.       "type": "n8n-nodes-base.stickyNote",
  1010.       "position": [
  1011.         340,
  1012.         160
  1013.       ],
  1014.       "typeVersion": 1,
  1015.       "id": "ee547643-60dd-45cd-9281-a62fa906f545",
  1016.       "name": "Sticky Note5"
  1017.     },
  1018.     {
  1019.       "parameters": {
  1020.         "jsCode": "// Code to extract video URLs from JSON data in n8n\n// This handles various possible input structures\n\n// Function to extract video info if the object has the expected structure\nfunction extractVideoInfo(obj, index) {\n  if (obj && obj.code === 200 && \n      obj.data && obj.data.output && obj.data.output.video_url) {\n    return {\n      index: index,\n      taskId: obj.data.task_id,\n      videoUrl: obj.data.output.video_url,\n      prompt: obj.data.input.prompt\n    };\n  }\n  return null;\n}\n\n// Initialize results array\nconst videoUrls = [];\nlet currentIndex = 1;\n\n// n8n specific: loop through all items\nfor (const item of items) {\n  // Case 1: item.json is our array\n  if (Array.isArray(item.json)) {\n    item.json.forEach(entry => {\n      const videoInfo = extractVideoInfo(entry, currentIndex);\n      if (videoInfo) {\n        videoUrls.push(videoInfo);\n        currentIndex++;\n      }\n    });\n  } \n  // Case 2: item.json is a single object with our data\n  else if (typeof item.json === 'object') {\n    const videoInfo = extractVideoInfo(item.json, currentIndex);\n    if (videoInfo) {\n      videoUrls.push(videoInfo);\n      currentIndex++;\n    }\n    \n    // Case 3: item.json has a data property that is our array\n    if (Array.isArray(item.json.data)) {\n      item.json.data.forEach(entry => {\n        const videoInfo = extractVideoInfo(entry, currentIndex);\n        if (videoInfo) {\n          videoUrls.push(videoInfo);\n          currentIndex++;\n        }\n      });\n    }\n  }\n  \n  // Log what we're working with to help with debugging\n  console.log('Processing item:', JSON.stringify(item.json).substring(0, 200) + '...');\n}\n\n// Return the extracted URLs as the output\nreturn [{\n  json: {\n    totalVideos: videoUrls.length,\n    videos: videoUrls\n  }\n}];"
  1021.       },
  1022.       "type": "n8n-nodes-base.code",
  1023.       "typeVersion": 2,
  1024.       "position": [
  1025.         340,
  1026.         1040
  1027.       ],
  1028.       "id": "95226349-739f-4453-8e35-3f7bc8ba5c25",
  1029.       "name": "Split Out Parts (Kling)",
  1030.       "disabled": true
  1031.     },
  1032.     {
  1033.       "parameters": {
  1034.         "jsCode": "// N8n Code Node to extract URLs from output arrays and combine them into a single array\n\n// This code assumes your input JSON is in items[0].json or is multiple items\n// Determine data source format\nlet inputArray;\n\nif (items.length === 1 && Array.isArray(items[0].json)) {\n  // If we have a single item containing our array\n  inputArray = items[0].json;\n} else if (items.length > 1) {\n  // If we already have multiple items, each containing part of our data\n  inputArray = items.map(item => item.json || item);\n} else {\n  throw new Error('Input structure not recognized. Please check your data format.');\n}\n\n// Create a single array to hold all URLs\nconst urlArray = [];\n\n// Process each item in the input array\nfor (const item of inputArray) {\n  // Get the data object\n  const data = item;\n  \n  // Check if the item has an output array\n  if (data.output && Array.isArray(data.output)) {\n    // For each URL in the output array, add to our URL array\n    for (const url of data.output) {\n      // You can choose to add just the URL or include metadata\n      urlArray.push({\n        url: url,\n        sourceId: data.id,\n        createdAt: data.createdAt\n      });\n    }\n  }\n}\n\n// Return a single item containing the array of all URLs\nreturn [{\n  json: {\n    urls: urlArray\n  }\n}];"
  1035.       },
  1036.       "type": "n8n-nodes-base.code",
  1037.       "typeVersion": 2,
  1038.       "position": [
  1039.         1260,
  1040.         300
  1041.       ],
  1042.       "id": "bd2ffd6e-9f71-455a-bf8a-670db1ded8cf",
  1043.       "name": "Split Out Parts"
  1044.     },
  1045.     {
  1046.       "parameters": {
  1047.         "operation": "share",
  1048.         "fileId": {
  1049.           "__rl": true,
  1050.           "value": "={{ $json.id }}",
  1051.           "mode": "id"
  1052.         },
  1053.         "permissionsUi": {
  1054.           "permissionsValues": {
  1055.             "role": "reader",
  1056.             "type": "anyone",
  1057.             "allowFileDiscovery": true
  1058.           }
  1059.         },
  1060.         "options": {}
  1061.       },
  1062.       "type": "n8n-nodes-base.googleDrive",
  1063.       "typeVersion": 3,
  1064.       "position": [
  1065.         780,
  1066.         560
  1067.       ],
  1068.       "id": "046689f5-8d9e-4797-bb5f-2e65f5d77384",
  1069.       "name": "Share File",
  1070.       "credentials": {
  1071.         "googleDriveOAuth2Api": {
  1072.           "id": "60zdCK3Sx2Shlbb4",
  1073.           "name": "Google Drive account"
  1074.         }
  1075.       }
  1076.     },
  1077.     {
  1078.       "parameters": {
  1079.         "content": "# Nate Herk | AI Automation",
  1080.         "height": 80,
  1081.         "width": 500,
  1082.         "color": 6
  1083.       },
  1084.       "type": "n8n-nodes-base.stickyNote",
  1085.       "position": [
  1086.         -300,
  1087.         -460
  1088.       ],
  1089.       "typeVersion": 1,
  1090.       "id": "4905f480-fbe5-4f3d-a208-5ed98dde1ac7",
  1091.       "name": "Sticky Note6"
  1092.     }
  1093.   ],
  1094.   "pinData": {},
  1095.   "connections": {
  1096.     "When clicking ‘Test workflow’": {
  1097.       "main": [
  1098.         [
  1099.           {
  1100.             "node": "Grab Idea",
  1101.             "type": "main",
  1102.             "index": 0
  1103.           }
  1104.         ]
  1105.       ]
  1106.     },
  1107.     "Grab Idea": {
  1108.       "main": [
  1109.         [
  1110.           {
  1111.             "node": "Set Animals",
  1112.             "type": "main",
  1113.             "index": 0
  1114.           }
  1115.         ]
  1116.       ]
  1117.     },
  1118.     "Set Animals": {
  1119.       "main": [
  1120.         [
  1121.           {
  1122.             "node": "Split Out",
  1123.             "type": "main",
  1124.             "index": 0
  1125.           }
  1126.         ]
  1127.       ]
  1128.     },
  1129.     "Split Out": {
  1130.       "main": [
  1131.         [
  1132.           {
  1133.             "node": "Image Prompt Agent",
  1134.             "type": "main",
  1135.             "index": 0
  1136.           }
  1137.         ]
  1138.       ]
  1139.     },
  1140.     "GPT 4o": {
  1141.       "ai_languageModel": [
  1142.         [
  1143.           {
  1144.             "node": "Image Prompt Agent",
  1145.             "type": "ai_languageModel",
  1146.             "index": 0
  1147.           }
  1148.         ]
  1149.       ]
  1150.     },
  1151.     "Image Prompt Agent": {
  1152.       "main": [
  1153.         [
  1154.           {
  1155.             "node": "Remove \\n",
  1156.             "type": "main",
  1157.             "index": 0
  1158.           }
  1159.         ]
  1160.       ]
  1161.     },
  1162.     "Remove \\n": {
  1163.       "main": [
  1164.         [
  1165.           {
  1166.             "node": "Set Prompts",
  1167.             "type": "main",
  1168.             "index": 0
  1169.           }
  1170.         ]
  1171.       ]
  1172.     },
  1173.     "Set Prompts": {
  1174.       "main": [
  1175.         [
  1176.           {
  1177.             "node": "Generate Image",
  1178.             "type": "main",
  1179.             "index": 0
  1180.           }
  1181.         ]
  1182.       ]
  1183.     },
  1184.     "Generate Image": {
  1185.       "main": [
  1186.         [
  1187.           {
  1188.             "node": "90 seconds",
  1189.             "type": "main",
  1190.             "index": 0
  1191.           }
  1192.         ]
  1193.       ]
  1194.     },
  1195.     "90 seconds": {
  1196.       "main": [
  1197.         [
  1198.           {
  1199.             "node": "Get Images",
  1200.             "type": "main",
  1201.             "index": 0
  1202.           }
  1203.         ]
  1204.       ]
  1205.     },
  1206.     "Get Images": {
  1207.       "main": [
  1208.         [
  1209.           {
  1210.             "node": "Generate Videos",
  1211.             "type": "main",
  1212.             "index": 0
  1213.           }
  1214.         ]
  1215.       ]
  1216.     },
  1217.     "8 Minutes": {
  1218.       "main": [
  1219.         [
  1220.           {
  1221.             "node": "Get Videos (Kling)",
  1222.             "type": "main",
  1223.             "index": 0
  1224.           }
  1225.         ]
  1226.       ]
  1227.     },
  1228.     "Limit": {
  1229.       "main": [
  1230.         [
  1231.           {
  1232.             "node": "Video Status",
  1233.             "type": "main",
  1234.             "index": 0
  1235.           }
  1236.         ]
  1237.       ]
  1238.     },
  1239.     "Video Status": {
  1240.       "main": [
  1241.         [
  1242.           {
  1243.             "node": "Sound Agent",
  1244.             "type": "main",
  1245.             "index": 0
  1246.           }
  1247.         ]
  1248.       ]
  1249.     },
  1250.     "Flash 2.0": {
  1251.       "ai_languageModel": [
  1252.         [
  1253.           {
  1254.             "node": "Sound Agent",
  1255.             "type": "ai_languageModel",
  1256.             "index": 0
  1257.           }
  1258.         ]
  1259.       ]
  1260.     },
  1261.     "Sound Agent": {
  1262.       "main": [
  1263.         [
  1264.           {
  1265.             "node": "Set Audio",
  1266.             "type": "main",
  1267.             "index": 0
  1268.           }
  1269.         ]
  1270.       ]
  1271.     },
  1272.     "Set Audio": {
  1273.       "main": [
  1274.         [
  1275.           {
  1276.             "node": "Generate Audio",
  1277.             "type": "main",
  1278.             "index": 0
  1279.           }
  1280.         ]
  1281.       ]
  1282.     },
  1283.     "Generate Audio": {
  1284.       "main": [
  1285.         [
  1286.           {
  1287.             "node": "Upload to Drive",
  1288.             "type": "main",
  1289.             "index": 0
  1290.           }
  1291.         ]
  1292.       ]
  1293.     },
  1294.     "Upload to Drive": {
  1295.       "main": [
  1296.         [
  1297.           {
  1298.             "node": "Share File",
  1299.             "type": "main",
  1300.             "index": 0
  1301.           }
  1302.         ]
  1303.       ]
  1304.     },
  1305.     "Merge": {
  1306.       "main": [
  1307.         [
  1308.           {
  1309.             "node": "Split Out Parts",
  1310.             "type": "main",
  1311.             "index": 0
  1312.           }
  1313.         ]
  1314.       ]
  1315.     },
  1316.     "Render Video": {
  1317.       "main": [
  1318.         [
  1319.           {
  1320.             "node": "25 Seconds",
  1321.             "type": "main",
  1322.             "index": 0
  1323.           }
  1324.         ]
  1325.       ]
  1326.     },
  1327.     "25 Seconds": {
  1328.       "main": [
  1329.         [
  1330.           {
  1331.             "node": "Download Video",
  1332.             "type": "main",
  1333.             "index": 0
  1334.           }
  1335.         ]
  1336.       ]
  1337.     },
  1338.     "Download Video": {
  1339.       "main": [
  1340.         [
  1341.           {
  1342.             "node": "Upload Video",
  1343.             "type": "main",
  1344.             "index": 0
  1345.           }
  1346.         ]
  1347.       ]
  1348.     },
  1349.     "Upload Video": {
  1350.       "main": [
  1351.         [
  1352.           {
  1353.             "node": "Update Sheet",
  1354.             "type": "main",
  1355.             "index": 0
  1356.           }
  1357.         ]
  1358.       ]
  1359.     },
  1360.     "Update Sheet": {
  1361.       "main": [
  1362.         [
  1363.           {
  1364.             "node": "Notification",
  1365.             "type": "main",
  1366.             "index": 0
  1367.           }
  1368.         ]
  1369.       ]
  1370.     },
  1371.     "Schedule Trigger": {
  1372.       "main": [
  1373.         [
  1374.           {
  1375.             "node": "Grab Idea",
  1376.             "type": "main",
  1377.             "index": 0
  1378.           }
  1379.         ]
  1380.       ]
  1381.     },
  1382.     "Get Videos (Kling)": {
  1383.       "main": [
  1384.         []
  1385.       ]
  1386.     },
  1387.     "Generate Videos (Kling)": {
  1388.       "main": [
  1389.         [
  1390.           {
  1391.             "node": "8 Minutes",
  1392.             "type": "main",
  1393.             "index": 0
  1394.           }
  1395.         ]
  1396.       ]
  1397.     },
  1398.     "Generate Videos": {
  1399.       "main": [
  1400.         [
  1401.           {
  1402.             "node": "2 minutes",
  1403.             "type": "main",
  1404.             "index": 0
  1405.           }
  1406.         ]
  1407.       ]
  1408.     },
  1409.     "2 minutes": {
  1410.       "main": [
  1411.         [
  1412.           {
  1413.             "node": "Get Videos",
  1414.             "type": "main",
  1415.             "index": 0
  1416.           }
  1417.         ]
  1418.       ]
  1419.     },
  1420.     "Get Videos": {
  1421.       "main": [
  1422.         [
  1423.           {
  1424.             "node": "Merge",
  1425.             "type": "main",
  1426.             "index": 0
  1427.           },
  1428.           {
  1429.             "node": "Limit",
  1430.             "type": "main",
  1431.             "index": 0
  1432.           }
  1433.         ]
  1434.       ]
  1435.     },
  1436.     "Split Out Parts (Kling)": {
  1437.       "main": [
  1438.         []
  1439.       ]
  1440.     },
  1441.     "Split Out Parts": {
  1442.       "main": [
  1443.         [
  1444.           {
  1445.             "node": "Render Video",
  1446.             "type": "main",
  1447.             "index": 0
  1448.           }
  1449.         ]
  1450.       ]
  1451.     },
  1452.     "Share File": {
  1453.       "main": [
  1454.         [
  1455.           {
  1456.             "node": "Merge",
  1457.             "type": "main",
  1458.             "index": 1
  1459.           }
  1460.         ]
  1461.       ]
  1462.     }
  1463.   },
  1464.   "active": false,
  1465.   "settings": {},
  1466.   "versionId": "8bc68b3b-41ea-442b-8876-d5c1afe77e49",
  1467.   "meta": {
  1468.     "instanceId": "95e5a8c2e51c83e33b232ea792bbe3f063c094c33d9806a5565cb31759e1ad39"
  1469.   },
  1470.   "id": "Kz1vFWO2scWWgFE7",
  1471.   "tags": []
  1472. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement