Open-source image-to-video generation that converts static images into 720p videos.
WAN 2.1 I2V 720p is an open-source image-to-video generation model that converts static images into 720p videos. It uses a diffusion transformer architecture to create smooth, natural motion from still images.
Try in playground
Test WAN 2.1 I2V 720p in the Runpod Hub playground.
curl -X POST "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync" \ -H "Authorization: Bearer $RUNPOD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "prompt": "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", "image": "https://example.com/family-photo.png", "num_inference_steps": 30, "guidance": 5, "negative_prompt": "", "size": "1280*720", "duration": 5, "flow_shift": 5, "seed": -1, "enable_prompt_optimization": false, "enable_safety_checker": true } }'
import requestsresponse = requests.post( "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync", headers={ "Authorization": f"Bearer {RUNPOD_API_KEY}", "Content-Type": "application/json", }, json={ "input": { "prompt": "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", "image": "https://example.com/family-photo.png", "num_inference_steps": 30, "guidance": 5, "negative_prompt": "", "size": "1280*720", "duration": 5, "flow_shift": 5, "seed": -1, "enable_prompt_optimization": False, "enable_safety_checker": True, } },)result = response.json()print(result["output"]["video_url"])
const response = await fetch( "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync", { method: "POST", headers: { Authorization: `Bearer ${RUNPOD_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ input: { prompt: "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", image: "https://example.com/family-photo.png", num_inference_steps: 30, guidance: 5, negative_prompt: "", size: "1280*720", duration: 5, flow_shift: 5, seed: -1, enable_prompt_optimization: false, enable_safety_checker: true, }, }), });const result = await response.json();console.log(result.output.video_url);
curl -X POST "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync" \ -H "Authorization: Bearer $RUNPOD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "prompt": "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", "image": "https://example.com/family-photo.png", "num_inference_steps": 30, "guidance": 5, "negative_prompt": "", "size": "1280*720", "duration": 5, "flow_shift": 5, "seed": -1, "enable_prompt_optimization": false, "enable_safety_checker": true } }'
import requestsresponse = requests.post( "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync", headers={ "Authorization": f"Bearer {RUNPOD_API_KEY}", "Content-Type": "application/json", }, json={ "input": { "prompt": "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", "image": "https://example.com/family-photo.png", "num_inference_steps": 30, "guidance": 5, "negative_prompt": "", "size": "1280*720", "duration": 5, "flow_shift": 5, "seed": -1, "enable_prompt_optimization": False, "enable_safety_checker": True, } },)result = response.json()print(result["output"]["video_url"])
const response = await fetch( "https://api.runpod.ai/v2/wan-2-1-i2v-720/runsync", { method: "POST", headers: { Authorization: `Bearer ${RUNPOD_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ input: { prompt: "The family of three just took a selfie. They lean in together, smiling and relaxed. The daughter holds the phone and shows the screen", image: "https://example.com/family-photo.png", num_inference_steps: 30, guidance: 5, negative_prompt: "", size: "1280*720", duration: 5, flow_shift: 5, seed: -1, enable_prompt_optimization: false, enable_safety_checker: true, }, }), });const result = await response.json();console.log(result.output.video_url);