Workflow n8n

Automatisation Google Sheets avec n8n : création d'images 3D

Ce workflow n8n a pour objectif de transformer des images en modèles 3D en utilisant des données provenant de Google Sheets. Il s'adresse principalement aux entreprises du secteur créatif, aux designers et aux développeurs souhaitant automatiser le processus de création de contenu 3D à partir d'images statiques. Grâce à cette automatisation n8n, les utilisateurs peuvent gagner du temps et réduire les erreurs manuelles lors de la conversion d'images en modèles 3D. Le workflow commence par un déclencheur manuel, permettant à l'utilisateur de tester le flux à tout moment. Ensuite, il effectue une requête HTTP pour obtenir le statut du processus de création d'image 3D. Après une attente de 60 secondes, le workflow vérifie si la création a été complétée. Si c'est le cas, il met à jour les résultats dans Google Sheets, sinon il continue le processus. Les étapes suivantes incluent la récupération de nouvelles images, la création de l'image 3D via une autre requête HTTP, puis l'obtention de l'URL et du fichier de l'image 3D. Enfin, l'image 3D est téléchargée sur Google Drive. Ce workflow offre une solution efficace pour automatiser la création de contenu 3D, permettant ainsi aux entreprises de se concentrer sur leur créativité sans se soucier des tâches répétitives. Tags clés : Google Sheets, automatisation, n8n.

