N
n8n Store
Workflow Market
Convert Old Photos to AI Videos And Auto-Publish in FB, IG, YT & X

Convert Old Photos to AI Videos And Auto-Publish in FB, IG, YT & X

by carlosgracia0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.setn8n-nodes-base.waitn8n-nodes-base.waitn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.formTriggern8n-nodes-base.googleDrive
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "NkkWMHiRAY5uPHmf",
  "meta": {
    "instanceId": "3378b0d68c3b7ebfc71b79896d94e1a044dec38e99a1160aed4e9c323910fbe2",
    "templateCredsSetupCompleted": true
  },
  "name": "Convert Old Photos to AI Videos And Auto-Publish in FB, IG, YT & X",
  "tags": [],
  "nodes": [
    {
      "id": "b9ae8c3f-21f4-4aaf-9352-824d2abcf430",
      "name": "Photo Upload Form",
      "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": "Workflow Description",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -740
      ],
      "parameters": {
        "color": 3,
        "width": 740,
        "height": 280,
        "content": "# Colorize and Animate Old Photos with AI\n\nThis workflow allows users to **upload old photos** and automatically:\n1. **Colorize and enhance** them using FLUX Kontext\n2. **Animate** them using Kling Video AI\n3. **Save** the final video to Google Drive\n\nSimply upload your old photo through the form and get back a colorized, animated video!"
      },
      "typeVersion": 1
    },
    {
      "id": "fb20fbac-63ea-41ef-8f6a-1aacf3e92245",
      "name": "Colorize Image",
      "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": "Wait for Colorization",
      "type": "n8n-nodes-base.wait",
      "position": [
        700,
        120
      ],
      "webhookId": "wait-colorize-webhook",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "ca65341f-ad21-4707-831f-c873ef770cc6",
      "name": "Check Colorization Status",
      "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": "Colorization Completed?",
      "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": "Get Colorized Image",
      "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": "Animate Image",
      "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": "Wait for Animation",
      "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": "Check Animation Status",
      "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": "Animation Completed?",
      "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": "Get Animated Video",
      "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": "Download Video",
      "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": "Upload to 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": "Final Results",
      "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": "Usage Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -420
      ],
      "parameters": {
        "width": 740,
        "height": 200,
        "content": "## How to Use:\n\n1. **Click 'Execute workflow'** to start the process\n2. **Upload your old photo** in the form that appears\n3. The photo will be **colorized and enhanced** using FLUX Kontext\n4. Then **animated** using Kling Video AI\n5. Finally **saved to Google Drive**\n\n**Required:** Image file (JPG, PNG)\n**Optional:** Custom animation description"
      },
      "typeVersion": 1
    },
    {
      "id": "8b09bed7-a5f1-4e4c-8b08-0cb9807cf6fa",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -180
      ],
      "parameters": {
        "width": 740,
        "height": 260,
        "content": "## Setup Required:\n1. **api.imgbb.com**: Get api token (it's free)\n2. **FAL.AI API Key**: Get from fal.ai and set in HTTP Request credentials\n3. **Google Drive**: Connect your Google Drive account\n4. **Test the workflow**: Click 'Test workflow' to start\n\n**API Endpoints Used:**\n- Upload image: api.imgbb.com\n- FLUX Kontext: Image enhancement and colorization\n- Kling Video: Image to video animation"
      },
      "typeVersion": 1
    },
    {
      "id": "4be63f77-8fca-46a3-84b9-4b5b30055a96",
      "name": "Upload Image to 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": "Upload Post",
      "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
          }
        ]
      ]
    }
  }
}

相关工作流