家居装饰AI(Google Nano Banana)- Santhej Kallada
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 28 个节点。主要使用 If, Set, Code, Merge, Airtable 等节点。 基于Google Gemini的AI图像生成与编辑及Telegram机器人
前置要求
- •Airtable API Key
- •Telegram Bot Token
- •Google Drive API 凭证
- •可能需要目标 API 的认证凭证
使用的节点 (28)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "dOynwI3sAYdHex7x",
"meta": {
"instanceId": "d3c17a28b831505b1128b4be827611328e2ecd2d4b635d3c4ca5c08fd677a016",
"templateCredsSetupCompleted": true
},
"name": "家居装饰 AI(Google Nano Banana)- Santhej Kallada",
"tags": [
{
"id": "o5lUbXtRS653224b",
"name": "tutorials",
"createdAt": "2025-10-29T07:23:26.446Z",
"updatedAt": "2025-10-29T07:23:26.446Z"
}
],
"nodes": [
{
"id": "47fbda3a-c350-4dc8-8e4d-a02b989b44fc",
"name": "Telegram 触发器",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-528,
1680
],
"webhookId": "fb264149-5f6f-41ef-9b49-aca9304879cc",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "54e2b068-775c-47d4-a1bc-9ddfe17e3d88",
"name": "如果1",
"type": "n8n-nodes-base.if",
"position": [
-304,
1680
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "a43f58c6-dccc-41fd-bbaf-7bb3f299adc7",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.photo[0] }}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "093a6d6a-ae91-4906-a7f3-5e6a63b382ee",
"name": "编辑字段1",
"type": "n8n-nodes-base.set",
"position": [
1040,
1760
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2cb56c0e-aa56-4fe4-830e-8e42f2dee528",
"name": "message",
"type": "string",
"value": "={{ $('Telegram Trigger').item.json.message.text }}"
},
{
"id": "f7063ef9-30fe-4364-9ef2-043f55bcf591",
"name": "id",
"type": "string",
"value": "={{ $('Telegram Trigger').item.json.message.from.id }}"
},
{
"id": "e05afa5d-3824-41a6-8f7b-6cee3b0f5f36",
"name": "base_image_link",
"type": "string",
"value": "={{ $('Search records').item.json.base_image_link }}"
},
{
"id": "95219c2c-700b-41c6-a8d3-b635270a232f",
"name": "base_image64",
"type": "string",
"value": "={{ $json.data }}"
},
{
"id": "107928c3-4056-4e14-b7cd-13d6dccb0dac",
"name": "image_exits",
"type": "boolean",
"value": true
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3a62cd46-9b63-4dac-ab7b-ea562e62a828",
"name": "搜索记录",
"type": "n8n-nodes-base.airtable",
"position": [
-80,
1696
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apppCImnrYx31QQ4S",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S",
"cachedResultName": "Home Furnish AI"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblfIbgIrLUoUXFyA",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S/tblfIbgIrLUoUXFyA",
"cachedResultName": "Table 1"
},
"options": {},
"operation": "search",
"filterByFormula": "={ID} = \"{{ $('Telegram Trigger').item.json.message.from.id }}\""
},
"typeVersion": 2.1,
"alwaysOutputData": true
},
{
"id": "5ef4c48c-1c9e-4272-bb80-22b08720dec1",
"name": "编辑图像",
"type": "n8n-nodes-base.httpRequest",
"position": [
1264,
1760
],
"parameters": {
"url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent",
"method": "POST",
"options": {},
"jsonBody": "={\n \"contents\": [{\n \"parts\": [\n {\n \"text\": {{ JSON.stringify($json.message) }}\n },\n {\n \"inline_data\": {\n \"mime_type\": \"image/jpeg\",\n \"data\": \"{{ $('Edit Fields1').item.json.base_image64 }}\"\n }\n }\n ]\n }]\n}",
"sendBody": true,
"jsonHeaders": "{\n \"x-goog-api-key\": \"put your api key here\",\n \"Content-Type\": \"application/json\"\n}",
"sendHeaders": true,
"specifyBody": "json",
"specifyHeaders": "json"
},
"typeVersion": 4.2
},
{
"id": "ea28d393-8e4f-47ce-8ac6-766aca28f795",
"name": "发送照片消息",
"type": "n8n-nodes-base.telegram",
"position": [
1840,
1824
],
"webhookId": "f12c1e45-334d-4629-bb73-f9caae62f4f1",
"parameters": {
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"operation": "sendPhoto",
"binaryData": true,
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "b4225b8e-eae3-4ad0-8ffe-bfe5932bf56a",
"name": "创建或更新记录1",
"type": "n8n-nodes-base.airtable",
"position": [
1888,
1616
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apppCImnrYx31QQ4S",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S",
"cachedResultName": "Home Furnish AI"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblfIbgIrLUoUXFyA",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S/tblfIbgIrLUoUXFyA",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"ID": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"base_image_link": "={{ $json.webContentLink }}"
},
"schema": [
{
"id": "ID",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "base_image_link",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "base_image_link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "baseImage_64",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "baseImage_64",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "upsert"
},
"typeVersion": 2.1
},
{
"id": "a7ce2cca-93a0-4b0d-8ba3-eb51d24e1362",
"name": "下载图像1",
"type": "n8n-nodes-base.telegram",
"position": [
-352,
928
],
"webhookId": "fc1c495a-005e-454e-b92b-66cf1f130634",
"parameters": {
"fileId": "={{ $json.message.photo[2].file_id }}",
"resource": "file",
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "fed96b49-66fa-4479-8c66-b89370907341",
"name": "转换为 base64",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-160,
928
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "2bcd11a9-94a2-4b78-86a7-3e31529ee4c0",
"name": "上传文件",
"type": "n8n-nodes-base.googleDrive",
"position": [
-48,
1264
],
"parameters": {
"name": "={{ $json.result.file_unique_id }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1Wu1bv38J1izuaCRQmXE0RfEwKR3o3Iwi",
"cachedResultUrl": "https://drive.google.com/drive/folders/1Wu1bv38J1izuaCRQmXE0RfEwKR3o3Iwi",
"cachedResultName": "Home Furnishing AI"
}
},
"typeVersion": 3
},
{
"id": "1d00c8bf-191f-4086-a385-1840f56767a2",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
208,
1264
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "7de5184c-2ab8-40b8-8e5d-af68f42c8f36",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
400,
1264
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "845d6a60-14fb-4c94-9b97-fc44d04a54c2",
"name": "编辑字段",
"type": "n8n-nodes-base.set",
"position": [
624,
1264
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "32b9d6c1-61ed-4f6a-8757-3209ebb7e4d4",
"name": "image_link",
"type": "string",
"value": "={{ $json.data[0].webContentLink }}"
},
{
"id": "55cb05ec-b1b8-4b54-9a08-fb6c545ef32b",
"name": "image_hash",
"type": "string",
"value": "={{ $json.data[1].data }}"
},
{
"id": "d0511aaf-95f2-46fb-afcb-ad0eefa18485",
"name": "id",
"type": "string",
"value": "={{ $('Telegram Trigger').item.json.message.from.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "53655955-c77f-4a95-ade0-021895f197ba",
"name": "创建或更新记录",
"type": "n8n-nodes-base.airtable",
"disabled": true,
"position": [
864,
1264
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "apppCImnrYx31QQ4S",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S",
"cachedResultName": "Home Furnish AI"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblfIbgIrLUoUXFyA",
"cachedResultUrl": "https://airtable.com/apppCImnrYx31QQ4S/tblfIbgIrLUoUXFyA",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"ID": "={{ $json.id }}",
"base_image_link": "={{ $json.image_link }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "ID",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "base_image_link",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "base_image_link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "baseImage_64",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "baseImage_64",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "upsert"
},
"typeVersion": 2.1
},
{
"id": "0b8c5466-58ca-47ea-89cf-5d5ee95e90ef",
"name": "发送文本消息1",
"type": "n8n-nodes-base.telegram",
"position": [
1072,
1264
],
"webhookId": "7a160598-996f-4e02-ada6-2149a9a1c12b",
"parameters": {
"text": "Thank you for providing the image. Please let us know the edits you require",
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "e06f6e8f-5f00-43ee-bec3-75e4deca92a3",
"name": "从文件中提取",
"type": "n8n-nodes-base.extractFromFile",
"position": [
832,
1760
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "97d63a01-3a54-4e4f-8941-928e98185b3b",
"name": "下载文件",
"type": "n8n-nodes-base.httpRequest",
"position": [
672,
1760
],
"parameters": {
"url": "={{ $('Search records').item.json.base_image_link }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "623e5e22-e227-4aa1-b866-ee74301bc407",
"name": "上传文件1",
"type": "n8n-nodes-base.googleDrive",
"position": [
1664,
1616
],
"parameters": {
"name": "={{ $('Telegram Trigger').item.json.message.from.id }}_base",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1Wu1bv38J1izuaCRQmXE0RfEwKR3o3Iwi",
"cachedResultUrl": "https://drive.google.com/drive/folders/1Wu1bv38J1izuaCRQmXE0RfEwKR3o3Iwi",
"cachedResultName": "Home Furnishing AI"
}
},
"typeVersion": 3
},
{
"id": "5db3e15a-fbbc-487d-93c5-c71e042e8478",
"name": "转换为文件",
"type": "n8n-nodes-base.code",
"position": [
1424,
1760
],
"parameters": {
"jsCode": "// Enhanced n8n code node for base64 to PNG conversion\nconst inputData = $input.all();\nconst outputData = [];\n\n// Helper function to safely get nested property\nfunction getNestedProperty(obj, path) {\n return path.split('.').reduce((current, key) => {\n return current && current[key] !== undefined ? current[key] : null;\n }, obj);\n}\n\n// Helper function to validate base64\nfunction isValidBase64(str) {\n if (!str || typeof str !== 'string') return false;\n try {\n // Basic base64 pattern check\n const base64Pattern = /^[A-Za-z0-9+/]*={0,2}$/;\n return base64Pattern.test(str) && str.length % 4 === 0;\n } catch (err) {\n return false;\n }\n}\n\n// Helper function to detect image format from base64\nfunction detectImageFormat(base64String) {\n try {\n const header = base64String.substring(0, 20);\n const decoded = Buffer.from(header, 'base64');\n \n // PNG signature: 89 50 4E 47\n if (decoded[0] === 0x89 && decoded[1] === 0x50 && decoded[2] === 0x4E && decoded[3] === 0x47) {\n return 'png';\n }\n // JPEG signature: FF D8 FF\n if (decoded[0] === 0xFF && decoded[1] === 0xD8 && decoded[2] === 0xFF) {\n return 'jpeg';\n }\n // GIF signature: 47 49 46\n if (decoded[0] === 0x47 && decoded[1] === 0x49 && decoded[2] === 0x46) {\n return 'gif';\n }\n // WebP signature: starts with \"RIFF\" and contains \"WEBP\"\n const str = decoded.toString('ascii', 0, 12);\n if (str.startsWith('RIFF') && str.includes('WEBP')) {\n return 'webp';\n }\n return 'unknown';\n } catch (error) {\n return 'unknown';\n }\n}\n\nfor (const [index, item] of inputData.entries()) {\n try {\n let base64String = null;\n let sourcePath = null;\n \n // Define possible paths where base64 data might be located\n const possiblePaths = [\n 'candidates.0.content.parts.1.inlineData.data',\n 'candidates.0.content.parts.0.inlineData.data',\n // Add other possible variations\n 'candidates.0.content.parts.1.inline_data.data',\n 'candidates.0.content.parts.0.inline_data.data',\n // Check if there are multiple parts\n 'candidates.0.content.parts.2.inlineData.data',\n 'candidates.0.content.parts.3.inlineData.data',\n // Fallback to common base64 field names\n 'base64',\n 'data',\n 'image',\n 'content'\n ];\n \n // Try to find base64 data in any of the possible paths\n for (const path of possiblePaths) {\n const value = getNestedProperty(item.json, path);\n if (value && typeof value === 'string' && value.length > 100) { // Minimum length check for image data\n // Handle data URL format if present\n let cleanValue = value;\n if (value.includes('data:image/') && value.includes('base64,')) {\n cleanValue = value.split('base64,')[1];\n }\n \n // Validate if it's proper base64\n if (isValidBase64(cleanValue)) {\n base64String = cleanValue;\n sourcePath = path;\n break;\n }\n }\n }\n \n // Also check if there are multiple parts and scan through them\n if (!base64String && item.json.candidates && item.json.candidates[0] && item.json.candidates[0].content && item.json.candidates[0].content.parts) {\n const parts = item.json.candidates[0].content.parts;\n for (let i = 0; i < parts.length; i++) {\n if (parts[i] && parts[i].inlineData && parts[i].inlineData.data) {\n const value = parts[i].inlineData.data;\n if (isValidBase64(value)) {\n base64String = value;\n sourcePath = `candidates.0.content.parts.${i}.inlineData.data`;\n break;\n }\n }\n // Also check for inline_data (underscore variant)\n if (parts[i] && parts[i].inline_data && parts[i].inline_data.data) {\n const value = parts[i].inline_data.data;\n if (isValidBase64(value)) {\n base64String = value;\n sourcePath = `candidates.0.content.parts.${i}.inline_data.data`;\n break;\n }\n }\n }\n }\n \n if (!base64String) {\n throw new Error('No valid base64 image data found in any of the expected paths');\n }\n \n // Convert to buffer\n const imageBuffer = Buffer.from(base64String, 'base64');\n \n // Detect original format\n const originalFormat = detectImageFormat(base64String);\n \n // Generate filename\n const timestamp = new Date().getTime();\n const filename = `converted_image_${timestamp}_${index}.png`;\n \n // Create output item\n const outputItem = {\n json: {\n success: true,\n filename: filename,\n mimeType: 'image/png',\n fileSize: imageBuffer.length,\n originalFormat: originalFormat,\n sourcePath: sourcePath,\n convertedAt: new Date().toISOString(),\n itemIndex: index\n },\n binary: {\n data: {\n data: base64String, // Use the clean base64 string\n mimeType: 'image/png',\n fileName: filename,\n fileExtension: 'png'\n }\n }\n };\n \n outputData.push(outputItem);\n \n } catch (error) {\n // Create error output with debugging information\n const errorItem = {\n json: {\n success: false,\n error: error.message,\n itemIndex: index,\n availablePaths: Object.keys(item.json).length > 0 ? \n JSON.stringify(item.json, null, 2).substring(0, 500) + '...' : 'No data',\n timestamp: new Date().toISOString()\n }\n };\n \n outputData.push(errorItem);\n }\n}\n\nreturn outputData;"
},
"typeVersion": 2
},
{
"id": "e6d8ca2d-e16e-48e0-9521-0318f4756c96",
"name": "如果",
"type": "n8n-nodes-base.if",
"position": [
144,
1808
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bc63b8aa-dd00-4672-920d-d08033c701ee",
"operator": {
"type": "number",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.ID }}",
"rightValue": ""
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "3480ecd9-ed69-4d51-a749-e447bb97a0c6",
"name": "发送文本消息",
"type": "n8n-nodes-base.telegram",
"position": [
288,
1664
],
"webhookId": "3f4a95c3-1460-4b5a-a85b-c6033977a1c2",
"parameters": {
"text": "Please wait 30 Seconds while we work our magic.",
"chatId": "={{ $json.ID }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "9c5ca8a8-ca2f-4c64-8091-e1616c598713",
"name": "发送文本消息2",
"type": "n8n-nodes-base.telegram",
"position": [
288,
1952
],
"webhookId": "843019ac-000f-4de3-95ef-c476bb29f46c",
"parameters": {
"text": "Please upload a image to to edit.",
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "5d13dd2c-44fa-4f0b-aa3e-f806f12336f5",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
288
],
"parameters": {
"width": 992,
"height": 464,
"content": "## Google Nano Banana 图像生成器:概述"
},
"typeVersion": 1
},
{
"id": "969c8e2e-8175-47aa-9873-c2a36863f0e2",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
1536
],
"parameters": {
"color": 6,
"width": 576,
"height": 384,
"content": "## Telegram 输入"
},
"typeVersion": 1
},
{
"id": "eedd4464-fb3b-494f-9d5a-b905b0fd7282",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
816
],
"parameters": {
"color": 6,
"width": 992,
"height": 272,
"content": "## 图像下载和准备"
},
"typeVersion": 1
},
{
"id": "4e7bc232-9a87-49de-b65f-ea06d5d0ce6d",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
1136
],
"parameters": {
"color": 6,
"width": 1344,
"height": 320,
"content": "## 上传和记录更新"
},
"typeVersion": 1
},
{
"id": "c3588192-7477-44d5-bc05-d5a1a6d0a630",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
1504
],
"parameters": {
"color": 6,
"width": 672,
"height": 608,
"content": "## 条件消息处理"
},
"typeVersion": 1
},
{
"id": "02ec6043-51a2-46d8-889f-0c3ec3e2fac2",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
1520
],
"parameters": {
"color": 6,
"width": 1472,
"height": 480,
"content": "## 图像编辑和返回流程"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"Telegram Trigger": [
{
"json": {
"message": {
"chat": {
"id": 6397287561,
"type": "private",
"last_name": "K",
"first_name": "S"
},
"date": 1757313325,
"from": {
"id": 6397287561,
"is_bot": false,
"last_name": "K",
"first_name": "S",
"language_code": "en"
},
"photo": [
{
"width": 90,
"height": 90,
"file_id": "AgACAgUAAxkBAAOwaL55LZCAqkqmrjN0scLJuSFYZY0AAsnDMRtJZfBVFUPlS6nhAAFYAQADAgADcwADNgQ",
"file_size": 1322,
"file_unique_id": "AQADycMxG0ll8FV4"
},
{
"width": 320,
"height": 320,
"file_id": "AgACAgUAAxkBAAOwaL55LZCAqkqmrjN0scLJuSFYZY0AAsnDMRtJZfBVFUPlS6nhAAFYAQADAgADbQADNgQ",
"file_size": 15801,
"file_unique_id": "AQADycMxG0ll8FVy"
},
{
"width": 775,
"height": 775,
"file_id": "AgACAgUAAxkBAAOwaL55LZCAqkqmrjN0scLJuSFYZY0AAsnDMRtJZfBVFUPlS6nhAAFYAQADAgADeAADNgQ",
"file_size": 39961,
"file_unique_id": "AQADycMxG0ll8FV9"
}
],
"message_id": 176
},
"update_id": 388279181
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "273d8db8-3328-4877-a4b9-8061e360fe36",
"connections": {
"If": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a text message2",
"type": "main",
"index": 0
}
]
]
},
"If1": {
"main": [
[
{
"node": "Download Image1",
"type": "main",
"index": 0
}
],
[
{
"node": "Search records",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Image": {
"main": [
[
{
"node": "Convert To File",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Create or update a record",
"type": "main",
"index": 0
}
]
]
},
"Upload file": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Edit Image",
"type": "main",
"index": 0
}
]
]
},
"Upload file1": {
"main": [
[
{
"node": "Create or update a record1",
"type": "main",
"index": 0
}
]
]
},
"Download File": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"Search records": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Convert To File": {
"main": [
[
{
"node": "Upload file1",
"type": "main",
"index": 0
},
{
"node": "Send a photo message",
"type": "main",
"index": 0
}
]
]
},
"Download Image1": {
"main": [
[
{
"node": "Transform to base",
"type": "main",
"index": 0
},
{
"node": "Upload file",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "If1",
"type": "main",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Transform to base": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Send a text message": {
"main": [
[
{
"node": "Download File",
"type": "main",
"index": 0
}
]
]
},
"Create or update a record": {
"main": [
[
{
"node": "Send a text message1",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
1. 播放列表详情设置机器人副本
使用 Suno、GPT-4、Runway 和 Creatomate 创建 AI 生成的 YouTube 音乐播放列表
If
Set
Code
+22
203 节点Joseph
内容创作
✨🩷自动化社交媒体内容发布工厂 + 系统提示组合
基于动态系统提示和GPT-4o的AI驱动多平台社交媒体内容工厂
If
Set
Code
+20
100 节点Amit Mehta
内容创作
💥 使用NanoBanana、Seedream 4、ChatGPT Image和Veo 3自动化视频广告 - VIDE
使用AI(NanoBanana、Seedream、GPT-4o、Veo 3)自动化和发布视频广告活动
Set
Code
Wait
+16
63 节点Dr. Firas
内容创作
LinkedIn和X病毒内容自动引擎
使用AI生成和发布自动创建LinkedIn和X的病毒内容
If
Set
Wait
+26
156 节点Diptamoy Barman
内容创作
合并
使用Suno API、Claude和Telegram机器人创建完整的20首YouTube播放列表
If
Set
Code
+17
150 节点Joseph
内容创作
使用 NanoBanana、Kling 和 LATE Publishing_Bilsimaging 生成产品品牌动画
使用 Gemini AI、Kling 和 LATE 将产品照片转换为社交媒体视频
If
Set
Code
+13
83 节点Bilel Aroua
内容创作