Catégorie: Manual · Tags: Google Sheets, automatisation, n8n, 3D, création de contenu0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Détail des nœuds du workflow n8n

  • When clicking ‘Test workflow’

    Déclenche le workflow lorsque l'utilisateur clique sur 'Test workflow'.

  • Get status

    Effectue une requête HTTP pour obtenir le statut à partir d'une URL spécifiée.

  • Wait 60 sec.

    Met le workflow en pause pendant 60 secondes.

  • Schedule Trigger

    Déclenche le workflow selon un calendrier défini.

  • Sticky Note3

    Crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note4

    Crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Completed?

    Évalue une condition pour déterminer si une action doit être effectuée.

  • Update result

    Met à jour les résultats dans une feuille Google Sheets selon les colonnes spécifiées.

  • Set data

    Définit des données à utiliser dans le workflow en fonction des affectations spécifiées.

  • Sticky Note5

    Crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Sticky Note6

    Crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Sticky Note7

    Crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Get new image

    Récupère une nouvelle image à partir d'une feuille Google Sheets selon les options et filtres spécifiés.

  • Create 3D Image

    Effectue une requête HTTP pour créer une image 3D avec les paramètres spécifiés.

  • Get Url 3D image

    Effectue une requête HTTP pour obtenir l'URL d'une image 3D à partir d'une URL spécifiée.

  • Get File 3D image

    Effectue une requête HTTP pour obtenir un fichier d'image 3D à partir d'une URL spécifiée.

  • Upload 3D Image

    Télécharge une image 3D sur Google Drive dans un dossier spécifié.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "XiwLd0JwGmDoY0mr",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
    "templateCredsSetupCompleted": true
  },
  "name": "Image-to-3D",
  "tags": [],
  "nodes": [
    {
      "id": "8cc77575-854f-4359-8faa-fc78b8c23b65",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -220,
        400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0dc7e6b8-43b8-4b9a-aa7a-4a100598162f",
      "name": "Get status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        400
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/trellis/requests/{{ $('Create 3D Image').item.json.request_id }}/status ",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7540df1c-35e2-4ac5-871d-4d8410217979",
      "name": "Wait 60 sec.",
      "type": "n8n-nodes-base.wait",
      "position": [
        660,
        400
      ],
      "webhookId": "e10e9912-38e7-4e1f-ad7e-52b1e6a65d79",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "44c4b506-2a14-40ca-a75f-7af86ef5a9af",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -220,
        260
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ca8b3bcd-3eb6-4723-b2ea-a973582d46af",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -860
      ],
      "parameters": {
        "color": 3,
        "width": 740,
        "height": 520,
        "content": "# Image-to-3D\n\n\nThis workflow allows users to convert a 2D image into a 3D model by integrating multiple AI and web services. The process begins with a user uploading or providing an image URL, which is then sent to a generative AI model capable of interpreting the content and generating a 3D representation in .glb format. The model is then stored and a download link is returned to the user.\n\n![image](https://i.postimg.cc/1Xd20z4R/3d.png)"
      },
      "typeVersion": 1
    },
    {
      "id": "2230e7a5-225d-4538-b091-a9fbeedb1323",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -300
      ],
      "parameters": {
        "width": 740,
        "height": 200,
        "content": "## STEP 1 - GOOGLE SHEET\nCreate a [Google Sheet like this](https://docs.google.com/spreadsheets/d/1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY/edit?usp=sharing).\n\nPlease insert:\n- in the \"IMAGE MODEL\" column the basic image of the model to dress\n\nLeave the \"3D RESULT\" column unfilled. It will be inserted by the system once the image has been created"
      },
      "typeVersion": 1
    },
    {
      "id": "3aad3211-e6fc-4e4b-9c59-7dd82827a43b",
      "name": "Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        1020,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "383d112e-2cc6-4dd4-8985-f09ce0bd1781",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6ad70838-dbf4-4cb1-9b61-4cf6e1fcdf6a",
      "name": "Update result",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        440,
        780
      ],
      "parameters": {
        "columns": {
          "value": {
            "row_number": "={{ $('Get new image').item.json.row_number }}",
            "IMAGE RESULT": "={{ $('Get Url 3D image').item.json.model_mesh.url }}"
          },
          "schema": [
            {
              "id": "IMAGE MODEL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE MODEL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE PRODUCT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE PRODUCT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "PRODUCT ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "PRODUCT ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE RESULT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "IMAGE RESULT",
              "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": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/11ebWJvwwXHgvQld9kxywKQUvIoBw6xMa0g0BuIqHDxE/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY/edit?usp=drivesdk",
          "cachedResultName": "Image to 3D"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "239b45b3-94cc-43a9-aa2e-2c85725f4cc0",
      "name": "Set data",
      "type": "n8n-nodes-base.set",
      "position": [
        220,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c713d31f-9abd-496a-ac79-e8e2efe60aa0",
              "name": "image",
              "type": "string",
              "value": "={{ $json['IMAGE'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "70908a7d-72a5-4131-a82b-ed455a453fd5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        120
      ],
      "parameters": {
        "width": 740,
        "height": 100,
        "content": "## STEP 3 - MAIN FLOW\nStart the workflow manually or periodically by hooking the \"Schedule Trigger\" node. It is recommended to set it at 5 minute intervals."
      },
      "typeVersion": 1
    },
    {
      "id": "d81f8aa0-3302-4a26-9425-aeb2a87674e7",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -60
      ],
      "parameters": {
        "width": 740,
        "height": 140,
        "content": "## STEP 2 - GET API KEY (YOURAPIKEY)\nCreate an account [here](https://fal.ai/) and obtain API KEY.\nIn the node \"Create Image\" set \"Header Auth\" and set:\n- Name: \"Authorization\"\n- Value: \"Key YOURAPIKEY\""
      },
      "typeVersion": 1
    },
    {
      "id": "484d029d-b88f-48bb-b487-e7a50b47eb7d",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        340
      ],
      "parameters": {
        "width": 180,
        "height": 200,
        "content": "Set API Key created in Step 2"
      },
      "typeVersion": 1
    },
    {
      "id": "7061d7c1-7da8-473c-98a3-57dc15def557",
      "name": "Get new image",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        0,
        400
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "3D RESULT"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY/edit#gid=0",
          "cachedResultName": "Foglio1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1C0Et6X3Zwr_6CxeNjhLpDwjAfIGeUvLGFawckKb0utY/edit?usp=drivesdk",
          "cachedResultName": "Image to 3D"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "JYR6a64Qecd6t8Hb",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "edcdc4f0-4e7f-4fec-af9c-bbe8bf6bd8e6",
      "name": "Create 3D Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        400
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/trellis",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"image_url\": \"{{ $json.image }}\",\n  \"ss_guidance_strength\": 7.5,\n  \"ss_sampling_steps\": 12,\n  \"slat_guidance_strength\": 3,\n  \"slat_sampling_steps\": 12,\n  \"mesh_simplify\": 0.95,\n  \"texture_size\": 1024\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9ac6f843-090f-4c15-88e7-46ee494ed1b9",
      "name": "Get Url 3D image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -220,
        780
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/trellis/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "daOZafXpRXLtoLUV",
          "name": "Fal.run API"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a02ac260-c88a-4c5a-9fc6-7230b95c462b",
      "name": "Get File 3D image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        780
      ],
      "parameters": {
        "url": "={{ $json.model_mesh.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "311be624-4707-4361-a58a-ee90ff42490c",
      "name": "Upload 3D Image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        220,
        780
      ],
      "parameters": {
        "name": "={{ $now.format('yyyyLLddHHmmss') }}-{{ $('Get Url 3D image').item.json.model_mesh.file_name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1aHRwLWyrqfzoVC8HoB-YMrBvQ4tLC-NZ",
          "cachedResultName": "Fal.run"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2f0d3488-25ac-4332-a8e3-62d7b34b96ae",
  "connections": {
    "Set data": {
      "main": [
        [
          {
            "node": "Create 3D Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Completed?": {
      "main": [
        [
          {
            "node": "Get Url 3D image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 60 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get status": {
      "main": [
        [
          {
            "node": "Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 60 sec.": {
      "main": [
        [
          {
            "node": "Get status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get new image": {
      "main": [
        [
          {
            "node": "Set data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update result": {
      "main": [
        []
      ]
    },
    "Create 3D Image": {
      "main": [
        [
          {
            "node": "Wait 60 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload 3D Image": {
      "main": [
        [
          {
            "node": "Update result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Url 3D image": {
      "main": [
        [
          {
            "node": "Get File 3D image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get File 3D image": {
      "main": [
        [
          {
            "node": "Upload 3D Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Get new image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux designers, développeurs et agences créatives qui cherchent à automatiser la conversion d'images en modèles 3D. Il est idéal pour les entreprises de taille petite à moyenne, ayant une certaine familiarité avec les outils d'automatisation et souhaitant optimiser leur processus de création.

Problème résolu

Ce workflow résout le problème de la lenteur et de l'inefficacité du processus de création d'images 3D à partir d'images 2D. En automatisant cette tâche, il élimine les erreurs humaines potentielles et réduit le temps nécessaire pour obtenir des modèles 3D. Les utilisateurs peuvent ainsi se concentrer sur des tâches plus créatives et stratégiques, tout en bénéficiant d'une production de contenu plus rapide et plus fiable.

Étapes du workflow

Étape 1 : L'utilisateur déclenche manuellement le workflow. Étape 2 : Une requête HTTP est effectuée pour obtenir le statut de la création d'image 3D. Étape 3 : Le workflow attend 60 secondes pour permettre le traitement. Étape 4 : Il vérifie si la création est complétée. Étape 5 : Si oui, les résultats sont mis à jour dans Google Sheets. Étape 6 : Sinon, le workflow continue en récupérant de nouvelles images. Étape 7 : Une nouvelle requête HTTP est envoyée pour créer l'image 3D. Étape 8 : L'URL et le fichier de l'image 3D sont récupérés. Étape 9 : Enfin, l'image 3D est téléchargée sur Google Drive.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL des requêtes HTTP pour les adapter à votre API de création d'images 3D. Assurez-vous également d'ajuster les paramètres de Google Sheets, tels que le nom de la feuille et les colonnes à mettre à jour. Vous pouvez brancher d'autres outils en ajoutant des noeuds supplémentaires, comme des notifications par email ou des intégrations avec d'autres services de stockage. Pour sécuriser le flux, pensez à gérer les authentifications nécessaires pour les requêtes HTTP et les accès à Google Drive.