# Skyreels v4 | Image to Video SkyReels Image-to-Video turns still photos into cinematic clips with natural motion and consistent characters for short-form video on each::labs. ## API Information - **Model Slug:** skyreels-v4-image-to-video - **Branded URL:** https://www.eachlabs.ai/skywork-ai/skyreels-v4/skyreels-v4-image-to-video - **Provider:** Skywork AI - **Category:** Image to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Cost equals the credits reported in the provider response multiplied by $0.01. Per-second rates without video input - fast: $0.08 (480p) / $0.11 (720p) / $0.275 (1080p). std: $0.11 (480p) / $0.14 (720p) / $0.35 (1080p). - **Estimated Processing Time:** 0 seconds - **Last Updated:** 2026-04-29 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/skyreels-v4-image-to-video ## Pricing - **Charge Type:** dynamic - **Pricing Details:** Cost equals the credits reported in the provider response multiplied by $0.01. Per-second rates without video input - fast: $0.08 (480p) / $0.11 (720p) / $0.275 (1080p). std: $0.11 (480p) / $0.14 (720p) / $0.35 (1080p). ### Pricing Rules | Condition | Pricing | | --- | --- | | Rule 1 | Cost equals the credits reported in the provider response multiplied by $0.01. Per-second rates without video input - fast: $0.08 (480p) / $0.11 (720p) / $0.275 (1080p). std: $0.11 (480p) / $0.14 (720p) / $0.35 (1080p). | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text describing the motion, camera, and atmosphere. Reference mid-frame anchor images by their tag (e.g. @image1, @image2). Limit 1280 tokens (roughly 4000 characters); longer prompts are truncated. | | first_frame_image | string | No | - | - | URL of the opening frame for the video. Accepted formats: jpg, jpeg, png, gif, bmp. At least one of first_frame_image, end_frame_image, or mid_frame_images must be provided. | | end_frame_image | string | No | - | - | URL of the closing frame for the video. Accepted formats: jpg, jpeg, png, gif, bmp. At least one of first_frame_image, end_frame_image, or mid_frame_images must be provided. | | mid_frame_images | array | No | - | - | Up to 6 keyframe references. Each entry has a tag (e.g. @image1) referenced in the prompt and an image URL. time_stamp anchors the appearance time. | | duration | integer | No | 5 | - | Length of the generated video in seconds. Range 3-15. Each second is billed independently per resolution and mode. Default 5s. | | resolution | string | No | 1080p | 480p,720p,1080p | Output resolution. 480p lowest cost and fastest. 720p balanced. 1080p highest quality and most credits per second (default). | | mode | string | No | std | fast,std | Generation pipeline. fast: lower price per second, faster turnaround, slightly reduced fidelity. std: highest fidelity at full price (default). | | prompt_optimizer | boolean | No | true | - | When true (default), the provider expands and refines the prompt for better adherence. Set false to send the prompt verbatim. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "skyreels-v4-image-to-video", "input": { "prompt": "A curly-haired woman sitting cross-legged on the beach strums her acoustic guitar, her curls bouncing in the warm ocean breeze. Her head sways gently with the music as she smiles and performs, while people relax and move around in the lively sunset background." } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Skyreels v4 | Image to Video Overview** Skyreels v4 | Image to Video from Skywork AI transforms static images into dynamic video clips with synchronized audio, solving the challenge of creating engaging multimedia content from single visuals. Part of the Skyreels family, this open-source model stands out as the first to co-generate video and audio in a single forward pass using its Dual-stream Multimodal Diffusion Transformer (MMDiT) architecture. Developed by Skywork AI, Skyreels v4 | Image to Video supports high-quality outputs at 1080p resolution and 32 FPS, making it ideal for creators seeking efficient image-to-video generation on each::labs. Accessible via 70 free monthly credits, it enables rapid prototyping of animated scenes with integrated sound, distinguishing it from traditional models that handle video and audio separately. Whether animating product shots or storytelling visuals, Skyreels v4 | Image to Video delivers joint audio-video synthesis, streamlining workflows for developers and designers on the each::labs platform. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.