AutomationFlowsWeb Scraping › Image to Motion Video (kie.ai) - Fixed

Image to Motion Video (kie.ai) - Fixed

Image to Motion Video (Kie.ai) - Fixed. Uses readBinaryFile, httpRequest, writeBinaryFile. Event-driven trigger; 12 nodes.

Event trigger★★★★☆ complexity12 nodesRead Binary FileHTTP RequestWrite Binary File
Web Scraping Trigger: Event Nodes: 12 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Image to Motion Video (Kie.ai) - Fixed",
  "nodes": [
    {
      "parameters": {},
      "id": "Manual Trigger",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        200,
        300
      ]
    },
    {
      "parameters": {
        "filePath": "/home/user/input/image.jpg"
      },
      "id": "Read Image",
      "name": "Read Image",
      "type": "n8n-nodes-base.readBinaryFile",
      "typeVersion": 1,
      "position": [
        400,
        150
      ]
    },
    {
      "parameters": {
        "filePath": "/home/user/input/reference.mp4"
      },
      "id": "Read Video",
      "name": "Read Video",
      "type": "n8n-nodes-base.readBinaryFile",
      "typeVersion": 1,
      "position": [
        400,
        450
      ]
    },
    {
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/YOUR_CLOUD_NAME/image/upload",
        "method": "POST",
        "sendBinaryData": true,
        "binaryPropertyName": "data",
        "options": {
          "bodyContentType": "multipart-form-data"
        },
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "upload_preset",
              "value": "YOUR_UPLOAD_PRESET"
            }
          ]
        }
      },
      "id": "Upload Image",
      "name": "Upload Image",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        600,
        150
      ]
    },
    {
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/YOUR_CLOUD_NAME/video/upload",
        "method": "POST",
        "sendBinaryData": true,
        "binaryPropertyName": "data",
        "options": {
          "bodyContentType": "multipart-form-data"
        },
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "upload_preset",
              "value": "YOUR_UPLOAD_PRESET"
            }
          ]
        }
      },
      "id": "Upload Video",
      "name": "Upload Video",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        600,
        450
      ]
    },
    {
      "parameters": {
        "mode": "wait"
      },
      "id": "Merge",
      "name": "Merge (Wait for Both)",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 2,
      "position": [
        800,
        300
      ]
    },
    {
      "parameters": {
        "url": "https://api.kie.ai/v1/video/motion",
        "method": "POST",
        "jsonParameters": true,
        "headerParametersUi": {
          "parameter": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_KIE_API_KEY"
            }
          ]
        },
        "bodyParametersJson": "={\n  \"source_image\": $node[\"Upload Image\"].json[\"secure_url\"],\n  \"driving_video\": $node[\"Upload Video\"].json[\"secure_url\"],\n  \"motion_strength\": 0.75,\n  \"lip_sync\": true,\n  \"expression_transfer\": true,\n  \"face_enhance\": true\n}"
      },
      "id": "Call Kie",
      "name": "Call Kie Motion",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1000,
        300
      ]
    },
    {
      "parameters": {
        "waitTime": 20
      },
      "id": "Wait",
      "name": "Wait 20 Seconds",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        1200,
        300
      ]
    },
    {
      "parameters": {
        "url": "=https://api.kie.ai/v1/video/status/{{$json[\"job_id\"]}}",
        "method": "GET",
        "headerParametersUi": {
          "parameter": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_KIE_API_KEY"
            }
          ]
        }
      },
      "id": "Check Status",
      "name": "Check Status",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1400,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"status\"]}}",
              "operation": "equal",
              "value2": "completed"
            }
          ]
        }
      },
      "id": "If Complete",
      "name": "If Completed?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1600,
        300
      ]
    },
    {
      "parameters": {
        "url": "={{$json[\"result_video_url\"]}}",
        "method": "GET",
        "responseFormat": "file"
      },
      "id": "Download Result",
      "name": "Download Result",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [
        1800,
        200
      ]
    },
    {
      "parameters": {
        "filePath": "/home/user/output/final_video.mp4"
      },
      "id": "Save File",
      "name": "Save Final Video",
      "type": "n8n-nodes-base.writeBinaryFile",
      "typeVersion": 1,
      "position": [
        2000,
        200
      ]
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Read Image",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Image": {
      "main": [
        [
          {
            "node": "Upload Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Video": {
      "main": [
        [
          {
            "node": "Upload Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Image": {
      "main": [
        [
          {
            "node": "Merge (Wait for Both)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video": {
      "main": [
        [
          {
            "node": "Merge (Wait for Both)",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge (Wait for Both)": {
      "main": [
        [
          {
            "node": "Call Kie Motion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Kie Motion": {
      "main": [
        [
          {
            "node": "Wait 20 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 20 Seconds": {
      "main": [
        [
          {
            "node": "Check Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Status": {
      "main": [
        [
          {
            "node": "If Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Completed?": {
      "main": [
        [
          {
            "node": "Download Result",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 20 Seconds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Result": {
      "main": [
        [
          {
            "node": "Save Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Image to Motion Video (Kie.ai) - Fixed. Uses readBinaryFile, httpRequest, writeBinaryFile. Event-driven trigger; 12 nodes.

Source: https://gist.github.com/imatomicrohit-ux/13c9d6626a51b10aed86e7ffbf43a39f — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Web Scraping

extract_swifts. Uses manualTrigger, httpRequest, htmlExtract, splitInBatches. Event-driven trigger; 23 nodes.

HTTP Request, Html Extract, MongoDB +5
Web Scraping

Image to Motion Video (Kie.ai) - Fixed & Optimized. Uses readBinaryFile, httpRequest, writeBinaryFile. Event-driven trigger; 15 nodes.

Read Binary File, HTTP Request, Write Binary File
Web Scraping

Image to Motion Video (Kie.ai). Uses readBinaryFile, httpRequest, writeBinaryFile. Event-driven trigger; 11 nodes.

Read Binary File, HTTP Request, Write Binary File
Web Scraping

Track Changes Of Product Prices. Uses htmlExtract, functionItem, httpRequest, writeBinaryFile. Scheduled trigger; 25 nodes.

Html Extract, Function Item, HTTP Request +5
Web Scraping

This workflow automatically tracks changes on specific websites, typically in e-commerce where you want to get information about price changes. Basic knowledge of HTML and JavaScript Execute Command n

Html Extract, Function Item, HTTP Request +5