Producto-IA

Avanzado

Este es unautomatización que contiene 18 nodos.Utiliza principalmente nodos como Set, Code, Filter, GoogleDrive, HttpRequest. usoGemini 2.5 Flash AI增强Google云端硬盘图像

Requisitos previos
  • Credenciales de API de Google Drive
  • Pueden requerirse credenciales de autenticación para la API de destino

Categoría

-
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "CTqDPrpw33Mx1pP2",
  "meta": {
    "instanceId": "d1b9b74c805fea7fca1b903ee192d1d4090b516d3c254da86beb2f13b7c2ed2e",
    "templateCredsSetupCompleted": true
  },
  "name": "product-ia",
  "tags": [],
  "nodes": [
    {
      "id": "729ee875-0ba7-4a2a-95d7-fbd17efcb46f",
      "name": "Recorrer elementos",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -608,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8d616ad2-1bd5-4754-86b6-309ddfbcd6e1",
      "name": "to base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -192,
        288
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "fadb23df-a7fa-421b-afd0-f3805e73577b",
      "name": "banana-request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        288
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"generationConfig\": {\n    \"temperature\": 1,\n    \"topP\": 0.95,\n    \"responseModalities\": [\n      \"IMAGE\"    \n]\n  },\n  \"contents\": [\n    {\n      \"role\": \"user\",\n      \"parts\": [\n        {\n          \"text\": {{ JSON.stringify($('Loop Over Items').item.json.promt) }}\n        },\n        {\n          \"inline_data\": {\n            \"mime_type\": \"{{ $json.mime || 'image/jpeg' }}\",\n            \"data\": \"{{ $json.data }}\"\n          }\n        }\n      ]\n    }\n  ]\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googlePalmApi"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "OA44Rx1BU13NCZ0K",
          "name": "Google Gemini(PaLM) Api account 2"
        }
      },
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "9e5f8617-2adc-48ff-8fa5-2e1615fc8bc8",
      "name": "config-data",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1b7b1b4d-5816-4bf8-9a55-71228beb4158",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "de4eae64-9572-4f19-812e-207b279450e4",
              "name": "mimeType",
              "type": "string",
              "value": "={{ $json.mimeType }}"
            },
            {
              "id": "ae880747-407d-4dd1-8330-97ed5916da86",
              "name": "id",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "658e7776-e6c6-4f45-a72e-df6b25f578b8",
              "name": "promt",
              "type": "string",
              "value": "={{ $('promt').item.json.promt }}\n**no devuelvas texto, solo la imagen."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c1e9280b-0296-453a-a082-e04cc8e17238",
      "name": "download-file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -384,
        288
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "934ie2jZ0wmZ7EM4",
          "name": "google-drive-info@innovatex"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "0184b05e-caba-4633-8833-39d759444d2c",
      "name": "map-banana-response",
      "type": "n8n-nodes-base.set",
      "position": [
        192,
        288
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6ad020c0-aabe-4687-a9e5-e26855038c2e",
              "name": "base64File",
              "type": "string",
              "value": "={{ ($json.candidates?.[0]?.content?.parts || [])\n     .find(p => p?.inlineData?.data)?.inlineData?.data\n   ?? '' }}\n"
            },
            {
              "id": "b8980368-9f10-4b99-91b2-426c0b5b10e5",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "2cbc4f5f-56a6-4924-80ac-36af06b7ea1a",
      "name": "to file",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        368,
        288
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $('download-file').item.json.name }}"
        },
        "operation": "toBinary",
        "sourceProperty": "base64File"
      },
      "typeVersion": 1.1
    },
    {
      "id": "8e55ade0-e8dc-4191-a412-16ded6c8d45f",
      "name": "upload-result",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        528,
        288
      ],
      "parameters": {
        "name": "={{ $binary.data.fileName }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('destination_folder').item.json.id }}"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "934ie2jZ0wmZ7EM4",
          "name": "google-drive-info@innovatex"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "5a73c2f9-7958-4fe3-b1d8-48eec637bf0f",
      "name": "get files",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        80
      ],
      "parameters": {
        "url": "https://www.googleapis.com/drive/v3/files",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "='{{ $('origin_folder').item.json.id }}' in parents and trashed=false"
            },
            {
              "name": "fields",
              "value": "nextPageToken,files(id,name,mimeType,size,modifiedTime,webViewLink,webContentLink)"
            },
            {
              "name": "pageSize",
              "value": "1000"
            }
          ]
        },
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "934ie2jZ0wmZ7EM4",
          "name": "google-drive-info@innovatex"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2a5d63a0-1b12-4b47-b6b1-15455e09b7a5",
      "name": "Filtrar",
      "type": "n8n-nodes-base.filter",
      "position": [
        288,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9525fec4-05f1-43b0-a304-91664a8a524a",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.mimeType }}",
              "rightValue": "image"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3652eadc-654e-41a1-a244-339d2278c7a8",
      "name": "map table",
      "type": "n8n-nodes-base.code",
      "position": [
        112,
        80
      ],
      "parameters": {
        "jsCode": "// items[0].json.files => Array de archivos\nconst files = (items[0]?.json?.files) ?? [];\n\nreturn files.map(f => ({\n  json: {\n    id: f.id,\n    name: f.name,\n    mimeType: f.mimeType,\n    webContentLink: f.webContentLink,\n    webViewLink: f.webViewLink,\n    modifiedTime: f.modifiedTime,\n    // convierte size a número si viene como string\n    size: f.size ? Number(f.size) : null,\n  }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "7e19951e-2b71-49a1-8028-be4b7a680d24",
      "name": "init",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -672,
        80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "47703d0d-9a31-4772-ad71-ac41c0b7c066",
      "name": "promt",
      "type": "n8n-nodes-base.set",
      "position": [
        -528,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "dd6f9abd-a587-46ec-8f52-df5090ade50d",
              "name": "promt",
              "type": "string",
              "value": "Agrega un fondo realista y limpio para un producto de pañales en la foto.|El entorno debe transmitir cuidado, suavidad y confort, resaltando al producto sin distraer.Usa fondos como:superficies de madera clara o blanca,telas suaves (algodón, manta, lino),habitaciones luminosas para bebé,Evita colores fuertes, saturados o demasiado oscuros.Mantén la atención en el pañal y que el fondo solo complemente.el producto debería ocupar el 90% del espacio."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c86cf75b-09fc-4a8c-b075-befcc0b1a786",
      "name": "origin_folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -368,
        80
      ],
      "parameters": {
        "limit": 1,
        "filter": {},
        "options": {},
        "resource": "fileFolder",
        "queryString": "imagenes_sin_procesar"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "qvPRrYD4jHBE3ENc",
          "name": "urbaser-folder"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "617bdb61-f68a-4cac-9b5c-2a582945110b",
      "name": "destination_folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -208,
        80
      ],
      "parameters": {
        "limit": 1,
        "filter": {},
        "options": {},
        "resource": "fileFolder",
        "queryString": "imagenes_sin_procesar"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "934ie2jZ0wmZ7EM4",
          "name": "google-drive-info@innovatex"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "c2dca6af-2c01-4ed3-a617-506358d0a2db",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -192
      ],
      "parameters": {
        "width": 880,
        "height": 96,
        "content": "1 – Overview\n\nThis workflow processes images from **Google Drive** using **Google Gemini**.\nFlow: Origin → Filter images → Download → Base64 → Gemini → New image → Upload to destination folder.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "03593940-5575-4717-b453-a2b61613855c",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        -48
      ],
      "parameters": {
        "width": 368,
        "height": 96,
        "content": "Requirements\nActive credentials for Google Drive and Gemini API.\nOnly processes files where mimeType contains \"image\"."
      },
      "typeVersion": 1
    },
    {
      "id": "80dac2d0-e6db-4ac4-b486-83b325456156",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -48
      ],
      "parameters": {
        "width": 496,
        "height": 96,
        "content": "2 – Nodes to configure\npromt → edit the text with your instructions for Gemini (output style).\norigin_folder → in Search Query, set the name of the source folder.\ndestination_folder → in Search Query, set the name of the target folder."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bfd67920-168e-4b04-aa2d-545ad3063ce2",
  "connections": {
    "7e19951e-2b71-49a1-8028-be4b7a680d24": {
      "main": [
        [
          {
            "node": "47703d0d-9a31-4772-ad71-ac41c0b7c066",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47703d0d-9a31-4772-ad71-ac41c0b7c066": {
      "main": [
        [
          {
            "node": "c86cf75b-09fc-4a8c-b075-befcc0b1a786",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "9e5f8617-2adc-48ff-8fa5-2e1615fc8bc8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2cbc4f5f-56a6-4924-80ac-36af06b7ea1a": {
      "main": [
        [
          {
            "node": "8e55ade0-e8dc-4191-a412-16ded6c8d45f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5a73c2f9-7958-4fe3-b1d8-48eec637bf0f": {
      "main": [
        [
          {
            "node": "3652eadc-654e-41a1-a244-339d2278c7a8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3652eadc-654e-41a1-a244-339d2278c7a8": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8d616ad2-1bd5-4754-86b6-309ddfbcd6e1": {
      "main": [
        [
          {
            "node": "fadb23df-a7fa-421b-afd0-f3805e73577b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e5f8617-2adc-48ff-8fa5-2e1615fc8bc8": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c1e9280b-0296-453a-a082-e04cc8e17238": {
      "main": [
        [
          {
            "node": "8d616ad2-1bd5-4754-86b6-309ddfbcd6e1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c86cf75b-09fc-4a8c-b075-befcc0b1a786": {
      "main": [
        [
          {
            "node": "617bdb61-f68a-4cac-9b5c-2a582945110b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8e55ade0-e8dc-4191-a412-16ded6c8d45f": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fadb23df-a7fa-421b-afd0-f3805e73577b": {
      "main": [
        [
          {
            "node": "0184b05e-caba-4633-8833-39d759444d2c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "c1e9280b-0296-453a-a082-e04cc8e17238",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "617bdb61-f68a-4cac-9b5c-2a582945110b": {
      "main": [
        [
          {
            "node": "5a73c2f9-7958-4fe3-b1d8-48eec637bf0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0184b05e-caba-4633-8833-39d759444d2c": {
      "main": [
        [
          {
            "node": "2cbc4f5f-56a6-4924-80ac-36af06b7ea1a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos18
Categoría-
Tipos de nodos10
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34