{
  "id": "e2a9WLWDqS85I1AX",
  "name": "Edit Images with OPEN AI",
  "tags": [],
  "nodes": [
    {
      "id": "0b9585d8-e520-4ed2-9c63-de16fdcfdf50",
      "name": "\ud83d\ude80 Form Submission Trigger",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        380,
        280
      ],
      "parameters": {
        "options": {},
        "formTitle": "AI Image Editor",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "image",
              "multipleFiles": false,
              "requiredField": true
            },
            {
              "fieldLabel": "prompt",
              "placeholder": "Describe the edits you want (e.g., 'remove background', 'add sunglasses', 'change to winter scene')",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Upload your image and describe the edits you want to make. Our AI will process your image and deliver the results instantly via Telegram."
      },
      "typeVersion": 2.2
    },
    {
      "id": "8fcc87f1-f2c0-4bbd-b1be-3baf1f154f67",
      "name": "\u2699\ufe0f Configuration Variables",
      "type": "n8n-nodes-base.set",
      "position": [
        640,
        280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "google_drive_folder_id",
              "name": "google_drive_folder_id",
              "type": "string",
              "value": "YOUR_GOOGLE_DRIVE_FOLDER_ID"
            },
            {
              "id": "telegram_chat_id",
              "name": "telegram_chat_id",
              "type": "string",
              "value": "YOUR_TELEGRAM_CHAT_ID"
            },
            {
              "id": "image_size",
              "name": "image_size",
              "type": "string",
              "value": "1024x1024"
            },
            {
              "id": "openai_model",
              "name": "openai_model",
              "type": "string",
              "value": "dall-e-2"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "877c3e0f-8566-438c-bf69-8e7ccdb9dfe3",
      "name": "\ud83d\udcc1 Upload Original to Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        880,
        280
      ],
      "parameters": {
        "name": "=original-{{ $now.format('yyyy-MM-dd-HHmmss') }}.png",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.google_drive_folder_id }}"
        },
        "inputDataFieldName": "image"
      },
      "typeVersion": 3
    },
    {
      "id": "4742b2b8-5c56-468f-98b2-b1f2ea908702",
      "name": "\ud83d\udce5 Download for Processing",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1140,
        280
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "typeVersion": 3
    },
    {
      "id": "c8008016-1d32-415b-a59b-0858d8f5887e",
      "name": "\ud83c\udfa8 AI Image Editor",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1380,
        280
      ],
      "parameters": {
        "url": "https://api.openai.com/v1/images/edits",
        "method": "POST",
        "options": {
          "timeout": 60000
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            },
            {
              "name": "prompt",
              "value": "={{ $('\ud83d\ude80 Form Submission Trigger').item.json.prompt }}"
            },
            {
              "name": "model",
              "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.openai_model }}"
            },
            {
              "name": "size",
              "value": "={{ $('\u2699\ufe0f Configuration Variables').item.json.image_size }}"
            },
            {
              "name": "n",
              "value": "1"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "5c8753f1-43cf-45d5-a984-69232a14adac",
      "name": "\ud83d\udd04 Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1640,
        280
      ],
      "parameters": {
        "options": {
          "fileName": "=edited-{{ $now.format('yyyy-MM-dd-HHmmss') }}.png",
          "mimeType": "image/png"
        },
        "operation": "toBinary",
        "sourceProperty": "data[0].url"
      },
      "typeVersion": 1.1
    },
    {
      "id": "dd69866a-1439-4ad7-8e20-5e6eeccb3e2e",
      "name": "\ud83d\udcf1 Send to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1880,
        280
      ],
      "parameters": {
        "chatId": "={{ $('\u2699\ufe0f Configuration Variables').item.json.telegram_chat_id }}",
        "operation": "sendPhoto",
        "binaryData": true,
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "14fd976d-849b-4b6c-b4f7-bb12d21da68d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        40
      ],
      "parameters": {
        "width": 569,
        "height": 1304,
        "content": "# \ud83c\udfa8 AI Image Editor Workflow\n\n**Created by:** David Olusola\n\n## \ud83d\udccb What This Workflow Does\n\nThis automation creates a complete AI image editing pipeline that:\n- \u2705 Provides a user-friendly web form for image uploads\n- \u2705 Stores original images in Google Drive\n- \u2705 Processes images through OpenAI's image editing API  \n- \u2705 Delivers edited results instantly via Telegram\n\n## \ud83d\udee0\ufe0f Setup Requirements\n\n1. **OpenAI API Key** - Add to HTTP Request credentials\n2. **Google Drive OAuth** - For file storage\n3. **Telegram Bot** - For result delivery\n4. **Configuration Variables** - Update the yellow node with your IDs\n\n## \u2699\ufe0f Configuration Steps\n\n1. **Update Configuration Variables node:**\n   - `google_drive_folder_id`: Your Google Drive folder ID\n   - `telegram_chat_id`: Your Telegram chat ID\n   - `image_size`: Desired output size (default: 1024x1024)\n   - `openai_model`: AI model to use (default: dall-e-2)\n\n2. **Set up credentials:**\n   - OpenAI API in \"AI Image Editor\" node\n   - Google Drive OAuth in both Drive nodes\n   - Telegram Bot in \"Send to Telegram\" node\n\n3. **Test the workflow:**\n   - Deploy and get the form URL\n   - Upload a test image with editing prompt\n   - Check Telegram for the result\n\n## \ud83c\udfaf Example Prompts\n- \"Remove the background\"\n- \"Add sunglasses to the person\"\n- \"Change the sky to sunset\"\n- \"Make it look like a cartoon\"\n\n## \ud83d\udd27 Customization Options\n- Change image dimensions in config\n- Modify file naming conventions\n- Add error handling nodes\n- Implement batch processing\n- Add multiple delivery channels"
      },
      "typeVersion": 1
    },
    {
      "id": "e8b0837c-bd0e-4184-a42a-13ce73837e29",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 200,
        "height": 308,
        "content": "\ud83d\udca1 **STEP 1: Form Submission**\n\nUser uploads image and provides editing instructions through web form. The form validates file type and requires both image and prompt."
      },
      "typeVersion": 1
    },
    {
      "id": "04947555-cd06-4c6c-9f01-43aab9dcd821",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        160
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 248,
        "content": "\u2699\ufe0f **STEP 2: Configuration**\n\nSets up all workflow variables that users need to customize. Update these values before first use!"
      },
      "typeVersion": 1
    },
    {
      "id": "4f504b1e-73c9-4d62-b7bf-41a83087d68a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        780,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 248,
        "content": "\ud83d\udcc1 **STEP 3: Backup Storage**\n\nUploads original image to Google Drive with timestamp for organization and backup purposes."
      },
      "typeVersion": 1
    },
    {
      "id": "e065914a-070c-48bd-ac65-e9c666478e78",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        160
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 248,
        "content": "\ud83d\udce5 **STEP 4: Prepare for AI**\n\nDownloads the image from Drive to prepare it for OpenAI processing in the correct format."
      },
      "typeVersion": 1
    },
    {
      "id": "0a9ffa00-4432-497d-98cb-d74e9320fcc7",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 248,
        "content": "\ud83c\udfa8 **STEP 5: AI Magic**\n\nSends image and prompt to OpenAI's image editing API. Uses DALL-E model for high-quality results."
      },
      "typeVersion": 1
    },
    {
      "id": "30d577e2-9c74-46b9-b62e-7b7a24aca423",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        160
      ],
      "parameters": {
        "color": 2,
        "width": 200,
        "height": 268,
        "content": "\ud83d\udd04 **STEP 6: File Conversion**\n\nConverts the AI response to a downloadable PNG file with proper naming and metadata."
      },
      "typeVersion": 1
    },
    {
      "id": "97a064c2-60cb-4e8c-bfda-d81356c7918c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1780,
        160
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 228,
        "content": "\ud83d\udcf1 **STEP 7: Instant Delivery**\n\nSends the edited image to Telegram with prompt details and timestamp for easy identification."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9dce616c-0e79-4fea-b905-50aa27e1f0a8",
  "connections": {
    "\ud83c\udfa8 AI Image Editor": {
      "main": [
        [
          {
            "node": "\ud83d\udd04 Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udd04 Convert to File": {
      "main": [
        [
          {
            "node": "\ud83d\udcf1 Send to Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udce5 Download for Processing": {
      "main": [
        [
          {
            "node": "\ud83c\udfa8 AI Image Editor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\ude80 Form Submission Trigger": {
      "main": [
        [
          {
            "node": "\u2699\ufe0f Configuration Variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udcc1 Upload Original to Drive": {
      "main": [
        [
          {
            "node": "\ud83d\udce5 Download for Processing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u2699\ufe0f Configuration Variables": {
      "main": [
        [
          {
            "node": "\ud83d\udcc1 Upload Original to Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}