GPT-5 と Google Veo-3 を使用してテキストプロンプトから動画を生成
上級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、20個のノードを含みます。主にIf, Set, Wait, AimlApi, HttpRequestなどのノードを使用。 テキストプロンプトから動画を生成するために GPT-5 と Google Veo-3 を使用
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "58e06bfa452afe2836b2ce0aa089999394af0b93c2a455035675d99d83112fa1",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "88472c30-7089-4a1b-8cd0-86773af42a69",
"name": "チャットメッセージ受信時",
"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": "付箋7",
"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": "付箋9",
"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": "付箋10",
"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": "動画ファイル取得",
"type": "n8n-nodes-base.httpRequest",
"position": [
-208,
3120
],
"parameters": {
"url": "={{ $json.video.url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "89e22673-971c-48e2-b2ba-9cf714a5672f",
"name": "ステータス取得1",
"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": "AI/ML API1で動画作成",
"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": "付箋18",
"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": "30秒待機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": "Cinematic Prompt (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": "付箋21",
"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": "画像URL設定",
"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": "完了?",
"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": "エラー?",
"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": "停止とエラー",
"type": "n8n-nodes-base.stopAndError",
"position": [
-400,
3216
],
"parameters": {
"errorMessage": "={{ $json.error.message }}"
},
"typeVersion": 1
},
{
"id": "22f8f3a9-ea96-438b-b276-f8b9e9f52370",
"name": "付箋",
"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": "付箋19",
"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": "付箋20",
"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": "付箋22",
"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": "付箋23",
"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
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Veo3、YouTube、Googleシートを使ってAI動画制作と配布を自動化
AI動画制作と配信にはVeo3、YouTube、Google Workspaceを活用しましょう
If
Wait
Aiml Api
+
If
Wait
Aiml Api
26 ノードDmitry
コンテンツ作成
Telegram で GPT-4o を使って Flux Pro と合わせて AI 画像を生成
Telegram 内で GPT-4o と Flux Pro を使って AI 画像を生成
If
Set
Telegram
+
If
Set
Telegram
22 ノードAI/ML API | D1m7asis
コンテンツ作成
Veo3 Instagramプロキシワークフロー
Veo3、GPT-4、Blotatoを使用して自動のにInstagram Reelsを生成して公開
If
Set
Wait
+
If
Set
Wait
21 ノードAutomate With Marc
コンテンツ作成
再生リスト詳細設定ボットコピー
Suno、GPT-4、Runway、Creatomate を使って AI 生成の YouTube ミュージックプレイリストを作成
If
Set
Code
+
If
Set
Code
203 ノードJoseph
コンテンツ作成
仕事の流れ9_旧バージョン
MagicHourとGeminiを使ってGoogleスプレッドシートから毎日YouTube動画を作成
If
Set
Code
+
If
Set
Code
31 ノードDivyansh Chauhan
コンテンツ作成
毎日のNASA天文写真をInstagramへ公開し、Telegram通知を送信
毎日のNASA天文図をInstagramに投稿し、Telegram通知を送信
If
Set
Wait
+
If
Set
Wait
13 ノードAdrian
コンテンツ作成