PTENES
Inicio/Sistemas de video/Módulo 5.5

Sistemas de video · Módulo 5/6

Imágenes publicitarias con Nano Banana

Descripción

_(sin descripción)_

Recursos descargados

{ "name": "NanoBanana OpenRouter", "nodes": [ { "parameters": { "formTitle": "Generador de anuncios UGC", "formDescription": "Genera anuncios UGC a partir de la descripción y la foto del usuario", "formFields": { "values": [ { "fieldLabel": "Descripción de la imagen", "requiredField": true }, { "fieldLabel": "Imagen", "fieldType": "file", "acceptFileTypes": ".jpg, .png" } ] }, "options": {} }, "type": "n8n-nodes-base.formTrigger", "typeVersion": 2.3, "position": [ -320, -240 ], "id": "3b426721-8a1d-455f-b119-9421e8a76d60", "name": "On form submission", "webhookId": "52e0abd7-0e7b-427d-80d1-ba9f3558f456" }, { "parameters": { "inputDataFieldName": "Image", "driveId": { "__rl": true, "value": "My Drive", "mode": "list", "cachedResultName": "My Drive", "cachedResultUrl": "https://drive.google.com/drive/my-drive" }, "folderId": { "__rl": true, "value": "1MxaX7NrmmTHQtHLLEw3JqXqjMbNKU2lx", "mode": "list", "cachedResultName": "image urls", "cachedResultUrl": "https://drive.google.com/drive/folders/1MxaX7NrmmTHQtHLLEw3JqXqjMbNKU2lx" }, "options": {} }, "type": "n8n-nodes-base.googleDrive", "typeVersion": 3, "position": [ -144, -240 ], "id": "2de4ef12-1d72-427e-85ee-754b0190a405", "name": "Upload file", "credentials": { "googleDriveOAuth2Api": { "id": "tTKNlY1ktx7UntI0", "name": "Google Drive account" } } }, { "parameters": { "resource": "image", "operation": "analyze", "modelId": { "__rl": true, "value": "chatgpt-4o-latest", "mode": "list", "cachedResultName": "CHATGPT-4O-LATEST" },

"text": "=Analiza la imagen proporcionada y determina si representa principalmente un producto, un personaje o AMBOS.\n\n- Si la imagen es de un producto, devuelve el análisis en formato YAML con los siguientes campos:\n\nbrand_name: (Nombre de la marca que aparece en la imagen, si es visible o se puede inferir)\ncolor_scheme:\n - hex: (Código hexadecimal de cada color destacado que se use)\n name: (Nombre descriptivo del color)\nfont_style: (Describe la familia o el estilo de la fuente utilizada: serif/sans serif, negrita/delgada, etc.)\nvisual_description: (Una o dos oraciones completas que resuman lo que se ve en la imagen, sin tener en cuenta el fondo)\n\n- Si la imagen es de un personaje, devuelve el análisis en formato YAML con los siguientes campos:\n\ncharacter_name: (Nombre del personaje, si es visible o se puede inferir)\ncolor_scheme:\n - hex: (Código hexadecimal de cada color destacado que use el personaje)\n name: (Nombre descriptivo del color)\noutfit_style: (Descripción del estilo de vestimenta, los accesorios o los rasgos notables)\nvisual_description: (Una o dos oraciones completas que resuman el aspecto del personaje, sin tener en cuenta el fondo)\n\nDevuelve únicamente el YAML. No expliques ni agregues otros comentarios.\n\n\n- Si es AMBOS, devuelve ambas descripciones según las instrucciones anteriores en formato YAML\n", "imageUrls": "={{ $json.webContentLink }}", "simplify": false, "options": {} }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 16, -240 ], "id": "24f6e9ea-2455-44c7-a9f1-48b89f6204a7", "name": "Describe Img", "credentials": { "openAiApi": { "id": "zE5O89L0JjnRwfPU", "name": "OpenAi account" } } }, { "parameters": { "model": { "__rl": true, "value": "gpt-4.1-mini", "mode": "list", "cachedResultName": "gpt-4.1-mini" }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [ -544, ], "id": "31ed2fc5-3789-456d-9c1a-6db3685367f9", "name": "OpenAI Chat Model", "credentials": { "openAiApi": { "id": "zE5O89L0JjnRwfPU", "name": "OpenAi account" } } }, { "parameters": { "promptType": "define", "text": "=Tu tarea: Crea un prompt de imagen siguiendo las indicaciones de tu sistema.\n\nAsegúrate de que la imagen de referencia aparezca representada con la MAYOR PRECISIÓN posible en las imágenes resultantes, especialmente todo el texto.\n\n\nEstas son las descripciones del usuario:\n{{ $('On form submission').item.json['Image description'] }}\n\n\nDescripción de la imagen de referencia:\n{{ $('Describe Img').first().json.choices[0].message.content }}\n\n", "hasOutputParser": true, "options": {

"systemMessage": "=ROL: Creador de prompts para anuncios\n\nPropósito: Dada una URL de imagen o información del producto, escribir una descripción breve y natural para que un generador de imágenes o videos con IA la use en un anuncio.\n\nValores predeterminados:\n\nSi las instrucciones son vagas, coloca el producto junto a una persona en un entorno cotidiano adecuado.\nSi no se especifica el estilo, usa un realismo casual apropiado para anuncios.\n\nRealismo:\n\nQue parezca auténtico y cercano.\nImperfecciones sutiles: encuadre descentrado, luz natural, ligero desenfoque de movimiento, grano suave.\nMantén el texto del empaque exactamente como aparece. No inventes afirmaciones.\n\nIndicaciones de cámara (usa ≥2):\nfoto tomada con celular, encuadre a mano, composición descentrada, luz natural de interior, sombras suaves, ligero desenfoque de movimiento, exposición automática, aspecto sin pulir, grano suave.\n\n\nSalida:\nDevuelve únicamente un objeto JSON:\n{ \"image_prompt\": \"una cadena (≤120 palabras) que incluya sujeto, acción, tono, entorno, estilo/cámara, colores y precisión del texto\" }\n\nDiversidad:\n\nSi no se especifica, varía naturalmente el género y la etnia.\nEdad predeterminada: 21–38.\nPrefiere espacios reales.\n\nBuen ejemplo:\n\n{ \"image_prompt\": \"un joven profesional sostiene una botella de agua reutilizable mientras camina al trabajo; acción: bebe casualmente; tono: mañana enérgica; entorno: calle concurrida de la ciudad; estilo/cámara: foto tomada con celular, encuadre a mano, composición descentrada, luz natural, ligero desenfoque de movimiento; colores: destaca la botella azul brillante; precisión del texto: conserva el logotipo exactamente como aparece\" }" } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2, "position": [ -480, ], "id": "81622c7e-e50d-4419-a431-d2b58115cd4b", "name": "Image Prompt Generator" }, { "parameters": { "jsonSchemaExample": "{\n\t\"image_prompt\": \"string\"\n}", "autoFix": true }, "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "typeVersion": 1.3, "position": [ -368, ], "id": "e7f159bd-83d4-466d-aee9-ba4d4d86d170", "name": "Structured Output Parser" }, { "parameters": { "operation": "toBinary", "sourceProperty": "base", "options": {} }, "type": "n8n-nodes-base.convertToFile", "typeVersion": 1.1, "position": [ 192, ], "id": "617a6e32-916a-4ef3-8575-7f30f167cb21", "name": "Convert to File1" }, { "parameters": { "method": "POST", "url": "https://openrouter.ai/api/v1/chat/completions", "authentication": "predefinedCredentialType", "nodeCredentialType": "openRouterApi", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "Content-Type", "value": "application/json" } ] }, "sendBody": true, "specifyBody": "json",

"jsonBody": "={\n \"model\": \"google/gemini-2.5-flash-image-preview\",\n \"modalities\": [\"image\", \"text\"],\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"{{ $json.output.image_prompt.replace(/\\\"/g, '\\\\\\\"').replace(/\\n/g, '\\\\n') }}\"\n },\n {\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": \"{{ $('Upload file').item.json.webContentLink }}\"\n }\n }\n ]\n }\n ]\n}\n\n", "options": { "response": { "response": { "responseFormat": "json" } } } }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ -144, ], "id": "7214c3be-b59b-4cef-9d76-f116b05fc7a3", "name": "HTTP Request", "credentials": { "openRouterApi": { "id": "NrrkWrl89ut7kmrh", "name": "OpenRouter account 2" } } }, { "parameters": { "assignments": { "assignments": [ { "id": "0d3e1ea2-9386-47bf-8f8a-cce7f349dbe5", "name": "=data", "value": "={{$json[\"choices\"][0][\"message\"][\"images\"][0][\"image_url\"][\"url\"]}}", "type": "string" }, { "id": "393caf3e-e367-4490-8ee3-28bfc83318b1", "name": "=base", "value": "={{$json[\"choices\"][0][\"message\"][\"images\"][0][\"image_url\"][\"url\"].split(\",\")[1]}}", "type": "string" }, { "id": "f827ebfd-c7d3-48f1-8589-74965070f910", "name": "mime", "value": "={{$json[\"choices\"][0][\"message\"][\"images\"][0][\"image_url\"][\"url\"].match(/^data:([^;]+)/)[1]}}", "type": "string" }, { "id": "7de58815-fa11-46ba-acb4-eb4563120218", "name": "fileName", "value": ".png", "type": "string" } ] }, "options": {} }, "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [ 32, ], "id": "463632f6-2b25-40e3-81f9-3686b1b2d2ec", "name": "Edit Fields1" }, { "parameters": { "content": "# Upload Image & Description", "height": 288, "width": 656, "color": 6 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -432, -336 ], "id": "226d7112-a7ea-466f-94f7-e88a218f2eb6", "name": "Sticky Note2" }, { "parameters": { "content": "# Get New/Edited Image from NanoBanana via OpenRouter", "height": 448, "width": 1008, "color": 5 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -608, -16 ], "id": "ac044ae6-31b2-4c08-9e33-7abfae52c0ab", "name": "Sticky Note3"

} ], "pinData": {}, "connections": { "On form submission": { "main": [ [ { "node": "Upload file", "type": "main", "index": 0 } ] ] }, "Upload file": { "main": [ [ { "node": "Describe Img", "type": "main", "index": 0 } ] ] }, "Describe Img": { "main": [ [ { "node": "Image Prompt Generator", "type": "main", "index": 0 } ] ] }, "OpenAI Chat Model": { "ai_languageModel": [ [ { "node": "Image Prompt Generator", "type": "ai_languageModel", "index": 0 }, { "node": "Structured Output Parser", "type": "ai_languageModel", "index": 0 } ] ] }, "Image Prompt Generator": { "main": [ [ { "node": "HTTP Request", "type": "main", "index": 0 } ] ] }, "Structured Output Parser": { "ai_outputParser": [ [ { "node": "Image Prompt Generator", "type": "ai_outputParser", "index": 0 } ] ] }, "HTTP Request": { "main": [ [ { "node": "Edit Fields1", "type": "main", "index": 0 } ] ] }, "Edit Fields1": { "main": [ [ { "node": "Convert to File1", "type": "main", "index": 0 } ] ] } }, "active": false, "settings": { "executionOrder": "v1" }, "versionId": "c78cbaf2-7510-43aa-8c59-eb1e0014f05c", "meta": { "instanceId": "5f99b345c3a4501a22438ba5962ff6685e5e97ee4bd0a17cc04a19ed072b5c2a" }, "id": "DofPrW2OLpB8QJiO", "tags": [] }

← Anterior
ASMR de corte de planetas
Siguiente →
Anuncios UGC con IA