Générateur d'images de produits IA - Modèles publics

Intermédiaire

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme Code, GoogleDrive, HttpRequest, GoogleSheets, ConvertToFile. Création automatisée d'images publicitaires pour produits avec OpenAI, Gemini et Google Workspace

Prérequis
  • Informations d'identification Google Drive API
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "name": "AI Product Image Generator - Public Template",
  "tags": [],
  "nodes": [
    {
      "id": "16c2ca1d-8986-4533-9bf2-aba9fd0efe61",
      "name": "télécharger_image_influenceur",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        960,
        320
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Get the Raw').item.json['Model url'] }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "YOUR_GOOGLE_DRIVE_CREDENTIAL_ID",
          "name": "Google Drive OAuth2 API"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9def7a44-23bb-4735-b363-901ac7191efb",
      "name": "téléverser_image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1040,
        736
      ],
      "parameters": {
        "name": "=Ad Image {{ $runIndex + 1 }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_OUTPUT_FOLDER_ID",
          "cachedResultUrl": "https://drive.google.com/drive/folders/YOUR_OUTPUT_FOLDER_ID",
          "cachedResultName": "Ad Images Output Folder"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "YOUR_GOOGLE_DRIVE_CREDENTIAL_ID",
          "name": "Google Drive OAuth2 API"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "42e5857c-b566-4ebd-9bc5-ef5cb900e3ce",
      "name": "Analyser l'image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -64,
        736
      ],
      "parameters": {
        "text": "Analyze the provided product image and generate a detailed ad-ready visual description. Focus on how the product can look its best in a promotional image. Include suggestions for:\n\nThe model (male or female) and how they should pose, hold, or interact with the product naturally.\n\nLighting, background, and environment that highlight the product.\n\nStyling, color harmony, and composition to make the product stand out.\n\nMood or emotion the ad should convey.\n\nDo not include details about the specific model in the image. The description should be suitable for any model and emphasize the product's features and presentation.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "resource": "image",
        "inputType": "base64",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI API"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "cf18eb77-e961-4d4f-b7c4-bd6ac81e1751",
      "name": "Déclencheur programmé",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -112,
        320
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ddd3fd77-5079-4c58-9bc1-cdb6862eb4f4",
      "name": "Télécharger l'image produit",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        336,
        320
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json['Product url'] }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "YOUR_GOOGLE_DRIVE_CREDENTIAL_ID",
          "name": "Google Drive OAuth2 API"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5a328387-8506-4e53-8347-7f76fcf0df38",
      "name": "Convertir binaire en texte",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        672,
        320
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "f30a0657-152a-4233-888c-3a71fc965bb4",
      "name": "Obtenir les données brutes",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        112,
        320
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.Month }} {{ $json['Day of month'] }}, {{ $json.Year }}",
              "lookupColumn": "Date"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SPREADSHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit",
          "cachedResultName": "Product Schedule Spreadsheet"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets OAuth2 API"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "8121809f-b1ec-49e7-bca3-5e1ee95b1b3b",
      "name": "influenceur_image_convertir_en_texte",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        1200,
        320
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "b4e31c1d-29d1-4214-80cb-bc9133b72a7b",
      "name": "Génération d'image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        224,
        736
      ],
      "parameters": {
        "url": "https://openrouter.ai/api/v1/chat/completions",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"google/gemini-2.5-flash-image-preview\",\n  \"prompt\": \"{{ $json.content }}\",\n  \"image_inputs\": [\n    {\n      \"image\": \"{{ $json.data }}\",\n      \"mime_type\": \"image/png\"\n    },\n    {\n      \"image\": \"{{ $('Convert Binary to Text').item.json.data }}\",\n      \"mime_type\": \"image/jpeg\"\n    }\n  ]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_OPENROUTER_API_KEY"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "cce44841-176e-48f5-9196-3abf2f284cca",
      "name": "nettoyage_base64",
      "type": "n8n-nodes-base.code",
      "position": [
        464,
        736
      ],
      "parameters": {
        "jsCode": "// Loop over all items\nreturn items.map(item => {\n  // Make a copy of the item to avoid mutation\n  let newItem = { ...item };\n\n  // Check if the path exists\n  if (newItem.json.choices && newItem.json.choices[0].images && newItem.json.choices[0].images[0].image_url) {\n    let imageData = newItem.json.choices[0].images[0].image_url.url;\n\n    // Remove the prefix\n    if (imageData.startsWith(\"data:image/png;base64,\")) {\n      imageData = imageData.replace(\"data:image/png;base64,\", \"\");\n    }\n\n    // Update the value\n    newItem.json.choices[0].images[0].image_url.url = imageData;\n  }\n\n  return newItem;\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "c91456d5-1e1f-4c70-90bf-94da0f9bfb46",
      "name": "Convertir en fichier",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        672,
        736
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "choices[0].images[0].image_url.url"
      },
      "typeVersion": 1.1
    },
    {
      "id": "cbc50b85-4b16-4aca-b26b-f5f7ba764c2b",
      "name": "Mettre à jour la feuille de calcul avec les résultats",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1264,
        736
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $('Get the Raw').item.json.Date }}",
            "Publish": "Publish",
            "Ad Image Ready To Post": "={{ $json.webContentLink }}"
          },
          "schema": [
            {
              "id": "Product url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Model url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ad Image Ready To Post",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Ad Image Ready To Post",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Publish",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Publish",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Date"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SPREADSHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit",
          "cachedResultName": "Product Schedule Spreadsheet"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets OAuth2 API"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "52545f4b-1a5c-4e4a-b9ed-f5a1788f536f",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        96
      ],
      "parameters": {
        "width": 1696,
        "height": 448,
        "content": "## Step 1: Trigger & Data Preparation\n- **Schedule Trigger** → Runs daily at a defined interval.  \n- **Google Sheets (Get Row)** → Fetch product + model image URLs for today's date.  \n- **Google Drive (Download Product Image)** → Get product image.  \n- **Google Drive (Download Influencer Image)** → Get influencer/model image.  \n- **Convert Binary → Base64 (Product)** → Prepare product image for AI input.  \n- **Convert Binary → Base64 (Influencer)** → Prepare influencer image for AI input.  \n\n***"
      },
      "typeVersion": 1
    },
    {
      "id": "b80eff1b-cdca-4679-bad1-646f0c3033eb",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        560
      ],
      "parameters": {
        "color": 5,
        "width": 1008,
        "height": 368,
        "content": "## Step 2: AI Analysis & Image Generation\n- **OpenAI (Analyze Image)** → Generate an ad-focused description (lighting, styling, background, mood).  \n- **HTTP Request (OpenRouter Gemini)** → Combine product + influencer images into a new ad-ready visual.  \n- **Code Node (Cleanup)** → Strip `data:image/...;base64,` prefix from the AI output.  \n- **Convert Base64 → File** → Turn AI output into a usable image file. "
      },
      "typeVersion": 1
    },
    {
      "id": "1a744b30-6ca9-45fb-b1b6-a5bb612302ba",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        560
      ],
      "parameters": {
        "color": 3,
        "width": 672,
        "height": 368,
        "content": "## Step 3: Save & Update\n- **Google Drive (Upload Image)** → Save the generated ad image in the correct folder.  \n- **Google Sheets (Append / Update Row)** → Store the Google Drive link + mark status as \"Publish\".  \n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "f30a0657-152a-4233-888c-3a71fc965bb4": {
      "main": [
        [
          {
            "node": "ddd3fd77-5079-4c58-9bc1-cdb6862eb4f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9def7a44-23bb-4735-b363-901ac7191efb": {
      "main": [
        [
          {
            "node": "cbc50b85-4b16-4aca-b26b-f5f7ba764c2b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "42e5857c-b566-4ebd-9bc5-ef5cb900e3ce": {
      "main": [
        [
          {
            "node": "b4e31c1d-29d1-4214-80cb-bc9133b72a7b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cce44841-176e-48f5-9196-3abf2f284cca": {
      "main": [
        [
          {
            "node": "c91456d5-1e1f-4c70-90bf-94da0f9bfb46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c91456d5-1e1f-4c70-90bf-94da0f9bfb46": {
      "main": [
        [
          {
            "node": "9def7a44-23bb-4735-b363-901ac7191efb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b4e31c1d-29d1-4214-80cb-bc9133b72a7b": {
      "main": [
        [
          {
            "node": "cce44841-176e-48f5-9196-3abf2f284cca",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cf18eb77-e961-4d4f-b7c4-bd6ac81e1751": {
      "main": [
        [
          {
            "node": "f30a0657-152a-4233-888c-3a71fc965bb4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5a328387-8506-4e53-8347-7f76fcf0df38": {
      "main": [
        [
          {
            "node": "16c2ca1d-8986-4533-9bf2-aba9fd0efe61",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ddd3fd77-5079-4c58-9bc1-cdb6862eb4f4": {
      "main": [
        [
          {
            "node": "5a328387-8506-4e53-8347-7f76fcf0df38",
            "type": "main",
            "index": 0
          },
          {
            "node": "42e5857c-b566-4ebd-9bc5-ef5cb900e3ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16c2ca1d-8986-4533-9bf2-aba9fd0efe61": {
      "main": [
        [
          {
            "node": "8121809f-b1ec-49e7-bca3-5e1ee95b1b3b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8121809f-b1ec-49e7-bca3-5e1ee95b1b3b": {
      "main": [
        [
          {
            "node": "b4e31c1d-29d1-4214-80cb-bc9133b72a7b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Création de contenu, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

1. Configuration du robot pour les détails de la playlist
Créer des playlists de musique YouTube générées par l'IA avec Suno, GPT-4, Runway et Creatomate
If
Set
Code
+
If
Set
Code
203 NœudsJoseph
Création de contenu
Créer des vidéos courtes virales pour bébés sur YouTube avec OpenAI, ElevenLabs et Hedra
Utiliser OpenAI, ElevenLabs et Hedra pour créer des vidéos virales de podcasts pour bébés sur YouTube
Code
Wait
Merge
+
Code
Wait
Merge
38 NœudsElectrabot
Création de contenu
Génération de podcasts viraux avec bébés célébrités en utilisant AI, Hedra et ElevenLabs
Générer des podcasts viraux avec des bébés célébrités avec AI, Hedra et ElevenLabs
Code
Wait
Merge
+
Code
Wait
Merge
35 NœudsLeeWei
Création de contenu
Création et téléchargement de vidéos AI vers Instagram, TikTok et YouTube
Création de vidéos pilotée par l'IA depuis Google Drive, téléchargement sur Instagram, TikTok et YouTube
If
Set
Code
+
If
Set
Code
53 NœudsDevCode Journey
Création de contenu
Version professionnelle de l'automatisation de blog WordPress (recherche approfondie) v2.1 sur le marché
Automatisation de la création de blog optimisé pour le SEO avec GPT-4o, Perplexity AI et support multilingue
If
Set
Xml
+
If
Set
Xml
125 NœudsDaniel Ng
Création de contenu
Automatisation de la création de contenu viral avec OpenAI, ElevenLabs et Fal.ai pour les vidéos, les podcasts et l'ASMR
Automatiser la création de contenu viral pour la vidéo, les podcasts et l'ASMR avec OpenAI, ElevenLabs et Fal.ai
Set
Code
Wait
+
Set
Code
Wait
97 NœudsAdam Crafts
Création de contenu
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds15
Catégorie2
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Avkash Kakdiya

Avkash Kakdiya

@itechnotion

🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34