Build with Wan 2.7
Make your first request
Use your Sorceress API key on your server. The playground uses your signed-in account; your application uses the same model with an API key.
curl -X POST 'https://sorceress.games/api/v1/jobs' \
-H 'Authorization: Bearer $SORCERESS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "wan-2-7-r2v",
"input": {
"duration": 5,
"watermark": false,
"resolution": "1080p",
"aspect_ratio": "16:9",
"prompt_extend": true,
"prompt": "<prompt>"
}
}'Inputs & settings
seedintegerRandom seed. Range: `0-2147483647`. If omitted, the system generates one automatically.
promptstringRequiredText prompt. Required. Describes the desired elements and visual features in the generated video. Supports Chinese and English. Maximum length: 5000 characters.
durationintegerOutput video duration in seconds. Valid range is an integer from `2` to `10`. Default value: `5`.
watermarkbooleanWhether to add a watermark. The watermark is placed in the lower-right corner of the video with the fixed text "AI generated".
resolutionstringOutput video resolution tier. Available values: `720p`, `1080p`. Default value: `1080p`.
Options: 720p, 1080p
first_framestringFirst frame image URL. At most one image can be provided. If supplied, `aspect_ratio` is ignored and the output uses a ratio close to the first frame image.
aspect_ratiostringOutput video aspect ratio. Effective logic: If `first_frame` is not provided: the video is generated using the specified `aspect_ratio` If `first_frame` is provided: `aspect_ratio` is ignored and the output uses a ratio close to the first frame image
Options: 16:9, 9:16, 1:1, 4:3, 3:4
nsfw_checkerbooleanDefaults to false. When false, no additional content filtering is applied and results are returned directly by the model.
prompt_extendbooleanWhether to enable prompt rewriting. When enabled, the model expands the input prompt. This usually works better for short prompts but increases processing time.
negative_promptstringOptional negative prompt describing what should not appear in the video. Supports Chinese and English. Maximum length: 500 characters.
reference_imagearrayArray of reference image URLs. At least one of `reference_image` or `reference_video` must be provided. The total number of images and videos cannot exceed 5.
reference_videoarrayArray of reference video URLs. At least one of `reference_image` or `reference_video` must be provided. The total number of images and videos cannot exceed 5.
reference_voicestringAudio URL used to specify the voice timbre of the subject in the reference material. Rules: If `reference_video` contains audio and `reference_voice` is not provided, the original video audio is used by default If both `reference_video` and `reference_voice` are provided, `reference_voice` takes priority Audio limits: Formats: `wav`, `mp3` Duration: `1` to `10` seconds File size: up to `30MB`
Full input schema
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"seed": {
"type": "integer",
"title": "Seed",
"maximum": 2147483647,
"minimum": 0,
"description": "Random seed. Range: `0-2147483647`. If omitted, the system generates one automatically."
},
"prompt": {
"type": "string",
"title": "Prompt",
"maxLength": 5000,
"description": "Text prompt. Required. Describes the desired elements and visual features in the generated video. Supports Chinese and English. Maximum length: 5000 characters."
},
"duration": {
"type": "integer",
"title": "Duration",
"default": 5,
"maximum": 10,
"minimum": 2,
"description": "Output video duration in seconds. Valid range is an integer from `2` to `10`. Default value: `5`."
},
"watermark": {
"type": "boolean",
"title": "Watermark",
"default": false,
"description": "Whether to add a watermark. The watermark is placed in the lower-right corner of the video with the fixed text \"AI generated\"."
},
"resolution": {
"enum": [
"720p",
"1080p"
],
"type": "string",
"title": "Resolution",
"default": "1080p",
"description": "Output video resolution tier. Available values: `720p`, `1080p`. Default value: `1080p`."
},
"first_frame": {
"type": "string",
"title": "First frame",
"format": "uri",
"x-media": "image",
"description": "First frame image URL. At most one image can be provided. If supplied, `aspect_ratio` is ignored and the output uses a ratio close to the first frame image."
},
"aspect_ratio": {
"enum": [
"16:9",
"9:16",
"1:1",
"4:3",
"3:4"
],
"type": "string",
"title": "Aspect ratio",
"default": "16:9",
"description": "Output video aspect ratio. Effective logic: If `first_frame` is not provided: the video is generated using the specified `aspect_ratio` If `first_frame` is provided: `aspect_ratio` is ignored and the output uses a ratio close to the first frame image"
},
"nsfw_checker": {
"type": "boolean",
"title": "NSFW checker",
"description": "Defaults to false. When false, no additional content filtering is applied and results are returned directly by the model."
},
"prompt_extend": {
"type": "boolean",
"title": "Prompt extend",
"default": true,
"description": "Whether to enable prompt rewriting. When enabled, the model expands the input prompt. This usually works better for short prompts but increases processing time."
},
"negative_prompt": {
"type": "string",
"title": "Negative prompt",
"maxLength": 500,
"description": "Optional negative prompt describing what should not appear in the video. Supports Chinese and English. Maximum length: 500 characters."
},
"reference_image": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference image",
"x-media": "image",
"maxItems": 5,
"description": "Array of reference image URLs. At least one of `reference_image` or `reference_video` must be provided. The total number of images and videos cannot exceed 5."
},
"reference_video": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference video",
"x-media": "video",
"maxItems": 5,
"description": "Array of reference video URLs. At least one of `reference_image` or `reference_video` must be provided. The total number of images and videos cannot exceed 5."
},
"reference_voice": {
"type": "string",
"title": "Reference voice",
"format": "uri",
"x-media": "audio",
"description": "Audio URL used to specify the voice timbre of the subject in the reference material. Rules: If `reference_video` contains audio and `reference_voice` is not provided, the original video audio is used by default If both `reference_video` and `reference_voice` are provided, `reference_voice` takes priority Audio limits: Formats: `wav`, `mp3` Duration: `1` to `10` seconds File size: up to `30MB`"
}
}
}Results, saved runs & billing
Media requests return a job ID. Poll GET /api/v1/jobs/:id until it succeeds or fails; keep the same ID while it is processing. Long chat requests can also return a saved job to poll. Completed outputs are stored in your account, and successful work is billed using your model's current rates.
A multi-step workflow may include separately billed successful actions. If a connection drops, check your saved run before submitting it again.






