Workflow: Generate 360° Virtual Try-on Videos for Clothing with Kling API
Integrations: httpRequest, if, manualTrigger, set, stickyNote, switch, wait

{"id": "xQ0xqhNzFeEdBpFK", "meta": {"instanceId": "workflow-21a9687b", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:50.768456", "updatedAt": "2025-09-29T07:07:50.768483", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "Generate 360\u00b0 Virtual Try-on Videos for Clothing with Kling API", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "nodes": [{"id": "978b4ac4-0357-4d2b-8a02-7da04e6f3f1f", "name": "When clicking \u2018Test workflow\u2019", "type": "n8n-nodes-base.manualTrigger", "position": [160, 140], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow."}, {"id": "54d1c23f-3a13-4ec0-9b3b-3806e5faae18", "name": "Kling Virtual Try-On Task", "type": "n8n-nodes-base.httpRequest", "position": [620, 140], "parameters": {"url": "{{ $env.API_BASE_URL }}", "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, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"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, "notes": "This switch node performs automated tasks as part of the workflow."}, {"id": "cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4", "name": "Get Kling Video Task", "type": "n8n-nodes-base.httpRequest", "position": [1180, 440], "parameters": {"url": "{{ $env.BASE_URL }}", "options": {}, "sendHeaders": true, "headerParameters": {"parameters": [{"name": "x-api-key", "value": "={{ $('Preset Parameters').item.json['x-api-key'] }}"}]}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "3e794d14-b55f-4936-90af-8237977d6635", "name": "Generate kling video", "type": "n8n-nodes-base.httpRequest", "position": [1140, 200], "parameters": {"url": "{{ $env.API_BASE_URL }}", "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, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"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, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "18c606e3-82e2-4c09-a87e-6bbc71363c1c", "name": "Get Kling Virtual Try-On Task", "type": "n8n-nodes-base.httpRequest", "position": [420, 460], "parameters": {"url": "{{ $env.BASE_URL }}", "options": {}, "sendHeaders": true, "headerParameters": {"parameters": [{"name": "x-api-key", "value": "={{ $('Preset Parameters').item.json['x-api-key'] }}"}]}}, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"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, "notes": "This if node performs automated tasks as part of the workflow."}, {"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, "notes": "This wait node performs automated tasks as part of the workflow."}, {"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, "notes": "This wait node performs automated tasks as part of the workflow."}, {"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, "notes": "This switch node performs automated tasks as part of the workflow."}, {"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, "notes": "This if node performs automated tasks as part of the workflow."}, {"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, "notes": "This set node performs automated tasks as part of the workflow."}, {"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\u00b0 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\u00b0 turn, offering an immersive viewing experience."}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"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, "notes": "This stickyNote node performs automated tasks as part of the workflow."}], "active": false, "pinData": {}, "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "97ee31dd-b8be-4b37-bbed-363ac35d5268", "connections": {"54d1c23f-3a13-4ec0-9b3b-3806e5faae18": {"main": [[{"node": "error-handler-54d1c23f-3a13-4ec0-9b3b-3806e5faae18", "type": "main", "index": 0}], [{"node": "error-handler-54d1c23f-3a13-4ec0-9b3b-3806e5faae18-f1f827d5", "type": "main", "index": 0}], [{"node": "error-handler-54d1c23f-3a13-4ec0-9b3b-3806e5faae18-2140745d", "type": "main", "index": 0}], [{"node": "error-handler-54d1c23f-3a13-4ec0-9b3b-3806e5faae18-95df26d2", "type": "main", "index": 0}], [{"node": "error-handler-54d1c23f-3a13-4ec0-9b3b-3806e5faae18-08204719", "type": "main", "index": 0}]]}, "cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4": {"main": [[{"node": "error-handler-cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4", "type": "main", "index": 0}], [{"node": "error-handler-cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4-daca74db", "type": "main", "index": 0}], [{"node": "error-handler-cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4-b1135b79", "type": "main", "index": 0}], [{"node": "error-handler-cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4-4b55e912", "type": "main", "index": 0}], [{"node": "error-handler-cdda4f40-1580-4a5a-a7f4-f1e4fbf7ceb4-3b608e60", "type": "main", "index": 0}]]}, "3e794d14-b55f-4936-90af-8237977d6635": {"main": [[{"node": "error-handler-3e794d14-b55f-4936-90af-8237977d6635", "type": "main", "index": 0}], [{"node": "error-handler-3e794d14-b55f-4936-90af-8237977d6635-7d8ad3ea", "type": "main", "index": 0}], [{"node": "error-handler-3e794d14-b55f-4936-90af-8237977d6635-2af3ce60", "type": "main", "index": 0}], [{"node": "error-handler-3e794d14-b55f-4936-90af-8237977d6635-e3097285", "type": "main", "index": 0}], [{"node": "error-handler-3e794d14-b55f-4936-90af-8237977d6635-f0a878f8", "type": "main", "index": 0}]]}, "18c606e3-82e2-4c09-a87e-6bbc71363c1c": {"main": [[{"node": "error-handler-18c606e3-82e2-4c09-a87e-6bbc71363c1c", "type": "main", "index": 0}], [{"node": "error-handler-18c606e3-82e2-4c09-a87e-6bbc71363c1c-2c629de8", "type": "main", "index": 0}], [{"node": "error-handler-18c606e3-82e2-4c09-a87e-6bbc71363c1c-494d86a0", "type": "main", "index": 0}], [{"node": "error-handler-18c606e3-82e2-4c09-a87e-6bbc71363c1c-e79e23dd", "type": "main", "index": 0}], [{"node": "error-handler-18c606e3-82e2-4c09-a87e-6bbc71363c1c-a556e992", "type": "main", "index": 0}]]}}, "description": "Automated workflow: Generate 360\u00b0 Virtual Try-on Videos for Clothing with Kling API. This workflow integrates 8 different services: stickyNote, httpRequest, wait, switch, set. It contains 24 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Generate 360\u00b0 Virtual Try-on Videos for Clothing with Kling API. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}