AutomationFlowsGeneral › ChatGPT Image Generation Workflow

ChatGPT Image Generation Workflow

Original n8n title: Openai Imagegen1 Template

OpenAI ImageGen1 Template. Uses httpRequest, convertToFile, chatTrigger, stickyNote. Chat trigger; 6 nodes.

Chat trigger trigger★★☆☆☆ complexityAI-powered6 nodesHTTP RequestChat Trigger
General Trigger: Chat trigger Nodes: 6 Complexity: ★★☆☆☆ AI nodes: yes Added:

This workflow follows the Chat Trigger → HTTP Request 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 →

Download .json
{
  "id": "81aN6oJGMho5kCvQ",
  "name": "OpenAI ImageGen1 Template",
  "tags": [],
  "nodes": [
    {
      "id": "179754ad-eae5-447a-b225-46145370e79b",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -440,
        80
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data0"
            },
            {
              "name": "prompt",
              "value": "={{ $('When chat message received').item.json.chatInput }}"
            },
            {
              "name": "model",
              "value": "gpt-image-1"
            },
            {
              "name": "n",
              "value": "1"
            },
            {
              "name": "size",
              "value": "1024x1024"
            },
            {
              "name": "quality",
              "value": "high"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $json.openAIKey }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0aca28af-1325-4391-bee6-3ab636c34f6a",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        -220,
        80
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data[0].b64_json"
      },
      "typeVersion": 1.1
    },
    {
      "id": "7bc8dbf1-eb81-4f9b-9563-7ae568034221",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -860,
        80
      ],
      "parameters": {
        "options": {
          "allowFileUploads": true,
          "allowedFilesMimeTypes": "*"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "79b3e008-758c-4c24-adac-eb514fedf2c8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        -440
      ],
      "parameters": {
        "width": 660,
        "height": 460,
        "content": "### \ud83d\uddbc\ufe0f Edit Images with the **OpenAI ImageGen v1** API\n\n1. **Verify Your Organization**  \n   Log in to the OpenAI Platform and confirm your org is verified:  \n   [OpenAI Settings \u2192 Organization](https://platform.openai.com/settings/organization/general)\n\n2. **Add Your API Key**  \n   In the n8n credentials, paste a valid **OpenAI secret key** into the `API_KEY` field.\n\n3. **Run \u201cOpen Chat\u201d**  \n   Trigger the **`Open Chat`** node, supply your **text prompt** and **source image**, then execute.\n\n4. **Preview & Automate**  \n   The new image appears in the **`Convert to File`** node. From here you can:  \n   - Send it by email  \n   - Push to S3, Supabase, or any storage  \n   - Post straight to Slack, Discord, etc.\n\n> *Tip \u2014 chain additional n8n nodes to watermark, resize, or schedule social-media posts automatically.*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8b75f205-dcfb-4c43-b8bf-942419b96633",
      "name": "API KEY",
      "type": "n8n-nodes-base.set",
      "position": [
        -640,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b943d609-b213-4531-912f-e721db4d2cc7",
              "name": "openAIKey",
              "type": "string",
              "value": "sk-proj-..."
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "fb19daaf-a425-4d0c-9141-fefee17be117",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -440
      ],
      "parameters": {
        "color": 5,
        "width": 660,
        "height": 1380,
        "content": "[![AI-Image Cash Machine \u2013 banner](https://public-files.gumroad.com/r2rfepypwzxebylbzutm7lk577m7)](https://drauscher.gumroad.com/l/PremiumAISaaSTemplateBeginnerFriendlyCustomizable)\n\n\n\n### This is just the core of our bigger \u2b50 AI Image Cash Machine Template \u2b50\n\n## \ud83d\ude80 Launch Your **AI-Image Cash Machine** This Weekend\n\n**Customizable \u00b7 Beginner Friendly**\n\n\ud83d\udcb8 **Special Summer Deal \u2014 10 % off with code `SUMMER25` (just \u20ac5+)**\n\n[Grab the template on Gumroad \u2192](https://drauscher.gumroad.com/l/PremiumAISaaSTemplateBeginnerFriendlyCustomizable)\n\n---\n\n### Why You\u2019ll Love It\n- **Plug-and-Play App** \u2013 Next.js front-end on Vercel, wired to Supabase, Stripe, n8n & OpenAI  \n- **No-Code Automation** \u2013 drag-drop n8n workflow delivers images instantly after payment  \n- **Built-In Payments** \u2013 Stripe keys + webhooks included, start charging the moment you deploy  \n- **Scalable Storage** \u2013 private Supabase bucket keeps every customer image secure  \n- **Own the Source** \u2013 MIT license lets you tweak, brand, even resell without lock-in  \n\n> **Try it live:** **Pixarify Online** \u2013 see the template in action!  \n\n---\n\n### What\u2019s Inside\n- Production-ready **frontend UI** (Next.js + Tailwind)  \n- Pre-configured **n8n backend** triggered by Stripe webhook  \n- Step-by-step **PDF setup guide**  \n- Sample environment file (`.env.example`)  \n\n---\n\n### 3-Step Fast-Track Setup\n1. **Clone the repo** & run `vercel deploy` \u2014 live site in 5 min  \n2. **Paste your Stripe + OpenAI keys**  \n3. **Activate the n8n workflow** \u2014 start selling AI images immediately  \n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6e7f19b0-042a-4c63-9375-36d62290eb3e",
  "connections": {
    "API KEY": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        []
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "API KEY",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

OpenAI ImageGen1 Template. Uses httpRequest, convertToFile, chatTrigger, stickyNote. Chat trigger; 6 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Testing Mulitple Local LLM with LM Studio. Uses stickyNote, httpRequest, chatTrigger, dateTime. Chat trigger; 21 nodes.

HTTP Request, Chat Trigger, OpenAI Chat +2
General

Testing Mulitple Local LLM with LM Studio. Uses stickyNote, httpRequest, chatTrigger, dateTime. Chat trigger; 21 nodes.

HTTP Request, Chat Trigger, OpenAI Chat +2
General

TopSourcer - Finds LinkedIn Profiles using natural language. Uses chatTrigger, stickyNote, googleSheets, httpRequest. Chat trigger; 18 nodes.

Chat Trigger, Google Sheets, HTTP Request +1
General

🔍🛠️ Tavily Search & Extract - Template. Uses stickyNote, httpRequest, lmChatOpenAi, chainLlm. Chat trigger; 17 nodes.

HTTP Request, OpenAI Chat, Chain Llm +1
General

YouTube Video Transcriber. Uses chatTrigger, respondToWebhook, stickyNote, httpRequest. Chat trigger; 14 nodes.

Chat Trigger, HTTP Request, OpenAI