{ "id": "xQ0xqhNzFeEdBpFK", "meta": { "instanceId": "1e003a7ea4715b6b35e9947791386a7d07edf3b5bf8d4c9b7ee4fdcbec0447d7" }, "name": "Generate 360° Virtual Try-on Videos for Clothing with Kling API", "tags": [], "nodes": [ { "id": "978b4ac4-0357-4d2b-8a02-7da04e6f3f1f", "name": "When clicking ‘Test workflow’", "type": "n8n-nodes-base.manualTrigger", "position": [ 160, 140 ], "parameters": {}, "typeVersion": 1 }, { "id": "54d1c23f-3a13-4ec0-9b3b-3806e5faae18", "name": "Kling Virtual Try-On Task", "type": "n8n-nodes-base.httpRequest", "position": [ 620, 140 ], "parameters": { "url": "https://api.piapi.ai/api/v1/task", "method": "POST", "options": {}, "jsonBody": "={\n \"model\": \"kling\",\n \"task_type\": \"ai_try_on\",\n \"input\": {\n \"model_input\": \"{{ $json.model_input }}\",\n \"dress_input\": \"{{ $json.dress_input }}\",\n \"upper_input\": \"{{ $json.upper_input }}\",\n \"lower_input\": \"{{ $json.lower_input }}\",\n \"batch_size\": 1\n }\n} ", "sendBody": true, "sendHeaders": true, "specifyBody": "json", "headerParameters": { "parameters": [ { "name": "x-api-key", "value": "={{ $json['x-api-key'] }}" } ] } }, "typeVersion": 4.2 }, { "id": "5be9d932-c102-4a7e-b995-09c6bf17026c", "name": "Switch", "type": "n8n-nodes-base.switch", "position": [ 960, 200 ], "parameters": { "rules": { "values": [ { "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "5f61ee56-4ebe-411f-95e6-b47d9741e7a2", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "completed" } ] } } ] }, "options": {} }, "typeVersion": 3.2 }, { "id": "cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4", "name": "Get Kling Video Task", "type": "n8n-nodes-base.httpRequest", "position": [ 1180, 440 ], "parameters": { "url": "=https://api.piapi.ai/api/v1/task/{{ $json.data.task_id }}", "options": {}, "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "x-api-key", "value": "={{ $('Preset Parameters').item.json['x-api-key'] }}" } ] } }, "typeVersion": 4.2 }, { "id": "3e794d14-b55f-4936-90af-8237977d6635", "name": "Generate kling video", "type": "n8n-nodes-base.httpRequest", "position": [ 1140, 200 ], "parameters": { "url": "https://api.piapi.ai/api/v1/task", "method": "POST", "options": {}, "jsonBody": "={\n \"model\": \"kling\",\n \"task_type\": \"video_generation\",\n \"input\": {\n \"version\": \"1.6\",\n \"image_url\": \"{{ $json.data.output.works[0].image.resource }}\",\n \"prompt\": \"{{ $('Preset Parameters').item.json.generate_video_prompt }}\"\n }\n} ", "sendBody": true, "sendHeaders": true, "specifyBody": "json", "headerParameters": { "parameters": [ { "name": "x-api-key", "value": "={{ $('Preset Parameters').item.json['x-api-key'] }}" } ] } }, "typeVersion": 4.2 }, { "id": "3ae849b2-4bd4-454f-a759-e44a9736100d", "name": "Preset Parameters", "type": "n8n-nodes-base.set", "position": [ 380, 140 ], "parameters": { "mode": "raw", "options": {}, "jsonOutput": "{\n \"x-api-key\":\"\",\n \"model_input\": \"\",\n \"dress_input\": \"\",\n \"upper_input\":\"\",\n \"lower_input\":\"\",\n \"generate_video_prompt\": \"Walk on the catwalk, turn around, and finally stand still and pose\"\n}\n" }, "typeVersion": 3.4 }, { "id": "18c606e3-82e2-4c09-a87e-6bbc71363c1c", "name": "Get Kling Virtual Try-On Task", "type": "n8n-nodes-base.httpRequest", "position": [ 420, 460 ], "parameters": { "url": "=https://api.piapi.ai/api/v1/task/{{ $json.data.task_id }}", "options": {}, "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "x-api-key", "value": "={{ $('Preset Parameters').item.json['x-api-key'] }}" } ] } }, "typeVersion": 4.2 }, { "id": "becf3d7b-d468-4b4a-b22f-d6d747e52664", "name": "Check Data Status", "type": "n8n-nodes-base.if", "position": [ 640, 460 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "or", "conditions": [ { "id": "e97a02cc-8d1d-4500-bce5-0a296c792b76", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "completed" }, { "id": "50b63a7a-52b5-4766-a859-96ac1ff949ec", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "failed" } ] } }, "typeVersion": 2.2 }, { "id": "d8ec251d-d47c-4341-909d-abdea385c1f9", "name": "Wait for Image Generation", "type": "n8n-nodes-base.wait", "position": [ 160, 460 ], "webhookId": "af79053d-1291-4dd2-889e-4593dbbb2512", "parameters": {}, "typeVersion": 1.1 }, { "id": "88e3067f-0b1f-472a-937b-926c6d208453", "name": "Wait for Video Generation", "type": "n8n-nodes-base.wait", "position": [ 920, 440 ], "webhookId": "af79053d-1291-4dd2-889e-4593dbbb2512", "parameters": {}, "typeVersion": 1.1 }, { "id": "36d75678-918f-42c5-97a7-7a13d1eacbd4", "name": "Check Video Data Status", "type": "n8n-nodes-base.switch", "position": [ 1560, 180 ], "parameters": { "rules": { "values": [ { "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "5f61ee56-4ebe-411f-95e6-b47d9741e7a2", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "completed" } ] } } ] }, "options": {} }, "typeVersion": 3.2 }, { "id": "7356d963-83c0-47a1-a728-9191f66d2f57", "name": "Get Video Data Status", "type": "n8n-nodes-base.if", "position": [ 1400, 440 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "or", "conditions": [ { "id": "e97a02cc-8d1d-4500-bce5-0a296c792b76", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "completed" }, { "id": "50b63a7a-52b5-4766-a859-96ac1ff949ec", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.data.status }}", "rightValue": "failed" } ] } }, "typeVersion": 2.2 }, { "id": "9ef52637-ccc9-4817-8c14-5c54fa0af178", "name": "Get Final Video URL", "type": "n8n-nodes-base.set", "position": [ 1760, 180 ], "parameters": { "mode": "raw", "options": {}, "jsonOutput": "={\n \"video_url\": \"{{ $json.data.output.video_url }}\"\n}\n " }, "typeVersion": 3.4 }, { "id": "9a0194bd-59a5-45b1-a6e2-db0605eb4d7a", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 140, -120 ], "parameters": { "width": 460, "height": 220, "content": "## Generate 360° Virtual Try-on Videos for Clothing with Kling API (unofficial)\nThis tool is designed for e-commerce platforms, fashion brands, content creators, and content influencers. By uploading model and clothing images and linking your PiAPI account, you can swiftly generate a realistic video of the model sporting the outfit with a 360° turn, offering an immersive viewing experience." }, "typeVersion": 1 }, { "id": "629697ae-cd49-4e8e-953d-a2f091ed9202", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 120, 700 ], "parameters": { "width": 340, "height": 200, "content": "## Generate Virtual Try-on Image\nUpload model url, users have two solutions to upload clothing url: \n1. Upload `dress_input`\n2. Upload 'upper_input` and 'lower_input`" }, "typeVersion": 1 }, { "id": "710bd0f0-8b5a-469a-8b31-b6f738dc7f79", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 1640, 460 ], "parameters": { "width": 340, "content": "## Generate Final Video \nWait for generation and get the output url in the final node." }, "typeVersion": 1 } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "versionId": "97ee31dd-b8be-4b37-bbed-363ac35d5268", "connections": { "Switch": { "main": [ [ { "node": "Generate kling video", "type": "main", "index": 0 } ] ] }, "Check Data Status": { "main": [ [ { "node": "Switch", "type": "main", "index": 0 } ], [ { "node": "Wait for Image Generation", "type": "main", "index": 0 } ] ] }, "Preset Parameters": { "main": [ [ { "node": "Kling Virtual Try-On Task", "type": "main", "index": 0 } ] ] }, "Generate kling video": { "main": [ [ { "node": "Wait for Video Generation", "type": "main", "index": 0 } ] ] }, "Get Kling Video Task": { "main": [ [ { "node": "Get Video Data Status", "type": "main", "index": 0 } ] ] }, "Get Video Data Status": { "main": [ [ { "node": "Check Video Data Status", "type": "main", "index": 0 } ], [ { "node": "Wait for Video Generation", "type": "main", "index": 0 } ] ] }, "Check Video Data Status": { "main": [ [ { "node": "Get Final Video URL", "type": "main", "index": 0 } ] ] }, "Kling Virtual Try-On Task": { "main": [ [ { "node": "Wait for Image Generation", "type": "main", "index": 0 } ] ] }, "Wait for Image Generation": { "main": [ [ { "node": "Get Kling Virtual Try-On Task", "type": "main", "index": 0 } ] ] }, "Wait for Video Generation": { "main": [ [ { "node": "Get Kling Video Task", "type": "main", "index": 0 } ] ] }, "Get Kling Virtual Try-On Task": { "main": [ [ { "node": "Check Data Status", "type": "main", "index": 0 } ] ] }, "When clicking ‘Test workflow’": { "main": [ [ { "node": "Preset Parameters", "type": "main", "index": 0 } ] ] } } }