This workflow follows the HTTP Request → OpenAI recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "LV0b7vUbu5mYPRSc",
"name": "Generate Tiktok/instagram carousels with gpt-image-1 and autopublish",
"tags": [],
"nodes": [
{
"id": "7bd93882-7331-471b-a49b-5069c7baccc4",
"name": "Send as 1 merged file",
"type": "n8n-nodes-base.code",
"position": [
1820,
2640
],
"parameters": {
"jsCode": "// Merge all incoming items (each with one binary photoX) into one item\nconst mergedItem = {\n json: {},\n binary: {}\n};\n\nfor (const item of items) {\n // Copy every binary field from each item into mergedItem.binary\n for (const [key, bin] of Object.entries(item.binary || {})) {\n mergedItem.binary[key] = bin;\n }\n}\n\n// Return a single-item array\nreturn [mergedItem];\n"
},
"typeVersion": 2
},
{
"id": "358a183f-6e20-4e5e-8151-0ded2cb500b6",
"name": "POST TO INSTAGRAM",
"type": "n8n-nodes-base.httpRequest",
"position": [
2200,
2540
],
"parameters": {
"url": "https://api.upload-post.com/api/upload_photos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "={{ $('Generate Description for Tiktok and Instagram').first().json.message.content }}"
},
{
"name": "user",
"value": "upload_post"
},
{
"name": "platform[]",
"value": "instagram"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "=photo1"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "=photo2"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo3"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo4"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo5"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Apikey api_key_here"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "000fcfb5-5076-4953-af28-4c4c3df3e7e3",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1640,
2600
],
"parameters": {
"numberInputs": 6
},
"typeVersion": 3
},
{
"id": "1a17671c-1b5c-4806-8b42-c39817da0ec8",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-440,
2760
],
"parameters": {},
"typeVersion": 1
},
{
"id": "43cf1963-d928-49b3-b2f8-c5a3bd76d231",
"name": "Generate Description for Tiktok and Instagram",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
0,
2760
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "GPT-4.1"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are an expert assistant in creating great titles for uploading videos to social media."
},
{
"content": "=I'm going to upload a reel to social media consisting of a carousel of images that tell a story.\n\nCan you create a caption for the Instagram and TikTok post based on the following prompts that generate the images for the story?\n\nprompts:{{ $json.prompt1 }} {{ $json.prompt2 }} {{ $json.prompt3 }} {{ $json.prompt4 }} {{ $json.prompt5 }}\n\nIMPORTANT: Respond only with the caption, \u2264\u202f90\u202fcharacters. Do not add anything else. If the prompts are in Spanish, respond in Spanish; if they are in English, respond in English. I\u2019ll tip you $100."
}
]
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"retryOnFail": true,
"typeVersion": 1.4,
"waitBetweenTries": 5000
},
{
"id": "544f9cd9-bad6-4ef1-80a5-0dee52f91029",
"name": "Set All Prompts",
"type": "n8n-nodes-base.set",
"position": [
-180,
2760
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b70f1cfd-d12e-469d-864d-0034860cd00e",
"name": "prompt1",
"type": "string",
"value": "Vertical illustration (9:16), warm Studio Ghibli anime style. A peaceful, sunny village filled with cheerful people who have tiny, adorable floating AI robots gently whispering constant instructions into their ears. At the center, introduce a friendly-looking young man (around 25, casual clothes, slightly messy hair) smiling blankly as his personal AI robot floats beside his head. Overlay humorous caption: 'Life became easy when AI started thinking for us... maybe too easy.' Soft, pastel colors, cozy and inviting mood."
},
{
"id": "4d7f371c-e8f9-4941-a322-153607d01938",
"name": "prompt2",
"type": "string",
"value": "Vertical illustration (9:16), warm Studio Ghibli anime style. Same young man from previous image now in a cozy kitchen, cheerfully pouring milk straight onto the table, completely missing his bowl. His floating AI robot looks comically alarmed, urgently pointing towards the bowl. Morning sunlight coming from a nearby window, playful, humorous vibe. Overlay humorous caption: 'Even breakfast became complicated when AI guided every simple step we took.'"
},
{
"id": "55f99acf-7f3c-4c8d-b674-2b90c0760893",
"name": "prompt3",
"type": "string",
"value": "Vertical illustration (9:16), warm Studio Ghibli anime style. Same young man standing nervously at a totally empty street crossing. His tiny floating AI robot is frantically projecting confusing directional arrows in every direction, causing visible confusion on the young man's face. Comical sense of panic despite the completely safe and empty street. Bright daylight, humorous, gentle satire. Overlay humorous caption: 'Thanks to AI, crossing the street turned into an extreme mental puzzle.'"
},
{
"id": "4b14808a-d512-4b47-9008-573e092996e4",
"name": "prompt4",
"type": "string",
"value": "Vertical illustration (9:16), warm Studio Ghibli anime style. Same young man sitting across from a young woman in a cozy caf\u00e9, both staring blankly with polite smiles but not talking. Their floating personal AI robots enthusiastically communicate above them through speech bubbles, completely ignoring the silent humans beneath. Warm lighting, coffee shop vibes, funny and slightly absurd situation. Overlay humorous caption: 'Our AIs handled the conversations. We just sat and smiled politely.'"
},
{
"id": "435b6cfb-6d4b-42e7-afd4-8f387698eec1",
"name": "prompt5",
"type": "string",
"value": "Vertical illustration (9:16), warm Studio Ghibli anime style. Sunset setting on a grassy hill overlooking the village. Same young man sits thoughtfully, gazing at the horizon with a rare look of self-awareness and curiosity. His tiny AI robot looks worried, floating anxiously by his shoulder, unsure how to guide him. Reflective, calm mood with golden hour lighting. Overlay thoughtful, humorous caption: 'As the sun set, he realized something troubling: When was the last time he had a thought of his own?'"
}
]
}
},
"typeVersion": "3.4"
},
{
"id": "7f8a8adc-94bc-443e-be33-d1ce1bf14d11",
"name": "Set API Variables",
"type": "n8n-nodes-base.set",
"position": [
320,
2760
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2a5d52c2-5af1-4796-acba-4e1807fc7d7b",
"name": "image_prompt",
"type": "string",
"value": "{{ $json }}"
},
{
"id": "c41a8091-d952-4f5a-ae24-3b0691bbce57",
"name": "number_of_images",
"type": "number",
"value": 1
},
{
"id": "1b359a11-c05a-49c8-aa27-402b145fcbc1",
"name": "size_of_image",
"type": "string",
"value": "1024x1536"
},
{
"id": "6cf4ba85-d11a-48bb-9eaf-4084c9538d87",
"name": "openai_image_model",
"type": "string",
"value": "gpt-image-1"
},
{
"id": "7df8ba96-e22b-49cc-bf0f-5195d360aef8",
"name": "response_format_image",
"type": "string",
"value": "b64_json"
},
{
"id": "719392f2-f107-41a0-8e48-05a901cebb22",
"name": "format_image",
"type": "string",
"value": "webp"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e2edf20b-4dd7-458c-9582-043a78d2ac5a",
"name": "OpenAI - Generate Image 1",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
2320
],
"parameters": {
"url": "https://api.openai.com/v1/images/generations",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"{{ $json.openai_image_model }}\",\n \"prompt\": \"{{ $('Set All Prompts').item.json.prompt1 }}\",\n \"n\": {{ $json.number_of_images }},\n \"size\": \"{{ $json.size_of_image }}\",\n \"output_format\": \"{{ $json.format_image }}\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "004cb6dc-eead-44a1-8308-9d61fe8afece",
"name": "Separate Image Outputs 1",
"type": "n8n-nodes-base.splitOut",
"position": [
740,
2320
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "5f330301-a8ca-45df-904b-0f8911e2ceee",
"name": "Convert to File 1",
"type": "n8n-nodes-base.convertToFile",
"position": [
960,
2320
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "fef53966-0baf-4645-95ae-50db7ef7f469",
"name": "Change name to photo1",
"type": "n8n-nodes-base.code",
"position": [
1160,
2320
],
"parameters": {
"jsCode": "return items.map((item, index) => {\n // Grab the existing binary buffer under \"data\"\n const buffer = item.binary.data;\n // Build a new item with the renamed binary key\n return {\n json: item.json,\n binary: {\n // Rename to photo1, photo2, ...\n [`photo${index + 1}`]: buffer\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "9b9b5381-4176-4c86-ac9d-ca7ec907a5c5",
"name": "OpenAI - Generate Image 2",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
2520
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "={{ $('Set API Variables').item.json.openai_image_model }}"
},
{
"name": "prompt",
"value": "={{ $('Set All Prompts').item.json.prompt2 }}"
},
{
"name": "n",
"value": "={{ $('Set API Variables').item.json.number_of_images }}"
},
{
"name": "size",
"value": "={{ $('Set API Variables').item.json.size_of_image }}"
},
{
"name": "image[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo1"
},
{
"name": "output_format",
"value": "={{ $('Set API Variables').item.json.format_image }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "a44ca7d3-2eef-4b4a-a135-c9f71454ebf9",
"name": "Separate Image Outputs 2",
"type": "n8n-nodes-base.splitOut",
"position": [
760,
2520
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "44f8a29d-3283-49e3-b911-54f2ce16bcf5",
"name": "Convert to File 2",
"type": "n8n-nodes-base.convertToFile",
"position": [
1000,
2520
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "8dbc8095-9bd6-43cf-b8ea-1dd8966866dc",
"name": "Change name to photo2",
"type": "n8n-nodes-base.code",
"position": [
1200,
2520
],
"parameters": {
"jsCode": "return items.map((item, index) => {\n // Grab the existing binary buffer under \"data\"\n const buffer = item.binary.data;\n // Build a new item with the renamed binary key\n return {\n json: item.json,\n binary: {\n // Rename to photo1, photo2, ...\n [`photo${index + 2}`]: buffer\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "3fb24ebf-117e-4c98-90f0-69a870cd3c2c",
"name": "OpenAI - Generate Image 3",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
2740
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "={{ $('Set API Variables').item.json.openai_image_model }}"
},
{
"name": "prompt",
"value": "={{ $('Set All Prompts').item.json.prompt3 }}"
},
{
"name": "n",
"value": "={{ $('Set API Variables').item.json.number_of_images }}"
},
{
"name": "size",
"value": "={{ $('Set API Variables').item.json.size_of_image }}"
},
{
"name": "image[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo2"
},
{
"name": "output_format",
"value": "={{ $('Set API Variables').item.json.format_image }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "bd7b0ab1-adde-47a0-b84f-f2ecf214ccff",
"name": "Separate Image Outputs 3",
"type": "n8n-nodes-base.splitOut",
"position": [
760,
2740
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "3cccc067-f913-4bb8-996d-ceccf4e0bfcb",
"name": "Convert to File 3",
"type": "n8n-nodes-base.convertToFile",
"position": [
1000,
2740
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "5619cabd-8a3a-4f98-b79e-f4e8aadacf33",
"name": "Change name to photo3",
"type": "n8n-nodes-base.code",
"position": [
1200,
2740
],
"parameters": {
"jsCode": "return items.map((item, index) => {\n // Grab the existing binary buffer under \"data\"\n const buffer = item.binary.data;\n // Build a new item with the renamed binary key\n return {\n json: item.json,\n binary: {\n // Rename to photo1, photo2, ...\n [`photo${index + 3}`]: buffer\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "743db045-9cce-41f2-b902-fcbdcc9cd306",
"name": "OpenAI - Generate Image 4",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
2980
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "={{ $('Set API Variables').item.json.openai_image_model }}"
},
{
"name": "prompt",
"value": "={{ $('Set All Prompts').item.json.prompt4 }}"
},
{
"name": "n",
"value": "={{ $('Set API Variables').item.json.number_of_images }}"
},
{
"name": "size",
"value": "={{ $('Set API Variables').item.json.size_of_image }}"
},
{
"name": "image[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo3"
},
{
"name": "output_format",
"value": "={{ $('Set API Variables').item.json.format_image }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "19997fd7-9deb-416a-8544-2c13fc4f9900",
"name": "Separate Image Outputs 4",
"type": "n8n-nodes-base.splitOut",
"position": [
760,
2980
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "9b521796-80c3-49e5-bf6c-83721783ab4c",
"name": "Convert to File 4",
"type": "n8n-nodes-base.convertToFile",
"position": [
1000,
2980
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "f931e230-1a41-4608-933b-441955160097",
"name": "Change name to photo4",
"type": "n8n-nodes-base.code",
"position": [
1200,
2980
],
"parameters": {
"jsCode": "return items.map((item, index) => {\n // Grab the existing binary buffer under \"data\"\n const buffer = item.binary.data;\n // Build a new item with the renamed binary key\n return {\n json: item.json,\n binary: {\n // Rename to photo1, photo2, ...\n [`photo${index + 4}`]: buffer\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "fa3c014c-1143-4975-8eab-26ce302d2312",
"name": "OpenAI - Generate Image 5",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
3240
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "={{ $('Set API Variables').item.json.openai_image_model }}"
},
{
"name": "prompt",
"value": "={{ $('Set All Prompts').item.json.prompt5 }}"
},
{
"name": "n",
"value": "={{ $('Set API Variables').item.json.number_of_images }}"
},
{
"name": "size",
"value": "={{ $('Set API Variables').item.json.size_of_image }}"
},
{
"name": "image[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo4"
},
{
"name": "output_format",
"value": "={{ $('Set API Variables').item.json.format_image }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "72fb090f-b6a5-432a-b45a-f52835cd63b2",
"name": "Separate Image Outputs 5",
"type": "n8n-nodes-base.splitOut",
"position": [
760,
3240
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "ed5689d2-68fe-4284-a46b-21b9ba3430b7",
"name": "Convert to File 5",
"type": "n8n-nodes-base.convertToFile",
"position": [
1000,
3240
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "b64_json"
},
"typeVersion": 1.1
},
{
"id": "596b16da-ef12-4972-a894-d99a8d827cef",
"name": "Change name to photo5",
"type": "n8n-nodes-base.code",
"position": [
1200,
3240
],
"parameters": {
"jsCode": "return items.map((item, index) => {\n // Grab the existing binary buffer under \"data\"\n const buffer = item.binary.data;\n // Build a new item with the renamed binary key\n return {\n json: item.json,\n binary: {\n // Rename to photo1, photo2, ...\n [`photo${index + 5}`]: buffer\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "2a814cfa-524c-433a-bdd3-36cf63570074",
"name": "POST TO TIKTOK",
"type": "n8n-nodes-base.httpRequest",
"position": [
2200,
2860
],
"parameters": {
"url": "https://api.upload-post.com/api/upload_photos",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "={{\n\t(cp => cp.length > 90\n\t\t? cp.slice(0, 87).join('') + '\u2026' // 87 + \u201c\u2026\u201d = 90\n\t\t: cp.join('')\n\t)([...$('Generate Description for Tiktok and Instagram')\n\t\t.first()\n\t\t.json\n\t\t.message\n\t\t.content])\n}}"
},
{
"name": "user",
"value": "upload_post"
},
{
"name": "platform[]",
"value": "tiktok"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "=photo1"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo2"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo3"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo4"
},
{
"name": "photos[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "photo5"
},
{
"name": "auto_add_music",
"value": "true"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Apikey api_key_here"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "bb858f9e-f0ab-40e1-8adb-2db736d8a4c8",
"connections": {
"Merge": {
"main": [
[
{
"node": "Send as 1 merged file",
"type": "main",
"index": 0
}
]
]
},
"Set All Prompts": {
"main": [
[
{
"node": "Generate Description for Tiktok and Instagram",
"type": "main",
"index": 0
}
]
]
},
"Convert to File 1": {
"main": [
[
{
"node": "Change name to photo1",
"type": "main",
"index": 0
}
]
]
},
"Convert to File 2": {
"main": [
[
{
"node": "Change name to photo2",
"type": "main",
"index": 0
}
]
]
},
"Convert to File 3": {
"main": [
[
{
"node": "Change name to photo3",
"type": "main",
"index": 0
}
]
]
},
"Convert to File 4": {
"main": [
[
{
"node": "Change name to photo4",
"type": "main",
"index": 0
}
]
]
},
"Convert to File 5": {
"main": [
[
{
"node": "Change name to photo5",
"type": "main",
"index": 0
}
]
]
},
"Set API Variables": {
"main": [
[
{
"node": "OpenAI - Generate Image 1",
"type": "main",
"index": 0
}
]
]
},
"Change name to photo1": {
"main": [
[
{
"node": "OpenAI - Generate Image 2",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Change name to photo2": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
},
{
"node": "OpenAI - Generate Image 3",
"type": "main",
"index": 0
}
]
]
},
"Change name to photo3": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
},
{
"node": "OpenAI - Generate Image 4",
"type": "main",
"index": 0
}
]
]
},
"Change name to photo4": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 3
},
{
"node": "OpenAI - Generate Image 5",
"type": "main",
"index": 0
}
]
]
},
"Change name to photo5": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 4
}
]
]
},
"Send as 1 merged file": {
"main": [
[
{
"node": "POST TO INSTAGRAM",
"type": "main",
"index": 0
},
{
"node": "POST TO TIKTOK",
"type": "main",
"index": 0
}
]
]
},
"Separate Image Outputs 1": {
"main": [
[
{
"node": "Convert to File 1",
"type": "main",
"index": 0
}
]
]
},
"Separate Image Outputs 2": {
"main": [
[
{
"node": "Convert to File 2",
"type": "main",
"index": 0
}
]
]
},
"Separate Image Outputs 3": {
"main": [
[
{
"node": "Convert to File 3",
"type": "main",
"index": 0
}
]
]
},
"Separate Image Outputs 4": {
"main": [
[
{
"node": "Convert to File 4",
"type": "main",
"index": 0
}
]
]
},
"Separate Image Outputs 5": {
"main": [
[
{
"node": "Convert to File 5",
"type": "main",
"index": 0
}
]
]
},
"OpenAI - Generate Image 1": {
"main": [
[
{
"node": "Separate Image Outputs 1",
"type": "main",
"index": 0
}
]
]
},
"OpenAI - Generate Image 2": {
"main": [
[
{
"node": "Separate Image Outputs 2",
"type": "main",
"index": 0
}
]
]
},
"OpenAI - Generate Image 3": {
"main": [
[
{
"node": "Separate Image Outputs 3",
"type": "main",
"index": 0
}
]
]
},
"OpenAI - Generate Image 4": {
"main": [
[
{
"node": "Separate Image Outputs 4",
"type": "main",
"index": 0
}
]
]
},
"OpenAI - Generate Image 5": {
"main": [
[
{
"node": "Separate Image Outputs 5",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Set All Prompts",
"type": "main",
"index": 0
}
]
]
},
"Generate Description for Tiktok and Instagram": {
"main": [
[
{
"node": "Set API Variables",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Generate Tiktok/instagram carousels with gpt-image-1 and autopublish. Uses httpRequest, openAi. Event-driven trigger; 28 nodes.
Source: https://gist.github.com/PylonBlockchain/8052ca972df77383617e7cba6bec808f — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow is ideal for individuals, marketers, agencies, and brands who want to effortlessly automate the entire blogging and social media process—from idea generation to promotion. Its primary go
This workflow is built for creators, solopreneurs, SaaS founders, and agencies looking to automate their social media content process from idea to publication. It combines the power of OpenAI, Google
✨🤖Automated AI Powered Social Media Content Factory for X + Facebook + Instagram + LinkedIn. Uses outputParserStructured, lmChatGoogleGemini, lmChatOpenAi, httpRequest. Event-driven trigger; 57 nodes
Social Media Managers and Digital Marketers seeking to streamline content production across 7+ platforms (X/Twitter, Instagram, LinkedIn, Facebook, TikTok, Threads, YouTube Shorts) using AI-powered au
A production-ready n8n workflow that generates AI avatar videos from images and text using VEED Fabric 1.0, with flexible multi-platform publishing capabilities. Process any number of videos: Sequenti