Automatisation de l'édition d'images et de la publication sur Instagram avec Nano Banana + GPT-5

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Wait, HttpRequest, GoogleSheets, Agent. Automatiser l'édition d'images et la publication sur Instagram avec Nano Banana et GPT-5

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Informations d'identification Google Drive 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": "011f9595948d922d10a25ff6695461f4658583189c25106651f3356ba60691ed",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "b550bf52-81d7-44b7-8a56-6582a635870b",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        1424,
        608
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_FOLDER_ID",
          "cachedResultUrl": "YOUR_FOLDER_URL",
          "cachedResultName": "Image Upload Folder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "63942884-b26a-48b2-8063-7b8c59494cf2",
      "name": "Requête POST Nano Banana",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1664,
        608
      ],
      "parameters": {
        "url": "https://api.wavespeed.ai/api/v3/google/nano-banana/edit",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "={\n  \"enable_base64_output\": false,\n  \"enable_sync_mode\": false,\n  \"images\": [\n    \"{{ $json.webContentLink }}\"\n  ],\n  \"output_format\": \"jpeg\",\n  \"prompt\": \"Clean up and declutter this apartment unit: remove all mess, trash, and personal items while keeping the original furniture, layout, and design intact. Tidy up surfaces, straighten objects, and make the space look neat and inviting. Enhance the lighting to appear bright and natural, similar to professional real-estate photography, without altering the structure or style of the apartment.\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "6c3c8e4d-a5ea-4287-8d71-ed732bb3a719",
      "name": "Attendre 15 secondes",
      "type": "n8n-nodes-base.wait",
      "position": [
        1824,
        608
      ],
      "webhookId": "319f45e0-26e7-457d-b5c5-560a8bba9f8b",
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "ff945721-7eaa-453e-a8aa-efd7abac7c6e",
      "name": "Récupérer le résultat du nœud Nano Banana",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2080,
        608
      ],
      "parameters": {
        "url": "=https://api.wavespeed.ai/api/v3/predictions/{{ $json.data.id }}/result",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "4f98a56c-3eb9-4fdc-a606-29b1e10981e7",
      "name": "Ajouter une ligne dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2576,
        608
      ],
      "parameters": {
        "columns": {
          "value": {
            "Image URL": "={{ $json.data.outputs[0] }}",
            "Timestamp": "={{ $now }}"
          },
          "schema": [
            {
              "id": "Image URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Image URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_NAME",
          "cachedResultUrl": "YOUR_SHEET_URL",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_ID",
          "cachedResultUrl": "YOUR_SHEET_URL",
          "cachedResultName": "Editted Image Log"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "0ecbc4d6-f6a8-49d3-9be7-e1d344f6ac6f",
      "name": "Si",
      "type": "n8n-nodes-base.if",
      "position": [
        2288,
        608
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b84517df-a71f-4e28-b744-35bb1e55b85f",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "completed"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "8538e41c-39e3-4923-9167-cfe17c687cdc",
      "name": "Attendre à nouveau 15 secondes",
      "type": "n8n-nodes-base.wait",
      "position": [
        2352,
        784
      ],
      "webhookId": "5e110e46-28c5-4144-9052-16821d0ea666",
      "parameters": {
        "amount": 15
      },
      "typeVersion": 1.1
    },
    {
      "id": "2dbc81b2-7bcb-4fb5-81da-0cbe1b92d05b",
      "name": "Téléverser vers Postiz",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3024,
        608
      ],
      "parameters": {
        "url": "https://api.postiz.com/public/v1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "c3184cf0-6101-48a7-9a44-4c800237f544",
      "name": "Publier sur Instagram",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3856,
        608
      ],
      "parameters": {
        "url": "https://api.postiz.com/public/v1/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"type\": \"now\",\n  \"shortLink\": false,\n  \"date\": \"{{ new Date($now).toISOString() }}\",\n  \"tags\": [],\n  \"posts\": [\n    {\n      \"integration\": { \"id\": \"cmeku38qa00cpo90yfw4ai6lt\" },\n      \"value\": [\n        {\n          \"content\": \"{{ $json.output }}\",\n          \"image\": [\n            {\n              \"id\": \"{{ $node['Upload to Postiz'].json.id }}\",\n              \"path\": \"{{ $node['Upload to Postiz'].json.path }}\"\n            }\n          ]\n        }\n      ],\n      \"settings\": {\n        \"post_type\": \"post\"\n      }\n    }\n  ]\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "c46c1b35-4bf0-4c90-9881-efd520df4b2a",
      "name": "Mettre à jour le journal",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3248,
        608
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Uploaded to Postiz",
            "Timestamp": "={{ $now }}",
            "Video Name and Description": "={{ $('Google Drive Trigger').item.json.name }}"
          },
          "schema": [
            {
              "id": "Video Name and Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Name and Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_NAME",
          "cachedResultUrl": "YOUR_SHEET_URL",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SHEET_ID",
          "cachedResultUrl": "YOUR_SHEET_URL",
          "cachedResultName": "Logs of Captioned Videos to Publish"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "cb42c1d0-795f-4605-93f3-e13f6944654b",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        3536,
        816
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5",
          "cachedResultName": "gpt-5"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "2e6dd8f6-460c-483e-a3d8-385d519ca7da",
      "name": "Agent de légende",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3488,
        608
      ],
      "parameters": {
        "text": "={{ $json['Video Name and Description'] }}",
        "options": {
          "systemMessage": "=You are an expert Instagram caption writer.\nYour task is to take the image prompt provided by the user and generate a short, engaging caption for Instagram or Tik-Tok Reels\n\nCaption Guidelines\n\n\nTone: friendly, impactful and exciting\n\n##Output Rules\nDo not use special characters like {} ! %$&*\nReturn only one final caption per request.\nDo not include explanations or formatting outside of the caption itself."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "3ab434fd-3256-4687-92fa-0246078c391c",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3456,
        320
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 800,
        "content": "Caption for IG"
      },
      "typeVersion": 1
    },
    {
      "id": "58a237a0-8a4b-4c75-875d-833731a2c313",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3760,
        320
      ],
      "parameters": {
        "color": 2,
        "width": 304,
        "height": 800,
        "content": "Post to IG"
      },
      "typeVersion": 1
    },
    {
      "id": "1f080554-b4ef-42c9-8e6b-ecbeb78dc093",
      "name": "Obtenir l'image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2816,
        608
      ],
      "parameters": {
        "url": "={{ $json['Image URL'] }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "dff121ad-7120-452e-a4ae-9e33a1dfc4b4",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2784,
        320
      ],
      "parameters": {
        "color": 3,
        "width": 656,
        "height": 800,
        "content": "Get Image and Upload"
      },
      "typeVersion": 1
    },
    {
      "id": "d8d5a377-1a6f-4684-851a-5f51adaf10f3",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1984,
        320
      ],
      "parameters": {
        "color": 4,
        "width": 784,
        "height": 800,
        "content": "Get Results from Nano Banana"
      },
      "typeVersion": 1
    },
    {
      "id": "801e4aaf-ce66-4c03-9fe8-9a0cab42d8ed",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        320
      ],
      "parameters": {
        "color": 5,
        "height": 800,
        "content": "Drive Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "4c8622a9-d705-4444-93ed-513a4c033b80",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        320
      ],
      "parameters": {
        "width": 368,
        "height": 800,
        "content": "Drive Trigger"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "0ecbc4d6-f6a8-49d3-9be7-e1d344f6ac6f": {
      "main": [
        [
          {
            "node": "4f98a56c-3eb9-4fdc-a606-29b1e10981e7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "8538e41c-39e3-4923-9167-cfe17c687cdc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1f080554-b4ef-42c9-8e6b-ecbeb78dc093": {
      "main": [
        [
          {
            "node": "2dbc81b2-7bcb-4fb5-81da-0cbe1b92d05b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c46c1b35-4bf0-4c90-9881-efd520df4b2a": {
      "main": [
        [
          {
            "node": "2e6dd8f6-460c-483e-a3d8-385d519ca7da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6c3c8e4d-a5ea-4287-8d71-ed732bb3a719": {
      "main": [
        [
          {
            "node": "ff945721-7eaa-453e-a8aa-efd7abac7c6e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2e6dd8f6-460c-483e-a3d8-385d519ca7da": {
      "main": [
        [
          {
            "node": "c3184cf0-6101-48a7-9a44-4c800237f544",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2dbc81b2-7bcb-4fb5-81da-0cbe1b92d05b": {
      "main": [
        [
          {
            "node": "c46c1b35-4bf0-4c90-9881-efd520df4b2a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cb42c1d0-795f-4605-93f3-e13f6944654b": {
      "ai_languageModel": [
        [
          {
            "node": "2e6dd8f6-460c-483e-a3d8-385d519ca7da",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "8538e41c-39e3-4923-9167-cfe17c687cdc": {
      "main": [
        [
          {
            "node": "ff945721-7eaa-453e-a8aa-efd7abac7c6e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4f98a56c-3eb9-4fdc-a606-29b1e10981e7": {
      "main": [
        [
          {
            "node": "1f080554-b4ef-42c9-8e6b-ecbeb78dc093",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b550bf52-81d7-44b7-8a56-6582a635870b": {
      "main": [
        [
          {
            "node": "63942884-b26a-48b2-8063-7b8c59494cf2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "63942884-b26a-48b2-8063-7b8c59494cf2": {
      "main": [
        [
          {
            "node": "6c3c8e4d-a5ea-4287-8d71-ed732bb3a719",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ff945721-7eaa-453e-a8aa-efd7abac7c6e": {
      "main": [
        [
          {
            "node": "0ecbc4d6-f6a8-49d3-9be7-e1d344f6ac6f",
            "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é - 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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds19
Catégorie2
Types de nœuds8
Description de la difficulté

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

Auteur
Meak

Meak

@meak

I help people build $5k+/month online by starting their own AI agency. Without BS.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34