{"servers":[{"url":"https://api.modellix.ai/api/v1/minimax/hailuo-02-fl2v"}],"post":{"description":"[Core Function] Hailuo 02 FL2V is a First-Last frame transition video model. [Strengths] It excels at generating a logical, physically accurate video transition that bridges a provided starting frame and an ending frame. [Best For] Highly recommended for: visual morphing, before-and-after transitions, and precise narrative storyboard completion. [Limitations] Do NOT use this model if you only have one image (use standard I2V instead). Note that Hailuo 2.3 does not support FL2V, so this is the primary transition model. [Routing] Use this model exclusively when the user provides BOTH a first frame and a last frame for a transition.","operationId":"minimaxHailuo02FL2VAsync","requestBody":{"content":{"application/json":{"examples":{"advanced":{"summary":"Advanced with 10 seconds 768P","value":{"duration":10,"first_frame_image":"https://example.com/first-frame.jpg","last_frame_image":"https://example.com/last-frame.jpg","prompt":"[Pan left,Pedestal up] A dramatic transition with combined camera movements","prompt_optimizer":false,"resolution":"768P"}},"basic":{"summary":"Basic with last frame only","value":{"last_frame_image":"https://example.com/last-frame.jpg"}},"with_camera_control":{"summary":"With camera control and all parameters","value":{"duration":6,"first_frame_image":"https://example.com/first-frame.jpg","last_frame_image":"https://example.com/last-frame.jpg","prompt":"[Pan left] The scene reveals a beautiful sunset, then [Push in] for a close-up view","prompt_optimizer":true,"resolution":"1080P"}},"with_first_and_last":{"summary":"With both first and last frames","value":{"first_frame_image":"https://example.com/first-frame.jpg","last_frame_image":"https://example.com/last-frame.jpg","prompt":"A smooth transition from day to night"}}},"schema":{"properties":{"duration":{"default":6,"description":"Video duration in seconds. Options: 6 or 10. Note: 10 seconds only supports 768P resolution. Default is 6.","enum":[6,10],"example":6,"type":"integer"},"first_frame_image":{"description":"First frame image (optional). URL or Base64 Data URL. If not provided, the model will auto-generate a first frame. Image format: JPG/JPEG/PNG/WebP, <20MB, short side >300px, aspect ratio between 2:5 and 5:2.","example":"https://example.com/first-frame.jpg","minLength":1,"type":"string"},"last_frame_image":{"description":"Last frame image (required). URL or Base64 Data URL. Image format: JPG/JPEG/PNG/WebP, <20MB, short side >300px, aspect ratio between 2:5 and 5:2. Video resolution is determined by the first frame; if dimensions differ, the last frame will be auto-cropped.","example":"https://example.com/last-frame.jpg","minLength":1,"type":"string"},"prompt":{"description":"Video content description (optional). Supports 15 camera control instructions. Format: Use [command] syntax for camera movements. Example: '[Pan left] Scene description' or '[Pan left,Pedestal up] for combined movements'. Max 2000 characters.","example":"[Pan left] A beautiful sunset transition","maxLength":2000,"minLength":1,"type":"string"},"prompt_optimizer":{"default":true,"description":"Whether to automatically optimize the prompt. Default is true. Set to false for more precise control.","example":true,"type":"boolean"},"resolution":{"default":"768P","description":"Video resolution. Options: 768P or 1080P. Note: FL2V does not support 512P. 10 seconds only supports 768P, 1080P only supports 6 seconds. Default is 768P.","enum":["768P","1080P"],"example":"1080P","type":"string"}},"required":["last_frame_image"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"code":0,"data":{"get_result":{"method":"GET","url":"https://api.modellix.ai/api/v1/tasks/task-fl2v-abc123"},"model_id":"model-123","status":"pending","task_id":"task-fl2v-abc123"},"message":"success"},"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"},"400":{"content":{"application/json":{"examples":{"invalid_duration":{"summary":"Invalid duration value","value":{"code":400,"message":"Invalid parameters: duration must be one of [6, 10]"}},"invalid_image":{"summary":"Invalid image format or size","value":{"code":400,"message":"Invalid parameters: image size exceeds 20MB or format not supported"}},"invalid_resolution":{"summary":"Invalid resolution for duration","value":{"code":400,"message":"Invalid parameters: 10 seconds duration only supports 768P resolution"}},"missing_first_frame":{"summary":"Missing required first_frame_image","value":{"code":400,"message":"Invalid parameters: parameter 'first_frame_image' is required"}}},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'first_frame_image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Invalid request parameters"},"401":{"content":{"application/json":{"example":{"code":401,"message":"Authentication failed: invalid API key"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'first_frame_image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Unauthorized - Invalid or missing API Key"},"429":{"content":{"application/json":{"example":{"code":429,"message":"Rate limit exceeded: 100 requests per minute, retry after 60 seconds"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'first_frame_image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Too many requests - Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"Maximum requests per minute","schema":{"example":100,"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining quota in current window","schema":{"example":0,"type":"integer"}},"X-RateLimit-Reset":{"description":"Rate limit window reset time (Unix timestamp)","schema":{"example":1704067260,"type":"integer"}}}},"500":{"content":{"application/json":{"example":{"code":500,"message":"Internal server error"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message in format 'Category: detail'","example":"Invalid parameters: parameter 'first_frame_image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Internal server error"}},"summary":"Hailuo 02 FL2V","x-mint":{"href":"minimax/hailuo-02-fl2v"}}}