{"servers":[{"url":"https://api.modellix.ai/api/v1/alibaba/wan2.1-vace-plus"}],"post":{"description":"[Core Function] Wan 2.1 VACE Plus - Unified Video Editing Model is an older generation image-to-image editing model. [Strengths] Delivered strong Chinese-language prompt understanding and regional aesthetic preferences. Maintained for backward compatibility. [Best For] Existing legacy integrations and workflows that strictly depend on this specific model version's quirks. [Limitations] Do NOT use this for new creations. It is a legacy model maintained for backward compatibility. [Routing] Only use if explicitly requested; otherwise use Wan 2.7 I2I.","operationId":"wan21VacePlusAsync","requestBody":{"content":{"application/json":{"examples":{"image_reference":{"summary":"Multi-Image Reference (image_reference)","value":{"duration":5,"function":"image_reference","obj_or_bg":["obj","bg"],"prompt":"A girl walking through a forest","ref_images_url":["https://example.com/ref1.jpg","https://example.com/ref2.jpg"]}},"video_edit":{"summary":"Local Video Editing (video_edit)","value":{"function":"video_edit","mask_frame_id":1,"mask_image_url":"https://example.com/mask.png","mask_type":"tracking","prompt":"A lion in a cafe","video_url":"https://example.com/video.mp4"}},"video_extension":{"summary":"Video Extension (video_extension)","value":{"first_clip_url":"https://example.com/first.mp4","function":"video_extension","last_clip_url":"https://example.com/last.mp4","prompt":"A dog skateboarding"}},"video_outpainting":{"summary":"Video Outpainting (video_outpainting)","value":{"bottom_scale":1.5,"function":"video_outpainting","left_scale":1.5,"prompt":"A lady playing violin","right_scale":1.5,"top_scale":1.5,"video_url":"https://example.com/video.mp4"}},"video_repainting":{"summary":"Video Repainting (video_repainting)","value":{"control_condition":"depth","function":"video_repainting","prompt":"Transform the car into steampunk style","video_url":"https://example.com/video.mp4"}}},"schema":{"properties":{"bottom_scale":{"default":1,"description":"Bottom boundary expansion scale for video_outpainting function (1.0-2.0). 1.0 = no expansion (original height), 2.0 = double the bottom area. Default is 1.0. Use values > 1.0 to expand the canvas downward. For example, 1.5 means add 50% more canvas space below the original video. The model will generate content to fill the expanded area naturally","example":1.5,"maximum":2,"minimum":1,"type":"number"},"control_condition":{"description":"Control condition type for structure preservation. Usage by function: (1) video_repainting: required, determines how video structure is preserved during repainting; (2) video_extension: required when video_url is present, maintains consistency with reference video; (3) video_edit: optional, provides structural guidance for editing; (4) other functions: not used. Options: 'posebodyface' (pose+body+face detection), 'posebody' (pose+body only), 'depth' (depth map), 'scribble' (edge detection), '' (empty string for no extraction)","enum":["posebodyface","posebody","depth","scribble",""],"example":"depth","type":"string"},"duration":{"default":5,"description":"Video duration in seconds. Fixed at 5 seconds and cannot be modified. The model always generates 5-second videos regardless of this parameter value","enum":[5],"example":5,"type":"integer"},"expand_mode":{"default":"hull","description":"Mask expansion mode for video_edit function. Determines how the mask is expanded when expand_ratio > 0. Options: (1) 'hull': convex hull expansion (smooth, rounded boundaries); (2) 'bbox': bounding box expansion (rectangular boundaries); (3) 'original': keep original mask shape while expanding. Default is 'hull'. Use 'hull' for natural objects, 'bbox' for rectangular regions","enum":["hull","bbox","original"],"example":"hull","type":"string"},"expand_ratio":{"default":0.05,"description":"Mask expansion ratio for video_edit function (0.0-1.0). Expands the mask boundary to include surrounding areas. 0.0 = no expansion (use exact mask), 1.0 = maximum expansion. Default is 0.05 (5% expansion). Useful for ensuring complete coverage of editing region and avoiding edge artifacts","example":0.1,"maximum":1,"minimum":0,"type":"number"},"first_clip_url":{"description":"First video clip URL for video_extension function. Provides a video segment to use as the starting portion. At least one of first_frame_url/last_frame_url/first_clip_url/last_clip_url must be provided. Use this when you want more control than a single frame can provide. The model will extend naturally from the end of this clip","example":"https://example.com/first_clip.mp4","format":"uri","type":"string"},"first_frame_url":{"description":"First frame image URL for video_extension function. Specifies the starting frame when extending video forward. At least one of first_frame_url/last_frame_url/first_clip_url/last_clip_url must be provided. Use this to define the exact starting point of the extended video. The model will generate smooth transition from this frame","example":"https://example.com/first_frame.jpg","format":"uri","type":"string"},"function":{"description":"Video editing function to use. Determines which parameters are required and applicable: (1) image_reference: Generate video from reference images; (2) video_repainting: Apply style transfer to existing video using control conditions; (3) video_edit: Edit specific regions of video using mask; (4) video_extension: Extend video at start/end using frame/clip references; (5) video_outpainting: Expand video canvas boundaries","enum":["image_reference","video_repainting","video_edit","video_extension","video_outpainting"],"example":"image_reference","type":"string"},"last_clip_url":{"description":"Last video clip URL for video_extension function. Provides a video segment to use as the ending portion. At least one of first_frame_url/last_frame_url/first_clip_url/last_clip_url must be provided. Use this when you want more control than a single frame can provide. The model will extend naturally to the beginning of this clip","example":"https://example.com/last_clip.mp4","format":"uri","type":"string"},"last_frame_url":{"description":"Last frame image URL for video_extension function. Specifies the ending frame when extending video backward. At least one of first_frame_url/last_frame_url/first_clip_url/last_clip_url must be provided. Use this to define the exact ending point of the extended video. The model will generate smooth transition to this frame","example":"https://example.com/last_frame.jpg","format":"uri","type":"string"},"left_scale":{"default":1,"description":"Left boundary expansion scale for video_outpainting function (1.0-2.0). 1.0 = no expansion (original width), 2.0 = double the left area. Default is 1.0. Use values > 1.0 to expand the canvas leftward. For example, 1.5 means add 50% more canvas space to the left of the original video. The model will generate content to fill the expanded area naturally","example":1.5,"maximum":2,"minimum":1,"type":"number"},"mask_frame_id":{"default":1,"description":"Frame ID (1-based index) indicating which frame the mask_image_url corresponds to. Only applicable when using mask_image_url in video_edit function. The mask will be propagated from this frame to others based on mask_type. For example, mask_frame_id=1 means the mask corresponds to the first frame of the video. Default is 1 (first frame)","example":1,"minimum":1,"type":"integer"},"mask_image_url":{"description":"Mask image URL for video_edit function. Defines the region to edit (white=edit, black=keep). Must provide either mask_image_url OR mask_video_url, not both. When using mask_image_url, also specify mask_frame_id to indicate which frame the mask corresponds to. The mask will be propagated to other frames based on mask_type setting","example":"https://example.com/mask.png","format":"uri","type":"string"},"mask_type":{"default":"tracking","description":"Mask propagation type for video_edit function. Options: (1) 'tracking': mask follows object movement across frames (recommended for moving objects); (2) 'fixed': mask stays in same position across all frames (recommended for static scenes or background edits). Default is 'tracking'","enum":["tracking","fixed"],"example":"tracking","type":"string"},"mask_video_url":{"description":"Mask video URL for video_edit function. Provides frame-by-frame mask for precise control (white=edit, black=keep). Must provide either mask_image_url OR mask_video_url, not both. Mask video must have the same frame count as the input video. Use this for complex editing that requires different masks for different frames","example":"https://example.com/mask.mp4","format":"uri","type":"string"},"obj_or_bg":{"description":"Classification for each reference image: 'obj' (object/subject) or 'bg' (background). Only for image_reference function. Array length must match ref_images_url length. Maximum 1 'bg' element allowed. Helps model distinguish between subject references and background style references","example":["obj","bg"],"items":{"enum":["obj","bg"],"type":"string"},"type":"array"},"prompt":{"description":"Content description in Chinese or English (1-800 characters). Describes the desired video content or editing effect. Required for all functions","example":"A girl walking through a forest","maxLength":800,"minLength":1,"type":"string"},"prompt_extend":{"default":true,"description":"Enable intelligent prompt rewriting and enhancement. When true (default), the model will automatically optimize and expand your prompt for better results. When false, uses your prompt exactly as provided. Recommended to keep true unless you need precise control over the exact wording. Applicable to all functions","example":true,"type":"boolean"},"ref_images_url":{"description":"Reference image URLs array. Usage by function: (1) image_reference: 1-3 images required, used as visual references for video generation; (2) video_repainting: max 1 image optional, provides style reference; (3) video_edit: max 1 image optional, provides style reference; (4) other functions: not used. Images must be publicly accessible HTTP/HTTPS URLs","example":["https://example.com/ref1.jpg","https://example.com/ref2.jpg"],"items":{"format":"uri","type":"string"},"maxItems":3,"minItems":1,"type":"array"},"right_scale":{"default":1,"description":"Right boundary expansion scale for video_outpainting function (1.0-2.0). 1.0 = no expansion (original width), 2.0 = double the right area. Default is 1.0. Use values > 1.0 to expand the canvas rightward. For example, 1.5 means add 50% more canvas space to the right of the original video. The model will generate content to fill the expanded area naturally","example":1.5,"maximum":2,"minimum":1,"type":"number"},"seed":{"description":"Random seed for reproducible results (0-2147483647). Using the same seed with identical parameters will produce similar (though not pixel-perfect identical) results. Useful for A/B testing different prompts while keeping other randomness constant. If not specified, a random seed is used each time. Applicable to all functions","example":42,"maximum":2147483647,"minimum":0,"type":"integer"},"size":{"default":"1280*720","description":"Output video resolution in width*height format. Available options: '1280*720' (16:9 landscape, HD), '720*1280' (9:16 portrait, mobile-friendly), '960*960' (1:1 square, social media), '1088*832' (4:3 landscape), '832*1088' (3:4 portrait). Default is '1280*720'. Choose based on your target platform and use case. Applicable to all functions","enum":["1280*720","720*1280","960*960","832*1088","1088*832"],"example":"1280*720","type":"string"},"top_scale":{"default":1,"description":"Top boundary expansion scale for video_outpainting function (1.0-2.0). 1.0 = no expansion (original height), 2.0 = double the top area. Default is 1.0. Use values > 1.0 to expand the canvas upward. For example, 1.5 means add 50% more canvas space above the original video. The model will generate content to fill the expanded area naturally","example":1.5,"maximum":2,"minimum":1,"type":"number"},"video_url":{"description":"Input video URL. Usage by function: (1) video_repainting: required, the video to be repainted; (2) video_edit: required, the video to be edited; (3) video_outpainting: required, the video to expand; (4) video_extension: optional, provides reference style when extending; (5) image_reference: not used. Must be publicly accessible HTTP/HTTPS/OSS URL","example":"https://example.com/video.mp4","format":"uri","type":"string"}},"required":["function","prompt"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"Response code, 0 indicates success","example":0,"type":"integer"},"data":{"description":"Detailed data about the submitted asynchronous task.","properties":{"get_result":{"description":"API information to query the task result","properties":{"method":{"description":"HTTP method","example":"GET","type":"string"},"url":{"description":"Full URL to query the task result","example":"https://api.modellix.ai/api/v1/tasks/task-abc123","type":"string"}},"type":"object"},"model_id":{"description":"Model ID","example":"model-123","type":"string"},"status":{"description":"Task status","enum":["pending","processing"],"example":"pending","type":"string"},"task_id":{"description":"Unique task identifier","example":"task-abc123","type":"string"}},"required":["status","task_id","model_id"],"type":"object"},"message":{"description":"Response message","example":"success","type":"string"}},"required":["code","message","data"],"type":"object"}}},"description":"Task submitted successfully"}},"summary":"Wan 2.1 VACE Plus - Unified Video Editing Model","x-mint":{"href":"alibaba/wan-2-1-vace-plus"}}}