Generación de videos a partir de indicaciones de texto con GPT-5 y Google Veo-3
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 20 nodos.Utiliza principalmente nodos como If, Set, Wait, AimlApi, HttpRequest. Generar video a partir de indicaciones de texto con GPT-5 y Google Veo-3
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (20)
Categoría
{
"meta": {
"instanceId": "58e06bfa452afe2836b2ce0aa089999394af0b93c2a455035675d99d83112fa1",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "88472c30-7089-4a1b-8cd0-86773af42a69",
"name": "Cuando se recibe un mensaje en el chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-2272,
3136
],
"webhookId": "ddf5d4ac-9ed6-45be-9ce4-8c020e50ca13",
"parameters": {
"options": {}
},
"typeVersion": 1.3
},
{
"id": "f6ebf45d-eefa-4a2c-a91e-7e722905b937",
"name": "Nota adhesiva7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1584,
3056
],
"parameters": {
"width": 246,
"height": 248,
"content": "Set API Key created in Step 2"
},
"typeVersion": 1
},
{
"id": "457e9064-6c7a-4b8d-8b83-2bda9cca1e10",
"name": "Nota adhesiva9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-256,
2976
],
"parameters": {
"color": 5,
"width": 182,
"height": 448,
"content": "## Get and download your video"
},
"typeVersion": 1
},
{
"id": "e92714de-492c-449e-b85e-cb7546035de2",
"name": "Nota adhesiva10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2320,
2976
],
"parameters": {
"color": 5,
"width": 710,
"height": 448,
"content": "### Start and Prompt Enhancing"
},
"typeVersion": 1
},
{
"id": "fe757385-c6bc-48bf-b594-61c33595c4f8",
"name": "Obtener archivo de video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-208,
3120
],
"parameters": {
"url": "={{ $json.video.url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "89e22673-971c-48e2-b2ba-9cf714a5672f",
"name": "Obtener estado1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1024,
3056
],
"parameters": {
"url": "=https://api.aimlapi.com/v2/generate/video/google/generation",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "generation_id",
"value": "={{ $json.id }}"
}
]
},
"nodeCredentialType": "aimlApi"
},
"credentials": {
"aimlApi": {
"id": "6Z9fP7Dy0ZkIBXXw",
"name": "AI/ML account"
}
},
"typeVersion": 4.2
},
{
"id": "91aedd47-2f11-45b0-a862-5c462522c00d",
"name": "Crear video con API de IA/ML1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1504,
3136
],
"parameters": {
"url": "https://api.aimlapi.com/v2/generate/video/google/generation",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "={{ $json.content || $('When chat message received').item.json.chatInput }}"
},
{
"name": "model",
"value": "google/veo-3.0-i2v-fast"
},
{
"name": "image_url",
"value": "={{ $('Set image URL').item.json.image_url }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "aimlApi"
},
"credentials": {
"aimlApi": {
"id": "6Z9fP7Dy0ZkIBXXw",
"name": "AI/ML account"
}
},
"typeVersion": 4.2
},
{
"id": "f5c04744-26fa-4fa0-9044-293b6e657f42",
"name": "Nota adhesiva18",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
2976
],
"parameters": {
"color": 5,
"width": 1328,
"height": 448,
"content": "# Generate Video via VEO-3"
},
"typeVersion": 1
},
{
"id": "050a6dbc-c0df-40de-96d2-e3bb6ea4e25a",
"name": "Esperar 30 seg.1",
"type": "n8n-nodes-base.wait",
"position": [
-1248,
3136
],
"webhookId": "490facb8-d0ae-402e-ab59-a87720cf0bdd",
"parameters": {
"amount": 30
},
"typeVersion": 1.1
},
{
"id": "2d8638ee-7888-4071-8ccf-bd356a7e2390",
"name": "Prompt cinematográfico (GPT‑5)",
"type": "n8n-nodes-aimlapi.aimlApi",
"position": [
-1808,
3136
],
"parameters": {
"model": "openai/gpt-5-mini-2025-08-07",
"prompt": "=You are a creative video prompt engineer.\n\nTurn the idea below into a short, visually rich description for Veo‑3 image‑to‑video.\nKeep it flexible and cinematic.\n\nGuidelines (use loosely):\n- mention camera movement / lens hints\n- time of day, mood, color palette\n- pacing / motion style\n- framing and composition\n\nKeep it to 2–4 sentences (under 120 words). If the input is just one word, expand it sensibly.\n\nIdea:\n{{ $('When chat message received').item.json.chatInput }}\n\nRespond with only the prompt text.",
"options": {
"maxTokens": 5000
},
"requestOptions": {}
},
"credentials": {
"aimlApi": {
"id": "6Z9fP7Dy0ZkIBXXw",
"name": "AI/ML account"
}
},
"typeVersion": 1
},
{
"id": "a483c79a-4ccb-472e-9730-94fa1e95475f",
"name": "Nota adhesiva21",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1888,
3024
],
"parameters": {
"width": 246,
"height": 328,
"content": "Use GPT‑5 turbo to expand the description into a Veo‑3‑friendly prompt (camera, movement, mood, composition)."
},
"typeVersion": 1
},
{
"id": "03143475-6fb7-45ea-a76b-5ad1c5ad20de",
"name": "Establecer URL de imagen",
"type": "n8n-nodes-base.set",
"position": [
-2064,
3136
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "336c8e79-0530-4c17-ac6c-129d946d421b",
"name": "image_url",
"type": "string",
"value": "https://s2-111386.kwimgs.com/bs2/mmu-aiplatform-temp/kling/20240620/1.jpeg"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3e40b553-d9e2-4046-95b1-13b4185ce45f",
"name": "¿Completado?",
"type": "n8n-nodes-base.if",
"position": [
-816,
3136
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"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": "827a937e-ba7b-417d-9dd4-8a180d61417e",
"name": "¿Error?",
"type": "n8n-nodes-base.if",
"position": [
-608,
3200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7d9027b3-9662-4030-aafd-0c4a33d49eac",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "error"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "321f4fa4-3239-486c-b3b4-55f34ef7034d",
"name": "Detener y error",
"type": "n8n-nodes-base.stopAndError",
"position": [
-400,
3216
],
"parameters": {
"errorMessage": "={{ $json.error.message }}"
},
"typeVersion": 1
},
{
"id": "22f8f3a9-ea96-438b-b276-f8b9e9f52370",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1712,
1744
],
"parameters": {
"width": 436,
"height": 424,
"content": "## STEP 1: CHAT INPUT → MINIMAL PROMPT\n\nThis workflow starts from the **Chat Trigger**. You can send even **one word** (e.g., “sunset”, “cyberpunk”, “ocean”).\n\n**Expected fields** (flexible):\n- **chatInput** – your idea/keyword/short brief (required)\n- **image_url** – a source image for image‑to‑video (required for i2v)\n- **duration** – seconds (optional, default 5)\n- **aspect_ratio** – e.g. `16:9` (optional)\n\nThe chat message is expanded by **GPT‑5** into a Veo‑3‑friendly prompt."
},
"typeVersion": 1
},
{
"id": "19a2c274-f8dd-4c91-bc9a-8042558d7162",
"name": "Nota adhesiva19",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
2448
],
"parameters": {
"width": 484,
"height": 452,
"content": "## STEP 4: MAIN FLOW (END‑TO‑END)\n\n**How it runs**\n- Trigger via **Chat** (or attach a **Schedule Trigger** if you want batch runs).\n\n**Pipeline**\n1) Read chat input (idea/keyword)\n2) **GPT‑5** expands it into a concise cinematic prompt\n3) **Create Veo‑3 (image‑to‑video)** with image_url + prompt\n4) **Poll status** until `completed`\n5) On success → fetch **video_url** and (optionally) generate a short **title** with GPT‑5\n6) Return results to chat / continue with your own save or publish steps\n\nTweak polling interval based on your SLA and quota."
},
"typeVersion": 1
},
{
"id": "a816072b-bfc0-4253-9222-b23ce903f10f",
"name": "Nota adhesiva20",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
2048
],
"parameters": {
"width": 484,
"height": 364,
"content": "## STEP 2: AI/ML API CREDENTIALS\n\n1) Get your key: https://aimlapi.com/app/keys\n2) In n8n, create **AI/ML account** credentials (Bearer token)\n3) Use that credential in:\n - **GPT‑5** node (text expansion)\n - **Create Video** (Veo‑3 generation)\n - **Get Status** (polling)\n\n**Headers** (handled by credentials):\n- Authorization: `Bearer YOUR_API_KEY`\n- Content‑Type: `application/json`\n\nKeep keys in Credentials/ENV — never hard‑code in nodes."
},
"typeVersion": 1
},
{
"id": "893fd045-f95f-4d59-a455-08bc88991271",
"name": "Nota adhesiva22",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1712,
2192
],
"parameters": {
"width": 436,
"height": 520,
"content": "## STEP 3 (OPTIONAL): SAVE & PUBLISH\n\nAfter you obtain `video_url`, you can extend the flow with:\n\n- **Save to Google Drive**: HTTP → upload file from `video_url`\n- **Generate SEO Title**: GPT‑5 short title (≤60 chars)\n- **Publish to YouTube**: your preferred uploader or API wrapper\n- **Log to a Sheet/DB**: store `prompt`, `generation_id`, `video_url`, `title`\n\nThese are optional and not required for the core Veo‑3 image‑to‑video path."
},
"typeVersion": 1
},
{
"id": "782053ae-2203-49d7-8e82-800d4fb4aef7",
"name": "Nota adhesiva23",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
1648
],
"parameters": {
"color": 3,
"width": 484,
"height": 376,
"content": "**Veo‑3 Image‑to‑Video with GPT‑5 (Chat‑First)**\n\n**What this workflow does**\n- Accepts a minimal chat idea (even one word)\n- Uses **GPT‑5** to craft a Veo‑3‑ready prompt\n- Creates a **Google Veo‑3** image‑to‑video generation\n- Polls until completion and fetches the **final video URL**\n\n**Why it’s robust**\n- Soft prompt: expands short inputs sensibly\n- Fallbacks: if GPT output is empty, uses chat input\n- Safe polling: completed / failed split, adjustable wait\n\n**Where to extend**\n- Save to Drive, generate thumbnails, add subtitles, upload to YouTube, log analytics"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"827a937e-ba7b-417d-9dd4-8a180d61417e": {
"main": [
[
{
"node": "321f4fa4-3239-486c-b3b4-55f34ef7034d",
"type": "main",
"index": 0
}
],
[
{
"node": "050a6dbc-c0df-40de-96d2-e3bb6ea4e25a",
"type": "main",
"index": 0
}
]
]
},
"3e40b553-d9e2-4046-95b1-13b4185ce45f": {
"main": [
[
{
"node": "fe757385-c6bc-48bf-b594-61c33595c4f8",
"type": "main",
"index": 0
}
],
[
{
"node": "827a937e-ba7b-417d-9dd4-8a180d61417e",
"type": "main",
"index": 0
}
]
]
},
"89e22673-971c-48e2-b2ba-9cf714a5672f": {
"main": [
[
{
"node": "3e40b553-d9e2-4046-95b1-13b4185ce45f",
"type": "main",
"index": 0
}
]
]
},
"03143475-6fb7-45ea-a76b-5ad1c5ad20de": {
"main": [
[
{
"node": "2d8638ee-7888-4071-8ccf-bd356a7e2390",
"type": "main",
"index": 0
}
]
]
},
"050a6dbc-c0df-40de-96d2-e3bb6ea4e25a": {
"main": [
[
{
"node": "89e22673-971c-48e2-b2ba-9cf714a5672f",
"type": "main",
"index": 0
}
]
]
},
"fe757385-c6bc-48bf-b594-61c33595c4f8": {
"main": [
[]
]
},
"2d8638ee-7888-4071-8ccf-bd356a7e2390": {
"main": [
[
{
"node": "91aedd47-2f11-45b0-a862-5c462522c00d",
"type": "main",
"index": 0
}
]
]
},
"88472c30-7089-4a1b-8cd0-86773af42a69": {
"main": [
[
{
"node": "03143475-6fb7-45ea-a76b-5ad1c5ad20de",
"type": "main",
"index": 0
}
]
]
},
"91aedd47-2f11-45b0-a862-5c462522c00d": {
"main": [
[
{
"node": "050a6dbc-c0df-40de-96d2-e3bb6ea4e25a",
"type": "main",
"index": 0
}
]
]
}
}
}¿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 - Creación de contenido, IA Multimodal
¿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.
Flujos de trabajo relacionados recomendados
AI/ML API | D1m7asis
@d1m7asisCompartir este flujo de trabajo