Wan 2.1 LoRA API reference
Wan 2.1 video and edits with your own LoRAs, camera moves included
Call Wan 2.1 LoRA from your own code with one PopNow API key. Below are the exact model IDs to send, every input field the model accepts, what each request costs in credits, and a request you can paste into a terminal.
At a glance
- Made by
- Alibaba
- Output
- Video
- From
- 36 credits per request ($0.36)
1 credit = $0.01. A task holds the highest possible charge when it is accepted and settles the real amount when it finishes, rounded up to whole credits; failed tasks are not charged. Ask POST /api/v1/jobs/quote for the exact figure before you run.
Create Video
alibaba/wan-2.1-lora/text-to-video
Price
| Option | Credits (per request) | US dollars |
|---|---|---|
duration_seconds = 5, resolution = 480p | 36 | $0.36 |
duration_seconds = 10, resolution = 480p | 54 | $0.54 |
duration_seconds = 5, resolution = 720p | 54 | $0.54 |
duration_seconds = 10, resolution = 720p | 81 | $0.81 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | Describe the scene, the action and the camera. If a LoRA has trigger words, put them first. |
negative_promptOptional | string | — | — | What must stay out of the clip. |
aspect_ratioOptional | string | 16:9 | 16:9, 9:16 | Output aspect ratio. |
resolutionOptional | string | 480p | 480p, 720p | Output resolution. |
duration_secondsOptional | integer | 5 | 5, 10 | Clip length: 5 or 10 seconds. |
lorasOptional | array<object> | [] | up to 3 items | Up to three LoRA weight files trained for Wan 2.1 14B, each with its own strength. |
guidance_scaleOptional | number | 5 | 0 to 20 | How closely the clip follows the prompt, from 0 to 20. |
flow_shiftOptional | number | — | 1 to 10 | Flow-matching timestep shift, from 1 to 10. Leave it out for the default (3 at 480p, 5 at 720p). |
stepsOptional | integer | 30 | 1 to 40 | Denoising steps, from 1 to 40. Fewer steps return faster and softer. |
seedOptional | integer | — | 0 to 2147483647 | Random seed for controlled comparisons, not a frame-identical guarantee. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/wan-2.1-lora/text-to-video",
"input": {
"prompt": "A paper boat drifts down a rain-soaked street at dusk, neon signs reflecting in the water, slow tracking shot at ground level",
"duration_seconds": 5,
"resolution": "480p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Image to Video
alibaba/wan-2.1-lora/image-to-video
Price
| Option | Credits (per request) | US dollars |
|---|---|---|
duration_seconds = 5, resolution = 480p | 36 | $0.36 |
duration_seconds = 10, resolution = 480p | 54 | $0.54 |
duration_seconds = 5, resolution = 720p | 54 | $0.54 |
duration_seconds = 10, resolution = 720p | 81 | $0.81 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | Describe what happens after the opening frame and how the camera moves. |
image_urlRequired | string (uri) | — | — | Opening frame. The clip keeps its aspect ratio. |
negative_promptOptional | string | — | — | What must stay out of the clip. |
resolutionOptional | string | 480p | 480p, 720p | Output resolution. |
duration_secondsOptional | integer | 5 | 5, 10 | Clip length: 5 or 10 seconds. |
lorasOptional | array<object> | [] | up to 3 items | Up to three LoRA weight files trained for Wan 2.1 14B, each with its own strength. |
guidance_scaleOptional | number | 5 | 0 to 20 | How closely the clip follows the prompt, from 0 to 20. |
flow_shiftOptional | number | — | 1 to 10 | Flow-matching timestep shift, from 1 to 10. Leave it out for the default (3 at 480p, 5 at 720p). |
stepsOptional | integer | 30 | 1 to 40 | Denoising steps, from 1 to 40. Fewer steps return faster and softer. |
seedOptional | integer | — | 0 to 2147483647 | Random seed for controlled comparisons, not a frame-identical guarantee. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in image_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/wan-2.1-lora/image-to-video",
"input": {
"prompt": "He lands softly on the rooftop, laughs and turns toward the camera while the balloons sway in the evening breeze; slow push-in",
"image_url": "https://media.popnow.ai/influencer/examples/marco.webp",
"duration_seconds": 5,
"resolution": "480p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"Edit Video
alibaba/wan-2.1-lora/video-edit
Price
| Option | Credits (per request) | US dollars |
|---|---|---|
duration_seconds = 5, resolution = 480p | 36 | $0.36 |
duration_seconds = 10, resolution = 480p | 54 | $0.54 |
duration_seconds = 5, resolution = 720p | 54 | $0.54 |
duration_seconds = 10, resolution = 720p | 81 | $0.81 |
Parameters
| Field | Type | Default | Allowed | What it does |
|---|---|---|---|---|
promptRequired | string | — | — | Describe how the whole clip should look after the restyle: subject, wardrobe, setting, style. |
video_urlRequired | string (uri) | — | — | Source clip. Its motion and timing carry over to the result. |
negative_promptOptional | string | — | — | What must stay out of the clip. |
resolutionOptional | string | 480p | 480p, 720p | Output resolution. |
strengthOptional | number | 0.9 | 0.1 to 1 | How far to move away from the source, from 0.1 to 1. |
duration_secondsOptional | integer | 5 | 5, 10 | Clip length: 5 or 10 seconds. |
lorasOptional | array<object> | [] | up to 3 items | Up to three LoRA weight files trained for Wan 2.1 14B, each with its own strength. |
guidance_scaleOptional | number | 5 | 0 to 20 | How closely the clip follows the prompt, from 0 to 20. |
flow_shiftOptional | number | — | 1 to 10 | Flow-matching timestep shift, from 1 to 10. Leave it out for the default (3 at 480p, 5 at 720p). |
stepsOptional | integer | 30 | 1 to 40 | Denoising steps, from 1 to 40. Fewer steps return faster and softer. |
seedOptional | integer | — | 0 to 2147483647 | Random seed for controlled comparisons, not a frame-identical guarantee. |
Example request
This request runs as it is; any field you leave out uses its default. Put your key in POPNOW_API_KEY first.
The example uses PopNow sample files in video_url. Replace them with your own public HTTPS links, uploads or saved assets.
curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/wan-2.1-lora/video-edit",
"input": {
"prompt": "Recolor the flowers in soft pastel blue; keep the face and the motion unchanged",
"video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
"duration_seconds": 5,
"resolution": "480p"
}
}'The response carries a taskId straight away. Read the result with GET /api/v1/jobs/recordInfo, or add callBackUrl to be notified.
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=TASK_ID_FROM_CREATE_TASK" \
-H "Authorization: Bearer $POPNOW_API_KEY"
