从产品图片生成 UGC 视频(GPT-4、Fal.ai 和 KIE.ai 通过 Telegram)
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 28 个节点。主要使用 Set, Wait, SplitOut, Telegram, Aggregate 等节点。 通过 Telegram 使用 GPT-4、Fal.ai 和 KIE.ai 从产品图片生成 UGC 视频
前置要求
- •Telegram Bot Token
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (28)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "YOUR_N8N_INSTANCE_ID"
},
"nodes": [
{
"id": "8482af93-27b9-450f-938d-2023e8e77bbb",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 4,
"width": 864,
"height": 208,
"content": "内容创意"
},
"typeVersion": 1
},
{
"id": "c054234e-e8de-456e-9003-799e1eae6154",
"name": "Telegram 触发器",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
112,
48
],
"webhookId": "54e3bc4b-608f-4432-8c03-811c75afa4b1",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "wavlFD7rfZaqefft",
"name": "Telegram UGC AD VIP"
}
},
"typeVersion": 1.2
},
{
"id": "2f03d23a-21a3-4937-8045-33a495dcc5b1",
"name": "机器人 ID 1",
"type": "n8n-nodes-base.set",
"position": [
288,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e4524d93-d12a-47aa-a6bf-c15e6d1b29c1",
"name": "bot id",
"type": "string",
"value": "YOUR_TELEGRAM_BOT_TOKEN"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "41de3164-c91e-40b8-acc2-5252bf301756",
"name": "图像路径",
"type": "n8n-nodes-base.httpRequest",
"position": [
448,
48
],
"parameters": {
"url": "=https://api.telegram.org/bot{{ $json['bot id'] }}/getFile?file_id={{ $('Telegram Trigger').item.json.message.photo[0].file_id }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "4e2148c6-2c47-42c0-aa98-4b60bbcc7305",
"name": "分析图片",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
656,
48
],
"parameters": {
"text": "Determine if the image is a character or a product. It is only considered both if there are two completely seperate images within the same image. If it is both, describe them seperately. Describe the appearance details only.\n\nYour output should only include the description, nothing else.\n",
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"resource": "image",
"imageUrls": "=https://api.telegram.org/file/bot{{ $('Botid 1').item.json['bot id'] }}/{{ $json.result.file_path }}",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "aU3oyDayilaqb6iD",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "a16cde3c-dada-45f4-973e-8059458a844c",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
240
],
"parameters": {
"color": 7,
"width": 880,
"height": 224,
"content": "图像创建"
},
"typeVersion": 1
},
{
"id": "e6f175ef-718c-4e0e-912c-3f5bd871a957",
"name": "图片提示词",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
192,
304
],
"parameters": {
"text": "=Make one image prompt.\n\nEnsure you use the details of the reference image as accurately as possible for your final output.\n\nUser Instructions:\n{{ $('Telegram Trigger').item.json.message.caption }}\n\nDescription of the reference image:\n{{ $json.content }}\n\n",
"options": {
"systemMessage": "=Role: You create image prompts.\n\nMain objective: Insert the product (or the item from a reference image) into realistic, everyday situations. These should resemble content captured by regular people or influencers on their phones.\n\nCharacters should always be described as realistic and lifelike.\n\nIf the user gives vague instructions, use this structure: place the (product) into a scene with the (character).\n\nUGC focus: When the user wants authentic, user-generated content, assume casual everyday scenes unless told otherwise.\n\nIf the video takes place in a car, the perspective should be from in front of the character, with the headrest of the seat visible behind their head.\n\nStyle guidelines: All results should feel natural and unstaged, never polished or professional. Specifically:\n\n* Relatable real-world settings\n* Product text must remain untouched and accurate (logos, claims, slogans). Do not invent details or numbers.\n* iPhone snapshot look (basic, amateur quality)\n* Casual poses and unposed expressions\n* Sunlight on the character, skin detail\nRULES:\n\nAlways use single quotes ('') never use double quotes (\"\")\n\nYour only output should be the image prompt itself. No other text.\n\nNo need to generate dialogue or video instructions. only still image prompts.\n\nIf the user specifies a different style or setting, follow their direction.\n\nNever use hyphens or dashes.\n"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "2181e18d-ee3f-46c2-9682-465ae2ae6142",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
736,
704
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "aU3oyDayilaqb6iD",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ce393fe6-f654-4f81-a752-6003c5a8ef57",
"name": "思考",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
880,
704
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "4235666d-54be-45cb-b7a6-b511587f4427",
"name": "创建图像 1",
"type": "n8n-nodes-base.httpRequest",
"position": [
464,
304
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/nano-banana/edit",
"method": "POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json.output }}\",\n \"image_urls\": [\n \"https://api.telegram.org/file/bot{{ $('Botid 1').item.json['bot id'] }}/{{ $('Image Pqath').item.json.result.file_path }}\",\n \"https://i.ibb.co/q332LXHf/Whats-App-Image-2025-09-11-at-15-54-09.jpg\",\n \"https://i.ibb.co/rPRzBdK/Whats-App-Image-2025-09-11-at-15-54-11-1.jpg\",\n \"https://i.ibb.co/Zz9HPfZ9/Whats-App-Image-2025-09-11-at-15-54-12-1.jpg\",\n \"https://i.ibb.co/tp7rhyK7/Whats-App-Image-2025-09-11-at-15-54-12-2.jpg\",\n \"https://i.ibb.co/N2wDdJpJ/Whats-App-Image-2025-09-11-at-15-54-12-3.jpg\"\n ]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "wnq2bkNKKapehhJC",
"name": "Fal API"
}
},
"typeVersion": 4.2
},
{
"id": "82ed7b41-68f8-40d3-ac2f-f5c164e47fd3",
"name": "等待",
"type": "n8n-nodes-base.wait",
"position": [
608,
304
],
"webhookId": "0f2893c6-d81a-4339-8535-15f72daa6371",
"parameters": {
"amount": 30
},
"typeVersion": 1.1
},
{
"id": "45f95593-2dba-4a03-a91e-cb3c37bbb37f",
"name": "获取图像",
"type": "n8n-nodes-base.httpRequest",
"position": [
752,
304
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/nano-banana/requests/{{ $json.request_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "wnq2bkNKKapehhJC",
"name": "Fal API"
}
},
"typeVersion": 4.2
},
{
"id": "248b1998-d40f-41d4-964a-65dbee8138a4",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
944,
16
],
"parameters": {
"color": 6,
"width": 1360,
"height": 208,
"content": "视频生成提示"
},
"typeVersion": 1
},
{
"id": "755fe249-3493-438a-808e-4e6d8ca762cb",
"name": "视频提示",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1168,
48
],
"parameters": {
"text": "=Create video prompts.\n\nUser instructions:\n{{ $('Telegram Trigger').item.json.message.caption }}\nDescription of the reference image(s):\n{{ $('Analyze image').item.json.content }}\n",
"options": {
"systemMessage": "=You are an AI agent that generates UGC (User-Generated Content) video prompts.\nYour only output must be 3 scenes in the following JSON format:\n\njson\n{\n \"scenes\": {\n \"scene 1\": \"\",\n \"scene 2\": \"\",\n \"scene 3\": \"\"\n }\n}\n\nScene Structure\n\nScene 1 (Hook):** Start with a casual line that grabs attention and ties to the product.\n\nScene 2 (Product):** Show what the product does or the benefit it gives.\n\nScene 3 (Call to Action):** End with a natural CTA like 'You can click the link below to get some for yourself'.\n\nScenes must flow together like a mini-story. Always pull in details from the reference image in a UGC style.\n\n**Description Requirement**\nEvery scene must include a description that covers:\n\nThe character (appearance, vibe, or mood)\nThe action they’re taking (what they’re doing)\nThe setting (the environment or location)\n\nAvoid dashes and hyphens.\n\nDialogue Rules\nBegin each scene with: Dialogue:\n\nWrite 2–3 conversational sentences (100 < 200 characters).\n\nThe dialogue between scenes should flow like a casual conversation.\n\nKeep tone casual, like talking to a friend. Avoid scripted or overly formal lines.\n\nUse ... for pauses, not dashes or hyphens.\n\nUnless requested, the character only shows the product — no eating, opening, or using.\nAlways use single quotes for dialogue ('') never double quotes.\n\nCamera Rules\nEnd each scene with: Camera:\n\nCamera descriptions must emphasize UGC style, e.g.: amateur iPhone video, snapchat clip, uneven framing, slightly blurry, casual phone footage.\n\nStyle Guidelines\n\nAll prompts should look natural, candid, and unpolished:\n\n Everyday, realistic environments\n\n Phone-quality lighting and framing\n\n Candid expressions and poses\n\n No staged or 'polished' aesthetics\n\n If the character is fictional, the mouth movement should look realistic.\n\n**Formatting Rules**\nNever use double quotes.\nFollow the exact JSON schema shown above.\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "4a7c71f7-9044-42c5-bbf3-3c910d89cd91",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1232,
608
],
"parameters": {
"autoFix": true,
"schemaType": "manual",
"inputSchema": "\n{\n \"type\": \"object\",\n \"properties\": {\n \"scenes\": {\n \"type\": \"object\",\n \"properties\": {\n \"scene 1\": { \"type\": \"string\" },\n \"scene 2\": { \"type\": \"string\" },\n \"scene 3\": { \"type\": \"string\" }\n },\n \"required\": [\"scene 1\", \"scene 2\", \"scene 3\"]\n }\n },\n \"required\": [\"scenes\"]\n}\n\n"
},
"typeVersion": 1.3
},
{
"id": "38738213-4bb4-46c5-adba-47acec1788b8",
"name": "拆分输出",
"type": "n8n-nodes-base.splitOut",
"position": [
1456,
48
],
"parameters": {
"options": {},
"fieldToSplitOut": "output.scenes"
},
"typeVersion": 1
},
{
"id": "e3c4bf59-57b6-4ecb-b1af-e1394d5af1dd",
"name": "制作视频 1",
"type": "n8n-nodes-base.httpRequest",
"position": [
1648,
48
],
"parameters": {
"url": "https://api.kie.ai/api/v1/veo/generate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json['output.scenes'] }}\",\n \"model\": \"veo3_fast\",\n \"aspectRatio\": \"9:16\",\n \"imageUrls\": \"{{ $('Get the Image').item.json.images[0].url }}\"\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_KIE_AI_API_KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "e05839ad-25b6-48c3-8729-8bbc9990e032",
"name": "获取记录信息",
"type": "n8n-nodes-base.httpRequest",
"position": [
2048,
48
],
"parameters": {
"url": "https://api.kie.ai/api/v1/veo/record-info",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "taskId",
"value": "={{ $json.data.taskId }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer 8765340d50a3202f4ee5b79a356b54f3"
}
]
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "18515c34-3187-4ccc-9ff9-5331615bd5d9",
"name": "等待1",
"type": "n8n-nodes-base.wait",
"position": [
1856,
48
],
"webhookId": "94d914ee-3cbe-4dd8-9c56-1a7c194c8277",
"parameters": {
"amount": 100
},
"typeVersion": 1.1
},
{
"id": "4d1ae9bf-9c23-40da-a1bb-35dd434bf11c",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
944,
240
],
"parameters": {
"color": 3,
"width": 1360,
"height": 240,
"content": "合并视频"
},
"typeVersion": 1
},
{
"id": "4a19e505-c3b8-44b8-b9eb-c5ee745ddbf3",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
1216,
320
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "data.response.resultUrls[0]"
}
]
}
},
"typeVersion": 1
},
{
"id": "2e47aa96-c962-4682-9eb4-0d399e145c8c",
"name": "合并视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
1424,
320
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/ffmpeg-api/merge-videos",
"method": "POST",
"options": {},
"jsonBody": "={\n \"video_urls\": [{{ $json.resultUrls[0].map(url => `\"${url}\"`) }}]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "wnq2bkNKKapehhJC",
"name": "Fal API"
}
},
"typeVersion": 4.2
},
{
"id": "86a4e2ec-07fd-402b-a554-e5061de603e2",
"name": "等待 2",
"type": "n8n-nodes-base.wait",
"position": [
1632,
320
],
"webhookId": "23c4da90-0fe5-4390-b2ef-d5739b8831db",
"parameters": {
"amount": 100
},
"typeVersion": 1.1
},
{
"id": "24f4d1a8-0c60-4848-acdf-0223c8b4579a",
"name": "获取最终视频",
"type": "n8n-nodes-base.httpRequest",
"position": [
1840,
320
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "wnq2bkNKKapehhJC",
"name": "Fal API"
}
},
"typeVersion": 4.2
},
{
"id": "7e66cc28-ce4b-4d14-937c-55b5a9a9c971",
"name": "发送视频",
"type": "n8n-nodes-base.telegram",
"position": [
2048,
320
],
"webhookId": "6e4bab84-d0ae-46c9-89a2-289cddf9dbf0",
"parameters": {
"file": "={{ $json.video.url }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"operation": "sendVideo",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "wavlFD7rfZaqefft",
"name": "Telegram UGC AD VIP"
}
},
"typeVersion": 1.2
},
{
"id": "903ebc12-5eac-49e6-b64d-f6ea55cbfa8b",
"name": "发送照片消息",
"type": "n8n-nodes-base.telegram",
"position": [
480,
704
],
"webhookId": "3435ff97-2b47-47af-9913-8871df77daba",
"parameters": {
"file": "={{ $json.images[0].url }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"operation": "sendPhoto",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "wavlFD7rfZaqefft",
"name": "Telegram UGC AD VIP"
}
},
"typeVersion": 1.2
},
{
"id": "9b9f0923-d06a-4d64-a291-d23dafdf6ea2",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1088,
0
],
"parameters": {
"color": 5,
"width": 528,
"height": 640,
"content": "## Muhammad Farooq Iqbal - 自动化专家 & n8n 创作者"
},
"typeVersion": 1
},
{
"id": "0a5ccf70-91b6-4f4b-b8d9-716c0449982f",
"name": "设置说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
0
],
"parameters": {
"color": 4,
"width": 448,
"height": 640,
"content": "**UGC 内容创建设置说明:**"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Wait": {
"main": [
[
{
"node": "Get the Image",
"type": "main",
"index": 0
}
]
]
},
"Think": {
"ai_tool": [
[
{
"node": "Image Prompt",
"type": "ai_tool",
"index": 0
},
{
"node": "Video Prompt",
"type": "ai_tool",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "Get Record Info",
"type": "main",
"index": 0
}
]
]
},
"Wait2": {
"main": [
[
{
"node": "Get the final Video",
"type": "main",
"index": 0
}
]
]
},
"Botid 1": {
"main": [
[
{
"node": "Image Pqath",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Combine Video",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Make video 1",
"type": "main",
"index": 0
}
]
]
},
"Image Pqath": {
"main": [
[
{
"node": "Analyze image",
"type": "main",
"index": 0
}
]
]
},
"Image Prompt": {
"main": [
[
{
"node": "Create Image 1",
"type": "main",
"index": 0
}
]
]
},
"Make video 1": {
"main": [
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Video Prompt": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Analyze image": {
"main": [
[
{
"node": "Image Prompt",
"type": "main",
"index": 0
}
]
]
},
"Combine Video": {
"main": [
[
{
"node": "Wait2",
"type": "main",
"index": 0
}
]
]
},
"Get the Image": {
"main": [
[
{
"node": "Video Prompt",
"type": "main",
"index": 0
},
{
"node": "Send a photo message",
"type": "main",
"index": 0
}
]
]
},
"Create Image 1": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Get Record Info": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Botid 1",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Image Prompt",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Video Prompt",
"type": "ai_languageModel",
"index": 0
},
{
"node": "Structured Output Parser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get the final Video": {
"main": [
[
{
"node": "Send a video",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Video Prompt",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
💥 使用NanoBanana、Seedream 4、ChatGPT Image和Veo 3自动化视频广告 - VIDE
使用AI(NanoBanana、Seedream、GPT-4o、Veo 3)自动化和发布视频广告活动
Set
Code
Wait
+16
63 节点Dr. Firas
内容创作
UGC 广告创作器 ✅
使用 Telegram 和 GPT-4 创建 AI 生成的 UGC 营销视频
If
Set
Wait
+11
33 节点Deniz
内容创作
使用 GPT-4o、ElevenLabs 和 WaveSpeed 口型同步创建真实 UGC 视频广告
使用 GPT-4o、ElevenLabs 和 WaveSpeed 口型同步创建真实 UGC 视频广告
If
Set
Wait
+12
38 节点Muhammad Farooq Iqbal
内容创作
1. 播放列表详情设置机器人副本
使用 Suno、GPT-4、Runway 和 Creatomate 创建 AI 生成的 YouTube 音乐播放列表
If
Set
Code
+22
203 节点Joseph
内容创作
💥 使用 VEO3 和 Blotato 创建并自动发布到 9 个平台的病毒式 AI 视频
使用 VEO3 生成 AI 视频并通过 Blotato 在多个平台分发
Set
Wait
Telegram
+9
29 节点Dr. Firas
内容创作
使用 NanoBanana、Kling 和 LATE Publishing_Bilsimaging 生成产品品牌动画
使用 Gemini AI、Kling 和 LATE 将产品照片转换为社交媒体视频
If
Set
Code
+13
83 节点Bilel Aroua
内容创作