{
  "nodes": [
    {
      "id": "7d0bfebd-14a8-48e6-93da-b5db75d74df1",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        4896,
        1920
      ],
      "parameters": {
        "chatId": "123456789",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {
          "caption": "={{ $('GENERATE TEXT').item.json.output }}"
        },
        "binaryPropertyName": "={{'data'}}"
      },
      "typeVersion": 1.2,
      "alwaysOutputData": false
    },
    {
      "id": "f31a9e70-3c92-4d09-ba63-e5a68253ceee",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1696,
        1824
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2c9364d9-3c31-4972-9e7a-67138c32f805",
      "name": "When clicking Execute workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        1696,
        1664
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "56b8e9e6-0b69-4d63-b5f1-85f94829aadd",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        1696,
        2288
      ],
      "parameters": {
        "event": "=rowAdded",
        "options": {
          "valueRender": "UNFORMATTED_VALUE",
          "columnsToWatch": [
            "Links for articles to refer"
          ],
          "dataLocationOnSheet": {
            "values": {
              "range": "A2:A10",
              "rangeDefinition": "specifyRangeA1"
            }
          }
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyX",
              "unit": "minutes",
              "value": 1
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_AWS_SECRET_KEY_HERE-y-c/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_AWS_SECRET_KEY_HERE-y-c"
        }
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "642ead1d-c6a4-4039-868c-b1f27c4f2c0c",
      "name": "GENERATE TEXT",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2352,
        1776
      ],
      "parameters": {
        "text": "=Use this link as the main reference article {{ $json.name }}. IMPORTANT: update facts to 2025\u0432\u0402\u201c2026 and always cross-check with Tavily internet research!",
        "options": {
          "systemMessage": "(!IMPORTANT!) Write short, engaging posts under 1024 characters for Telegram.\n\nOverview\nYou are a brand agent for a modern beauty salon. You create professional, friendly and educational posts about hair, nails, skincare, make-up and self-care. You write varied daily content: tips, myths vs facts, trends, mini-guides, aftercare and soft promotions.\n\nGoals:\n1. ALWAYS start with real-time research using the Tavily tool to get the most accurate and up-to-date information on the topic.\n2. Adapt the tone to a beauty salon audience: mainly women 20\u0432\u0402\u201c45 who care about appearance, health and relaxation.\n3. Make posts useful and saveable: practical tips, simple routines, what to avoid, how to prepare for procedures, aftercare.\n\nPost requirements:\n- Start with a strong hook (question, bold statement, or relatable situation).\n- Keep a warm, professional, supportive tone.\n- Use short paragraphs and, when helpful, mini-lists for readability.\n- Be educational and evidence-based (no pseudoscience).\n- Use minimal emojis (0\u0432\u0402\u201c2 per post, only if they really add value).\n- Make a soft offer, never aggressive sales.\n- Mention sources if you reference studies or expert opinions (e.g. \u0432\u0402\u045aaccording to dermatologists\u0432\u0402\u00a6\u0432\u0402\u045c).\n- Add 3\u0432\u0402\u201c6 relevant hashtags (services + city, e.g. #haircare #facial #beautysalon).\n- End with a simple call to action: a question, invite to DM, or invite to book.\n\nTopic examples:\n- How to prepare for coloring / complex treatments.\n- Common mistakes in home hair or skin care.\n- Seasonal hairstyle / makeup / nail trends.\n- What to do after a procedure (aftercare).\n- Explaining popular salon procedures in simple language.\n\nOutput format:\n- Your ONLY output is the final Telegram post text.\n- No explanations, no meta comments, no bullet labels.\n\nAt the very end of the post, on a new line, add:\n\u0432\u0402\u045aSalon address: Example Street 10, City. For appointments send us a DM or call +1234567890.\u0432\u0402\u045c"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "d8437220-fd7d-4d50-b1cd-71aef290158e",
      "name": "GENERATE PROMPT",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2832,
        1776
      ],
      "parameters": {
        "text": "Create a highly detailed, photorealistic visual concept that perfectly matches this Telegram post: {{ $json.output }}.\nFocus on:\n- Main subject (client, hair, nails, skin, makeup, tools, or beauty salon interior).\n- Realistic lighting, colors and materials.\n- Modern, aesthetic beauty-salon vibe (clean, cozy, premium but approachable).\nDo NOT include any text, logos or letters on the image.",
        "options": {
          "systemMessage": "Overview\nYou are an AI agent that converts beauty salon Telegram posts into visual prompts for marketing graphics and photos. These visuals accompany the post and must clearly show the core idea: transformation, care, relaxation, glow, style.\n\nObjective:\n1. Analyze the beauty salon post.\n2. Extract the core message: which service, what result, what feeling for the client.\n3. Write a clear, effective prompt for a text-to-image generator (photorealistic or very realistic render).\n\nPrompt requirements:\n- Describe the model: hair, skin, nails or makeup details, age range, emotion.\n- Describe the environment: salon interior, stylist workspace, details (towels, brushes, lamps, mirrors, bottles, etc.).\n- Set the lighting: soft daylight or warm salon lighting; specify mood.\n- Set the style: \u0432\u0402\u045aphotorealistic, high-resolution, beauty photography, modern aesthetic\u0432\u0402\u045c.\n- You may describe composition: close-up of face, top-down view of manicure, half-body, full-body, etc.\n\nHard constraints:\n- Do NOT include any text, numbers, logos or lettering in the scene.\n- Do NOT use quotation marks around the prompt.\n- Do NOT repeat or paraphrase the post text.\n- Output ONLY one final prompt, as a single coherent instruction in English.\n\nExample style (do not copy verbatim):\n\u0432\u0402\u045aA photorealistic close-up of a woman with freshly styled glossy brunette hair, soft warm salon lighting, modern minimalistic beauty salon interior in the background, neutral beige and gold tones, professional beauty photography, ultra high detail, 4K, no text, no logos.\u0432\u0402\u045c\n\nIMPORTANT: The final prompt must be optimized for AI image generators and must not include any instructions to place text on the image."
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "8a03e180-1563-429f-a2b9-fd029a135759",
      "name": "OPENAI GENERATES IMAGE",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        3808,
        1648
      ],
      "parameters": {
        "model": "gpt-image-1",
        "prompt": "=IMPORTANT! DO NOT WRITE TEXT ON THE PICTURE! Create a perfect visual for:\n{{ $json.output }}",
        "options": {},
        "resource": "image"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "0fa3f99a-9481-4fee-a1ce-049169550f66",
      "name": "OPENAI WRITES PROMPTS",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2832,
        1984
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fa63625c-efb0-421b-91b6-a46dadca4c5a",
      "name": "OPENAI WRITES POSTS",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2272,
        1936
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aaaf2131-b93c-4d12-910e-beb6809da5d9",
      "name": "Search google in SearchApi",
      "type": "@searchapi/n8n-nodes-searchapi.searchApiTool",
      "position": [
        2576,
        1936
      ],
      "parameters": {
        "q": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Query', ``, 'string') }}",
        "pagination": {},
        "timeFilters": {},
        "searchOptions": {},
        "requestOptions": {},
        "advancedOptions": {},
        "languageSettings": {},
        "locationSettings": {}
      },
      "typeVersion": 1
    },
    {
      "id": "a041635a-2ace-44e4-8f61-383ce634999c",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2432,
        1936
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "e964cadb-a020-4cfc-bb25-f4600502384c",
      "name": "Generate Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3696,
        1984
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/generations",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "model",
              "value": "gpt-image-1"
            },
            {
              "name": "prompt",
              "value": "={{ $json.output.prompt.replace(/\"/g, '') }}"
            },
            {
              "name": "size",
              "value": "1024x1024"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "dd5a21e4-7b99-46bb-abc9-822a684c740e",
      "name": "Convert to Binary",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        3920,
        1984
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data[0].b64_json"
      },
      "typeVersion": 1.1
    },
    {
      "id": "f9c16616-7c65-4d7e-9310-81caf291dc78",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4768,
        2560
      ],
      "parameters": {
        "color": 7,
        "width": 364,
        "height": 240,
        "content": "#  Upload to Drive"
      },
      "typeVersion": 1
    },
    {
      "id": "793d597d-afdc-4b71-aa1d-e0337e52eac5",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4768,
        1824
      ],
      "parameters": {
        "color": 7,
        "width": 364,
        "height": 720,
        "content": "# Post to social media"
      },
      "typeVersion": 1
    },
    {
      "id": "e6e8a382-3630-4327-96ec-d4424c4d4046",
      "name": "Upload",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        4896,
        2640
      ],
      "parameters": {
        "name": "={{ $('Image Prompt Agent').item.json.output.title }}.png",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1TgQu-5hlOzO1X28TMMzLxfhunhPSUIqy",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1TgQu-5hlOzO1X28TMMzLxfhunhPSUIqy",
          "cachedResultName": "AI Image Generation"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9f0a7238-bcad-4426-bc66-43cc39d62e07",
      "name": "Nano Banana",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4048,
        2336
      ],
      "parameters": {
        "url": "https://bananaapi.com/api/n8n/generate/",
        "method": "POST",
        "options": {}
      },
      "typeVersion": 4.3
    },
    {
      "id": "9aa7f37e-d39b-4ab6-bf59-05c1f871346a",
      "name": "Create a post",
      "type": "n8n-nodes-base.wordpress",
      "position": [
        4896,
        1648
      ],
      "parameters": {
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "d0e6d4ea-baa8-41ef-98a5-6a7a9b0a37c7",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4768,
        1568
      ],
      "parameters": {
        "color": 7,
        "width": 364,
        "height": 240,
        "content": "# Post to Wordpress"
      },
      "typeVersion": 1
    },
    {
      "id": "7ac43870-061f-4eeb-aaf0-d1a228468d18",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        1376
      ],
      "parameters": {
        "color": 4,
        "width": 912,
        "height": 176,
        "content": "# Set Up Steps  \n\n## Setup is intentionally quick and simple \u2728  "
      },
      "typeVersion": 1
    },
    {
      "id": "21c50e95-a9c4-48e1-b570-a65970c7ab9c",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3696,
        1360
      ],
      "parameters": {
        "color": 4,
        "width": 880,
        "height": 192,
        "content": "## 4. Connect Image Generation Model\n\n  - In the **Generate Image** HTTP Request node, add your API key in the header and keep the dynamic `prompt` field.\n  - The **Convert to Binary** node turns `data[0].b64_json` into an image file that downstream nodes (social, Drive, etc.) can use.\n\n  - You can swap or duplicate this node to call Clipdrop, Ideogram/Replicate, Runway, Leonardo, or other image providers, as long as they return an image file that flows into the same outputs."
      },
      "typeVersion": 1
    },
    {
      "id": "62e67244-b457-47d9-a94a-4750fdf60a19",
      "name": "Sticky Note18",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3280,
        1568
      ],
      "parameters": {
        "color": 7,
        "width": 1196,
        "height": 1236,
        "content": "# Customize generation model and output format\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c1adedba-69d9-4575-8b7e-3c57a519805d",
      "name": "X1",
      "type": "n8n-nodes-base.twitter",
      "position": [
        4896,
        2224
      ],
      "parameters": {
        "additionalFields": {}
      },
      "typeVersion": 2
    },
    {
      "id": "c8d49d1e-eaa0-4b41-a71a-76cf7df37d33",
      "name": "Facebook1",
      "type": "n8n-nodes-base.facebookGraphApi",
      "position": [
        4896,
        2080
      ],
      "parameters": {
        "options": {},
        "httpRequestMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "36ed53c5-4fde-4faf-b221-399e895baca5",
      "name": "LinkedIn1",
      "type": "n8n-nodes-base.linkedIn",
      "position": [
        4896,
        2384
      ],
      "parameters": {
        "text": "={{ $json['choices[0].message.content'] }}",
        "person": "[CONFIGURE_YOUR_LINKEDIN_PERSON_ID]",
        "authentication": "communityManagement",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "45c71f56-be4e-4fd1-8d49-e77ef1513d31",
      "name": "Split Out1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        4576,
        2128
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "choices[0].message.content"
      },
      "typeVersion": 1
    },
    {
      "id": "354f3d02-93b2-43cc-b753-993f6a8ea4f5",
      "name": "Sticky Note19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        1376
      ],
      "parameters": {
        "width": 1104,
        "height": 80,
        "content": "# [made with \u2764\ufe0f by N8ner \ud83d\udc48 click! Feel free to message me!](https://community.n8n.io/u/n8ner/badges)  [](https://i.ibb.co/cSGCGn3H/Replace-image-1-2k-202601191958.jpg#full-width)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7533fc82-37a7-47d0-8bb3-2d702a562e8c",
      "name": "Sticky Note20",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2144,
        1376
      ],
      "parameters": {
        "color": 4,
        "width": 832,
        "height": 176,
        "content": "## 2. Connect Chat Models\n\n- Attach your API credentials to the chat nodes to enable text generation with the current configuration.  \n- Swap in alternative LLMs like OpenAI, Claude, Gemini, Mistral, DeepSeek, or local/alternative providers via Anthropic, Google Gemini, Mistral Cloud, DeepSeek, Ollama, or OpenRouter chat nodes for different styles and costs.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "7d1f38e1-2e58-40c8-91b4-91d8dbbec56a",
      "name": "Sticky Note21",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4640,
        1344
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 192,
        "content": "## 5.  Link Your Social Media & CMS  \n\n- Connect WordPress, Telegram, X (Twitter), Facebook, and LinkedIn nodes with the accounts you actually use so the workflow can auto\u2011publish directly to those channels. \n- You only need to configure the platforms that matter for your current content strategy; the rest can stay inactive."
      },
      "typeVersion": 1
    },
    {
      "id": "122c72e8-0984-4269-ab8d-477c28a70f1c",
      "name": "Sticky Note22",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2992,
        1376
      ],
      "parameters": {
        "color": 4,
        "width": 688,
        "height": 176,
        "content": "## 3. Customize Prompts  \n\n- Edit the system prompts in the \u201cgenerate text\u201d agent to reflect your brand voice, preferred structure (headings, CTAs, length), and target audience specifics. \n- Adjust the prompts in the \u201cgenerate prompt\u201d agent to define your visual style \u2014 color palette, composition, background, mood \u2014 so images look on\u2011brand across posts."
      },
      "typeVersion": 1
    },
    {
      "id": "e02a11b0-220d-400a-b46d-15aa618f5fb4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        1568
      ],
      "parameters": {
        "color": 7,
        "width": 1084,
        "height": 1232,
        "content": "# Detail prompts for posts and images up to your beauty salon"
      },
      "typeVersion": 1
    },
    {
      "id": "8e7d29a6-074e-45fd-bfc5-b1012deddf87",
      "name": "AWS Bedrock Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAwsBedrock",
      "position": [
        2752,
        2544
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "2a3b27bb-09b8-4307-a07b-41fe257c7bf8",
      "name": "Groq Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "position": [
        2928,
        2544
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "1b99239b-d9f5-453f-97ab-83fb35de63e5",
      "name": "Mistral Cloud Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
      "position": [
        2416,
        2352
      ],
      "parameters": {
        "model": "pixtral-large-latest",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e21e0fa5-bb3d-4ee7-ba08-487c067484a1",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        2592,
        2352
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "d57e0835-0c7f-4265-931b-81bc6f0ad848",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        3104,
        2544
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-7-sonnet-20250219",
          "cachedResultName": "Claude 3.7 Sonnet"
        },
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "c859ac2a-06d4-4aa4-9d0d-dbf1ff7a5f37",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        2240,
        2544
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e174fffb-4bbd-4b3c-a8db-b9a29554903a",
      "name": "xAI Grok Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatXAiGrok",
      "position": [
        2928,
        2352
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "b14a9f12-de50-46c7-8a23-5e7bcf750fb8",
      "name": "DeepSeek Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
      "position": [
        2416,
        2544
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e88400fb-41f9-4673-a2d5-cc4ee6aa270b",
      "name": "Hugging Face Inference Model",
      "type": "@n8n/n8n-nodes-langchain.lmOpenHuggingFaceInference",
      "position": [
        3104,
        2352
      ],
      "parameters": {
        "model": "https://huggingface.co/black-forest-labs/FLUX.1-dev",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "c2542ffd-9b67-4dfb-8eb3-efc2cd036e18",
      "name": "Ollama Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "position": [
        2752,
        2352
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "f85ec2dd-f236-4752-8a54-0f669752bdb1",
      "name": "Azure OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        2592,
        2544
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "a4c3471f-7ef5-443d-a655-82d5275f7ae4",
      "name": "Database",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        2976,
        1984
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "d99109a8-d402-4447-a204-0ee38c6065c5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3584,
        1840
      ],
      "parameters": {
        "color": 3,
        "width": 560,
        "height": 304,
        "content": "## \u26a0\ufe0fTo Use Custom Models with HTTP requests - Add Convert to Binary Code Node next Step. For Example:"
      },
      "typeVersion": 1
    },
    {
      "id": "7e44b243-486c-4b51-b741-73883ae7344e",
      "name": "Sticky Note24",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        2208
      ],
      "parameters": {
        "color": 5,
        "width": 1024,
        "height": 512,
        "content": "# Choose Your Favourite Chat Model"
      },
      "typeVersion": 1
    },
    {
      "id": "ac25e8f8-30b5-4618-ae2f-20b292e37334",
      "name": "Sticky Note25",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3312,
        2208
      ],
      "parameters": {
        "color": 5,
        "width": 1136,
        "height": 512,
        "content": "#  Choose Your Favourite Image Generation Model"
      },
      "typeVersion": 1
    },
    {
      "id": "a15bf6ba-769e-431a-9bae-bce9f3eba48d",
      "name": "Sticky Note26",
      "type": "n8n-nodes-base.stickyNote",
      "disabled": true,
      "position": [
        1616,
        1568
      ],
      "parameters": {
        "color": 7,
        "width": 260,
        "height": 1236,
        "content": "# Launcher\n"
      },
      "typeVersion": 1
    },
    {
      "id": "90e53196-8f41-4f66-89ab-06e8057fc9fc",
      "name": "Replicate API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3360,
        2336
      ],
      "parameters": {
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v2/predictions",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"input\": {\n    \"prompt\": \"An illustration of a black running shoe with the text \\\"Run AI with an API\\\" written on the shoe. The shoe is placed on a blue background. The text is white and bold. The overall image has a modern and techy vibe.\",\n    \"aspect_ratio\": \"16:9\"\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer $REPLICATE_API_TOKEN"
            },
            {
              "name": "Prefer",
              "value": "wait"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8c83e38a-8204-42b0-ad7d-3dbf12138528",
      "name": "Imagen Google API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3600,
        2336
      ],
      "parameters": {
        "url": "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/YOUR_AWS_SECRET_KEY_HERE@002:predict",
        "body": "0",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json; charset=utf-8",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer $(gcloud auth print-access-token)"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bfab7de5-37a1-4a3a-b887-6e054d26011d",
      "name": "HuggingFace API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3824,
        2336
      ],
      "parameters": {
        "url": "https://uu149rez6gw9ehej.eu-west-1.aws.endpoints.huggingface.cloud/distilbert-sentiment",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "{\"inputs\": \"Deploying my first endpoint was an amazing experience.\"}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Token>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "581d5c7d-365d-44ea-ad5e-b642ca32bb05",
      "name": "Kling Images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3360,
        2528
      ],
      "parameters": {
        "url": "https://api-singapore.klingai.com/v1/images/text2image",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "{\n\t\"code\": 0,\n  \"message\": \"string\",\n  \"request_id\": \"string\",\n  \"data\":[\n    {\n      \"task_id\": \"string\",\n      \"task_status\": \"string\",\n      \"task_status_msg\": \"string\",\n      \"created_at\": 1722769557708,\n      \"updated_at\": 1722769557708,\n      \"task_result\":{\n        \"images\":[\n          {\n            \"index\": 0,\n            \"url\": \"string\"\n          }\n      \t]\n      }\n    }\n  ]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f441e830-c2b4-4348-8230-633af5dd9298",
      "name": "Runway Images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3600,
        2528
      ],
      "parameters": {
        "url": "https://api.dev.runwayml.com/v1/text_to_image",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"promptText\": \"string\",\n  \"ratio\": \"1920:1080\",\n  \"seed\": 4294967295,\n  \"model\": \"gen4_image\",\n  \"referenceImages\": [\n    {\n      \"uri\": \"http://example.com\",\n      \"tag\": \"string\"\n    }\n  ],\n  \"contentModeration\": {\n    \"publicFigureThreshold\": \"auto\"\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer {{ YOUR API KEY }}"
            },
            {
              "name": "X-Runway-Version",
              "value": "2024-11-06"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "55ba71c1-5b97-454a-8682-cd49c50b1f76",
      "name": "Leonardo Images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3824,
        2528
      ],
      "parameters": {
        "url": "https://cloud.leonardo.ai/api/rest/v1/generations/id",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b7f8bacb-6de3-4430-8330-06d602687c39",
      "name": "APITemplate.io",
      "type": "n8n-nodes-base.apiTemplateIo",
      "position": [
        4048,
        2528
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f58277db-03ec-4689-8893-c2878eeb9c25",
      "name": "Ideogram API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4272,
        2336
      ],
      "parameters": {
        "url": "https://api.ideogram.ai/v1/ideogram-v3/generate",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "A photo of a cat sleeping on a couch."
            },
            {
              "name": "rendering_speed",
              "value": "TURBO"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Api-Key",
              "value": "<apiKey>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2b0d760c-b5a8-4830-a635-b0d5d2d043bc",
      "name": "Clipdrop API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4272,
        2528
      ],
      "parameters": {
        "url": "https://clipdrop-api.co/text-to-image/v1",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "fb385b3a-1dab-40e3-961e-3a2c43dfb2f8",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2240,
        2352
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "dada01eb-cbcd-40da-85bf-fc1126f69660",
      "name": "Postgres Trigger",
      "type": "n8n-nodes-base.postgresTrigger",
      "position": [
        1696,
        2624
      ],
      "parameters": {
        "schema": {
          "__rl": true,
          "mode": "list",
          "value": "public"
        },
        "options": {},
        "tableName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "67605209-24ee-4453-8cd9-1237c509bf75",
      "name": "Airtable Trigger",
      "type": "n8n-nodes-base.airtableTrigger",
      "position": [
        1696,
        2464
      ],
      "parameters": {
        "baseId": {
          "__rl": true,
          "mode": "url",
          "value": ""
        },
        "tableId": {
          "__rl": true,
          "mode": "url",
          "value": ""
        },
        "pollTimes": {
          "item": [
            {}
          ]
        },
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "e028976c-c358-4cd1-8cb1-6b7aaae3f5c5",
      "name": "RSS Feed Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        1696,
        2144
      ],
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fbc3d8e0-6448-4012-b143-2bf51bb0065b",
      "name": "Meta Reference",
      "type": "n8n-nodes-base.facebookTrigger",
      "position": [
        1696,
        1984
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "accf4b92-db73-4e33-beee-ae6ddab0e330",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        1568
      ],
      "parameters": {
        "color": 4,
        "width": 368,
        "height": 848,
        "content": "## 1. Choose Your Trigger  \n\n- **Scheduled automatic generation:** Run the parent workflow on a schedule (for example, once per day at 9 AM) to publish new content regularly.\n\n- **Google Sheets trigger:** Generate content when a new row with a reference link or topic is added to your sheet. Use it when you manage ideas or briefs in Google Sheets and want the workflow to react as soon as a new idea appears.\n\n- **RSS Feed trigger:** Start the workflow when new items appear in a selected RSS feed. Ideal for turning fresh blog posts, news, or industry updates into social media content or automated summaries.\n\n- **Meta (Facebook/Instagram) webhook:** Use the Meta Reference trigger to fire the workflow on incoming webhooks from Meta (for example, new comments, messages, or events). Helpful when you want to auto\u2011respond, log activity, or generate follow\u2011up content from Meta activity.\n\n- **Airtable trigger:** Start the workflow when records in a selected Airtable base/table change (for example, a new idea, brief, or status update), so your posts react instantly to updates in your Airtable content board.\n\n- **Postgres trigger:** Fire the workflow when new rows are inserted or existing rows are updated in a connected PostgreSQL table, letting you drive content generation from events in your app database or Supabase\u2011style back end.\n\n- **Manual start:** Hit **Execute workflow** whenever you want to spin up a batch of posts on demand, test new prompt settings, or debug the flow step by step.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4f6c2340-946a-4b53-8308-17d899f3c413",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        1472
      ],
      "parameters": {
        "width": 1104,
        "height": 560,
        "content": "# Daily AI social content for beauty brands\n\n## How it works\n\n### Section 1 \u2014 Content sources & triggers\nControls when a new post is created: schedule\u2011based, manual test runs, or new ideas arriving from a reference link.\n### Section 2 \u2014 AI post generation\nGENERATE TEXT writes the final post using your brand system message, web research and short\u2011term memory. Edit the system message here to match your beauty or wellness brand.\n### Section 3 \u2014 Visual prompt\nThe GENERATE PROMPT agent converts the post into a detailed text\u2011to\u2011image prompt describing subject, environment, lighting and style, without any text or logos.\n### Section 4 \u2014 AI image generation\ngpt\u2011image\u20111 (or other providers) generates the final beauty\u2011salon visual that matches the post. You can swap or disable providers depending on your stack.\n### Section 5 \u2014 Distribution & posting\nSplit Out sends the generated content to Telegram and optional social channels (Facebook, Instagram, LinkedIn, X), CMS and cloud.\n\n\n## Customization\nUpdate the system message in GENERATE TEXT to match your brand, niche and language, and keep only the image providers and channels you actually use."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Upload": {
      "main": [
        []
      ]
    },
    "Database": {
      "ai_memory": [
        [
          {
            "node": "GENERATE PROMPT",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Create a post",
            "type": "main",
            "index": 0
          },
          {
            "node": "Facebook1",
            "type": "main",
            "index": 0
          },
          {
            "node": "X1",
            "type": "main",
            "index": 0
          },
          {
            "node": "LinkedIn1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload",
            "type": "main",
            "index": 0
          },
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GENERATE TEXT": {
      "main": [
        [
          {
            "node": "GENERATE PROMPT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Generate Image": {
      "main": [
        [
          {
            "node": "Convert to Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Meta Reference": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GENERATE PROMPT": {
      "main": [
        [
          {
            "node": "OPENAI GENERATES IMAGE",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable Trigger": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Postgres Trigger": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Feed Trigger": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Binary": {
      "main": [
        []
      ]
    },
    "OPENAI WRITES POSTS": {
      "ai_languageModel": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OPENAI WRITES PROMPTS": {
      "ai_languageModel": [
        [
          {
            "node": "GENERATE PROMPT",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OPENAI GENERATES IMAGE": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search google in SearchApi": {
      "ai_tool": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When clicking Execute workflow": {
      "main": [
        [
          {
            "node": "GENERATE TEXT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}