{
  "schema_version": 1,
  "public_model_id": "wan-video/wan-2.2-i2v-fast",
  "canonical_page": "https://www.maxapi.dev/models/wan-video/wan-2.2-i2v-fast",
  "reviewed_at": "2026-10-26",
  "generated_at": "2026-10-26T15:42:06.256Z",
  "scope": "Checked against MaxAPI's public catalogue, gateway implementation and local regression cases. Shared gateway checks are not separate end-to-end tests of every listed model. This is an integration reference, not a live upstream availability or performance report.",
  "summary": "Wan 2.2 I2V Fast uses wan-video/wan-2.2-i2v-fast in MaxAPI's video-generation API. Submit a task, save its identifier, and poll for the final result. Acceptance is not completion. Supported media, duration and resolution depend on this model entry and the selected route.",
  "aliases": [],
  "model_profile": {
    "family_id": "wan-video/wan-2.2-i2v-fast",
    "reviewed_at": "2026-10-26",
    "title": "Fast image-to-video drafts",
    "provider_positioning": "Wan 2.2 I2V Fast is a PrunaAI-optimized version of Wan 2.2 A14B image-to-video, served through Replicate. MaxAPI exposes image-to-video with an optional last frame at 480p or 720p, 81–121 frames and no audio. The Official route is priced per video: 0.05 credits at 480p and 0.11 at 720p (0.065 / 0.145 with 30 fps interpolation).",
    "selection_advice": "Compare it for quick motion drafts from an existing still, simple camera moves and transitions between two frames. Draft at 480p, then render the chosen prompt at 720p.",
    "limitations": "There is no text-to-video, audio, reference video or aspect-ratio control; the output follows the input image. Clips are short (about 5 s by default, 7.5 s at 121 frames). Our last-frame test held the first scene for most of the clip and changed late, so check transitions frame by frame.",
    "suggested_use_cases": [
      {
        "title": "Animate a product still",
        "body": "Start from a clean product image and ask for one slow camera move, such as a push-in."
      },
      {
        "title": "Two-frame transitions",
        "body": "Send first and last frames with matching aspect ratios and describe how the scene should move between them."
      },
      {
        "title": "Draft before final render",
        "body": "Compare prompts at 480p, then render the selected one at 720p; the price does not depend on frame count."
      }
    ],
    "example_prompt": {
      "title": "A slow push-in on a product",
      "text": "Slow camera push-in toward the perfume bottle, soft light moving across the satin behind it. Keep the bottle's shape and label unchanged and the camera steady, with no cuts.",
      "review": "Check that the bottle keeps its shape across frames and that the motion has no sudden jumps."
    },
    "scope": "Provider capabilities describe the model, not the complete MaxAPI feature set. Use the parameters, input types and routes documented for this MaxAPI entry. Vendor speed or quality descriptions are not service-level guarantees.",
    "variant_note": null,
    "sources": [
      {
        "label": "Replicate · Wan 2.2 I2V Fast API schema",
        "url": "https://replicate.com/wan-video/wan-2.2-i2v-fast/api/schema"
      }
    ]
  },
  "illustration": {
    "url": "https://www.maxapi.dev/model-guides/individual-20260910/seedance-2-0-fast.webp",
    "alt": "Three storyboard composition studies of a blue ceramic cup from different viewpoints",
    "caption": "Static storyboard concept for a short camera move, not frames from a generated video.",
    "provenance": "ai_generated_editorial_concept",
    "is_output_from_named_model": false,
    "is_benchmark": false
  },
  "illustrations": [
    {
      "section": "usecases",
      "url": "https://www.maxapi.dev/model-guides/individual-20260910/seedance-2-0-fast.webp",
      "alt": "Three storyboard composition studies of a blue ceramic cup from different viewpoints",
      "caption": "Static storyboard concept for a short camera move, not frames from a generated video.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "features",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-practice.webp",
      "alt": "Blue ceramic cup and camera on a short tabletop slider",
      "caption": "Plan one simple camera move around a clearly defined subject.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "prompts",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-prompt.webp",
      "alt": "Cobalt ceramic cup on a pale table with wide horizontal space and morning light.",
      "caption": "Static planning concept for a short lateral camera move.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "workflow",
      "url": "https://www.maxapi.dev/model-guides/expanded-20260911/seedance-2-0-fast-workflow.webp",
      "alt": "Three blue-cup shot concepts with one selected by a green clip.",
      "caption": "Choose a shot direction before refining the movement plan.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    }
  ],
  "configured_facts": [
    {
      "label": "Request model ID",
      "value": "wan-video/wan-2.2-i2v-fast",
      "code": true
    },
    {
      "label": "Output type",
      "value": "Video"
    },
    {
      "label": "Base URL",
      "value": "https://api.maxapi.dev",
      "code": true
    },
    {
      "label": "Generation workflow",
      "value": "Asynchronous task + polling"
    },
    {
      "label": "Quality values",
      "value": "480p / 720p",
      "code": true
    },
    {
      "label": "Resolution & dimensions",
      "value": "480p / 720p · follows the input image's aspect ratio"
    },
    {
      "label": "Video duration",
      "value": "81–121 frames at 5–30 fps (default 81 frames at 16 fps ≈ 5 s)"
    }
  ],
  "integration_checklist": {
    "reviewedAt": "2026-10-26",
    "labels": {
      "title": "Check your first result",
      "requestTitle": "Send the right fields",
      "responseTitle": "Read the actual result",
      "example": "Illustrative response shape — not a live result",
      "poll": "Query the existing task",
      "reviewed": "Request-contract review",
      "nativeRequest": "Alternative: a Gemini-native request",
      "nativeResult": "Gemini-native result shape — illustrative only"
    },
    "scope": "Checked against the public catalogue and gateway code. Examples are structural illustrations, not paid model tests, latency measurements or a guarantee that every route is currently available.",
    "requestChecks": [
      {
        "field": "model / image_url",
        "body": "Send wan-video/wan-2.2-i2v-fast with prompt and a first-frame image_url (public https URL or data:image/ URI). Add last_frame_url only for a two-frame transition. There is no mode, text-to-video or reference-video field."
      },
      {
        "field": "resolution / num_frames / frames_per_second",
        "body": "The example requests 480p, 81 frames and 16 fps (about 5 seconds). Do not send aspect_ratio or duration: the output follows the input image and length is num_frames / frames_per_second. The price depends on resolution and interpolate_output only."
      },
      {
        "field": "HTTP 202 / id / poll_url",
        "body": "A successful submission returns a task receipt, not a video. Save id and poll_url before closing the client; the JSON identifier is id, not task_id."
      }
    ],
    "responseChecks": [
      {
        "field": "status / video",
        "body": "Poll with authentication from the same account. queued/running are not final; on succeeded, read the top-level video URL. On failed/canceled, inspect message instead of assuming a usable file."
      },
      {
        "field": "estimated_charge_credits",
        "body": "The receipt carries an estimate, not a final invoice. Check final usage and billing records; downloading the returned file is a separate step from task completion."
      }
    ],
    "sample": {
      "id": "example-task-id",
      "object": "video.generation.task",
      "status": "queued",
      "model": "wan-video/wan-2.2-i2v-fast",
      "poll_url": "/v1/videos/generations/example-task-id"
    },
    "pollCurl": "# Set TASK_ID to the saved response.id; this queries, it does not create a task.\ncurl --fail-with-body \"https://api.maxapi.dev/v1/videos/generations/${TASK_ID:?Set TASK_ID from response.id}\" \\\n  -H \"Authorization: Bearer $MAXAPI_KEY\""
  },
  "pricing_scope": "1 credit = US$1. These are catalogue base rates, not a live account quote. Account multipliers and the active billing configuration determine the final charge. Token rates are not a fixed price per image.",
  "pricing_index": "https://www.maxapi.dev/pricing.json",
  "routing_rules": [
    {
      "title": "Which route wins?",
      "body": "Routing priority is: the API key's configured route_modes list → an explicitly requested route → the model's default route. A non-empty key list takes precedence over route_mode in the request. To test a specific route, check the key configuration first; changing the request alone may not change the route used."
    },
    {
      "title": "RPM is shared at account level",
      "body": "An account's positive RPM limit covers its API keys together. A key can impose a stricter limit, but a higher key limit does not override the user limit. For example, a user limit of 200 RPM is not 200 RPM for each key. Service-level RPM and concurrency controls also apply; adding keys is not a way to bypass them."
    }
  ],
  "troubleshooting": [
    {
      "code": "429",
      "title": "rate_limit_exceeded / capacity_exhausted",
      "meaning": "429 can represent account/key RPM, service-wide capacity or generation capacity. Use Retry-After and available X-RateLimit-* / X-Global-* headers to distinguish them; one status code does not identify one unique cause.",
      "action": "Respect Retry-After when present, reduce request rate or active concurrency as appropriate, and use bounded backoff. Do not treat the site's total capacity as your account's personal quota."
    }
  ],
  "verification": {
    "environment": "local_mock_requests_and_test_storage",
    "coverage": "shared_gateway_components_not_each_model_end_to_end",
    "paid_upstream_calls": 0,
    "reviewed_at": "2026-10-26",
    "cases": [
      {
        "key": "shared-user-rpm",
        "title": "Multiple keys share the user limit",
        "input": "Use two keys owned by the same account against an in-memory limiter with a small user quota.",
        "result": "Requests across the keys consume the same user quota; subsequent requests are limited. A larger key quota does not override the user quota, and a smaller key quota remains effective."
      }
    ],
    "limitations": "Local tests use simulated requests, responses and test storage; they do not call paid model channels. They verify request handling, not model image quality, live success rates, latency or end-to-end support for the maximum reference count. The concept illustrations elsewhere on this page are not these test outputs."
  },
  "sources": {
    "maxapi_documentation": "https://www.maxapi.dev/docs",
    "catalogue": "https://www.maxapi.dev/models.json",
    "provider_documentation": "https://replicate.com/wan-video/wan-2.2-i2v-fast"
  }
}
