Génération automatisée de photos publicitaires pour le marketing de produits avec IA

Avancé

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

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": {
    "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
          }
        ]
      ]
    }
  }
}
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é ?

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds18
Catégorie3
Types de nœuds10
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Julian Ivanov

Julian Ivanov

@julian-ivanov

I 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.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34