AI Marketing Asset Generation Automation Workflow

Automate marketing visuals! This n8n workflow generates AI-powered Instagram posts, stories, & ads from form submissions. Streamline your product launch with automation.

BEGINNER
FEATURED
IN • INDIA
MARKETING
WORKFLOW VISUALIZATION
React Flow mini map
WORKFLOW PREVIEW
17 nodes • 16 connections
USE CASES
  • Automate your product launch marketing with this n8n workflow that uses AI image generation and a form trigger to create Instagram posts, stories, and ad creatives, storing them directly in Google Drive.
SETUP STEPS
  1. 1Set Up Google Drive API
  2. 2Configure OpenAI API Access
  3. 3Import and Configure the Workflow
  4. 4Customise Brand Guidelines
  5. 5Configure the Form Trigger
  6. 6Understand the AI Agent Configuration
  7. 7Configure Image Generation Nodes
  8. 8Run the Workflow
WORKFLOW JSON
{
  "id": "vAblZdyiKzor6ajO",
  "meta": {
    "instanceId": "553b57d613227d205d7ede55094834dd7153866ccda4c971fd59f5fa147ec838"
  },
  "name": "Ad Creatives using AI",
  "tags": [],
  "nodes": [
    {
      "id": "882e907c-2614-4129-8608-707978eda4e6",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1440,
        384
      ],
      "webhookId": "6dfe8272-9ff8-4689-abb9-2778f3a4626b",
      "parameters": {
        "options": {},
        "formTitle": "AI Marketing Asset Generator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "What is the Product's Name?",
              "requiredField": true
            },
            {
              "fieldLabel": "What is the Product Tag Line?",
              "requiredField": true
            },
            {
              "fieldType": "file",
              "fieldLabel": "Upload Product Image",
              "multipleFiles": false,
              "requiredField": true,
              "acceptFileTypes": ".png, .jpg"
            },
            {
              "fieldLabel": "What is the Product Category?",
              "requiredField": true
            },
            {
              "fieldLabel": "Highlighted Benefit",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Launching a New Product? Get 5 Stunning, Ready-to-use Visuals tailored to your brand!  "
      },
      "typeVersion": 2.3
    },
    {
      "id": "3462d758-7469-4883-8268-a2ec896f3751",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -1232,
        384
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"brandName\": \"Minimalist\",\n  \"brandTone\": \"Luxury skincare — clean, calm, and elegant.\",\n  \"colorTheme\": \"Black and White\",\n  \"backgroundStyle\": \"Soft gradients or realistic textures like water, marble, or satin.\",\n  \"lightingStyle\": \"Always soft, diffused lighting with a subtle spotlight effect and gentle reflections.\",\n  \"productPlacement\": \"The product should feel grounded, not floating — placed on surfaces like trays, marble slabs, or fabric. Props like flower petals, ribbons, or boxes can be used sparingly.\",\n  \"typographyStyle\": \"Use serif fonts in uppercase for titles. For secondary text, use thin script or modern sans-serif. Font color should be white, soft gold, or dark green — never harsh.\",\n  \"compositionGuidelines\": \"Maintain clean symmetry or elegant off-center balance. Always leave intentional space around the product. Keep supporting elements minimal and refined.\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "58a4f051-35ed-43b4-8b3a-1714258109d3",
      "name": "Create folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -1024,
        384
      ],
      "parameters": {
        "name": "={{ $('On form submission').item.json['What is the Product\\'s Name?'] }} - {{ new Date($('On form submission').item.json.submittedAt).toLocaleString('en-IN', { dateStyle: 'medium', timeStyle: 'short' }) }}\n",
        "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": "1IAhphIaki8cbGwkIFhXgP2j_ZCCmWpKG",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1IAhphIaki8cbGwkIFhXgP2j_ZCCmWpKG",
          "cachedResultName": "Creatives from n8n1"
        },
        "resource": "folder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "96Uwdg9MpnQIjuJK",
          "name": "Priyank.singh@bizwitmarketing"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "8574ede7-69fe-456e-8abf-e90871d697fb",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -816,
        384
      ],
      "parameters": {
        "text": "=Product Name: {{ $('On form submission').item.json['What is the Product\\'s Name?'] }}\nTagline: {{ $('On form submission').item.json['What is the Product Tag Line?'] }}\nBrand: {{ $('Edit Fields').item.json.brandName }}\nTone: {{ $('Edit Fields').item.json.brandTone }}\nCategory: {{ $('On form submission').item.json['What is the Product Category?'] }}\nBenefit: {{ $('On form submission').item.json['Highlighted Benefit'] }}\n",
        "options": {
          "systemMessage": "=ROLE DEFINITION\nYou are an elite Luxury Creative Director specializing in beauty and skincare brand visual strategy. You merge the artistic sensibility of a Condé Nast editorial stylist with the precision of a direct-response conversion strategist.\nYour expertise spans:\n\nVisual Art Direction (composition, lighting, styling, color theory)\nConsumer Psychology (emotional triggers, sensory persuasion, status signaling)\nLuxury Brand Storytelling (minimalism, sophistication, aspiration)\nConversion-Focused Copywriting (subtle CTAs that sell without selling)\n\nYour output is used to generate AI image prompts for premium skincare/beauty brands that must look editorial, elegant, and emotionally compelling while driving measurable commercial results.\n\nCORE BRAND AESTHETIC PRINCIPLES\nEvery creative you produce must embody:\n\nVisual Minimalism: Clean, uncluttered, intentional negative space\nTactile Luxury: Surfaces and textures that evoke touch (silk, marble, linen, glass)\nSoft Feminine Modernism: Blush tones, ivory, gold accents, sculptural shapes\nEditorial Realism: Not overly retouched — natural light, authentic moments, cinematic warmth\nEmotional Restraint: Sophisticated, never loud; whispers luxury rather than shouts it\n\n\nOUTPUT STRUCTURE\nFor each creative asset requested, provide:\n1. Creative Type & Strategic Intent\nClearly state: Instagram Post | Story | Ad Creative\nDefine the psychological sales objective in one sentence.\n2. Visual Prompt (Image Generation Ready)\nWrite as a complete, detailed visual instruction formatted as a single paragraph, including:\n\nSubject/Hero Element: Product placement, focal point, key object\nSurface & Background: Material, color, texture (e.g., \"cool Carrara marble,\" \"blush silk backdrop\")\nProps & Styling Elements: Supporting objects (never repeat across prompts: pearls, orchids, ribbons, sculptural trays, handwritten notes, etc.)\nLighting Quality: Specific light type (golden hour, diffused daylight, soft side lighting, morning glow)\nComposition & Angle: Flat lay, 45° angle, close-up macro, editorial hero shot, symmetrical framing\nMood & Tone: Color palette, emotional atmosphere (serene, sensual, confident, radiant)\nOverlay Text/CTA: Short, luxury-toned copy (8 words max) — must feel native to the visual, not salesy\n\n3. Psychological Sales Mechanism\nOne sentence explaining why this visual converts, referencing:\n\nEmotional triggers: Desire, aspiration, FOMO, sensory activation, social proof, trust\nPsychological principles: Scarcity, authority, reciprocity, sensory marketing, mirror neurons\n\n\nDIFFERENTIATION REQUIREMENTS\nNever repeat across outputs:\n\nBackground surfaces (alternate: marble, silk, linen, satin, velvet, frosted glass, cream plaster)\nProps (rotate: gold spoons, pearls, flowers, ribbons, books, ceramics, natural stones)\nLighting styles (vary: golden hour, soft morning, diffused studio, natural window light)\nComposition angles (mix: flat lay, 45°, overhead, close-up, editorial portrait)\n\nEach creative must feel like it belongs to the same luxury campaign but serve a distinct visual purpose.\n\nEXAMPLE OUTPUT FORMAT\n1) Instagram Post — Desire & Aspiration\nVisual Prompt:\nLuxury serum bottle positioned on a brushed brass tray atop cool ivory marble, flanked by a single white peony and a vintage mother-of-pearl compact mirror. Soft diffused morning light creates gentle shadows. Symmetrical composition with ample negative space in blush-cream tones. Overlay text in serif gold foil style: \"Your Skin, Elevated – Discover Now.\"\nPsychological Mechanism:\nEvokes aspirational status through material luxury cues (brass, marble, pearls) and exclusivity signaling via minimalist composition, triggering the desire to belong to a refined aesthetic lifestyle.\n\n2) Instagram Story — Sensory Urgency\nVisual Prompt:\nExtreme close-up of a gold bamboo spatula lifting rich cream from an open jar, set on soft champagne linen with scattered dried rose petals out of focus in the background. Warm side lighting emphasizes the product's velvety texture. Overlay text in elegant sans-serif: \"Touch Luxury – Swipe Up to Feel.\"\nPsychological Mechanism:\nActivates mirror neurons and sensory imagination by showcasing texture and application ritual, creating visceral product desire and immediate action impulse through tactile visualization.\n\n3) Ad Creative — Emotional Trust & Social Proof\nVisual Prompt:\nProduct bottle resting beside a handwritten thank-you note on cream parchment, surrounded by delicate gold jewelry and a sprig of eucalyptus on ivory satin fabric. Golden hour glow creates warm, intimate atmosphere. Editorial flat lay with organic asymmetry. Overlay text in handwritten-style font: \"Loved by Skin, Adored by You – Try Risk-Free.\"\nPsychological Mechanism:\nBuilds emotional connection through personal storytelling cues (handwritten note) and leverages social proof (\"Loved by\") while reducing purchase friction (\"Risk-Free\"), creating trust-based conversion.\n\nTONE & VOICE GUIDELINES\n\nWrite with the confidence of a Vogue creative director and the precision of a performance marketer\nUse sensory-rich language but remain concise\nNever use clichés like \"game-changer\" or \"must-have\"\nSpeak in visual specifics, not generalities (wrong: \"beautiful lighting\" → right: \"diffused morning light through sheer linen curtains\")\nEvery word must serve both beauty and conversion\n\n\nQUALITY STANDARDS\nYour prompts must be:\n\nSpecific enough to generate a consistent visual style across a brand\nDetailed enough to eliminate ambiguity for image generation models\nPsychologically intentional — every element has a strategic reason\nCommercially viable — beautiful and conversion-optimized\nNon-repetitive — each asset feels fresh yet cohesive\n\n\nRESPONSE PROTOCOL\nWhen given a request:\n\nClarify the objective if needed (Awareness? Consideration? Conversion?)\nGenerate 1–3 creative prompts depending on request scope\nEnsure visual variety across all outputs in a single response\nAlways include the psychological rationale — this trains the user and improves future requests"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "12bf9b80-f8a8-4d50-957d-0a909e6cd68a",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -640,
        592
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"assets\": [\n    {\n      \"assetType\": \"Instagram Post\",\n      \"backgroundTone\": \"soft blush gradient\",\n      \"surfaceType\": \"satin draped cloth\",\n      \"accentProp\": \"gold-trimmed ribbon\",\n      \"lighting\": \"warm spotlight from the side\",\n      \"cameraAngle\": \"45-degree angle\",\n      \"overlayText\": \"Glow deeper. Shine brighter.\"\n    },\n    {\n      \"assetType\": \"Instagram Story\",\n      \"backgroundTone\": \"pale lavender with light streaks\",\n      \"surfaceType\": \"textured ceramic tray\",\n      \"accentProp\": \"scattered rose petals\",\n      \"lighting\": \"top-down diffused glow\",\n      \"cameraAngle\": \"zoomed-in overhead view\",\n      \"overlayText\": \"Hydration you can feel. Right now.\"\n    },\n    {\n      \"assetType\": \"Ad Creative\",\n      \"backgroundTone\": \"deep emerald with gradient fade\",\n      \"surfaceType\": \"reflective glass base\",\n      \"accentProp\": \"frosted crystal orb\",\n      \"lighting\": \"dramatic backlight\",\n      \"cameraAngle\": \"elevated 3/4 angle\",\n      \"overlayText\": \"10% Off Today Only\"\n    }\n  ]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "6a13ceec-b3a7-4d1d-abf4-8f92fbc10dd2",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -880,
        608
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "ozqrxU8Na91LHSWd",
          "name": "Main API Connect"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1851403a-7b49-4340-866e-e06f4809cc21",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        -464,
        384
      ],
      "parameters": {
        "jsCode": "return [\n  {\n    json: $json,\n    binary: {\n    image: $node[\"On form submission\"].binary[\"Upload_Product_Image\"]  // renaming it for HTTP upload\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "6bd09bc7-c682-4e77-8125-85e033efda74",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        -256,
        368
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "42fc638c-961c-4807-b24a-b20e87b76920",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.assets[0].assetType }}",
                    "rightValue": "Instagram Post"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "f9ad7324-8eb8-4224-a7c9-9294a49e967f",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.assets[1].assetType }}",
                    "rightValue": "Instagram Story"
                  }
                ]
              }
            },
            {
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "cfb444f1-bef5-4969-b19a-95bb2e954bb2",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.output.assets[2].assetType }}",
                    "rightValue": "Ad Creative"
                  }
                ]
              }
            }
          ]
        },
        "options": {
          "allMatchingOutputs": true
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "546181f2-bfc0-430b-8f6b-fd17aa2245f6",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        192,
        176
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data[0].b64_json"
      },
      "typeVersion": 1.1
    },
    {
      "id": "33b2b556-6d70-453b-ab25-e701702982b3",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        400,
        176
      ],
      "parameters": {
        "name": "Instagram Post",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create folder').item.json.id }}"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "96Uwdg9MpnQIjuJK",
          "name": "Priyank.singh@bizwitmarketing"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "c4e8a829-a200-4958-8306-7f3c816adc92",
      "name": "Convert to File1",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        192,
        368
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data[0].b64_json"
      },
      "typeVersion": 1.1
    },
    {
      "id": "38a7a65d-21f8-4fce-a43c-d30497f5e03b",
      "name": "Upload file1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        400,
        368
      ],
      "parameters": {
        "name": "Instagram Story",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create folder').item.json.id }}"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "96Uwdg9MpnQIjuJK",
          "name": "Priyank.singh@bizwitmarketing"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "abf544bb-5eaf-448f-8b3a-7861a6120466",
      "name": "Convert to File4",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        192,
        560
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data[0].b64_json"
      },
      "typeVersion": 1.1
    },
    {
      "id": "fbe3c274-568c-4c01-868a-13ae5ccded4a",
      "name": "Instagram Post Generator",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        176
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "model",
              "value": "gpt-image-1"
            },
            {
              "name": "prompt",
              "value": "=Create a square (1:1) photorealistic **Instagram Post** visual for the skincare product {{ $('On form submission').item.json[\"What is the Product's Name?\"] }} from {{ $('Edit Fields').item.json.brandName }}.\nThis is the **hero asset** in the product launch — it should feel bold, polished, and visually iconic. The composition must be clean, centered, and brand-first, setting the tone for the entire campaign.\nThe product image is provided — do not alter it. Integrate it into a stylized visual scene.\n\nUse a {{ $json.output.assets[0].backgroundTone }} background that reflects natural elegance — this may include textures like fabric folds, water ripples, or gradient light. Place the product on a {{ $json.output.assets[0].surfaceType }} such as stone, satin, or sculpted glass.\n\nIntroduce a complementary accent prop like a {{ $json.output.assets[0].accentProp }} to enrich the visual story. Ensure props enhance, not clutter.\n\nApply {{ $json.output.assets[0].lighting }} to add dimension, and capture the image from a {{ $json.output.assets[0].cameraAngle }} — this may be slightly off-center, angled, or from above to create depth.\n\nFollow the brand’s identity and styling rules:\n- Tone: {{ $('Edit Fields').item.json.brandTone }}\n- Color palette: {{ $('Edit Fields').item.json.colorTheme }}\n- Typography style (for brand reference only): {{ $('Edit Fields').item.json.typographyStyle }}\n- Product placement rules: {{ $('Edit Fields').item.json.productPlacement }}\n- Composition: {{ $('Edit Fields').item.json.compositionGuidelines }}\n\nFeel free to include overlay text - \"{{ $('AI Agent').item.json.output.assets[0].overlayText }}\". Ensure it is clearly legible, elegantly styled, and placed harmoniously within the composition. \n\nThis should be a clean, emotionally resonant product visual — worthy of a high-end Instagram or print campaign."
            },
            {
              "name": "output_format",
              "value": "png"
            },
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "image"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Enter Open AI Token>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "807183ac-864d-4a22-a27c-63f59a70107f",
      "name": "Instagram Story Generator",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        368
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "model",
              "value": "gpt-image-1"
            },
            {
              "name": "prompt",
              "value": "=Create a vertical 9:16 photorealistic **Instagram Story** visual for the skincare product {{ $('On form submission').item.json[\"What is the Product's Name?\"] }} from {{ $('Edit Fields').item.json.brandName }}.\n\nThis is a **mobile-first asset** — it should feel closer, more intimate, and optimized for scrolling. The visual must feel lighter and more immersive than the hero post, with vertical flow and tactile textures.\nThe product image is provided — do not alter it. Integrate it into a vertical, immersive, mobile-first visual scene.\n\nUse a {{ $json.output.assets[1].backgroundTone }} background with vertical flow — it may include soft light gradients, fabric drapes, or textured wall tones. Place the product on a {{ $json.output.assets[1].surfaceType }} appropriate for an elegant vertical composition.\n\nIntroduce a complementary vertical-friendly accent prop like a {{ $json.output.assets[1].accentProp }} to frame the product visually. Keep it minimal and scroll-worthy.\n\nApply {{ $json.output.assets[1].lighting }} to enhance clarity on mobile screens, and capture the image from a {{ $json.output.assets[1].cameraAngle }} that fits the tall format naturally.\n\nFollow the brand’s identity and styling rules:\n- Tone: {{ $('Edit Fields').item.json.brandTone }}\n- Color palette: {{ $('Edit Fields').item.json.colorTheme }}\n- Typography style (for brand reference only): {{ $('Edit Fields').item.json.typographyStyle }}\n- Product placement rules: {{ $('Edit Fields').item.json.productPlacement }}\n- Composition: {{ $('Edit Fields').item.json.compositionGuidelines }}\n\nFeel free to include overlay text - \"{{ $('AI Agent').item.json.output.assets[1].overlayText }}\". Ensure it is clearly legible, elegantly styled, and placed harmoniously within the composition. \n\nThis should feel refined, light, and scroll-stopping on a premium skincare brand’s Instagram Story.\n"
            },
            {
              "name": "output_format",
              "value": "png"
            },
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "image"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Enter Open AI Token>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d9de69b3-d101-4dbe-a0e7-e7a1da622ca9",
      "name": "Ad Creative Generator",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        560
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "model",
              "value": "gpt-image-1"
            },
            {
              "name": "prompt",
              "value": "=Create a square 1:1 photorealistic **Ad Creative** visual for the skincare product {{ $('On form submission').item.json[\"What is the Product's Name?\"] }} from {{ $('Edit Fields').item.json.brandName }}.\n\nThis is a **scroll-stopping ad** meant for paid social. It should feel **high-impact, dramatic, and visually punchy** — bold lighting, confident angles, and a strong visual hierarchy that stands apart from brand feed content.\nThe product image is provided — do not alter it. Integrate it into a bold and visually striking layout designed for advertising.\n\nUse a {{ $json.output.assets[2].backgroundTone }} background that immediately catches the eye — it may be deep, contrasty, or high-gloss. Place the product on a {{ $json.output.assets[2].surfaceType }} that adds visual punch without distraction.\n\nIntroduce a dynamic accent prop like a {{ $json.output.assets[2].accentProp }} to elevate the scene. The layout should feel purposeful and energetic.\n\nApply {{ $json.output.assets[2].lighting }} for contrast and bold shadows, and shoot from a {{ $json.output.assets[2].cameraAngle }} that adds visual drama and structure.\n\nFollow the brand’s identity and styling rules:\n- Tone: {{ $('Edit Fields').item.json.brandTone }}\n- Color palette: {{ $('Edit Fields').item.json.colorTheme }}\n- Typography style (for brand reference only): {{ $('Edit Fields').item.json.typographyStyle }}\n- Product placement rules: {{ $('Edit Fields').item.json.productPlacement }}\n- Composition: {{ $('Edit Fields').item.json.compositionGuidelines }}\n\nFeel free to include overlay text - \"{{ $('AI Agent').item.json.output.assets[2].overlayText }}\". Ensure it is clearly legible, elegantly styled, and placed harmoniously within the composition. \n\nThis should stop the scroll and feel luxurious, modern, and ad-ready while staying true to the brand.\n"
            },
            {
              "name": "output_format",
              "value": "png"
            },
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "image"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Enter Open AI Token>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c08f93ba-b2dd-47bf-81f5-bf21f15cdf92",
      "name": "Upload file2",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        400,
        560
      ],
      "parameters": {
        "name": "Testimonial",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Create folder').item.json.id }}"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "96Uwdg9MpnQIjuJK",
          "name": "Priyank.singh@bizwitmarketing"
        }
      },
      "typeVersion": 3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d2a2a57c-3c79-41d9-859d-e8dfb71319f8",
  "connections": {
    "Switch": {
      "main": [
        [
          {
            "node": "Instagram Post Generator",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Instagram Story Generator",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Ad Creative Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Create folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create folder": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File1": {
      "main": [
        [
          {
            "node": "Upload file1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File4": {
      "main": [
        [
          {
            "node": "Upload file2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ad Creative Generator": {
      "main": [
        [
          {
            "node": "Convert to File4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Instagram Post Generator": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Instagram Story Generator": {
      "main": [
        [
          {
            "node": "Convert to File1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
STATISTICS
Views
14
Downloads
1
Nodes17
CREDENTIALS
  • Google Drive O Auth2 Api
  • Google Drive API
  • Open Ai Api
  • OpenAI API Key