AIAPIAIAPI API

Wan 2.7 I2V Spicy

Model ID alibaba/wan-2.7-i2v-spicy

Overview

Image-to-video generation. Animates a single source image from a text prompt, with optional end-frame control.

Alibaba · image-to-video

Endpoint

POST /v1/video/generations

Authentication

Authorization: Bearer <AIAPIAIAPI_API_KEY>

Request Body

ParameterTypeRequiredNullableDefaultConstraintsDescription
modelstringYesNo-values: alibaba/wan-2.7-i2v-spicyModel ID used to route the request.
promptstringYesNo--Text prompt describing the desired video.
negative_promptstringNoNo--Content to avoid in the generated video.
imagestringYesNo-accepts: HTTPS URL, Base64 data URLPrimary input or first-frame image; accepts an HTTPS URL or Base64 data URL.
end_imagestringNoNo-accepts: HTTPS URL, Base64 data URLOptional end-frame image; accepts an HTTPS URL or Base64 data URL.
audio_enablebooleanNoNo--Whether to generate audio together with the video.
durationintegerNoNo`5`range: 2-15Generated video duration in seconds.
resolutionstringNoNo`720p`values: 720p, 1080pOutput video resolution.
seedintegerNoNo-min: -1Random seed; use -1 for a random result.
prompt_extendbooleanNoNo--Whether the upstream model should expand or enhance the prompt.

model

Type: string · Required: Yes · Nullable: No

Model ID used to route the request.

prompt

Type: string · Required: Yes · Nullable: No

Text prompt describing the desired video.

negative_prompt

Type: string · Required: No · Nullable: No

Content to avoid in the generated video.

image

Type: string · Required: Yes · Nullable: No

Primary input or first-frame image; accepts an HTTPS URL or Base64 data URL.

end_image

Type: string · Required: No · Nullable: No

Optional end-frame image; accepts an HTTPS URL or Base64 data URL.

audio_enable

Type: boolean · Required: No · Nullable: No

Whether to generate audio together with the video.

duration

Type: integer · Required: No · Nullable: No

Generated video duration in seconds.

resolution

Type: string · Required: No · Nullable: No

Output video resolution.

seed

Type: integer · Required: No · Nullable: No

Random seed; use -1 for a random result.

prompt_extend

Type: boolean · Required: No · Nullable: No

Whether the upstream model should expand or enhance the prompt.

Request Example

curl --request POST \
  --url https://aiapiaiapi.com/v1/video/generations \
  --header 'Authorization: Bearer $AIAPIAIAPI_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
      "model": "alibaba/wan-2.7-i2v-spicy",
      "prompt": "A cinematic camera movement through a forest",
      "image": "https://example.com/reference.jpg",
      "duration": 5,
      "resolution": "720p"
    }'

JSON

{
  "model": "alibaba/wan-2.7-i2v-spicy",
  "prompt": "A cinematic camera movement through a forest",
  "image": "https://example.com/reference.jpg",
  "duration": 5,
  "resolution": "720p"
}

Response

{
  "id": "vid_01K2ABC123",
  "object": "video.generation",
  "model": "alibaba/wan-2.7-i2v-spicy",
  "status": "queued",
  "progress": null,
  "outputs": [],
  "created_at": 1786960800,
  "started_at": null,
  "completed_at": null,
  "error": null
}

Task Status

Use the id from the create response as task_id:

GET /v1/video/generations/{task_id}

{
  "id": "vid_01K2ABC123",
  "object": "video.generation",
  "model": "alibaba/wan-2.7-i2v-spicy",
  "status": "completed",
  "progress": 100,
  "outputs": [
    { "type": "video", "url": "https://cdn.example.com/videos/vid_01K2ABC123.mp4" }
  ],
  "created_at": 1786960800,
  "started_at": 1786960805,
  "completed_at": 1786960900,
  "error": null
}

Error Responses

Validation errors return HTTP 400 with a stable error code.

{
  "error": {
    "type": "invalid_request_error",
    "code": "unsupported_value",
    "message": "The parameter value is not supported by this model.",
    "param": "duration"
  }
}

Documentation Index

Fetch the complete documentation index at:

https://aiapiaiapi.com/llms.txt

Use this file to discover all available API documentation.