Multi_Ad_Image
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 22 Nodes. Hauptsächlich werden If, Set, Wait, SplitOut, GoogleDrive und andere Nodes verwendet. KI-Produktwerbebilder aus Google Tabellen mit Fal.ai und OpenAI generieren
- •Google Drive API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (22)
Kategorie
{
"id": "pyErkv743Qswub8C",
"meta": {
"instanceId": "2c12b0b552404dc07af67cd5f092afd21d18c808d4fdabdb04cb4b064195b6fb",
"templateCredsSetupCompleted": true
},
"name": "Multi_Ad_Image",
"tags": [],
"nodes": [
{
"id": "1c6ff80d-c6dc-485d-9708-38b9f7af4961",
"name": "Bei Klick auf 'Workflow ausführen'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
304,
176
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0ebd375b-d9c4-4ae0-90ac-5295b788a253",
"name": "Zeile(n) in Tabelle abrufen",
"type": "n8n-nodes-base.googleSheets",
"position": [
480,
176
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "Create",
"lookupColumn": "status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit#gid=0",
"cachedResultName": "product"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit?usp=drivesdk",
"cachedResultName": "n8n_Multi_Ad_Image"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "e982d7e4-dced-4897-85cf-708e09d5bc4e",
"name": "Bild analysieren",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
816,
176
],
"parameters": {
"text": "=You are an AI system specialized in **image analysis for advertising**. \nYour task is to carefully analyze the given product image and generate \nstructured insights that will later be used to create high-quality \nadvertising prompts.\n\n### Instructions:\n1. **Identify Product** \n - Type of product (e.g., sneakers, skincare, electronics). \n - Key visible features (color, shape, size, packaging). \n - Materials or textures that can be inferred. \n\n2. **Branding & Style** \n - Any visible logos, brand elements, or design patterns. \n - Style impression (luxury, casual, eco-friendly, tech-oriented). \n\n3. **Target Audience Guess** \n - Suggest who the product might appeal to (young adults, parents, professionals, etc.). \n\n4. **Ad Creative Angles (3–5 ideas)** \n - Marketing hooks inspired by the image. \n - Focus on visual storytelling (e.g., “minimalist lifestyle shot”, “dynamic sports action scene”). \n\n5. **Output Format (JSON)** \n ```json\n {\n \"product_type\": \"...\",\n \"features\": [\"...\", \"...\"],\n \"style\": \"...\",\n \"target_audience\": \"...\",\n \"ad_angles\": [\n \"Ad idea 1\",\n \"Ad idea 2\",\n \"Ad idea 3\",\n \"Ad idea 4\",\n \"Ad idea 5\"\n ]\n }\n",
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "dcb3134c-a3aa-4384-9f37-e59ea93472f7",
"name": "Datei herunterladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
640,
176
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "url",
"value": "={{ $json.product_image_url }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "QVrgALkld7whKIgB",
"name": "Google Drive account - Peakwave"
}
},
"typeVersion": 3
},
{
"id": "c87947e9-97eb-4758-b18c-bf14cc232573",
"name": "KI-Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1024,
176
],
"parameters": {
"text": "=You will receive a real product image and its short description. \nAnalyze them and generate exactly {{ $('Get row(s) in sheet').item.json.num_variations }} distinct, production-ready advertising image prompts.\nIf a campaign is provided, weave its seasonal or promotional context into the prompts naturally. \nIf campaign is empty or \"none\", ignore it.\n\n=== INPUTS ===\n- Product Image URL: {{ $('Get row(s) in sheet').item.json.product_image_url }}\n- Product Name: {{ $('Get row(s) in sheet').item.json.product_name }}\n- Product Description: \"{{ $('Get row(s) in sheet').item.json.product_description }}\"\n- Campaign (optional): {{ $('Get row(s) in sheet').item.json.campaign }} // e.g., \"8.8\", \"10.10\", \"Songkran\", \"Halloween\", \"none\"\n- Target Model: {{ $('Get row(s) in sheet').item.json.model_target }} // e.g., \"SDXL\", \"Midjourney\", \"Flux\", \"Veo\"\n- Aspect Ratio: {{ $('Get row(s) in sheet').item.json.aspect_ratio }} // e.g., \"1:1\", \"4:5\", \"16:9\"\n- Number of Variations (N): {{ $('Get row(s) in sheet').item.json.num_variations }}\n- Brand Guidelines (optional): {{ $('Get row(s) in sheet').item.json.brand_notes }} // e.g., brand palette hex codes, keep logo visible, avoid surreal\n- Creative Constraints (optional): {{ $('Get row(s) in sheet').item.json.constraints }} // e.g., \"no people\", \"no surreal\", \"text-safe negative space\"\n\n=== TASK ===\n1) Treat the product image as ground truth; keep product identity accurate (color, form, logo).\n2) Generate {{ $('Get row(s) in sheet').item.json.num_variations }} visually distinct prompts that are advertising-ready and usable by {{ $('Get row(s) in sheet').item.json.model_target }}.\n3) Vary at least one of: scene/environment, style, lighting, camera, background, composition, color mood, post-process.\n4) If \"campaign\" is provided (not empty/none), incorporate tasteful thematic elements: \n - Halloween → spooky mood, pumpkins, warm/orange accents, moody lighting\n - Songkran → water splashes, summer vibe, bright daylight, outdoor festivity\n - 8.8 / 10.10 / 11.11 → energetic sale vibe, dynamic composition, bold accents\n - Christmas → warm lights, pine elements, cozy red/green palette\n Keep it subtle and brand-safe; do not add new logos or misleading claims.\n5) Follow strictly the JSON schema in the **system prompt** (no extra text).\n6) If any subfield cannot be inferred safely, leave it as an empty string \"\".\n7) Ensure each \"prompt\" is **one line** and does not break JSON.\n\n=== REMINDERS ===\n- Avoid vague adjectives. Be concrete and visual.\n- Composition tips: centered hero, rule-of-thirds lifestyle, top-down flat-lay, negative space for copy.\n- Lighting tips: softbox/rim for packshots, natural daylight for lifestyle, golden hour for warmth.\n- Camera tips: 35mm/50mm for natural look, 85mm for product portrait with shallow DoF, macro for texture.\n- Color mood: align gently with any campaign; otherwise, use clean brand-safe palettes.\n\n=== RETURN FORMAT ===\n- Return a **single JSON object** only, matching the schema in the system prompt.\n",
"options": {
"systemMessage": "=You are an **Advertising Image Prompt Designer**.\n\nInputs you may receive:\n- product_image_url (image of the real product; treat as ground truth)\n- product_name\n- product_description\n- campaign (optional; e.g., \"8.8\", \"10.10\", \"Songkran\", \"Halloween\", \"Black Friday\", \"Christmas\")\n- model_target (e.g., \"SDXL\", \"Midjourney\", \"Flux\", \"Veo\")\n- aspect_ratio (e.g., \"1:1\", \"4:5\", \"16:9\")\n- N (number of distinct variations to generate)\n\nGoal:\n- Analyze the given product image, short description, and optional campaign context.\n- Produce **N distinct, production-ready image prompts** for ad creation.\n- **Preserve the product’s true identity** (color, form, logo, key features). Do not invent or alter the product.\n\nOutput:\n- Return **JSON only** following the schema below. **No extra text** outside the JSON.\n\nQuality rules:\n- Each prompt must be visually distinct (vary at least one major axis: scene, mood, style, lighting, camera, background, composition).\n- Use concise, concrete descriptors; avoid vague words (e.g., “nice”, “beautiful”).\n- Keep prompts brand-safe and realistic unless the user explicitly allows surreal concepts.\n- Prefer modern ad aesthetics: clean hero shots, lifestyle, editorial, macro texture, flat-lay, outdoor ambient, etc.\n- If any requested field is missing in the user input, **infer from the image**; if you cannot infer safely, set that subfield to an empty string.\n- If a **campaign** is provided, incorporate its seasonal or promotional theme **naturally and tastefully** (e.g., \n • Halloween → moody/spooky, pumpkins, warm/orange accents, fog \n • Songkran → water splash, festive Thai summer vibe, bright daylight \n • 8.8 / 10.10 / 11.11 → bold sale energy, dynamic composition, price-tag visual cues without adding logos \n • Christmas → cozy, pine, warm lights, red/green palette \n • Black Friday → high contrast, dark sleek backdrops). \n If no campaign is provided (empty or “none”), **ignore** campaign styling.\n\nTarget models:\n- Prompts should be usable by **Midjourney, SDXL, Flux, or Veo**. Avoid model-specific tokens unless provided in the user input (e.g., “--ar 16:9”, “--style raw”).\n\nPrompt composition guidance (recommended ingredients):\n- **Subject/Product**: exact product + salient features visible in the image (material, finish, color, unique parts).\n- **Scene/Environment**: studio / lifestyle / outdoor / occasion-linked (if campaign present).\n- **Style/Art direction**: minimalist / cinematic / editorial / lifestyle / high-fashion / tech-forward / cozy, etc.\n- **Lighting**: softbox / rim light / natural daylight / golden hour / neon / HDRI; mention shadows/reflections if relevant.\n- **Camera**: 35mm / 85mm / wide / macro / top-down / tilt-shift, F-stop or DoF if helpful.\n- **Composition**: centered / rule of thirds / flat-lay / hero shot / negative space for text.\n- **Background**: seamless white/black, textured concrete, wooden desk, gradient, seasonal set pieces (only if campaign present).\n- **Color mood**: pastel / vibrant / monochrome / brand palette; align gently with any campaign palette.\n- **Post-process**: subtle film grain / glossy reflections / HDR / product retouch / shadow catching.\n- **Marketing angle**: premium luxury / eco-friendly / active lifestyle / tech-forward / festive sale energy.\n\nBrand-safety & integrity:\n- Do **not** add or modify logos, certifications, or claims not present in the description.\n- Do **not** imply medical/health claims unless explicitly provided.\n- Avoid depicting real people/celebrities. If humans are implied, keep them generic and non-identifiable.\n\nRequired JSON schema (return this object only):\n{\n \"product_name\": string,\n \"product_description\": string,\n \"image_url\": string,\n \"campaign\": string, // optional; leave \"\" if none\n \"model_target\": string, // e.g., \"SDXL\", \"Midjourney\", \"Flux\", \"Veo\"\n \"aspect_ratio\": string, // e.g., \"1:1\", \"4:5\", \"16:9\"\n \"variations\": [\n {\n \"variation_id\": number,\n \"prompt\": string, // full generation prompt (one line)\n \"style\": string, // e.g., minimalist / cinematic / editorial / lifestyle / surreal\n \"scene\": string, // e.g., studio / outdoor / cafe / gym / beach\n \"lighting\": string, // e.g., softbox / natural daylight / neon / golden hour / rim light\n \"camera\": string, // e.g., 35mm / 85mm / macro / top-down / tilt-shift, include DoF if useful\n \"composition\": string, // e.g., centered / rule of thirds / flat-lay / hero shot / negative space\n \"background\": string, // e.g., white seamless / textured concrete / gradient / city night\n \"color_mood\": string, // e.g., pastel / vibrant / monochrome / brand palette\n \"post_process\": string, // e.g., subtle film grain / glossy reflections / HDR / product retouch\n \"marketing_angle\": string // e.g., premium luxury / eco-friendly / active lifestyle / tech-forward\n }\n ]\n}\n\nValidation:\n- Produce **exactly N** variations.\n- Ensure each \"prompt\" is a **single line** without JSON-breaking characters.\n- Escape any internal quotes if needed. Do not include commentary outside the JSON block.\n\nFailure handling:\n- If the image cannot be analyzed (unreachable URL or ambiguous), still return a valid JSON with minimal safe prompts derived from the description; leave unknown subfields as \"\" and add a short note in \"notes\".\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "f4b60076-6dd2-4da1-90db-117eabe4715c",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1008,
288
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "28LXl50ZdQjnkMJs",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "12f40103-c60f-4a7b-82d1-960bd6b32755",
"name": "Aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
1312,
176
],
"parameters": {
"options": {},
"fieldToSplitOut": "output.scenes"
},
"typeVersion": 1
},
{
"id": "e695e646-9759-46c4-a33c-36cda24da934",
"name": "Zeile in Tabelle anhängen",
"type": "n8n-nodes-base.googleSheets",
"position": [
1456,
176
],
"parameters": {
"columns": {
"value": {
"prompt": "={{ $json.prompt }}",
"status": "Ready",
"scene_ref": "={{ $('Get row(s) in sheet').item.json.product_name }}_{{ $json.scene_id }}",
"product_name": "={{ $('Get row(s) in sheet').item.json.product_name }}"
},
"schema": [
{
"id": "scene_ref",
"type": "string",
"display": true,
"required": false,
"displayName": "scene_ref",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product_name",
"type": "string",
"display": true,
"required": false,
"displayName": "product_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "prompt",
"type": "string",
"display": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output_url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "output_url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1544343606,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit#gid=1544343606",
"cachedResultName": "ad_image"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit?usp=drivesdk",
"cachedResultName": "n8n_Multi_Ad_Image"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "e1bb5b31-1f2b-4d9e-80ff-d91bbeac3793",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-64,
384
],
"parameters": {
"width": 1840,
"height": 192,
"content": "### 🟨 Zone 2: 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": "d53e1592-7956-4154-9df9-bf8b7943e7fc",
"name": "Warten",
"type": "n8n-nodes-base.wait",
"position": [
976,
464
],
"webhookId": "98549686-33c2-4bef-a176-92ead56ad0d1",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "c75b4d0b-3309-4f03-8402-d13accc7edbc",
"name": "Wenn",
"type": "n8n-nodes-base.if",
"position": [
816,
416
],
"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": "b313b28e-10e0-4815-b8e5-a5e8c1ad4542",
"name": "Bildstatus abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
656,
416
],
"parameters": {
"url": "={{ $json.status_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "16e46dfb-8cf7-45fd-9d72-c71b1b3eefad",
"name": "Fal.ai API aufrufen (nannoBanana)",
"type": "n8n-nodes-base.httpRequest",
"position": [
480,
416
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/{{ $('Get row(s) in sheet').item.json.model_target }}/edit",
"method": "=POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json.prompt }} {{ $json.notes }}\",\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": "56a8079f-6e4d-46db-b975-433463b9fa68",
"name": "Zeile in Tabelle aktualisieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
1584,
400
],
"parameters": {
"columns": {
"value": {
"status": "Complete",
"scene_ref": "={{ $('Append row in sheet').item.json.scene_ref }}",
"output_url": "={{ $json.webViewLink }}"
},
"schema": [
{
"id": "scene_ref",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "scene_ref",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "product_name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "product_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "prompt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "notes",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "notes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "output_url",
"type": "string",
"display": true,
"required": false,
"displayName": "output_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"scene_ref"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1544343606,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit#gid=1544343606",
"cachedResultName": "ad_image"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XAKLXfhRqPB7RjA8neUHYGwF4FKpM38edJUONHxt9pE/edit?usp=drivesdk",
"cachedResultName": "n8n_Multi_Ad_Image"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "0RVWjnYzlWor2bMu",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "8ae70d5b-3dd5-42e6-9c32-f6d36d299b21",
"name": "Datei hochladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
1440,
400
],
"parameters": {
"name": "={{ $('Get row(s) in sheet').item.json.product_name }}_{{ $('Append row in sheet').item.json.scene_ref }}.jpeg",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1GyJp-XK4NIwjvUp13CHBUMiGNum1Yzl8",
"cachedResultUrl": "https://drive.google.com/drive/folders/1GyJp-XK4NIwjvUp13CHBUMiGNum1Yzl8",
"cachedResultName": "outputImage"
},
"inputDataFieldName": "=data"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "QVrgALkld7whKIgB",
"name": "Google Drive account - Peakwave"
}
},
"typeVersion": 3
},
{
"id": "69afdf78-491a-4952-936e-03208adc6787",
"name": "Felder bearbeiten",
"type": "n8n-nodes-base.set",
"position": [
320,
416
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "62a409c6-c607-452b-9bbb-f3d29c86dddf",
"name": "product",
"type": "string",
"value": "={{ \n (() => { \n const u = $('Get row(s) in sheet').item.json.product_image_url || ''; \n const q = u.match(/[?&]id=([-\\w]{25,})/); \n const d = u.match(/\\/d\\/([-\\w]{25,})/); \n const any = u.match(/[-\\w]{25,}/); \n const id = q?.[1] || d?.[1] || (any ? any[0] : ''); \n return id ? 'https://drive.google.com/uc?export=view&id=' + id : ''; \n })() \n}}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "bc750bdb-45ad-4380-ad1d-6688cb242850",
"name": "Strukturierter Ausgabe-Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1168,
288
],
"parameters": {
"jsonSchemaExample": "\n{\n \"product_name\": \"Smart Water Bottle\",\n \"product_description\": \"A sleek stainless steel smart water bottle with LED temperature display.\",\n \"image_url\": \"https://drive.google.com/uc?export=view&id=123abcXYZ\",\n \"scenes\": [\n {\n \"scene_id\": 1,\n \"prompt\": \"smart stainless steel water bottle on a minimalist white marble counter, cinematic studio lighting, soft shadows, product hero shot, centered composition\"\n },\n {\n \"scene_id\": 2,\n \"prompt\": \"smart water bottle on a wooden gym bench, fitness lifestyle, natural sunlight from window, sweat towel nearby, cinematic depth of field\"\n },\n {\n \"scene_id\": 3,\n \"prompt\": \"product placed in a futuristic cyberpunk neon city background, glowing reflections, dramatic rim lighting, 35mm lens, bold composition\"\n }\n ]\n}\n"
},
"typeVersion": 1.3
},
{
"id": "ee86e519-9ea5-41f0-b887-559558b1b206",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
1296,
400
],
"parameters": {
"url": "={{ $json.images[0].url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "8aXZ3G10Qvvsc8FY",
"name": "Fal AI"
}
},
"typeVersion": 4.2
},
{
"id": "e8505d4b-2bf8-4a36-be98-4e0fc0597fbf",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-64,
160
],
"parameters": {
"color": 4,
"width": 1840,
"height": 208,
"content": "### 🟩 Zone 1: Create Image\n\n1. **When clicking 'Execute workflow**\n2. **Get ImageURL and Product Detail(Google Sheets)**\n3. **Analys image for create Ad image**\n4. **AI generate Prompt for Ad_Image**"
},
"typeVersion": 1
},
{
"id": "3c27ccb4-b7f0-4ddd-ad17-bb3563920552",
"name": "Bild1 abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
1136,
400
],
"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": "c0798b64-0f44-44eb-b3f9-16c58f19f762",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
-48,
608
],
"parameters": {
"color": 4,
"width": 336,
"height": 464,
"content": "## Product Image\n\n"
},
"typeVersion": 1
},
{
"id": "9ab9daa1-fce9-47ab-86de-c577327cf1b0",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"disabled": true,
"position": [
304,
608
],
"parameters": {
"color": 4,
"width": 1472,
"height": 464,
"content": "## Product Image - nano Banana\n   "
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d4b9b60e-31d7-4a7e-b78b-8dd85b374edc",
"connections": {
"c75b4d0b-3309-4f03-8402-d13accc7edbc": {
"main": [
[
{
"node": "3c27ccb4-b7f0-4ddd-ad17-bb3563920552",
"type": "main",
"index": 0
}
],
[
{
"node": "d53e1592-7956-4154-9df9-bf8b7943e7fc",
"type": "main",
"index": 0
}
]
]
},
"d53e1592-7956-4154-9df9-bf8b7943e7fc": {
"main": [
[
{
"node": "b313b28e-10e0-4815-b8e5-a5e8c1ad4542",
"type": "main",
"index": 0
}
]
]
},
"c87947e9-97eb-4758-b18c-bf14cc232573": {
"main": [
[
{
"node": "12f40103-c60f-4a7b-82d1-960bd6b32755",
"type": "main",
"index": 0
}
]
]
},
"12f40103-c60f-4a7b-82d1-960bd6b32755": {
"main": [
[
{
"node": "e695e646-9759-46c4-a33c-36cda24da934",
"type": "main",
"index": 0
}
]
]
},
"69afdf78-491a-4952-936e-03208adc6787": {
"main": [
[
{
"node": "16e46dfb-8cf7-45fd-9d72-c71b1b3eefad",
"type": "main",
"index": 0
}
]
]
},
"8ae70d5b-3dd5-42e6-9c32-f6d36d299b21": {
"main": [
[
{
"node": "56a8079f-6e4d-46db-b975-433463b9fa68",
"type": "main",
"index": 0
}
]
]
},
"ee86e519-9ea5-41f0-b887-559558b1b206": {
"main": [
[
{
"node": "8ae70d5b-3dd5-42e6-9c32-f6d36d299b21",
"type": "main",
"index": 0
}
]
]
},
"e982d7e4-dced-4897-85cf-708e09d5bc4e": {
"main": [
[
{
"node": "c87947e9-97eb-4758-b18c-bf14cc232573",
"type": "main",
"index": 0
}
]
]
},
"dcb3134c-a3aa-4384-9f37-e59ea93472f7": {
"main": [
[
{
"node": "e982d7e4-dced-4897-85cf-708e09d5bc4e",
"type": "main",
"index": 0
}
]
]
},
"3c27ccb4-b7f0-4ddd-ad17-bb3563920552": {
"main": [
[
{
"node": "ee86e519-9ea5-41f0-b887-559558b1b206",
"type": "main",
"index": 0
}
]
]
},
"b313b28e-10e0-4815-b8e5-a5e8c1ad4542": {
"main": [
[
{
"node": "c75b4d0b-3309-4f03-8402-d13accc7edbc",
"type": "main",
"index": 0
}
]
]
},
"f4b60076-6dd2-4da1-90db-117eabe4715c": {
"ai_languageModel": [
[
{
"node": "c87947e9-97eb-4758-b18c-bf14cc232573",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"e695e646-9759-46c4-a33c-36cda24da934": {
"main": [
[
{
"node": "69afdf78-491a-4952-936e-03208adc6787",
"type": "main",
"index": 0
}
]
]
},
"0ebd375b-d9c4-4ae0-90ac-5295b788a253": {
"main": [
[
{
"node": "dcb3134c-a3aa-4384-9f37-e59ea93472f7",
"type": "main",
"index": 0
}
]
]
},
"bc750bdb-45ad-4380-ad1d-6688cb242850": {
"ai_outputParser": [
[
{
"node": "c87947e9-97eb-4758-b18c-bf14cc232573",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"16e46dfb-8cf7-45fd-9d72-c71b1b3eefad": {
"main": [
[
{
"node": "b313b28e-10e0-4815-b8e5-a5e8c1ad4542",
"type": "main",
"index": 0
}
]
]
},
"1c6ff80d-c6dc-485d-9708-38b9f7af4961": {
"main": [
[
{
"node": "0ebd375b-d9c4-4ae0-90ac-5295b788a253",
"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