Generierung von Werbebild-Varianten mit GPT-4, Dumpling AI und Google Drive
Fortgeschritten
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 14 Nodes. Hauptsächlich werden SplitOut, FormTrigger, GoogleDrive, HttpRequest, GoogleSheets und andere Nodes verwendet. Werbebildvarianten mit GPT-4, Dumpling AI und Google Drive generieren
Voraussetzungen
- •Google Drive API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (14)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"id": "cU2fwVR3z955Vuqt",
"meta": {
"instanceId": "a1ae5c8dc6c65e674f9c3947d083abcc749ef2546dff9f4ff01de4d6a36ebfe6",
"templateCredsSetupCompleted": true
},
"name": "Generate Ad Image Variations Using GPT-4, Dumpling AI & Google Drive",
"tags": [],
"nodes": [
{
"id": "849a3377-d9bb-42d4-b602-61ca789bfb1f",
"name": "Markeninfo + Bild einreichen",
"type": "n8n-nodes-base.formTrigger",
"position": [
240,
55
],
"webhookId": "da177997-c71a-4127-816e-d0e3a442b94a",
"parameters": {
"options": {},
"formTitle": "Ad Image Generator",
"formFields": {
"values": [
{
"fieldLabel": "Brand Name",
"requiredField": true
},
{
"fieldLabel": "Brand Website",
"requiredField": true
},
{
"fieldType": "file",
"fieldLabel": "Ad Image",
"multipleFiles": false,
"requiredField": true
}
]
},
"formDescription": "Provide brand and product info, and an optional reference image to generate image variations with AI."
},
"typeVersion": 2.2
},
{
"id": "25dc9e03-7c7e-44eb-897c-bd8956e554d7",
"name": "Anzeigenbild in Google Drive hochladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
460,
55
],
"parameters": {
"name": "={{ $json['Ad Image'].filename }} (Original)",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1R5bTxrKmi9NDMFJIh3aQgbNuZwmCybLV",
"cachedResultUrl": "https://drive.google.com/drive/folders/1R5bTxrKmi9NDMFJIh3aQgbNuZwmCybLV",
"cachedResultName": "n8n Testing"
},
"inputDataFieldName": "Ad_Image"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "B0Hulh0j065xznhI",
"name": "nnekajennifer"
}
},
"typeVersion": 3
},
{
"id": "feb9a701-63d5-4c68-b4d2-56693dfd667a",
"name": "Anzeigenbild zur Analyse herunterladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
680,
55
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $(' Upload Ad Image to Google Drive').item.json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "B0Hulh0j065xznhI",
"name": "nnekajennifer"
}
},
"typeVersion": 3
},
{
"id": "c6000bdb-ce69-4302-b27e-aab73d128337",
"name": "Visuellen Stil des Bildes beschreiben",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
900,
55
],
"parameters": {
"text": "Describe the visual style, subject matter, and composition of this image. Is it a lifestyle image, a product-only shot, or a combination? Include lighting style and camera angle if possible.",
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "dd8NvMC6rvx8RITo",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.8
},
{
"id": "110842b9-d0d0-4c46-bc2d-94851bd6aa30",
"name": "Stil der Markenwebsite analysieren",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1120,
55
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4",
"cachedResultName": "GPT-4"
},
"options": {},
"messages": {
"values": [
{
"content": "=You are a visual brand strategist and art director for direct-to-consumer (DTC) e-commerce brands.\n\nPlease analyze the following brand website. Focus **only** on the brand’s **visual aesthetic**, including:\n\n- Color palette\n- Photography style and lighting\n- Imagery themes (e.g. lifestyle vs. product shots)\n- Mood or tone evoked by visuals\n- Any repeating design elements or layout patterns\n\nBe descriptive but concise. The output will be used to help design consistent and creative AI-generated images for ad creatives — so focus entirely on the visual look and feel.\n\n\nBrand Website: {{ $('Submit Brand Info + Image').item.json['Brand Website'] }}\nBrand Name: {{ $('Submit Brand Info + Image').item.json['Brand Name'] }}\n"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "dd8NvMC6rvx8RITo",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.8
},
{
"id": "41a97d61-1d3a-4ec3-9b76-c5fe4fb2b312",
"name": "LangChain Agent: Variations-Prompts generieren",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1496,
55
],
"parameters": {
"text": "=Brand Name: {{ $('Submit Brand Info + Image').item.json['Brand Name'] }}\nWebsite: {{ $('Submit Brand Info + Image').item.json['Brand Website'] }}\nReference Ad Description: {{ $('Describe Visual Style of Image').item.json.content }}\nVisual Style Overview: {{ $json.message.content }}",
"options": {
"systemMessage": "=Brand Name: {{ $('Submit Brand Info + Image').item.json['Brand Name'] }}\nWebsite: {{ $('Submit Brand Info + Image').item.json['Brand Website'] }}\nReference Ad Description: {{ $('Describe Visual Style of Image').item.json.content }}\nVisual Style Overview: {{ $json.message.content }}\n\nYour task is to generate **10 tightly related visual variations** of a reference ad image — not new concepts. These prompts are for testing subtle creative changes on Facebook/Instagram ads (e.g., backdrop, mood, color, lighting) while preserving the original subject and composition.\n\n### Reference Materials:\n\n**Brand Info**: {{ $('Submit Brand Info + Image').item.json['Brand Name'] }}\n**Website**: {{ $('Submit Brand Info + Image').item.json['Brand Website'] }}\n**Visual Aesthetics Guideline**: {{ $json.message.content }}\n**Reference Image Description**: {{ $('Describe Visual Style of Image').item.json.content }}\n\nUse the Reference Image Description to ground your concepts in visual reality — the new prompts should **feel like believable variations** of this original ad image in terms of camera angle, lighting, and context, while introducing fresh concepts or creative twists.\n\n### For each of the 10 prompts:\n\n- **Preserve** the reference image's subject (product, camera angle, core framing)\n- **Only vary** the background, environment, mood, lighting, or color treatment\n- Examples of variation types:\n - Daylight vs sunset lighting\n - Poolside vs marble countertop\n - Lavender tones vs beach sand tones\n - Summer vibe vs spa-like calm\n- Use vivid, sensory language to describe each variation\n- Always include **aspect ratio** (1:1 or 4:5)\n- Never introduce logos, overlays, or major subject changes\n\nThe goal is to create **subtle, performance-testable image variations**, not entirely new compositions.\n\nPlease return **only** a JSON array of 10 objects, each with a single property `\"prompt\"` containing the image prompt. Example output structure:\n\n[\n {\n \"prompt\": \"Sun-drenched poolside shot of the product on a marble ledge at golden hour, with soft shadows and warm tones. Aspect ratio 1:1.\"\n },\n {\n \"prompt\": \"Cool lavender-tinted sunset beach backdrop behind the product, highlighting reflective metallic accents. Aspect ratio 4:5.\"\n },\n {\n \"prompt\": \"...\"\n }\n]"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "549abb3a-c944-47ce-a5eb-a5e35e8b7934",
"name": "Prompts in JSON Array parsen",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1720,
260
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"prompt\": \"Sun-drenched poolside shot of the product on a marble ledge at golden hour, with soft shadows and warm tones. Aspect ratio 1:1.\"\n },\n {\n \"prompt\": \"Cool lavender-tinted sunset beach backdrop behind the product, highlighting reflective metallic accents. Aspect ratio 4:5.\"\n },\n {\n \"prompt\": \"...\"\n }\n]"
},
"typeVersion": 1.2
},
{
"id": "833fd095-e1ea-4b70-989f-542b415f4294",
"name": "Split: Ein Prompt pro Element",
"type": "n8n-nodes-base.splitOut",
"position": [
1872,
55
],
"parameters": {
"options": {},
"fieldToSplitOut": "output"
},
"typeVersion": 1
},
{
"id": "89875b01-68e0-4aec-a688-9965a8ca4a3d",
"name": "Basisbild für jede Variation herunterladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
2092,
55
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $(' Upload Ad Image to Google Drive').item.json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "B0Hulh0j065xznhI",
"name": "nnekajennifer"
}
},
"typeVersion": 3
},
{
"id": "6c0131d3-46c3-47af-b8d4-d293f5378760",
"name": "Loop: Bildvariationen verarbeiten",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2312,
55
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "046f2619-c1a3-4674-9ae6-33221bb6f095",
"name": "Dumpling AI: Bildvariation generieren",
"type": "n8n-nodes-base.httpRequest",
"position": [
2532,
-20
],
"parameters": {
"url": "https://app.dumplingai.com/api/v1/generate-ai-image",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"FLUX.1-pro\",\n \"input\": {\n \"prompt\": \"{{ $json.prompt }}\"\n }\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "6X2b4RLVRbz8I4Z8",
"name": "Vapi"
}
},
"typeVersion": 4.2
},
{
"id": "815e004d-f1ed-485f-be24-c4bf565a61f1",
"name": "Bildvariations-URLs in Google Sheets protokollieren",
"type": "n8n-nodes-base.googleSheets",
"position": [
2752,
55
],
"parameters": {
"columns": {
"value": {
"Image URL": "={{ $json.url }}"
},
"schema": [
{
"id": "Image URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Image URL",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Image URL"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12bBSaMdX-jE7QtIlEX4CBUEGScmJx3xK7bwFtHWan64/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12bBSaMdX-jE7QtIlEX4CBUEGScmJx3xK7bwFtHWan64/edit?usp=drivesdk",
"cachedResultName": "Edited image "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "GaJqJHuS5mQxap7q",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "165b9120-6c0b-446e-afd6-c4f233d167df",
"name": "GPT-4o (verbunden mit LangChain Agent)",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1524,
275
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "dd8NvMC6rvx8RITo",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "b52a1b6b-d5c5-43ad-a2c4-b318aa715f7d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
300,
-480
],
"parameters": {
"width": 780,
"height": 740,
"content": "### 🖼️ Ad Image Variation Generator (Using GPT-4 + Dumpling AI)\n\nThis workflow creates 10 subtle creative variations of a reference ad image \nto test performance across visual styles, lighting, background, and tone — \nwhile preserving the product's framing and subject.\n\n---\n\n### 🔧 How It Works\n\n1. User submits brand name, website, and reference ad image via a form.\n2. The image is uploaded to Google Drive.\n3. GPT-4o analyzes the image’s visual style (composition, subject, lighting).\n4. GPT-4 analyzes the brand website to understand overall visual identity.\n5. A LangChain AI Agent uses both to generate 10 variation prompts.\n6. Each prompt is passed to Dumpling AI to generate a new ad image.\n7. All image URLs are logged in Google Sheets.\n\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "3bc41ee0-40f8-4a07-b76d-e8fe2ff5a0c8",
"connections": {
"849a3377-d9bb-42d4-b602-61ca789bfb1f": {
"main": [
[
{
"node": "25dc9e03-7c7e-44eb-897c-bd8956e554d7",
"type": "main",
"index": 0
}
]
]
},
"833fd095-e1ea-4b70-989f-542b415f4294": {
"main": [
[
{
"node": "89875b01-68e0-4aec-a688-9965a8ca4a3d",
"type": "main",
"index": 0
}
]
]
},
"110842b9-d0d0-4c46-bc2d-94851bd6aa30": {
"main": [
[
{
"node": "41a97d61-1d3a-4ec3-9b76-c5fe4fb2b312",
"type": "main",
"index": 0
}
]
]
},
"549abb3a-c944-47ce-a5eb-a5e35e8b7934": {
"ai_outputParser": [
[
{
"node": "41a97d61-1d3a-4ec3-9b76-c5fe4fb2b312",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"c6000bdb-ce69-4302-b27e-aab73d128337": {
"main": [
[
{
"node": "110842b9-d0d0-4c46-bc2d-94851bd6aa30",
"type": "main",
"index": 0
}
]
]
},
"feb9a701-63d5-4c68-b4d2-56693dfd667a": {
"main": [
[
{
"node": "c6000bdb-ce69-4302-b27e-aab73d128337",
"type": "main",
"index": 0
}
]
]
},
"6c0131d3-46c3-47af-b8d4-d293f5378760": {
"main": [
[],
[
{
"node": "046f2619-c1a3-4674-9ae6-33221bb6f095",
"type": "main",
"index": 0
}
]
]
},
"25dc9e03-7c7e-44eb-897c-bd8956e554d7": {
"main": [
[
{
"node": "feb9a701-63d5-4c68-b4d2-56693dfd667a",
"type": "main",
"index": 0
}
]
]
},
"046f2619-c1a3-4674-9ae6-33221bb6f095": {
"main": [
[
{
"node": "815e004d-f1ed-485f-be24-c4bf565a61f1",
"type": "main",
"index": 0
}
]
]
},
"165b9120-6c0b-446e-afd6-c4f233d167df": {
"ai_languageModel": [
[
{
"node": "41a97d61-1d3a-4ec3-9b76-c5fe4fb2b312",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"89875b01-68e0-4aec-a688-9965a8ca4a3d": {
"main": [
[
{
"node": "6c0131d3-46c3-47af-b8d4-d293f5378760",
"type": "main",
"index": 0
}
]
]
},
"815e004d-f1ed-485f-be24-c4bf565a61f1": {
"main": [
[
{
"node": "6c0131d3-46c3-47af-b8d4-d293f5378760",
"type": "main",
"index": 0
}
]
]
},
"41a97d61-1d3a-4ec3-9b76-c5fe4fb2b312": {
"main": [
[
{
"node": "833fd095-e1ea-4b70-989f-542b415f4294",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
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?
Fortgeschritten - 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
💥 Automatisierung von Videoanzeigen mit NanoBanana, Seedream 4, ChatGPT Image und Veo 3 - VIDE
Automatisierung und Veröffentlichung von Video-Werbekampagnen mit KI (NanoBanana, Seedream, GPT-4o, Veo 3)
Set
Code
Wait
+
Set
Code
Wait
63 NodesDr. Firas
Content-Erstellung
WordPress-Blog-Automatisierung Professional Edition (Deep Research) v2.1 Markt
Automatisierung der Erstellung von SEO-optimierten Blogs mit GPT-4o, Perplexity AI und mehrsprachiger Unterstützung
If
Set
Xml
+
If
Set
Xml
125 NodesDaniel Ng
Content-Erstellung
Automatisierte Erstellung von viralen Inhalten mit OpenAI, ElevenLabs und Fal.ai für Videos, Podcasts und ASMR
Automatisiere die Erstellung viralen Contents für Videos, Podcasts und ASMR mit OpenAI, ElevenLabs und Fal.ai
Set
Code
Wait
+
Set
Code
Wait
97 NodesAdam Crafts
Content-Erstellung
Automatisierte Erstellung von filmreifen Tier-Videos und -Sounds aus Formularen mit Dumpling AI
Formulareingaben in filmreife Videos mit GPT-4, Dumpling AI und ElevenLabs-Audio umwandeln
Set
Code
Wait
+
Set
Code
Wait
23 NodesYang
Content-Erstellung
Automatisierung von Gesicht-videos mit OpenAI, RunwayML und ElevenLabs
Automatisierung von Gesichtsvideos ohne Gesicht mit OpenAI, RunwayML und ElevenLabs: Von Skript bis Social Media
Set
Code
Wait
+
Set
Code
Wait
56 NodesLeeWei
Content-Erstellung
Automatisiertes SEO-Blog-Publishing mit WordPress, OpenAI und Perplexity
Automatisierte SEO-Blog-Veröffentlichung mit WordPress, OpenAI und Perplexity
Set
Limit
Split Out
+
Set
Limit
Split Out
43 NodesLukaszB
Content-Erstellung
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes14
Kategorie2
Node-Typen11
Autor
Yang
@yangExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen