8
n8n 中文网amn8n.com

将旧照片转换为 AI 视频并自动发布到 FB、IG、YT 和 X

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 19 个节点。主要使用 If, Set, Wait, FormTrigger, GoogleDrive 等节点。 使用 FLUX 和 Kling AI 将旧照片转换为动画视频用于社交媒体

前置要求
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "NkkWMHiRAY5uPHmf",
  "meta": {
    "instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2",
    "templateCredsSetupCompleted": true
  },
  "name": "将旧照片转换为 AI 视频并自动发布到 FB、IG、YT 和 X",
  "tags": [],
  "nodes": [
    {
      "id": "b9ae8c3f-21f4-4aaf-9352-824d2abcf430",
      "name": "照片上传表单",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -60,
        120
      ],
      "webhookId": "animate-photo-form",
      "parameters": {
        "path": "animate-photo-form",
        "options": {},
        "formTitle": "Colorize and Animate Old Photos",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "Upload Old Photo",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Custom Animation Description (Optional)",
              "placeholder": "Describe how you'd like the photo to be animated (e.g., 'make the person smile and blink')"
            }
          ]
        },
        "formDescription": "Upload an old photo to colorize and animate it with AI"
      },
      "typeVersion": 2.1
    },
    {
      "id": "6bb93365-9c3d-4c18-a1cc-328d45b70b2f",
      "name": "工作流描述",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -740
      ],
      "parameters": {
        "color": 3,
        "width": 740,
        "height": 280,
        "content": "# 使用 AI 为旧照片上色和动画化"
      },
      "typeVersion": 1
    },
    {
      "id": "fb20fbac-63ea-41ef-8f6a-1aacf3e92245",
      "name": "为图像上色",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        480,
        120
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/flux-pro/kontext",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"prompt\": \"Colorize this old black and white or sepia photograph. Make it look natural and vibrant with realistic colors. Remove any noise, scratches, or artifacts. Enhance the image quality and make it crystal clear. Keep all the original details and people exactly as they are, just add beautiful, realistic colors and improve the overall quality\",\n  \"image_url\": \"{{ $json.data.url }}\",\n  \"num_images\": 1\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "76d9b93e-9823-47cb-8d66-d158fd8b2b37",
      "name": "等待上色完成",
      "type": "n8n-nodes-base.wait",
      "position": [
        700,
        120
      ],
      "webhookId": "wait-colorize-webhook",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "ca65341f-ad21-4707-831f-c873ef770cc6",
      "name": "检查上色状态",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        920,
        120
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/flux-pro/requests/{{ $('Colorize Image').item.json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7d556144-538a-462d-a153-1971efcef011",
      "name": "上色完成了吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        1140,
        120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "colorize-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d1f4426a-c830-4402-91b4-389338f81c39",
      "name": "获取上色后的图像",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        120
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/flux-pro/requests/{{ $('Colorize Image').item.json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0397aef0-a837-4cfe-8029-d1c495bf6689",
      "name": "动画化图像",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1580,
        120
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/kling-video/v2.1/standard/image-to-video",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"prompt\": \"{{ $('Photo Upload Form').item.json['Custom Animation Description (Optional)'] ? $('Photo Upload Form').item.json['Custom Animation Description (Optional)'] : 'Animate this colorized vintage photograph. If there are multiple people, make them interact naturally - perhaps talking, smiling, or making subtle gestures. If there\\'s only one person, animate them with natural movements like breathing, blinking, slight head movements, or gentle smiling. Keep the animation subtle and realistic, maintaining the vintage charm. The movement should feel natural and bring the photo to life. Do not move the camera' }}\",\n  \"image_url\": \"{{ $('Get Colorized Image').item.json.images[0].url }}\",\n  \"duration\": 5,\n  \"quality\": \"standard\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3406b890-4fe5-42f9-a52e-f67abab2720c",
      "name": "等待动画完成",
      "type": "n8n-nodes-base.wait",
      "position": [
        1800,
        120
      ],
      "webhookId": "wait-animation-webhook",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "58103cde-9884-41d4-886a-99ba7bd0072a",
      "name": "检查动画状态",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2020,
        120
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/kling-video/requests/{{ $('Animate Image').item.json.request_id }}/status",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e42474db-7881-4a0a-8ea0-d04e139c4740",
      "name": "动画完成了吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        2240,
        120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "animation-completed",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6db3f757-5748-4be6-917c-ddcd86621f2b",
      "name": "获取动画视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2460,
        120
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/kling-video/requests/{{ $('Animate Image').item.json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "lj8v2XS8OSqBUXwk",
          "name": "fal.ai victor"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "48d00cac-27d7-4b3b-aed2-f53bea846ecb",
      "name": "下载视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2680,
        120
      ],
      "parameters": {
        "url": "={{ $('Get Animated Video').item.json.video.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "37a98a23-46f0-41a6-89df-f3f542abdc16",
      "name": "上传到Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2900,
        120
      ],
      "parameters": {
        "name": "=animated-photo-{{ $now.format('yyyyMMdd-HHmmss') }}.mp4",
        "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": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "p5I6S4YkJps1zvwz",
          "name": "Google Drive account 2"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7d0232ed-e8cd-421f-a9c6-70e3eb26b4cd",
      "name": "最终结果",
      "type": "n8n-nodes-base.set",
      "position": [
        3140,
        120
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "success-flag",
              "name": "success",
              "type": "boolean",
              "value": true
            },
            {
              "id": "message",
              "name": "message",
              "type": "string",
              "value": "Your old photo has been successfully colorized and animated!"
            },
            {
              "id": "colorized-image",
              "name": "colorized_image_url",
              "type": "string",
              "value": "={{ $('Get Colorized Image').item.json.images[0].url }}"
            },
            {
              "id": "animated-video",
              "name": "animated_video_url",
              "type": "string",
              "value": "={{ $('Get Animated Video').item.json.video.url }}"
            },
            {
              "id": "google-drive",
              "name": "google_drive_url",
              "type": "string",
              "value": "={{ $('Upload to Google Drive').item.json.webViewLink }}"
            },
            {
              "id": "processing-time",
              "name": "processing_time",
              "type": "string",
              "value": "={{ $now.format('yyyy-MM-dd HH:mm:ss') }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2d3c6a3a-6ef2-47cd-8823-46c45361cb5f",
      "name": "使用说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -420
      ],
      "parameters": {
        "width": 740,
        "height": 200,
        "content": "## 使用方法:"
      },
      "typeVersion": 1
    },
    {
      "id": "8b09bed7-a5f1-4e4c-8b08-0cb9807cf6fa",
      "name": "设置说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -180
      ],
      "parameters": {
        "width": 740,
        "height": 260,
        "content": "## 所需设置:"
      },
      "typeVersion": 1
    },
    {
      "id": "4be63f77-8fca-46a3-84b9-4b5b30055a96",
      "name": "上传图像到 imgbb",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        120
      ],
      "parameters": {
        "url": "=https://api.imgbb.com/1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "image",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "=Upload_Old_Photo"
            },
            {
              "name": "key",
              "value": "generate_token_and_add"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5fa469e9-cd6e-448f-843f-b82553216476",
      "name": "上传帖子",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        3340,
        120
      ],
      "parameters": {
        "user": "ADD_UPLOAD_POST_USER",
        "title": "This video was uploaded with the upload-post api",
        "video": "={{ $('Get Animated Video').item.json.video.url }}",
        "platform": [
          "instagram",
          "x",
          "youtube",
          "facebook"
        ],
        "operation": "uploadVideo",
        "instagramMediaType": "REELS"
      },
      "credentials": {
        "uploadPostApi": {
          "id": "frehTItx3BCdCJHh",
          "name": "Upload Post account 2"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2559ee00-f7d3-4ee6-bde7-0156eaa87741",
  "connections": {
    "Animate Image": {
      "main": [
        [
          {
            "node": "Wait for Animation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Final Results": {
      "main": [
        [
          {
            "node": "Upload Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Colorize Image": {
      "main": [
        [
          {
            "node": "Wait for Colorization",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Video": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Photo Upload Form": {
      "main": [
        [
          {
            "node": "Upload Image to imgbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Animated Video": {
      "main": [
        [
          {
            "node": "Download Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Animation": {
      "main": [
        [
          {
            "node": "Check Animation Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Colorized Image": {
      "main": [
        [
          {
            "node": "Animate Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Animation Completed?": {
      "main": [
        [
          {
            "node": "Get Animated Video",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Animation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image to imgbb": {
      "main": [
        [
          {
            "node": "Colorize Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Colorization": {
      "main": [
        [
          {
            "node": "Check Colorization Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Animation Status": {
      "main": [
        [
          {
            "node": "Animation Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Final Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Colorization Completed?": {
      "main": [
        [
          {
            "node": "Get Colorized Image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Colorization",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Colorization Status": {
      "main": [
        [
          {
            "node": "Colorization Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

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

需要付费吗?

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

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

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

作者
Juan Carlos Cavero Gracia

Juan Carlos Cavero Gracia

@carlosgracia

Follow me in linkedin: https://www.linkedin.com/in/juan-carlos-cavero-gracia/

外部链接
在 n8n.io 查看

分享此工作流