{
  "name": "Enhance product photos with Google Gemini AI for e-commerce catalog",
  "nodes": [
    {
      "id": "0aa63dbd-bbb8-4caa-a864-6ffea6dd7b9a",
      "name": "File Created",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -2064,
        576
      ]
    },
    {
      "id": "e98ece61-7f83-420b-914a-4236926ab67c",
      "name": "File Updated",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -2064,
        736
      ]
    },
    {
      "id": "7f75e919-7b84-48cd-a60d-dba089ec35d8",
      "name": "Set File ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1664,
        672
      ]
    },
    {
      "id": "c04350a6-3c05-43f7-a26f-5f45e7761864",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        400
      ],
      "parameters": {
        "width": 400,
        "height": 908,
        "content": "## 4. Update entry in Google Sheet\n\n"
      }
    },
    {
      "id": "c1ba3367-fbe1-4ae7-ad5e-0bf10551fa94",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        400
      ],
      "parameters": {
        "width": 896,
        "height": 908,
        "content": "## 3. Transform the Image\n\n[Read more about Google Gemini node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.googlegemini/)\n[Read more about Google Gemini image generation (N"
      }
    },
    {
      "id": "c83064ba-22d6-4c21-9d32-6de3dfd95ae2",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        400
      ],
      "parameters": {
        "width": 568,
        "height": 908,
        "content": "## 2. Create Entry in Google Sheet\n\n* Add a row to the Google Sheet to track progress.\n  The row identifier is the unique URL of the output folder in Google Drive.\n"
      }
    },
    {
      "id": "008a490a-b105-4093-a247-25a641c25903",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2160,
        400
      ],
      "parameters": {
        "width": 728,
        "height": 908,
        "content": "## 1. Watch for New and Updated Images in Google Drive Folder\n\n[Read more about the Google Drive Trigger node](https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.googledrivetrigger/"
      }
    },
    {
      "id": "854076d5-d55a-41d3-aac1-edb63ef4148c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1376,
        400
      ],
      "parameters": {
        "width": 432,
        "height": 448,
        "content": "## ⚙️ Update the Workflow Configuration Node\n\n- `google_sheet_id`: Set this to the ID of your Google Sheet. See **Google Sheets Configuration** for the sheet name and column details.\n- `dest_folder_id"
      }
    },
    {
      "id": "8f8ea999-2d8b-493f-87af-24b6b77095fe",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -1216,
        672
      ]
    },
    {
      "id": "5fe5cb99-1fcc-46ec-a781-332593765cd8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1376,
        880
      ],
      "parameters": {
        "width": 432,
        "height": 432,
        "content": "## 🔒 Setup credentials\n- `Edit Image` node: Configure authentication in the node using your Google AI Studio. \n  [Read more about Google Gemini(PaLM) credentials](https://docs.n8n.io/integrations/buil"
      }
    },
    {
      "id": "6a90fc9c-133a-4f18-9921-86af48ca8cdc",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        704
      ],
      "parameters": {
        "width": 512,
        "height": 592,
        "content": "## 📊 Google Sheets Configuration\n\n**Required Sheet Name:** `\"Photos\"`  \nThe spreadsheet can have any name and contain any number of sheets, but it must include a sheet named `Photos`.\n\n**Required Head"
      }
    },
    {
      "id": "16ba7ad1-328a-4d00-bd76-07ec72a5e4f3",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3248,
        352
      ],
      "parameters": {
        "width": 1036,
        "height": 1024,
        "content": "## Automated image processing for e-commerce catalog\n\n### Use cases \n* Monitor a Google Drive folder, process each image based on the prompt defined in `Workflow Configuration` and save the new image "
      }
    },
    {
      "id": "fee74492-82f0-41ed-bca8-4d4168aa3cb6",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2112,
        896
      ],
      "parameters": {
        "width": 656,
        "height": 384,
        "content": "## ⚙️ Configuration\n\n* **`File Created` and `File Updated` nodes**:  \n  Update the `Folder` field in both Google Drive trigger nodes to point to the ID of the folder you want to monitor. You can also "
      }
    },
    {
      "id": "e103517d-f85f-46f2-9491-43d20591cf08",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -160,
        1056
      ]
    },
    {
      "id": "60d46eda-a9f0-405d-a77a-2a11c300fce5",
      "name": "Get Image Contents",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        1056
      ]
    },
    {
      "id": "570ed095-ac62-42c6-893b-ae8c8473d42e",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        416,
        1056
      ]
    },
    {
      "id": "b268283a-2069-4dd4-b5df-68a563b582b8",
      "name": "Save image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        320,
        608
      ]
    },
    {
      "id": "fdb5e876-5e73-4fd4-bfa7-d18eb58ad220",
      "name": "Gemini Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        32,
        1056
      ]
    },
    {
      "id": "9970cfd8-ad69-4bf0-a623-234911af8e92",
      "name": "Edit Image",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        128,
        672
      ]
    },
    {
      "id": "b11f0837-3508-446c-ae3d-ce665480da8c",
      "name": "Download Image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -64,
        672
      ]
    },
    {
      "id": "9b5ef10d-66e4-4436-b571-8f06dd53fc5a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        896
      ],
      "parameters": {
        "width": 832,
        "height": 384,
        "content": "## 🤓 Technical note\n\nThe Gemini node `Edit Image` replaces the following nodes. Using the detailed workflow may still be helpful is you need finer-grainer configuration (e.g., model selection). \n\nFeel"
      }
    },
    {
      "id": "b2318f31-dcfb-4562-b5da-b3d302bda9e4",
      "name": "Update Entry to Done",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        832,
        608
      ]
    },
    {
      "id": "783e886c-b912-454c-8cd4-270626d4c0dd",
      "name": "Update Entry to Error",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        832,
        800
      ]
    },
    {
      "id": "94e0f337-bc82-40f2-87f6-8fe237fe0f37",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        16
      ],
      "parameters": {
        "width": 224,
        "height": 336,
        "content": "## Mug 2\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955739/mug_2_owhc8n.jpg)"
      }
    },
    {
      "id": "a26bfb77-40d6-481f-89e7-5e38e4eafd22",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        0
      ],
      "parameters": {
        "width": 224,
        "height": 352,
        "content": "## Mug 2\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955740/mug_2_clean_elpb8h.png)"
      }
    },
    {
      "id": "e821cff4-c02b-4740-9245-ca5b4b4e12d4",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2160,
        16
      ],
      "parameters": {
        "width": 224,
        "height": 336,
        "content": "## Mug 1\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955738/mug_1_unlpi0.jpg)"
      }
    },
    {
      "id": "363fd8c8-f073-4609-9247-1feae8046317",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 224,
        "height": 352,
        "content": "## Mug 1\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955739/mug_1_clean_eqrfj6.png)"
      }
    },
    {
      "id": "c55c79bf-045a-41e0-aff1-c019f12fea4c",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1680,
        16
      ],
      "parameters": {
        "width": 224,
        "height": 336,
        "content": "## Speaker ![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955739/speaker_cugs54.jpg)"
      }
    },
    {
      "id": "2c1eb78f-b0f1-4544-b75b-b2a5b54328e2",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        0
      ],
      "parameters": {
        "width": 224,
        "height": 352,
        "content": "## Speaker ![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759955738/speaker_clean_cbjmvq.png)"
      }
    },
    {
      "id": "b6d8cc04-5fd2-4996-8d9a-c6657c722df3",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        16
      ],
      "parameters": {
        "width": 352,
        "height": 336,
        "content": "## Flowers\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759956515/flowers_nwjnfp.jpg)"
      }
    },
    {
      "id": "946aa565-298a-4d3a-a459-44ef78767d03",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        0
      ],
      "parameters": {
        "width": 352,
        "height": 352,
        "content": "## Flowers\n\n![](https://res.cloudinary.com/dhsktno2q/image/upload/v1759956721/flowers_clean_vefyd0.png)"
      }
    },
    {
      "id": "b7ade6bd-5873-44cd-9b7b-56c9a2a7b380",
      "name": "Create Entry",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -688,
        544
      ]
    }
  ],
  "connections": {
    "Edit Image": {
      "main": [
        [
          {
            "node": "Save image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Entry to Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save image": {
      "main": [
        [
          {
            "node": "Update Entry to Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set File ID": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Entry": {
      "main": [
        [
          {
            "node": "Download Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "File Created": {
      "main": [
        [
          {
            "node": "Set File ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "File Updated": {
      "main": [
        [
          {
            "node": "Set File ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini Image": {
      "main": [
        [
          {
            "node": "Get Image Contents",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Image": {
      "main": [
        [
          {
            "node": "Edit Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Gemini Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Image Contents": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Create Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}