Gemini_NanoBanana_Vorlage
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 36 Nodes. Hauptsächlich werden If, Set, Code, Wait, Switch und andere Nodes verwendet. Generieren von UGC-Werbematerialien aus Google Sheets mit Fal.ai-Modellen (nano-banana, WAN2.2, Veo3)
- •Google Drive API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (36)
Kategorie
{
"id": "ySznauhiBaq3fJaY",
"meta": {
"instanceId": "2c12b0b552404dc07af67cd5f092afd21d18c808d4fdabdb04cb4b064195b6fb",
"templateCredsSetupCompleted": true
},
"name": "Gemini_NanoBanana_Template",
"tags": [
{
"id": "vQcdMpzndwlrDhbx",
"name": "n8n_official_template",
"createdAt": "2025-07-02T13:54:20.087Z",
"updatedAt": "2025-07-02T13:54:20.087Z"
}
],
"nodes": [
{
"id": "481d7713-dea3-42e5-b37e-8c0d248aea45",
"name": "Bei Klick auf 'Workflow ausführen'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-416,
-768
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7635ea3e-e3cb-4692-8ce9-47cd715ce143",
"name": "Notizzettel",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-752,
-784
],
"parameters": {
"width": 2064,
"height": 192,
"content": "### 🟨 Zone 1: Create Image\n\n1. **When clicking 'Execute workflow**\n2. **Get ImageURL and Prompt(Google Sheets)**\n3. **Create Image by Fal.ai (nano banana)**\n4. **Analys image for preparing video**"
},
"typeVersion": 1
},
{
"id": "1ed6cdf6-6efb-4194-8837-569df0756677",
"name": "Notizzettel1",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-752,
-576
],
"parameters": {
"color": 2,
"width": 2064,
"height": 240,
"content": "### 🟫 Zone 2:Generate Video\n\n1. **Prepare Prompt for Video**\n2. **Call Fal.ai API (Seedance/Wan2.2)**\n3. **Loop Over Items**\n4. **Wait for the video / Get the video status / Video status**\n5. **Upload Video to Google Drive**\n5. **Upload Video URL**"
},
"typeVersion": 1
},
{
"id": "ff3727e9-21b6-4e75-8711-fa76c749809d",
"name": "Notizzettel4",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-752,
-320
],
"parameters": {
"color": 4,
"width": 672,
"height": 656,
"content": "## Product Image\n\n"
},
"typeVersion": 1
},
{
"id": "fab0a010-d8be-42ca-98bd-a7fd0a7e5f3d",
"name": "Notizzettel5",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
0,
-320
],
"parameters": {
"color": 4,
"width": 656,
"height": 656,
"content": "## Product Image - nano Banana\n\n"
},
"typeVersion": 1
},
{
"id": "5dbbeeda-0a98-4672-b89a-112193eb948d",
"name": "Notizzettel6",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
768,
-320
],
"parameters": {
"color": 4,
"width": 528,
"height": 656,
"content": "## Product Video - Veo3\n\n\n## Product Video - Wan2.2\n"
},
"typeVersion": 1
},
{
"id": "540b8055-4c2d-478e-bbe7-996d6dd1d0b3",
"name": "Notizzettel7",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-752,
-992
],
"parameters": {
"width": 2064,
"height": 192,
"content": "### 🟨 Zone 1: Create Image by nano Bananna\n\n1. **When clicking 'Execute workflow**\n2. **Get ImageURL and Prompt(Google Sheets)**\n3. **Create Image by OpernRouter (gemini-2.5-flash-image-preview:free)**\n4. **Upload to Google drive /output**\n5. **Update URL**\n"
},
"typeVersion": 1
},
{
"id": "0d1012fe-1f69-4693-82f8-c7f2af86d76a",
"name": "DatenAbrufen1",
"type": "n8n-nodes-base.googleSheets",
"position": [
-240,
-960
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"filtersUI": {
"values": [
{
"lookupColumn": "img_url"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 997043272,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit#gid=997043272",
"cachedResultName": "Gemini"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit?usp=drivesdk",
"cachedResultName": "n8n_nanoBanan_FalAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "55f2026c-5ec4-46f2-ac99-6e9300d2cefd",
"name": "InDateiKonvertieren",
"type": "n8n-nodes-base.convertToFile",
"position": [
624,
-960
],
"parameters": {
"options": {
"fileName": "={{ $json.fileName }}",
"mimeType": "={{ $json.mimeType }}"
},
"operation": "toBinary",
"sourceProperty": "data"
},
"typeVersion": 1.1
},
{
"id": "63e86079-f906-424a-9d0a-ce4d01ad0634",
"name": "BildURLSetzen",
"type": "n8n-nodes-base.set",
"position": [
-80,
-960
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "044f40af-ec59-45e6-a097-678a473b7a8d",
"name": "presenter",
"type": "string",
"value": "={{ (() => { const u = $json.presenter || ''; const q = u.match(/[?&]id=([-\\w]{25,})/); const d = u.match(/\\/d\\/([-\\w]{25,})/); const any = u.match(/[-\\w]{25,}/); const id = q?.[1] || d?.[1] || (any ? any[0] : ''); return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; })() }}"
},
{
"id": "62a409c6-c607-452b-9bbb-f3d29c86dddf",
"name": "product",
"type": "string",
"value": "={{ (() => { const u = $json.product || ''; const q = u.match(/[?&]id=([-\\w]{25,})/); const d = u.match(/\\/d\\/([-\\w]{25,})/); const any = u.match(/[-\\w]{25,}/); const id = q?.[1] || d?.[1] || (any ? any[0] : ''); return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; })() }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "849a7ac8-9892-44b3-a9af-49530dd1a71e",
"name": "BildErstellenViaOpenRouter (gemini-2.5-flash-image-preview:free)",
"type": "n8n-nodes-base.httpRequest",
"position": [
96,
-960
],
"parameters": {
"url": "https://openrouter.ai/api/v1/chat/completions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"google/gemini-2.5-flash-image-preview:free\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"{{ $json.prompt }}\"\n },\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"{{ $json.product }}\"\n }\n }\n ]\n }\n ]\n} ",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "XL3zLCDeux0bB3sM",
"name": "OpenRouter"
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "ab591887-6ac9-48ee-86d1-a08e868749ab",
"name": "20SekundenWarten",
"type": "n8n-nodes-base.wait",
"position": [
272,
-960
],
"webhookId": "f2c64d90-376c-4300-a228-9361747e8494",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "6ca128d7-f859-43ad-bd73-368d6c30eee7",
"name": "Base64DatenSetzen",
"type": "n8n-nodes-base.code",
"position": [
448,
-960
],
"parameters": {
"jsCode": "const dataUri = $json[\"choices\"][0][\"message\"][\"images\"][0][\"image_url\"][\"url\"];\nconst [meta, base64] = dataUri.split(\",\");\nconst mime = meta.match(/:(.*?);/)[1]; // ดึง image/png\nconst ext = mime.split(\"/\")[1]; // png\n\nreturn {\n data: base64,\n mimeType: mime,\n fileName: `output.${ext}`\n};\n"
},
"typeVersion": 2
},
{
"id": "d3e80f31-1fc1-4df2-8dd7-34c784f5f7d3",
"name": "BildAufGdriveHochladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
800,
-960
],
"parameters": {
"name": "output.png",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1WUzYyF-Uo45wCLQaQRAuhsvCYC0lHJ9O",
"cachedResultUrl": "https://drive.google.com/drive/folders/1WUzYyF-Uo45wCLQaQRAuhsvCYC0lHJ9O",
"cachedResultName": "imageOutput"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "QVrgALkld7whKIgB",
"name": "Google Drive account - Peakwave"
}
},
"typeVersion": 3
},
{
"id": "2ec6e0e6-0e78-4775-84b7-41e2dee4e235",
"name": "BildURLAktualisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
976,
-960
],
"parameters": {
"columns": {
"value": {
"img_url": "={{ $json.webViewLink }}",
"product": "={{ $('Get Data1').item.json.product }}"
},
"schema": [
{
"id": "presenter",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "presenter",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "product",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "prompt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "model",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "model",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "duration",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "duration",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "generate_audio",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "generate_audio",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "resolutio",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "resolutio",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "img_url",
"type": "string",
"display": true,
"required": false,
"displayName": "img_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "video_url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"product"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 997043272,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit#gid=997043272",
"cachedResultName": "Gemini"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit?usp=drivesdk",
"cachedResultName": "n8n_nanoBanan_FalAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "a381a991-ec85-4a9f-993b-193a5808f1d8",
"name": "HTTP Anfrage",
"type": "n8n-nodes-base.httpRequest",
"position": [
1024,
-576
],
"parameters": {
"url": "={{ $json.video.url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "c393bdf9-ee80-44db-9bff-84fbc6f74d47",
"name": "BildAufGdriveHochladen1",
"type": "n8n-nodes-base.googleDrive",
"position": [
1168,
-576
],
"parameters": {
"name": "={{ $json.video.url }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1WUzYyF-Uo45wCLQaQRAuhsvCYC0lHJ9O",
"cachedResultUrl": "https://drive.google.com/drive/folders/1WUzYyF-Uo45wCLQaQRAuhsvCYC0lHJ9O",
"cachedResultName": "imageOutput"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "QVrgALkld7whKIgB",
"name": "Google Drive account - Peakwave"
}
},
"typeVersion": 3
},
{
"id": "bb9d425a-1dc2-4f71-a22c-a3995e6df83a",
"name": "VideoURLAktualisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
1088,
-448
],
"parameters": {
"columns": {
"value": {
"product": "={{ $('Get Data').item.json.product }}",
"video_url": "={{ $json.webViewLink }}"
},
"schema": [
{
"id": "presenter",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "presenter",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "product",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "prompt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "model",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "model",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "duration",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "duration",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "generate_audio",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "generate_audio",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "resolutio",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "resolutio",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "img_url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "img_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "video_url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"product"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 997043272,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit#gid=997043272",
"cachedResultName": "Gemini"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit?usp=drivesdk",
"cachedResultName": "n8n_nanoBanan_FalAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "93af04aa-a869-419a-b6aa-c47cce1b9071",
"name": "Fal.ai API Aufrufen (WAN2.2)",
"type": "n8n-nodes-base.httpRequest",
"disabled": true,
"position": [
0,
-416
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/wan/v2.2-a14b/image-to-video",
"method": "=POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "=<Characters>\n{{ $json.output.characters.map(character => `<Character>\n <Name>${character.name}</Name>\n <Description>${character.description}</Description>\n</Character>`).join('\\n') }}\n</Characters>\n\n<SceneDescription>\n{{ $json.output.scene_description }}\n</SceneDescription>\n\n<CameraMovements>\n{{ $json.output.camera_movement }}\n</CameraMovements>\n\n<ObjectMovements>\n{{ $json.output.object_movements }}\n</ObjectMovements>"
},
{
"name": "num_frames",
"value": "81"
},
{
"name": "frames_per_second",
"value": "18"
},
{
"name": "resolution",
"value": "720p"
},
{
"name": "aspect_ratio",
"value": "auto"
},
{
"name": "num_inference_steps",
"value": "27"
},
{
"name": "enable_safety_checker",
"value": "true"
},
{
"name": "enable_prompt_expansion",
"value": "false"
},
{
"name": "acceleration",
"value": "regular"
},
{
"name": "guidance_scale",
"value": "3.5"
},
{
"name": "guidance_scale_2",
"value": "3.5"
},
{
"name": "shift",
"value": "5"
},
{
"name": "interpolator_model",
"value": "film"
},
{
"name": "num_interpolated_frames",
"value": "1"
},
{
"name": "adjust_fps_for_interpolation",
"value": "true"
},
{
"name": "image_url",
"value": "={{ $('Get the image').item.json.images[0].url }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "3347378b-bcfa-4a45-94f4-f124c554e882",
"name": "BildAnalysieren",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
992,
-784
],
"parameters": {
"text": "Analyze the image: is it a product, a character, or both?\n\nIf product → return JSON:\n brand_name: (brand if visible/inferable)\n color_scheme:\n - hex: (HEX of main colors)\n name: (color name)\n font_style: (if visible)\n visible_text: |\n (all legible text exactly)\n product_type: (type of product)\n visual_description: (1–2 sentences about subject)\n\nIf character → return JSON:\n character_name: (if known/inferable)\n color_scheme:\n - hex: (HEX of main colors on outfit/character)\n name: (color name)\n outfit_style: (clothes/accessories)\n visual_description: (1–2 sentences about subject)\n\nOutput JSON only.\n",
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"resource": "image",
"imageUrls": "={{ (() => {\n // เลือกค่าแรกที่มี และ trim ช่องว่าง/ขึ้นบรรทัดใหม่\n const raw = ($json?.images?.[0]?.url ?? $json?.img_url ?? $json?.image_url ?? '')\n .toString()\n .trim();\n\n if (!raw) return '';\n\n // ถ้าไม่ใช่ Google Drive ก็ส่งออกไปเลย\n if (!raw.includes('drive.google.com')) return raw;\n\n // แยก fileId จากทั้ง 2 รูปแบบ\n const idFromPath = raw.match(/\\/d\\/([^/]+)/)?.[1];\n const idFromQuery = raw.match(/[?&]id=([^&]+)/)?.[1];\n const fileId = idFromPath ?? idFromQuery;\n\n // แปลงเป็น direct-download URL (ต้องทำไฟล์ให้ public ก่อน)\n return fileId\n ? `https://drive.google.com/uc?export=download&id=${fileId}`\n : raw;\n})() }}\n",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "a46204ae-c314-4489-91d8-f7196f0d6926",
"name": "BildAbrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
800,
-784
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/nano-banana/requests/{{ $json.request_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "94054e50-9f19-451a-a1a3-ccc4ed31bdb4",
"name": "Warten",
"type": "n8n-nodes-base.wait",
"position": [
608,
-720
],
"webhookId": "98549686-33c2-4bef-a176-92ead56ad0d1",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "7defb174-8f13-4216-a0ac-d3e107939e71",
"name": "Wenn",
"type": "n8n-nodes-base.if",
"position": [
448,
-768
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "38f5427f-4fc7-4c07-87d5-fa7f5964deb2",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "=COMPLETED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ddaabbef-87d4-48a0-9d73-67941198e0f7",
"name": "BildStatusAbrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
288,
-768
],
"parameters": {
"url": "={{ $json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "f5d5d006-02e2-4ddc-88f4-53ed734e9834",
"name": "Fal.ai API Aufrufen (nanoBanana)",
"type": "n8n-nodes-base.httpRequest",
"position": [
112,
-768
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/{{ $('Get Data').item.json.model }}/edit",
"method": "=POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json.prompt }}\",\n \"image_urls\": [\n \"{{ $json.product }}\"\n ],\n \"num_images\": 1,\n \"output_format\": \"jpeg\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "d78f1556-3f05-4000-8bfe-65feab4d1a6d",
"name": "FelderBearbeiten",
"type": "n8n-nodes-base.set",
"position": [
-64,
-768
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "044f40af-ec59-45e6-a097-678a473b7a8d",
"name": "presenter",
"type": "string",
"value": "={{ (() => { const u = $json.presenter || ''; const q = u.match(/[?&]id=([-\\w]{25,})/); const d = u.match(/\\/d\\/([-\\w]{25,})/); const any = u.match(/[-\\w]{25,}/); const id = q?.[1] || d?.[1] || (any ? any[0] : ''); return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; })() }}"
},
{
"id": "62a409c6-c607-452b-9bbb-f3d29c86dddf",
"name": "product",
"type": "string",
"value": "={{ (() => { const u = $json.product || ''; const q = u.match(/[?&]id=([-\\w]{25,})/); const d = u.match(/\\/d\\/([-\\w]{25,})/); const any = u.match(/[-\\w]{25,}/); const id = q?.[1] || d?.[1] || (any ? any[0] : ''); return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; })() }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "7179d640-378b-428c-bd04-defc8e7eab01",
"name": "DatenAbrufen",
"type": "n8n-nodes-base.googleSheets",
"position": [
-240,
-768
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "video_url"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 658195685,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit#gid=658195685",
"cachedResultName": "nanoBanana"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-oeo9nsFGfDUTh2OVXo1bHeoY1JBvSQx5IbDAH37epY/edit?usp=drivesdk",
"cachedResultName": "n8n_nanoBanan_FalAI"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "27447a25-46b9-4eed-8098-8a9a31dcdd9b",
"name": "JedeSzeneFuerVideoBeschreiben",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-336,
-560
],
"parameters": {
"text": "=You are a Video Scene Prompt Generator for Veo3. \nYour job is to take the scene input below and expand it into a detailed 5-second video description, following these rules:\n\n1. Use the scene input as the core reference. Do not remove or alter product names, logos, or visible text from the reference image.\n2. Expand the description into a natural, realistic **UGC-style video scene**. The output must feel authentic, casual, and human-made (like a phone video).\n3. Break down the scene into these sections:\n - Characters: List all characters in the scene with age, attire, appearance, posture, emotion, and what they are doing.\n - Scene Background: Describe the environment in detail (location, lighting, colors, props, atmosphere, time of day).\n - Camera Movement: Describe how the camera moves (handheld, selfie, panning, zooming, tilt, etc.), as if filmed on a smartphone.\n - Movement in Scene: Show how the character(s) and product interact or move naturally in the 5-second clip.\n - Sound Design: Suggest casual voice/dialogue (under 150 characters, natural & authentic tone), plus ambient sounds or background noise that fit the scene.\n\n4. The **dialogue** should sound natural, short, and conversational (like talking to a friend), not scripted or commercial. \n5. Keep everything **photorealistic** and authentic, not overly polished or cinematic. Emphasize realism and relatability.\n\nScene Input (from previous step):\n{{ $json.content }}\n\nReturn your answer in **plain text** exactly in the following structure (no JSON, no extra commentary):\n\nCharacters:\n- ...\n- ...\n\nScene Background: ...\nCamera Movement: ...\nMovement in Scene: ...\nSound Design: ...\n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "4b806043-08c4-4b6a-bbba-cbde55d56007",
"name": "UeberElementeIterieren",
"type": "n8n-nodes-base.splitInBatches",
"position": [
176,
-560
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "90904d65-9d1f-42e9-beef-3199462d7cff",
"name": "VideoAbrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
864,
-528
],
"parameters": {
"url": "={{ $('Loop Over Items').item.json.response_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "0b24a2a7-6339-4baf-90d7-0f0875870ee4",
"name": "VideoStatus",
"type": "n8n-nodes-base.switch",
"position": [
672,
-512
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "COMPLETED",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6fc5bea4-1567-474b-bfca-5394eb303217",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "COMPLETED"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_PROGRESS",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0882f634-2472-4d24-a1c3-a39f0cd94855",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_PROGRESS"
}
]
},
"renameOutput": true
},
{
"outputKey": "IN_QUEUE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e6c8b207-13ac-4537-8c5c-677039bc2fef",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "IN_QUEUE"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "de378e60-155a-46cc-848f-f106c21827c1",
"name": "VideoStatusAbrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
512,
-512
],
"parameters": {
"url": "={{ $('Loop Over Items').item.json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "1b1be4c2-7825-41fb-9d0c-8bbedab5335c",
"name": "AufVideoWarten",
"type": "n8n-nodes-base.wait",
"position": [
352,
-512
],
"webhookId": "5620e17d-ec9f-4eb0-86dd-2d495f54cbf9",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "a0830568-00ba-473d-9cf4-70b55204a81b",
"name": "StrukturierterAusgabeParser2",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-288,
-432
],
"parameters": {
"autoFix": true,
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"characters\": {\n \"type\": \"array\",\n \"description\": \"the list of characters in the scene\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"the name of the character\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the character (visual outlook)\"\n }\n },\n \"required\": [\n \"name\",\n \"description\"\n ]\n }\n },\n \"scene_description\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the scene\"\n },\n \"camera_movement\": {\n \"type\": \"string\",\n \"description\": \"the description of the camera movement (if any)\"\n },\n \"object_movements\": {\n \"type\": \"string\",\n \"description\": \"the detailed description of the movement of the objects on the screen\"\n },\n \"sound_effects\": {\n \"type\": \"string\",\n \"description\": \"the sound effects the viewer can hear during the scene\"\n }\n },\n \"required\": [\n \"characters\",\n \"scene_description\",\n \"camera_movement\",\n \"object_movements\",\n \"sound_effects\"\n ]\n}"
},
"typeVersion": 1.2
},
{
"id": "c999283b-e187-4cf0-a35b-7dfa980a97b2",
"name": "OpenAI ChatModell1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-368,
-432
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ae94893c-3604-40a3-acd0-6959adb68c23",
"name": "Veo3",
"type": "n8n-nodes-base.httpRequest",
"position": [
0,
-560
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/veo3/image-to-video",
"method": "POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json.output.characters[0].description }}{{ $json.output.scene_description }}{{ $json.output.camera_movement }}{{ $json.output.object_movements }}{{ $json.output.sound_effects }}\",\n \"image_url\": \"{{ $('Get the image').item.json.images[0].url }}\",\n \"duration\": \"8s\",\n \"generate_audio\": true,\n \"resolution\": \"720p\"\n }",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "86a8a9cb-697d-4e5f-99ee-f40cc55b8081",
"connections": {
"7defb174-8f13-4216-a0ac-d3e107939e71": {
"main": [
[
{
"node": "a46204ae-c314-4489-91d8-f7196f0d6926",
"type": "main",
"index": 0
}
],
[
{
"node": "94054e50-9f19-451a-a1a3-ccc4ed31bdb4",
"type": "main",
"index": 0
}
]
]
},
"ae94893c-3604-40a3-acd0-6959adb68c23": {
"main": [
[
{
"node": "4b806043-08c4-4b6a-bbba-cbde55d56007",
"type": "main",
"index": 0
}
]
]
},
"94054e50-9f19-451a-a1a3-ccc4ed31bdb4": {
"main": [
[
{
"node": "ddaabbef-87d4-48a0-9d73-67941198e0f7",
"type": "main",
"index": 0
}
]
]
},
"7179d640-378b-428c-bd04-defc8e7eab01": {
"main": [
[
{
"node": "d78f1556-3f05-4000-8bfe-65feab4d1a6d",
"type": "main",
"index": 0
}
]
]
},
"0d1012fe-1f69-4693-82f8-c7f2af86d76a": {
"main": [
[
{
"node": "63e86079-f906-424a-9d0a-ce4d01ad0634",
"type": "main",
"index": 0
}
]
]
},
"ab591887-6ac9-48ee-86d1-a08e868749ab": {
"main": [
[
{
"node": "6ca128d7-f859-43ad-bd73-368d6c30eee7",
"type": "main",
"index": 0
}
]
]
},
"63e86079-f906-424a-9d0a-ce4d01ad0634": {
"main": [
[
{
"node": "849a7ac8-9892-44b3-a9af-49530dd1a71e",
"type": "main",
"index": 0
}
]
]
},
"d78f1556-3f05-4000-8bfe-65feab4d1a6d": {
"main": [
[
{
"node": "f5d5d006-02e2-4ddc-88f4-53ed734e9834",
"type": "main",
"index": 0
}
]
]
},
"a381a991-ec85-4a9f-993b-193a5808f1d8": {
"main": [
[
{
"node": "c393bdf9-ee80-44db-9bff-84fbc6f74d47",
"type": "main",
"index": 0
}
]
]
},
"0b24a2a7-6339-4baf-90d7-0f0875870ee4": {
"main": [
[
{
"node": "90904d65-9d1f-42e9-beef-3199462d7cff",
"type": "main",
"index": 0
}
],
[
{
"node": "1b1be4c2-7825-41fb-9d0c-8bbedab5335c",
"type": "main",
"index": 0
}
],
[
{
"node": "1b1be4c2-7825-41fb-9d0c-8bbedab5335c",
"type": "main",
"index": 0
}
]
]
},
"3347378b-bcfa-4a45-94f4-f124c554e882": {
"main": [
[
{
"node": "27447a25-46b9-4eed-8098-8a9a31dcdd9b",
"type": "main",
"index": 0
}
]
]
},
"a46204ae-c314-4489-91d8-f7196f0d6926": {
"main": [
[
{
"node": "3347378b-bcfa-4a45-94f4-f124c554e882",
"type": "main",
"index": 0
}
]
]
},
"6ca128d7-f859-43ad-bd73-368d6c30eee7": {
"main": [
[
{
"node": "55f2026c-5ec4-46f2-ac99-6e9300d2cefd",
"type": "main",
"index": 0
}
]
]
},
"90904d65-9d1f-42e9-beef-3199462d7cff": {
"main": [
[
{
"node": "4b806043-08c4-4b6a-bbba-cbde55d56007",
"type": "main",
"index": 0
}
]
]
},
"2ec6e0e6-0e78-4775-84b7-41e2dee4e235": {
"main": [
[]
]
},
"55f2026c-5ec4-46f2-ac99-6e9300d2cefd": {
"main": [
[
{
"node": "d3e80f31-1fc1-4df2-8dd7-34c784f5f7d3",
"type": "main",
"index": 0
}
]
]
},
"4b806043-08c4-4b6a-bbba-cbde55d56007": {
"main": [
[
{
"node": "a381a991-ec85-4a9f-993b-193a5808f1d8",
"type": "main",
"index": 0
}
],
[
{
"node": "1b1be4c2-7825-41fb-9d0c-8bbedab5335c",
"type": "main",
"index": 0
}
]
]
},
"ddaabbef-87d4-48a0-9d73-67941198e0f7": {
"main": [
[
{
"node": "7defb174-8f13-4216-a0ac-d3e107939e71",
"type": "main",
"index": 0
}
]
]
},
"c999283b-e187-4cf0-a35b-7dfa980a97b2": {
"ai_languageModel": [
[
{
"node": "a0830568-00ba-473d-9cf4-70b55204a81b",
"type": "ai_languageModel",
"index": 0
},
{
"node": "27447a25-46b9-4eed-8098-8a9a31dcdd9b",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"1b1be4c2-7825-41fb-9d0c-8bbedab5335c": {
"main": [
[
{
"node": "de378e60-155a-46cc-848f-f106c21827c1",
"type": "main",
"index": 0
}
]
]
},
"d3e80f31-1fc1-4df2-8dd7-34c784f5f7d3": {
"main": [
[
{
"node": "2ec6e0e6-0e78-4775-84b7-41e2dee4e235",
"type": "main",
"index": 0
}
]
]
},
"de378e60-155a-46cc-848f-f106c21827c1": {
"main": [
[
{
"node": "0b24a2a7-6339-4baf-90d7-0f0875870ee4",
"type": "main",
"index": 0
}
]
]
},
"c393bdf9-ee80-44db-9bff-84fbc6f74d47": {
"main": [
[
{
"node": "bb9d425a-1dc2-4f71-a22c-a3995e6df83a",
"type": "main",
"index": 0
}
]
]
},
"93af04aa-a869-419a-b6aa-c47cce1b9071": {
"main": [
[]
]
},
"a0830568-00ba-473d-9cf4-70b55204a81b": {
"ai_outputParser": [
[
{
"node": "27447a25-46b9-4eed-8098-8a9a31dcdd9b",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"f5d5d006-02e2-4ddc-88f4-53ed734e9834": {
"main": [
[
{
"node": "ddaabbef-87d4-48a0-9d73-67941198e0f7",
"type": "main",
"index": 0
}
]
]
},
"27447a25-46b9-4eed-8098-8a9a31dcdd9b": {
"main": [
[
{
"node": "ae94893c-3604-40a3-acd0-6959adb68c23",
"type": "main",
"index": 0
}
]
]
},
"481d7713-dea3-42e5-b37e-8c0d248aea45": {
"main": [
[
{
"node": "7179d640-378b-428c-bd04-defc8e7eab01",
"type": "main",
"index": 0
}
]
]
},
"849a7ac8-9892-44b3-a9af-49530dd1a71e": {
"main": [
[
{
"node": "ab591887-6ac9-48ee-86d1-a08e868749ab",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Jaruphat J.
@jaruphatjProject Manager who passionate about Automation & AI and continuously explore innovative ways to improve business processes through intelligent workflow automation. Let’s connect and automate the future!
Diesen Workflow teilen