Génération de vidéos à partir de prompts texte avec GPT-5 et Google Veo-3
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 20 nœuds.Utilise principalement des nœuds comme If, Set, Wait, AimlApi, HttpRequest. Générer des vidéos à partir de invites texte avec GPT-5 et Google Veo-3
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (20)
Catégorie
{
"meta": {
"instanceId": "58e06bfa452afe2836b2ce0aa089999394af0b93c2a455035675d99d83112fa1",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "88472c30-7089-4a1b-8cd0-86773af42a69",
"name": "À la réception d'un message de 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": "Note adhésive7",
"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": "Note adhésive9",
"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": "Note adhésive10",
"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": "Obtenir le fichier vidéo",
"type": "n8n-nodes-base.httpRequest",
"position": [
-208,
3120
],
"parameters": {
"url": "={{ $json.video.url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "89e22673-971c-48e2-b2ba-9cf714a5672f",
"name": "Obtenir le statut1",
"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": "Créer une vidéo avec API 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": "Note adhésive18",
"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": "Attendre 30 sec.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": "Invite cinématographique (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": "Note adhésive21",
"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": "Définir l'URL de l'image",
"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": "Terminé ?",
"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": "Erreur ?",
"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": "Arrêter et erreur",
"type": "n8n-nodes-base.stopAndError",
"position": [
-400,
3216
],
"parameters": {
"errorMessage": "={{ $json.error.message }}"
},
"typeVersion": 1
},
{
"id": "22f8f3a9-ea96-438b-b276-f8b9e9f52370",
"name": "Note adhésive",
"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": "Note adhésive19",
"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": "Note adhésive20",
"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": "Note adhésive22",
"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": "Note adhésive23",
"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
}
]
]
}
}
}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.
Workflows recommandés
AI/ML API | D1m7asis
@d1m7asisPartager ce workflow