Génération automatisée de photos publicitaires pour le marketing de produits avec IA
Ceci est unAI, Marketing, IT Opsworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme Merge, GoogleDrive, HttpRequest, GoogleSheets, ConvertToFile, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Génération automatisée de photos publicitaires pour les campagnes AI de produit
- •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
Nœuds utilisés (18)
{
"meta": {
"instanceId": "05da4424857d12101f50fff429f8deac0b96048b0ed4cdf3b1b3691af23f7345"
},
"nodes": [
{
"id": "68c2216d-7393-4d64-a6e4-7b5e384389a4",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
420,
1020
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "DVUm005uVd1yUYSL",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "849df02a-cd4c-4c1a-80c9-84852eccd7d7",
"name": "Fusion",
"type": "n8n-nodes-base.merge",
"position": [
840,
500
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.1
},
{
"id": "b1fe6bd4-f20b-4e13-83ce-58aa80372fe5",
"name": "Lire les URLs d'Images",
"type": "n8n-nodes-base.googleSheets",
"position": [
-300,
480
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I/edit#gid=0",
"cachedResultName": "Product Images"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I/edit?usp=drivesdk",
"cachedResultName": "Image Generation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "LZ3LlQvYNg4X6eWJ",
"name": "ivanov"
}
},
"typeVersion": 4.5
},
{
"id": "3c69465c-e3c7-4536-80ae-70f2bac53414",
"name": "Télécharger les Images",
"type": "n8n-nodes-base.httpRequest",
"position": [
-100,
480
],
"parameters": {
"url": "={{ $json['Image-URL'] }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "8f099961-42bd-43c2-8258-64e12a2b9f4b",
"name": "Analyser les Images",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
260,
820
],
"parameters": {
"text": "Briefly explain in less than 5 words what this image is about.",
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "DVUm005uVd1yUYSL",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "9ec41380-5297-4786-8216-140255285edb",
"name": "Prompt de Photographie Produit",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
460,
820
],
"parameters": {
"text": "=Image description: {{ $json.content }}",
"messages": {
"messageValues": [
{
"message": "=Create a short prompt for an AI image generator that receives a photo of a product to ultimately produce professional product photography.\n\nIf the product is wearable, it must be worn by a human model with visible face; if it's not wearable, it must be held or interacted with by a model.\n\nThe product must ALWAYS be shown together with a human model with the model's face visible.\n\nEnsure that instructions for optimal realism, best lighting, best angle, best colors, best model positioning, etc. are included according to the product type.\n\nAlways formulate the prompt to refer to the product as \"this [PRODUCT]\" so the AI image generator knows that an input photo of the product is being submitted.\n\nAlways add subtle grain for a cinematic look.\nThe description of the product will be sent to you. Respond exclusively with the final prompt, nothing else, not even quotation marks."
}
]
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "e5fbd22f-4081-4f51-9906-4b0f2d58fa81",
"name": "Envoyer l'Image avec Prompt à OpenAI",
"type": "n8n-nodes-base.httpRequest",
"position": [
1100,
500
],
"parameters": {
"url": "https://api.openai.com/v1/images/edits",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "gpt-image-1"
},
{
"name": "prompt",
"value": "={{ $json.text }}"
},
{
"name": "image[]",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
},
{
"name": "quality",
"value": "high"
},
{
"name": "size",
"value": "1536x1024"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "DVUm005uVd1yUYSL",
"name": "OpenAi account"
}
},
"typeVersion": 4.2
},
{
"id": "4812c3d5-d5eb-4ee0-97cb-786d2a3a9da5",
"name": "Convertir Base64 en Fichier",
"type": "n8n-nodes-base.convertToFile",
"position": [
1300,
500
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data[0].b64_json"
},
"typeVersion": 1.1
},
{
"id": "b6cb024c-1f67-4df2-8bb1-1a3740212b4d",
"name": "Téléverser vers Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1600,
500
],
"parameters": {
"name": "={{ $('Analyze Images').item.json.content }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1mAV3g0eR5XZ2wknZTbcfZOkLlq8GZryP",
"cachedResultUrl": "https://drive.google.com/drive/folders/1mAV3g0eR5XZ2wknZTbcfZOkLlq8GZryP",
"cachedResultName": "Product Images"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "cGjALhySclQE3yCC",
"name": "ivanov"
}
},
"typeVersion": 3
},
{
"id": "7e855dc6-0a1b-44f3-83b8-64d76693de87",
"name": "Insérer l'URL de l'Image dans le Tableau",
"type": "n8n-nodes-base.googleSheets",
"position": [
1820,
500
],
"parameters": {
"columns": {
"value": {
"Output": "={{ $json.webViewLink }}",
"Prompt": "={{ $('Product Photography Prompt').item.json.text }}",
"Image-URL": "={{ $('Read Image URLs').item.json['Image-URL'] }}"
},
"schema": [
{
"id": "Image-URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Image-URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Prompt",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Prompt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Output",
"type": "string",
"display": true,
"required": false,
"displayName": "Output",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Image-URL"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I/edit#gid=0",
"cachedResultName": "Product Images"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17zQUytFekDK305wvgxYdEYm4N5QEQ1mrwsfccNn872I/edit?usp=drivesdk",
"cachedResultName": "Image Generation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "LZ3LlQvYNg4X6eWJ",
"name": "ivanov"
}
},
"typeVersion": 4.5
},
{
"id": "611b6d08-5a55-4085-840a-53a1b4eb24ed",
"name": "Note Adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
380
],
"parameters": {
"width": 600,
"height": 360,
"content": "## Extract Product Images from Template"
},
"typeVersion": 1
},
{
"id": "e27aa751-41d4-40a9-a72c-90e327388257",
"name": "Note Adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
720
],
"parameters": {
"color": 4,
"width": 600,
"height": 360,
"content": "## Analyze Images and Create Prompt for Product Photography"
},
"typeVersion": 1
},
{
"id": "ea5e9556-0485-4be9-a35f-32be69ed2de0",
"name": "Note Adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1020,
380
],
"parameters": {
"color": 5,
"width": 460,
"height": 360,
"content": "## gpt-image-1 creates the Product Photography"
},
"typeVersion": 1
},
{
"id": "9869ab24-02db-4b88-8429-b0f7f5a5bf2d",
"name": "Note Adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
380
],
"parameters": {
"color": 3,
"width": 520,
"height": 360,
"content": "## Output is uploaded to Drive and the Image URLs are saved in the table"
},
"typeVersion": 1
},
{
"id": "05c2e7af-6e3e-4171-ac28-444bec1eef49",
"name": "Lors du clic sur 'Tester le workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-500,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "88c861e1-6b7c-4597-899a-e0f13ad7994a",
"name": "Convertir en Fichier",
"type": "n8n-nodes-base.convertToFile",
"position": [
-80,
-120
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data[0].b64_json"
},
"typeVersion": 1.1
},
{
"id": "0edb4268-9e9e-41a9-9e6e-9bed3a73f0d9",
"name": "Note Adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-220
],
"parameters": {
"color": 6,
"width": 660,
"height": 260,
"content": "## Simple Image Generation\n### Don't forget the manual trigger ;)"
},
"typeVersion": 1
},
{
"id": "81b1385a-4a94-475c-9ee8-31dd5efb8dc7",
"name": "Générer l'Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
-260,
-120
],
"parameters": {
"url": "https://api.openai.com/v1/images/generations",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model",
"value": "gpt-image-1"
},
{
"name": "prompt",
"value": "A childrens book drawing of a veterinarian using a stethoscope to listen to the heartbeat of a baby otter."
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "DVUm005uVd1yUYSL",
"name": "OpenAi account"
}
},
"typeVersion": 4.2
}
],
"pinData": {
"Read Image URLs": [
{
"Output": "",
"Prompt": "",
"Image-URL": "https://www.chamelo.com/cdn/shop/files/image_143.png?v=1727088856",
"row_number": 2
},
{
"Output": "",
"Prompt": "",
"Image-URL": "https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcQLTiQY-Gk_H9uIqBRFFx_C_R8qQqwh2Ob1wWyUnEaLPMlrKxlu1OmQA_zfFWeoSLIFwRUZoNUlcABIZ9VUCx6dJ6ce455OHY2wn7khZdr0BKuFpvgoM6SlFg",
"row_number": 3
},
{
"Output": "",
"Prompt": "",
"Image-URL": "https://www.spierandmackay.com/files/catalog/PRODUCT_IMAGES/Spier&Mackay-JSBH2110-3-Taupe%20-%20Wool%20Scarf%20(3).jpg",
"row_number": 4
}
],
"When clicking 'Test workflow'": [
{}
]
},
"connections": {
"849df02a-cd4c-4c1a-80c9-84852eccd7d7": {
"main": [
[
{
"node": "e5fbd22f-4081-4f51-9906-4b0f2d58fa81",
"type": "main",
"index": 0
}
]
]
},
"8f099961-42bd-43c2-8258-64e12a2b9f4b": {
"main": [
[
{
"node": "9ec41380-5297-4786-8216-140255285edb",
"type": "main",
"index": 0
}
]
]
},
"81b1385a-4a94-475c-9ee8-31dd5efb8dc7": {
"main": [
[
{
"node": "88c861e1-6b7c-4597-899a-e0f13ad7994a",
"type": "main",
"index": 0
}
]
]
},
"3c69465c-e3c7-4536-80ae-70f2bac53414": {
"main": [
[
{
"node": "8f099961-42bd-43c2-8258-64e12a2b9f4b",
"type": "main",
"index": 0
},
{
"node": "849df02a-cd4c-4c1a-80c9-84852eccd7d7",
"type": "main",
"index": 0
}
]
]
},
"b1fe6bd4-f20b-4e13-83ce-58aa80372fe5": {
"main": [
[
{
"node": "3c69465c-e3c7-4536-80ae-70f2bac53414",
"type": "main",
"index": 0
}
]
]
},
"b6cb024c-1f67-4df2-8bb1-1a3740212b4d": {
"main": [
[
{
"node": "7e855dc6-0a1b-44f3-83b8-64d76693de87",
"type": "main",
"index": 0
}
]
]
},
"68c2216d-7393-4d64-a6e4-7b5e384389a4": {
"ai_languageModel": [
[
{
"node": "9ec41380-5297-4786-8216-140255285edb",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"4812c3d5-d5eb-4ee0-97cb-786d2a3a9da5": {
"main": [
[
{
"node": "b6cb024c-1f67-4df2-8bb1-1a3740212b4d",
"type": "main",
"index": 0
}
]
]
},
"9ec41380-5297-4786-8216-140255285edb": {
"main": [
[
{
"node": "849df02a-cd4c-4c1a-80c9-84852eccd7d7",
"type": "main",
"index": 1
}
]
]
},
"05c2e7af-6e3e-4171-ac28-444bec1eef49": {
"main": [
[
{
"node": "b1fe6bd4-f20b-4e13-83ce-58aa80372fe5",
"type": "main",
"index": 0
}
]
]
},
"e5fbd22f-4081-4f51-9906-4b0f2d58fa81": {
"main": [
[
{
"node": "4812c3d5-d5eb-4ee0-97cb-786d2a3a9da5",
"type": "main",
"index": 0
}
]
]
}
}
}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é ?
Avancé - Intelligence Artificielle, Marketing, Opérations IT
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
Julian Ivanov
@julian-ivanovI run an AI Automation Agency in Germany called Crystalflow AI and I like to make Youtube Videos about AI with a focus on n8n & automation.
Partager ce workflow