{
  "name": "UGC_VIDEO",
  "nodes": [
    {
      "parameters": {
        "resource": "image",
        "operation": "analyze",
        "modelId": {
          "__rl": true,
          "value": "chatgpt-4o-latest",
          "mode": "list",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "text": "=**// ROLE & GOAL //**\nYou are an expert Casting Director and Consumer Psychologist. Your entire focus is on understanding people. Your sole task is to analyze the product in the provided image and generate a single, highly-detailed profile of the ideal person to promote it in a User-Generated Content (UGC) ad.\n\nThe final output must ONLY be a description of this person. Do NOT create an ad script, ad concepts, or hooks. Your deliverable is a rich character profile that makes this person feel real, believable, and perfectly suited to be a trusted advocate for the product.\n\n**// INPUT //**\n\nProduct Name: `{{ $node['extract_webhook_data'].json['Product Name'] }}`\n\n**// REQUIRED OUTPUT STRUCTURE //**\nPlease generate the persona profile using the following five-part structure. Be as descriptive and specific as possible within each section.\n\n**I. Core Identity**\n* **Name:**\n* **Age:** (Provide a specific age, not a range)\n* **Sex/Gender:**\n* **Location:** (e.g., \"A trendy suburb of a major tech city like Austin,\" \"A small, artsy town in the Pacific Northwest\")\n* **Occupation:** (Be specific. e.g., \"Pediatric Nurse,\" \"Freelance Graphic Designer,\" \"High School Chemistry Teacher,\" \"Manages a local coffee shop\")\n\n**II. Physical Appearance & Personal Style (The \"Look\")**\n* **General Appearance:** Describe their face, build, and overall physical presence. What is the first impression they give off?\n* **Hair:** Color, style, and typical state (e.g., \"Effortless, shoulder-length blonde hair, often tied back in a messy bun,\" \"A sharp, well-maintained short haircut\").\n* **Clothing Aesthetic:** What is their go-to style? Use descriptive labels. (e.g., \"Comfort-first athleisure,\" \"Curated vintage and thrifted pieces,\" \"Modern minimalist with neutral tones,\" \"Practical workwear like Carhartt and denim\").\n* **Signature Details:** Are there any small, defining features? (e.g., \"Always wears a simple gold necklace,\" \"Has a friendly sprinkle of freckles across their nose,\" \"Wears distinctive, thick-rimmed glasses\").\n\n**III. Personality & Communication (The \"Vibe\")**\n* **Key Personality Traits:** List 5-7 core adjectives that define them (e.g., Pragmatic, witty, nurturing, resourceful, slightly introverted, highly observant).\n* **Demeanor & Energy Level:** How do they carry themselves and interact with the world? (e.g., \"Calm and deliberate; they think before they speak,\" \"High-energy and bubbly, but not in an annoying way,\" \"Down-to-earth and very approachable\").\n* **Communication Style:** How do they talk? (e.g., \"Speaks clearly and concisely, like a trusted expert,\" \"Tells stories with a dry sense of humor,\" \"Talks like a close friend giving you honest advice, uses 'you guys' a lot\").\n\n**IV. Lifestyle & Worldview (The \"Context\")**\n* **Hobbies & Interests:** What do they do in their free time? (e.g., \"Listens to true-crime podcasts, tends to an impressive collection of houseplants, weekend hiking\").\n* **Values & Priorities:** What is most important to them in life? (e.g., \"Values efficiency and finding 'the best way' to do things,\" \"Prioritizes work-life balance and mental well-being,\" \"Believes in buying fewer, higher-quality items\").\n* **Daily Frustrations / Pain Points:** What are the small, recurring annoyances in their life? (This should subtly connect to the product's category without mentioning the product itself). (e.g., \"Hates feeling disorganized,\" \"Is always looking for ways to save 10 minutes in their morning routine,\" \"Gets overwhelmed by clutter\").\n* **Home Environment:** What does their personal space look like? (e.g., \"Clean, bright, and organized with IKEA and West Elm furniture,\" \"Cozy, a bit cluttered, with lots of books and warm lighting\").\n\n**V. The \"Why\": Persona Justification**\n* **Core Credibility:** In one or two sentences, explain the single most important reason why an audience would instantly trust *this specific person's* opinion on this product. (e.g., \"As a busy nurse, her recommendation for anything related to convenience and self-care feels earned and authentic,\" or \"His obsession with product design and efficiency makes him a credible source for any gadget he endorses.\")",
        "inputType": "base64",
        "options": {}
      },
      "name": "analyze_product",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        688,
        -448
      ],
      "typeVersion": 1.8,
      "id": "b623f0f4-85df-4997-a5b5-68e4f82a00cb",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "796c02ea-66be-484c-a333-be4fffbe17db",
              "name": "prompt",
              "value": "={{ $json.content }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "name": "set_model_details",
      "type": "n8n-nodes-base.set",
      "position": [
        976,
        -448
      ],
      "typeVersion": 3.4,
      "id": "08361918-2dd8-40e7-bbf2-e24a75eba881"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "2c2bbb98-c6e4-4339-971a-2d6487f6bd29",
              "name": "prompt",
              "value": "=Master Prompt: Raw 12-Second UGC Video Scripts (Enhanced Edition)\nYou are an expert at creating authentic UGC video scripts that look like someone just grabbed their iPhone and hit record\u2014shaky hands, natural movement, zero production value. No text overlays. No polish. Just real.\nYour goal: Create exactly 12-second video scripts with frame-by-frame detail that feel like genuine content someone would post, not manufactured ads.\n\nYou will be provided with an image that includes a reference to the product, but the entire ad should be a UGC-style (User Generated Content) video that gets created and scripted for. The first frame is going to be just the product, but you need to change away and then go into the rest of the video.\n\nThe Raw iPhone Aesthetic\nWhat we WANT:\n\nHandheld shakiness and natural camera movement\nPhone shifting as they talk/gesture with their hands\nCamera readjusting mid-video (zooming in closer, tilting, refocusing)\nOne-handed filming while using product with the other hand\nNatural bobbing/swaying as they move or talk\nFilming wherever they actually are (messy room, car, bathroom mirror, kitchen counter)\nReal lighting (window light, lamp, overhead\u2014not \"good\" lighting)\nAuthentic imperfections (finger briefly covering lens, focus hunting, unexpected background moments)\n\nWhat we AVOID:\n\nTripods or stable surfaces (no locked-down shots)\nText overlays or on-screen graphics (NONE\u2014let the talking do the work)\nPerfect framing that stays consistent\nProfessional transitions or editing\nClean, styled backgrounds\nMultiple takes stitched together feeling\nScripted-sounding delivery or brand speak\n\n\nThe 12-Second Structure (Loose)\n0-2 seconds:\nStart talking/showing immediately\u2014like mid-conversation\nCamera might still be adjusting as they find the angle\nHook them with a relatable moment or immediate product reveal\n2-9 seconds:\nShow the product in action while continuing to talk naturally\nCamera might move closer, pull back, or shift as they demonstrate\nThis is where the main demo/benefit happens organically\n9-12 seconds:\nWrap up thought while product is still visible\nNatural ending\u2014could trail off, quick recommendation, or casual sign-off\nDialogue must finish by the 12-second mark\n\nCritical: NO Invented Details\n\nOnly use the exact Product Name provided\nOnly reference what's visible in the Product Image\nOnly use the Creator Profile details given\nDo not create slogans, brand messaging, or fake details\nStay true to what the product actually does based on the image\n\n\nYour Inputs\nProduct Image: First image in this conversation\nCreator Profile:\n{{ $node['set_model_details'].json.prompt }}\nProduct Name:\n{{ $('extract_webhook_data').item.json.productName }}\n\nOutput: 3 Natural Scripts\nThree different authentic approaches:\n\nExcited Discovery - Just found it, have to share\nCasual Recommendation - Talking to camera like a friend\nIn-the-Moment Demo - Showing while using it\n\n\nFormat for each script:\nSCRIPT [#]: [Simple angle in 3-5 words]\nThe energy: [One specific line - excited? Chill? Matter-of-fact? Caffeinated? Half-awake?]\nWhat they say to camera (with timestamps):\n[0:00-0:02] \"[Opening line - 3-5 words, mid-thought energy]\"\n[0:02-0:09] \"[Main talking section - 20-25 words total. Include natural speech patterns like 'like,' 'literally,' 'I don't know,' pauses, self-corrections. Sound conversational, not rehearsed.]\"\n[0:09-0:12] \"[Closing thought - 3-5 words. Must complete by 12-second mark. Can trail off naturally.]\"\nShot-by-Shot Breakdown:\nSECOND 0-1:\n\nCamera position: [Ex: \"Phone held at chest height, slight downward angle, wobbling as they walk\"]\nCamera movement: [Ex: \"Shaky, moving left as they gesture with free hand\"]\nWhat's in frame: [Ex: \"Their face fills 60% of frame, messy bedroom visible behind, lamp in background\"]\nLighting: [Ex: \"Natural window light from right side, creating slight shadow on left cheek\"]\nCreator action: [Ex: \"Walking into frame mid-sentence, looking slightly off-camera then at lens\"]\nProduct visibility: [Ex: \"Product not visible yet / Product visible in left hand, partially out of frame\"]\nAudio cue: [The actual first words being said]\n\nSECOND 1-2:\n\nCamera position: [Ex: \"Still chest height, now more centered as they stop moving\"]\nCamera movement: [Ex: \"Steadying slightly but still has natural hand shake\"]\nWhat's in frame: [Ex: \"Face and shoulders visible, background shows unmade bed\"]\nCreator action: [Ex: \"Reaching off-screen to grab product, eyes following their hand\"]\nProduct visibility: [Ex: \"Product entering frame from bottom right\"]\nAudio cue: [What they're saying during this second]\n\nSECOND 2-3:\n\nCamera position: [Ex: \"Pulling back slightly to waist-level to show more\"]\nCamera movement: [Ex: \"Slight tilt downward, adjusting focus\"]\nWhat's in frame: [Ex: \"Upper body now visible, product held at chest level\"]\nFocus point: [Ex: \"Camera refocusing from face to product\"]\nCreator action: [Ex: \"Holding product up with both hands (phone now propped/gripped awkwardly)\"]\nProduct visibility: [Ex: \"Product front-facing, label clearly visible, natural hand positioning\"]\nAudio cue: [What they're saying]\n\nSECOND 3-4:\n\nCamera position: [Ex: \"Zooming in slightly (digital zoom), frame getting tighter\"]\nCamera movement: [Ex: \"Subtle shake as they demonstrate with one hand\"]\nWhat's in frame: [Ex: \"Product and hands take up 70% of frame, face still partially visible top of frame\"]\nCreator action: [Ex: \"Opening product cap with thumb while talking\"]\nProduct interaction: [Ex: \"Twisting cap, showing interior/applicator\"]\nAudio cue: [What they're saying]\n\nSECOND 4-5:\n\nCamera position: [Ex: \"Shifting angle right as they move product\"]\nCamera movement: [Ex: \"Following their hand movement, losing focus briefly\"]\nWhat's in frame: [Ex: \"Closer shot of product in use, background blurred\"]\nCreator action: [Ex: \"Applying product to face/hand/surface naturally\"]\nProduct interaction: [Ex: \"Dispensing product, showing texture/consistency\"]\nPhysical details: [Ex: \"Product texture visible, their expression reacting to feel/smell\"]\nAudio cue: [What they're saying, might include natural pause or 'um']\n\nSECOND 5-6:\n\nCamera position: [Ex: \"Pulling back to shoulder height\"]\nCamera movement: [Ex: \"Readjusting frame, slight pan left\"]\nWhat's in frame: [Ex: \"Face and product both visible, more balanced composition\"]\nCreator action: [Ex: \"Rubbing product in, looking at camera while demonstrating\"]\nProduct visibility: [Ex: \"Product still in frame on counter/hand, showing before/after\"]\nAudio cue: [What they're saying]\n\nSECOND 6-7:\n\nCamera position: [Ex: \"Stable at eye level (relatively)\"]\nCamera movement: [Ex: \"Natural sway as they shift weight, still handheld\"]\nWhat's in frame: [Ex: \"Mostly face, product visible in periphery\"]\nCreator action: [Ex: \"Touching face/area where product applied, showing result\"]\nBackground activity: [Ex: \"Pet walking by / roommate door visible opening / car passing by window\"]\nAudio cue: [What they're saying]\n\nSECOND 7-8:\n\nCamera position: [Ex: \"Tilting down to show product placement\"]\nCamera movement: [Ex: \"Quick pan down then back up to face\"]\nWhat's in frame: [Ex: \"Product on counter/vanity, their hand reaching for it\"]\nCreator action: [Ex: \"Holding product up one more time, pointing to specific feature\"]\nProduct highlight: [Ex: \"Finger tapping on label/size/specific element\"]\nAudio cue: [What they're saying]\n\nSECOND 8-9:\n\nCamera position: [Ex: \"Back to face level, slightly closer than before\"]\nCamera movement: [Ex: \"Wobbling as they emphasize point with hand gesture\"]\nWhat's in frame: [Ex: \"Face takes up most of frame, product visible bottom right\"]\nCreator action: [Ex: \"Nodding while talking, genuine expression\"]\nProduct visibility: [Ex: \"Product remains in shot naturally, not forced\"]\nAudio cue: [What they're saying, building to conclusion]\n\nSECOND 9-10:\n\nCamera position: [Ex: \"Pulling back to show full setup\"]\nCamera movement: [Ex: \"Slight drop in angle as they relax grip\"]\nWhat's in frame: [Ex: \"Upper body and product together, casual end stance\"]\nCreator action: [Ex: \"Shrugging, smiling, casual body language\"]\nProduct visibility: [Ex: \"Product sitting on counter/still in hand casually\"]\nAudio cue: [Final words beginning]\n\nSECOND 10-11:\n\nCamera position: [Ex: \"Steady-ish at chest height\"]\nCamera movement: [Ex: \"Minimal movement, winding down\"]\nWhat's in frame: [Ex: \"Face and product both clearly visible, relaxed framing\"]\nCreator action: [Ex: \"Looking at product then back at camera, finishing thought\"]\nProduct visibility: [Ex: \"Last clear view of product and packaging\"]\nAudio cue: [Final words]\n\nSECOND 11-12:\n\nCamera position: [Ex: \"Same level, might drift slightly\"]\nCamera movement: [Ex: \"Natural settling, possibly starting to lower phone\"]\nWhat's in frame: [Ex: \"Face, partial product view, casual ending\"]\nCreator action: [Ex: \"Small wave / half-smile / looking away naturally\"]\nHow it ends: [Ex: \"Cuts off mid-movement\" / \"Fade as they lower phone\" / \"Abrupt stop\"]\nFinal audio: [Last word/sound trails off naturally]\n\nOverall Technical Details:\n\nPhone orientation: [Vertical/horizontal?]\nFilming method: [Selfie mode facing them? Back camera in mirror? Someone else holding phone? Propped on stack of books?]\nDominant hand: [Which hand holds phone vs. product?]\nLocation specifics: [What room? Time of day based on lighting? Any notable background elements?]\nAudio environment: [Echo from bathroom? Quiet bedroom? Background TV/music? Street noise?]\n\n\nEnhanced Authenticity Guidelines\nVerbal Authenticity:\n\nUse filler words: \"like,\" \"literally,\" \"so,\" \"I mean,\" \"honestly\"\nInclude natural pauses: \"It's just... really good\"\nSelf-corrections: \"It's really\u2014well actually it's more like...\"\nConversational fragments: \"Yeah so this thing...\"\nRegional speech patterns if relevant to creator profile\n\nVisual Authenticity Markers:\n\nFinger briefly covering part of lens\nCamera focus hunting between face and product\nSlight overexposure from window light\nBackground \"real life\" moments (pet, person, notification pop-up)\nNatural product handling (not perfect grip, repositioning)\n\nTiming Authenticity:\n\nSlight rushing at the end to fit in last thought\nNatural breath pauses\nTalking speed varies (faster when excited, slower when showing detail)\nMight start sentence at 11 seconds that gets cut at 12\n\n\nRemember: Every second matters. The more specific the shot breakdown, the more authentic the final video feels. If a detail seems too polished, make it messier. No text overlays ever. All dialogue must finish by the 12-second mark (can trail off naturally).",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "name": "set_build_video_prompts",
      "type": "n8n-nodes-base.set",
      "position": [
        -96,
        -224
      ],
      "typeVersion": 3.4,
      "id": "8fec68c6-99b4-44d6-9bf8-93be677f98cf"
    },
    {
      "parameters": {
        "operation": "binaryToPropery",
        "options": {}
      },
      "name": "convert_product_to_base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        144,
        -448
      ],
      "typeVersion": 1,
      "id": "eafdc23e-f51d-471d-a016-8a248e40e8a3"
    },
    {
      "parameters": {
        "operation": "toBinary",
        "sourceProperty": "data",
        "options": {}
      },
      "name": "convert_product_to_image",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        400,
        -448
      ],
      "typeVersion": 1.1,
      "id": "de32811a-dcf1-4193-be59-6a39a76742d0"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=You will be given text that contains many separate prompts / scripts for a UGC short form video. I want you to extract these into an array of strings where each item extracted is the FULL prompt/script. The prompts should remain exactly as they were provided.\n\n---\n{{ $json.candidates[0].content.parts[0].text }}",
        "hasOutputParser": true,
        "batching": {}
      },
      "name": "extract_prompts",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        560,
        -224
      ],
      "typeVersion": 1.7,
      "id": "8703656b-5a6e-4a3a-bb28-3f476d68d2d3"
    },
    {
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Extracted Prompts\",\n  \"description\": \"A schema designed to hold a list of individual prompts that have been extracted from a larger body of text. Use this to format the extracted prompts.\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"prompts\": {\n      \"type\": \"array\",\n      \"description\": \"An array where each element is a single, distinct prompt string that was extracted from the user's input.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"description\": \"A single prompt statement.\"\n      }\n    }\n  },\n  \"required\": [\n    \"prompts\"\n  ]\n}",
        "autoFix": true
      },
      "name": "prompts-parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        560,
        0
      ],
      "typeVersion": 1.3,
      "id": "f1d014c6-965a-41c3-98b2-fd2c40ac0dfb"
    },
    {
      "parameters": {
        "fieldToSplitOut": "output.prompts",
        "options": {
          "destinationFieldName": "prompt"
        }
      },
      "name": "split_prompts",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        976,
        -224
      ],
      "typeVersion": 1,
      "id": "e3ff943a-4bd9-4265-b40e-bb78cabba835"
    },
    {
      "parameters": {
        "options": {
          "reset": false
        }
      },
      "name": "iterate_prompts",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -96,
        0
      ],
      "typeVersion": 3,
      "id": "41817d22-8164-4c3b-bafd-33efcea60961"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.openai.com/v1/videos",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "openAiApi",
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "={{ $node['iterate_prompts'].json.prompt }}"
            },
            {
              "name": "model",
              "value": "sora-2"
            },
            {
              "name": "seconds",
              "value": "12"
            },
            {
              "name": "size",
              "value": "720x1280"
            },
            {
              "parameterType": "formBinaryData",
              "name": "input_reference",
              "inputDataFieldName": "data"
            }
          ]
        },
        "options": {}
      },
      "name": "generate_video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -96,
        400
      ],
      "typeVersion": 4.2,
      "id": "0cf4c002-4185-4e8a-b69a-94d0303d6e09",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.openai.com/v1/videos/{{ $json.id }}",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "openAiApi",
        "options": {}
      },
      "name": "get_video_status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        400,
        400
      ],
      "typeVersion": 4.2,
      "id": "4e4e04cc-c36c-4aa1-ab53-27462558ea32",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.openai.com/v1/videos/{{ $json.id }}/content",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "openAiApi",
        "options": {}
      },
      "name": "get_video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        816,
        368
      ],
      "typeVersion": 4.2,
      "id": "d9d0af20-cb0c-4981-a4fc-764a9d76ce7d",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "6ce95513-f1dd-4105-ab55-de5d073cb0c3",
              "leftValue": "={{ $json.status }}",
              "rightValue": "completed",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "name": "check_status",
      "type": "n8n-nodes-base.if",
      "position": [
        624,
        352
      ],
      "typeVersion": 2.2,
      "id": "83bf9e6f-16f3-4677-a421-b749430baf84"
    },
    {
      "parameters": {
        "amount": 15
      },
      "name": "delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        144,
        400
      ],
      "typeVersion": 1.1,
      "id": "2bbf89d1-fbd8-4d42-a584-fa591269c434"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"contents\": [{\n    \"parts\": [\n      { \"text\": \"Take the design, layout, and style of [Image A] exactly as it is, and seamlessly adapt it into the aspect ratio of [Image B]. Maintain all the visual elements, proportions, and composition of [Image A], but expand, crop, or extend the background naturally so that the final image perfectly matches the aspect ratio and dimensions of [Image B]. Do not distort or stretch any elements\u2014use intelligent background extension, framing, or subtle composition adjustments to preserve the original design integrity while filling the new canvas size.\" },  \n      {\n        \"inline_data\": {\n          \"mime_type\": \"image/png\",\n          \"data\": \"{{ $node['convert_product_to_base64'].json.data }}\"\n        }\n      },\n{\n        \"inline_data\": {\n          \"mime_type\": \"image/png\",\n          \"data\": \"iVBORw0KGgoAAAANSUhEUgAAAkAAAAQACAIAAACGcHE3AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAExGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI1LTEwLTA3PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjBmODViMDkwLTNmYjgtNGEzYi1iMjlmLTdjN2Y4MzJjNzY0MDwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5VbnRpdGxlZCAoNTc2IHggMTAyNCBweCkgLSAxPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkx1Y2FzIFd5bGFuZDwvcGRmOkF1dGhvcj4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPkNhbnZhIChSZW5kZXJlcikgZG9jPURBRzFIaVRBMFJRIHVzZXI9VUFGdmota0ZsRTQgYnJhbmQ9QkFGdmp5M2RONVEgdGVtcGxhdGU9PC94bXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0ncic/PvToRdYAAA8ZSURBVHic7NUxDQAgEMBAwL/in/DAQprcKejWPTMLAGrO7wAAeGFgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkGRgACQZGABJBgZAkoEBkHQBAAD//+zVAQkAAACAoP+v2xHoCQUGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAQAA///s1QEJAAAAgKD/r9sR6AkFBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwEAAP//7NUBCQAAAICg/6/bEegJBQbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWAoAAP//7NUBCQAAAICg/6/bEegJBQbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsBAAD//+3VAQkAAACAoP+v2xHoCQUGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAgNgSWAALAkMgCWBAbAkMACWBAbAksAAWBIYAEsCA2BJYAAsCQyAJYEBsCQwAJYEBsCSwABYEhgASwIDYElgACwJDIAlgQGwJDAAlgQGwJLAAFgSGABLAbB5Cu46XMHWAAAAAElFTkSuQmCC\"\n        }\n      }\n    ]\n  }]\n}",
        "options": {}
      },
      "name": "generate_frame",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        144
      ],
      "typeVersion": 4.2,
      "id": "d7e351c8-5592-4801-abeb-264c02df68e9",
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "524da01b-f8b9-4c2c-9e28-319455903e4d",
              "name": "=result",
              "value": "={{ $json.candidates[0].content.parts.filter(item => item.inlineData).first().inlineData.data }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "name": "set_frame_result",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        144
      ],
      "typeVersion": 3.4,
      "id": "128971ba-4290-45b7-9113-0e8fdbd80f09"
    },
    {
      "parameters": {
        "operation": "toBinary",
        "sourceProperty": "result",
        "options": {}
      },
      "name": "get_frame_image",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        688,
        144
      ],
      "typeVersion": 1.1,
      "id": "6cd611f1-5d80-41f0-aa92-959697cc40e7"
    },
    {
      "parameters": {
        "operation": "resize",
        "width": 720,
        "height": 1280,
        "resizeOption": "ignoreAspectRatio",
        "options": {}
      },
      "name": "resize_image",
      "type": "n8n-nodes-base.editImage",
      "position": [
        976,
        144
      ],
      "typeVersion": 1,
      "id": "4696b681-8a0d-4824-b7c1-9e1e5811dcaa"
    },
    {
      "parameters": {
        "modelName": "models/gemini-2.5-pro",
        "options": {}
      },
      "name": "gemini-2.5-pro",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        464,
        -80
      ],
      "typeVersion": 1,
      "id": "b4496101-2b9c-4374-9b1a-a33d25ad415d",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"contents\": [{\n    \"parts\": [\n      { \"text\": {{ JSON.stringify($json.prompt) }} },\n      {\n        \"inline_data\": {\n          \"mime_type\": \"image/png\",\n          \"data\": \"{{ $node['convert_product_to_base64'].json.data }}\"\n        }\n      }\n    ]\n  }]\n}",
        "options": {}
      },
      "name": "generate_ad_prompts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        -224
      ],
      "typeVersion": 4.2,
      "id": "0147d2bf-5cef-4c82-a0e4-89cb697de375",
      "retryOnFail": true,
      "maxTries": 5,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "content": "## Sora 2 UGC E-Ticaret Video \u00dcreticisi\n\n1. \u0130\u015f ak\u0131\u015f\u0131n\u0131 ba\u015flatmak i\u00e7in basit bir \u00fcr\u00fcn foto\u011fraf\u0131 ve \u00fcr\u00fcn ad\u0131n\u0131 y\u00fckleyerek tetikleyin.  \n2. OpenAI\u2019nin g\u00f6rsel API\u2019si, g\u00f6rseli analiz eder ve bu e-ticaret \u00fcr\u00fcn\u00fcn\u00fc tan\u0131tacak ideal influencer i\u00e7in bir profil olu\u015fturur.  \n3. Ard\u0131ndan sistem, Gemini 2.5 Pro\u2019yu kullanarak \u00fcr\u00fcn foto\u011fraf\u0131 ve influencer profilinden yararlan\u0131p birden fazla farkl\u0131 UGC reklam senaryosu yazar.  \n4. Her bir senaryo olu\u015fturulduktan sonra sistem, bunlar\u0131 tek tek ay\u0131rarak Sora 2\u2019nin API\u2019si \u00fczerinden s\u0131rayla UGC reklam videolar\u0131n\u0131 \u00fcretmeye ba\u015flar.  \n",
        "height": 1632,
        "width": 1360,
        "color": 4
      },
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -928
      ],
      "typeVersion": 1,
      "id": "69428270-eabd-4da1-b28c-64814622370d"
    },
    {
      "parameters": {
        "content": "## Genel Bak\u0131\u015f ve Kurulum\n\nBu n8n \u015fablonu, e-ticaret \u00fcr\u00fcnleri i\u00e7in yapay zeka kullanarak otomatik olarak \u00f6zg\u00fcn Kullan\u0131c\u0131 Taraf\u0131ndan \u00dcretilen \u0130\u00e7erik (UGC) tarz\u0131nda pazarlama videolar\u0131 olu\u015fturmay\u0131 g\u00f6sterir. Sadece bir \u00fcr\u00fcn g\u00f6rseli y\u00fcklemeniz yeterlidir; i\u015f ak\u0131\u015f\u0131, senaryolar, karakterler ve video \u00fcretimi dahil olmak \u00fczere birden fazla ger\u00e7ek\u00e7i influencer tarz\u0131 video reklam olu\u015fturur.\n\n## Kullan\u0131m Alanlar\u0131\n* A/B testleri i\u00e7in birden fazla UGC video varyasyonu olu\u015fturma  \n* Sosyal medya i\u00e7in \u00f6zg\u00fcn g\u00f6r\u00fcn\u00fcml\u00fc \u00fcr\u00fcn tan\u0131t\u0131m videolar\u0131 haz\u0131rlama  \n* \u0130\u00e7erik \u00fcreticisi kiralamadan influencer tarz\u0131 i\u00e7erikler \u00fcretme  \n* Yeni \u00fcr\u00fcnler i\u00e7in farkl\u0131 pazarlama a\u00e7\u0131lar\u0131n\u0131 h\u0131zl\u0131ca test etme  \n* E-ticaret katalo\u011fu i\u00e7in video i\u00e7erik \u00fcretimini \u00f6l\u00e7eklendirme  \n\n## Bilinmesi Gerekenler\n* Sora 2 video \u00fcretimi, 12 saniyelik bir video i\u00e7in yakla\u015f\u0131k 2-3 dakika s\u00fcrer  \n* Her video \u00fcretimi yakla\u015f\u0131k 0,50\u20131,00 USD maliyetindedir (g\u00fcncel fiyatlar i\u00e7in OpenAI \u00fccretlendirmesini kontrol edin)  \n* \u0130\u015f ak\u0131\u015f\u0131, tek bir \u00fcr\u00fcn g\u00f6rselinden birden fazla video varyasyonu \u00fcretir  \n* Videolar tamamland\u0131ktan sonra otomatik olarak Google Drive\u2019a y\u00fcklenir  \n* \u00dcretilen videolar sosyal medya i\u00e7in optimize edilmi\u015f 720x1280 (9:16) format\u0131ndad\u0131r  \n\n## Nas\u0131l \u00c7al\u0131\u015f\u0131r\n1. **\u00dcr\u00fcn Analizi**: OpenAI\u2019nin g\u00f6rsel API\u2019si, y\u00fcklenen \u00fcr\u00fcn g\u00f6rselini analiz ederek \u00f6zelliklerini, faydalar\u0131n\u0131 ve hedef kitlesini anlar  \n2. **Persona Olu\u015fturma**: Sistem, bu \u00fcr\u00fcn\u00fc \u00f6zg\u00fcn \u015fekilde tan\u0131tacak ideal influencer/yarat\u0131c\u0131 profiline dair ayr\u0131nt\u0131l\u0131 bir karakter olu\u015fturur  \n3. **Senaryo \u00dcretimi**: Gemini 2.5 Pro, her biri 12 saniyelik olacak \u015fekilde, do\u011fal diyaloglar ve kamera hareketleriyle kare-kare a\u00e7\u0131klamal\u0131 \u00f6zg\u00fcn UGC video senaryolar\u0131 \u00fcretir  \n4. **Kare \u00dcretimi**: Her senaryo i\u00e7in Gemini, \u00fcr\u00fcn g\u00f6rselini UGC esteti\u011fi ve en-boy oran\u0131na uygun \u015fekilde uyarlayan \u00f6zel bir ilk kare olu\u015fturur  \n5. **Video \u00dcretimi**: Sora 2 API, senaryo ve \u00f6zel ilk kareyi referans alarak videoyu \u00fcretir  \n6. **Durum Takibi**: \u0130\u015f ak\u0131\u015f\u0131, video \u00fcretim durumunu tamamlanana kadar her 15 saniyede bir kontrol eder  \n7. **Y\u00fckleme ve Depolama**: Tamamlanan videolar, d\u00fczenli adland\u0131rmayla Google Drive\u2019a otomatik olarak y\u00fcklenir  \n\n## Nas\u0131l Kullan\u0131l\u0131r\n1. Form tetikleyici ba\u011flant\u0131s\u0131na t\u0131klayarak g\u00f6nderim formuna eri\u015fin  \n2. \u00dcr\u00fcn g\u00f6rselinizi y\u00fckleyin (beyaz veya n\u00f6tr arka planl\u0131 temiz g\u00f6rseller en iyi sonucu verir)  \n3. \u00dcr\u00fcn ad\u0131n\u0131 girin  \n4. Formu g\u00f6nderin ve i\u015f ak\u0131\u015f\u0131n\u0131n tamamlanmas\u0131n\u0131 bekleyin  \n5. Olu\u015fturulan UGC videolar\u0131n\u0131z\u0131 belirtilen Google Drive klas\u00f6r\u00fcnde bulun  \n6. Her \u00e7al\u0131\u015ft\u0131rmada test edebilece\u011finiz birden fazla video varyasyonu \u00fcretilir  \n\n## Gereksinimler\n* Video \u00fcretimi ve GPT-4 Vision i\u00e7in **Sora 2 eri\u015fimi olan bir Prototipal** hesab\u0131  \n* Senaryo \u00fcretimi ve g\u00f6rsel uyarlama i\u00e7in **Google Gemini API** hesab\u0131  \n* Video depolama i\u00e7in **Google Drive** hesab\u0131  \n* Video \u00fcretimi i\u00e7in yeterli API kredisi (b\u00fct\u00e7enizi buna g\u00f6re planlay\u0131n)  \n\n## Bu \u0130\u015f Ak\u0131\u015f\u0131n\u0131 \u00d6zelle\u015ftirme\n* **generate_video** d\u00fc\u011f\u00fcm\u00fcndeki **video s\u00fcresini** (\u015fu anda 12 saniye) ayarlay\u0131n  \n* **analyze_product** d\u00fc\u011f\u00fcm\u00fcndeki **persona prompt\u2019unu** de\u011fi\u015ftirerek farkl\u0131 demografik hedef kitleleri se\u00e7in  \n* **set_build_video_prompts** d\u00fc\u011f\u00fcm\u00fcndeki **senaryo tarz\u0131n\u0131** de\u011fi\u015ftirerek farkl\u0131 UGC estetikleri (heyecanl\u0131 ke\u015fif, rahat \u00f6neri vb.) olu\u015fturun  \n* **upload_video** d\u00fc\u011f\u00fcm\u00fcndeki **Google Drive klas\u00f6r\u00fcn\u00fc** de\u011fi\u015ftirerek videolar\u0131 kampanyaya g\u00f6re organize edin  \n* Video d\u00fczenleme, altyaz\u0131 \u00fcretimi veya k\u00fc\u00e7\u00fck resim olu\u015fturma i\u00e7in **ek i\u015flem d\u00fc\u011f\u00fcmleri** ekleyin  \n* **resize_image** d\u00fc\u011f\u00fcm\u00fcndeki **en-boy oran\u0131n\u0131** farkl\u0131 platformlara g\u00f6re de\u011fi\u015ftirin (Instagram ak\u0131\u015f\u0131 i\u00e7in 1:1, YouTube i\u00e7in 16:9 vb.)  \n",
        "height": 1584,
        "width": 560
      },
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -928
      ],
      "typeVersion": 1,
      "id": "2c4d40d5-21e8-4bf6-9c22-fc64c028b52e"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "062fd0b1-2a5f-440a-8791-424117cc7467",
              "name": "productName",
              "value": "={{ $json.body.productName }}",
              "type": "string"
            },
            {
              "id": "82746b29-93f8-4fb4-b604-277e442fc18d",
              "name": "productImageUrl",
              "value": "={{ $json.body.productImageUrl }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "name": "extract_webhook_data",
      "type": "n8n-nodes-base.set",
      "position": [
        112,
        -608
      ],
      "typeVersion": 3.4,
      "id": "a7e1dab3-00d9-4d25-a402-c13687e08e6f"
    },
    {
      "parameters": {
        "url": "={{ $json.productImageUrl }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "name": "download_product_image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        304,
        -608
      ],
      "typeVersion": 4.2,
      "id": "85618224-637a-4221-a314-45787fbe29d5"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "d9f32184-0489-46aa-bbb8-1f287900ab90",
        "responseMode": "lastNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -80,
        -608
      ],
      "id": "f5f84595-0f4e-4abe-b630-a5a37de32533",
      "name": "Webhook",
      "alwaysOutputData": false
    },
    {
      "parameters": {
        "respondWith": "binary",
        "responseDataSource": "set",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        992,
        448
      ],
      "id": "b756cb9a-dd3a-4039-8f2e-f17e97004411",
      "name": "Respond to Webhook",
      "disabled": true
    }
  ],
  "connections": {
    "form_trigger": {
      "main": [
        [
          {
            "node": "convert_product_to_base64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "upload_video": {
      "main": [
        [
          {
            "node": "iterate_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "analyze_product": {
      "main": [
        [
          {
            "node": "set_model_details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set_model_details": {
      "main": [
        [
          {
            "node": "set_build_video_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set_build_video_prompts": {
      "main": [
        [
          {
            "node": "generate_ad_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "convert_product_to_base64": {
      "main": [
        [
          {
            "node": "convert_product_to_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "convert_product_to_image": {
      "main": [
        [
          {
            "node": "analyze_product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "extract_prompts": {
      "main": [
        [
          {
            "node": "split_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "prompts-parser": {
      "ai_outputParser": [
        [
          {
            "node": "extract_prompts",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "split_prompts": {
      "main": [
        [
          {
            "node": "iterate_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "iterate_prompts": {
      "main": [
        [],
        [
          {
            "node": "generate_frame",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "generate_video": {
      "main": [
        [
          {
            "node": "delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get_video_status": {
      "main": [
        [
          {
            "node": "check_status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get_video": {
      "main": [
        []
      ]
    },
    "check_status": {
      "main": [
        [
          {
            "node": "get_video",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "delay": {
      "main": [
        [
          {
            "node": "get_video_status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "generate_frame": {
      "main": [
        [
          {
            "node": "set_frame_result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set_frame_result": {
      "main": [
        [
          {
            "node": "get_frame_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get_frame_image": {
      "main": [
        [
          {
            "node": "resize_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "resize_image": {
      "main": [
        [
          {
            "node": "generate_video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "gemini-2.5-pro": {
      "ai_languageModel": [
        [
          {
            "node": "extract_prompts",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "prompts-parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "generate_ad_prompts": {
      "main": [
        [
          {
            "node": "extract_prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "extract_webhook_data": {
      "main": [
        [
          {
            "node": "download_product_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "download_product_image": {
      "main": [
        [
          {
            "node": "convert_product_to_base64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "extract_webhook_data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "085f1f6a-c8a0-43c0-90bf-5049f2591082",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "hphNbEIWeCNGKtUQ",
  "tags": []
}