8
n8n 中文网amn8n.com

Recap AI - Veo 3.1 电商产品动画生成器

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 18 个节点。主要使用 If, Set, Wait, Limit, SplitOut 等节点。 基于Veo 3.1的电商产品目录AI视频生成器

前置要求
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "yFjuw9jOUreOhQqX",
  "meta": {
    "instanceId": "06e5009344f682419c20ccd4ecdcb5223bbb91761882af93ac6d468dbc2cbf8d",
    "templateCredsSetupCompleted": true
  },
  "name": "The Recap AI - Veo 3.1 电商产品动画生成器",
  "tags": [],
  "nodes": [
    {
      "id": "e45c0439-ea4a-40ce-b3ab-b969b8e7260d",
      "name": "表单触发器",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        16
      ],
      "webhookId": "6a5a7158-ef35-462f-ad48-fc81e7ec8ed6",
      "parameters": {
        "options": {},
        "formTitle": "eCommerce Catelog Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Url",
              "placeholder": "Enter a product collection url",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "70d1e127-5529-4bf0-a805-dcd958f8e088",
      "name": "采集产品目录集合",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        336,
        16
      ],
      "parameters": {
        "url": "={{ $json.Url }}",
        "operation": "scrape",
        "scrapeOptions": {
          "options": {
            "formats": {
              "format": [
                {
                  "type": "json",
                  "prompt": "Extract an array of products from this page. For each product, you must extract the EXACT image URL string as it appears in the HTML source code. Look in the <img> tag's src attribute or srcset attribute and copy the complete URL exactly as written in the HTML, including the full domain, path, file extension, and all query parameters. Do not modify, shorten, or transform the URL in any way.",
                  "schema": "={\n  \"type\": \"object\",\n  \"properties\": {\n    \"products\": {\n      \"type\": \"array\",\n      \"description\": \"List of e-commerce products found on the page extracted from the main grid or list of products.\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"title\": {\n            \"type\": \"string\",\n            \"description\": \"The product title or name\"\n          },\n          \"image_url\": {\n            \"type\": \"string\",\n            \"description\": \"The main product image URL. Look for the <img> tag within the product container and extract the full URL from the 'src' attribute. If the src is relative (starts with /), look for the absolute URL in 'data-src' or the first URL in 'srcset' attribute before any space or comma. Must be the complete URL as it appears in the HTML.\"\n          }\n        },\n        \"required\": [\n          \"title\",\n          \"image_url\"\n        ]\n      }\n    }\n  },\n  \"required\": [\n    \"products\"\n  ]\n}"
                }
              ]
            },
            "headers": {},
            "timeout": 180000
          }
        },
        "requestOptions": {}
      },
      "credentials": {
        "firecrawlApi": {
          "id": "tTXd52Qm4ZR6N7sq",
          "name": "Firecrawl"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5364291b-8129-4a7f-8491-e2995671d306",
      "name": "拆分产品",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        640,
        16
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data.json.products"
      },
      "typeVersion": 1
    },
    {
      "id": "51569287-6a9e-41e0-9c87-7dc10dfe33f5",
      "name": "限制产品数量",
      "type": "n8n-nodes-base.limit",
      "position": [
        960,
        16
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "25f8371f-c753-4154-b1e1-20611236a395",
      "name": "迭代产品",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        0,
        256
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "edb76de8-0373-4209-a2af-a0c179355a2e",
      "name": "获取图片",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        208,
        272
      ],
      "parameters": {
        "url": "={{ $json.image_url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "552e7fad-093e-4127-af03-e3a6a067ea21",
      "name": "生成视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        544
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"instances\": [\n    {\n      \"prompt\": {{ JSON.stringify($node['set_prompt'].json.prompt) }},\n      \"image\": {\n        \"mimeType\": \"image/png\",\n        \"bytesBase64Encoded\": \"{{ $node[\"convert_to_base64\"].json.data }}\"\n      },\n      \"lastFrame\": {\n        \"mimeType\": \"image/png\",\n        \"bytesBase64Encoded\": \"{{ $node[\"convert_to_base64\"].json.data }}\"\n      }\n    }\n  ],\n  \"parameters\": {\n    \"durationSeconds\": 8,\n    \"aspectRatio\": \"9:16\",\n    \"personGeneration\": \"allow_adult\"\n  }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "abcMckGk9RG9i0Ba",
          "name": "Google Gemini"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7d82508e-1616-4a06-801b-ce53f3ffd8e7",
      "name": "设置提示词",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "05043e09-0e28-4052-9172-3af905370437",
              "name": "prompt",
              "type": "string",
              "value": "Generate a video that is going to be featured on a product page of an e-commerce store. This is going to be for a clothing or fashion brand. This video must feature this exact same person that is provided on the first and last frame reference images and the article of clothing in the first and last frame reference images.\n\nIn this video, the model should strike multiple poses to feature the article of clothing so that a person looking at this product on an ecommerce website has a great idea how this article of clothing will look and feel.\n\nConstraints:\n- No music or sound effects.\n- The final output video should NOT have any audio.\n- Muted audio.\n- Muted sound effects."
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "aa7b7344-1415-4c4e-ba1a-f1f92c2e0741",
      "name": "获取状态",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        384,
        544
      ],
      "parameters": {
        "url": "=https://generativelanguage.googleapis.com/v1beta/{{ $json.name }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "abcMckGk9RG9i0Ba",
          "name": "Google Gemini"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f0607976-25d4-4a8a-b20d-e904e7944e8b",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        208,
        544
      ],
      "webhookId": "c68c0f13-ed52-4cc2-86f0-a795b67f6b31",
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "6978d89e-0390-4b98-a11d-a456b085c3fc",
      "name": "检查响应",
      "type": "n8n-nodes-base.if",
      "position": [
        560,
        544
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d978d0ad-9e4b-49ad-8992-40ab64744d1e",
              "operator": {
                "type": "object",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.response }}",
              "rightValue": ""
            },
            {
              "id": "e4af1378-f9fe-4d4c-9c46-5cb3a9a06f06",
              "operator": {
                "type": "array",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.response.generateVideoResponse.generatedSamples }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ad856564-280a-4cd1-ab73-ccd25f62458c",
      "name": "下载视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        768,
        528
      ],
      "parameters": {
        "url": "={{ $json.response.generateVideoResponse.generatedSamples[0].video.uri }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "abcMckGk9RG9i0Ba",
          "name": "Google Gemini"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fa0c2b0f-84a5-49e1-922d-7595157203f8",
      "name": "转换为 base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        384,
        272
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "19358bdb-61ce-454e-bf40-6e0760429c6e",
      "name": "上传源图片",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        768,
        272
      ],
      "parameters": {
        "name": "=Source Image #{{ $runIndex + 1 }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": "https://drive.google.com/drive/u/0/folders/1_BnKHFYsaar9LvYRQ9B9FJ11lEoK7jyx"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "PgwI1k1VFnoEhOi6",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "bb63dd72-17b0-4416-9939-d9b8b359acd6",
      "name": "上传输出视频",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        960,
        560
      ],
      "parameters": {
        "name": "=Output Video #{{ $runIndex + 1 }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": "https://drive.google.com/drive/u/0/folders/1_BnKHFYsaar9LvYRQ9B9FJ11lEoK7jyx"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "PgwI1k1VFnoEhOi6",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "8c9f60d6-1b14-4770-a585-0f6aa4c8a9e0",
      "name": "转换为二进制",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        560,
        272
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "data"
      },
      "typeVersion": 1.1
    },
    {
      "id": "c3c48c6e-0445-4840-84e6-5af4e4c46792",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -144
      ],
      "parameters": {
        "color": 4,
        "width": 1296,
        "height": 960,
        "content": "## Veo 3.1 电商产品目录动画生成器"
      },
      "typeVersion": 1
    },
    {
      "id": "c794813d-f350-4bd2-aae1-86c618794872",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -736,
        -144
      ],
      "parameters": {
        "width": 624,
        "height": 960,
        "content": "使用 Google 的 Veo 3.1 AI 将任何在线商店的静态产品图片转换为引人入胜的动画视频。只需提交产品目录页面 URL,即可自动生成专业的产品展示视频,其中模特摆出各种姿势并从多个角度展示服装和时尚单品 - 非常适合通过动态内容提升产品页面,从而提高转化率。"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "149a657d-edf4-4503-9116-191b20af5464",
  "connections": {
    "wait": {
      "main": [
        [
          {
            "node": "fetch_status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set_prompt": {
      "main": [
        [
          {
            "node": "generate_video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fetch_image": {
      "main": [
        [
          {
            "node": "convert_to_base64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fetch_status": {
      "main": [
        [
          {
            "node": "check_response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "form_trigger": {
      "main": [
        [
          {
            "node": "scrape_catalog_collection",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "check_response": {
      "main": [
        [
          {
            "node": "download_video",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "download_video": {
      "main": [
        [
          {
            "node": "upload_output_video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "generate_video": {
      "main": [
        [
          {
            "node": "wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "limit_products": {
      "main": [
        [
          {
            "node": "iterate_products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "split_products": {
      "main": [
        [
          {
            "node": "limit_products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "iterate_products": {
      "main": [
        [],
        [
          {
            "node": "fetch_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "convert_to_base64": {
      "main": [
        [
          {
            "node": "convert_to_binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "convert_to_binary": {
      "main": [
        [
          {
            "node": "upload_source_image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "upload_output_video": {
      "main": [
        [
          {
            "node": "iterate_products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "upload_source_image": {
      "main": [
        [
          {
            "node": "set_prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "scrape_catalog_collection": {
      "main": [
        [
          {
            "node": "split_products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量18
分类2
节点类型13
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Lucas Walter

Lucas Walter

@lucaswalter

Chief Automation Officer at The Recap AI. I build the AI systems and agents that power our business and teach others how to use n8n. Check out our YouTube channel linked below!

外部链接
在 n8n.io 查看

分享此工作流