# Vimmerse Images-to-Video

> Vimmerse Images-to-Video is a paid API for AI agents from agents.vimmerse.net, paid per call via MPP, $1.5/call (dynamic — varies by input), status unknown (last checked 2026-10-31).

Generates an animated story video with narration and background music from a text idea and a list of image URLs.

## Facts

- Endpoint: POST https://agents.vimmerse.net/v2/story/images-2-video?utm_source=zero.xyz
- Price: $1.5/call (dynamic — varies by input)
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Provider: agents.vimmerse.net
- Website: https://agents.vimmerse.net
- Canonical page: https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-images-to-video-5876507f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_D_AZxe6OmwYUuAmUDMAiy

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-vimmerse-net-vimmerse-images-to-video-5876507f -d '<json body>'
```

Example prompt: Take these three product photos — https://example.com/img1.jpg, https://example.com/img2.jpg, https://example.com/img3.jpg — and turn them into a cinematic 16:9 promo video for my smoothie brand called 'Fresh Blend', with background music, an English voiceover narration, and 5-second scenes that flow together with transitions.

## When to prefer this

Choose this endpoint when you already have a set of existing image URLs and want to produce a complete multi-scene story video with AI-generated narration, background music, and animated motion applied to each image. It is ideal for product marketing reels, real-estate walkthroughs, personal photo slideshows, and social media content creation where the visual assets are already available and only need to be animated and composed into a narrative video.

## Known failure modes

- Invalid or inaccessible image URLs return an error or produce blank scenes
- Missing required image_urls field returns a validation error
- Unsupported aspect ratio or video_tool enum value causes request rejection
- Long queues or downstream model failures may cause the story to remain in a non-success status indefinitely
- Insufficient credits result in a payment or authorization error
- Very large numbers of images or long scene durations may increase processing time significantly

## How this service works

Generates a story video from an **idea** and a list of **image URLs**. Send **Content-Type: application/json**.

Pipeline: narrations/music → animate each image → compose final video. Poll **GET /v2/story/{story_id}** until `status` is `success`.

### Example: Images-to-Video (Python)

```python
import requests

BASE_URL = "https://api.vimmerse.net"
API_KEY = "YOUR_API_KEY"

url = f"{BASE_URL}/v2/story/images-2-video"
headers = {"X-Api-Key": API_KEY, "Content-Type": "application/json"}

payload = {
    "idea": "Cinematic product-only smoothie promo: fresh berries, bananas, oranges on a wooden table, blender mixing, smoothie pouring into glass, 16:9, photorealistic.",
    "image_urls": [
        "https://example.com/image1.jpg",
        "https://example.com/image2.jpg",
        "https://example.com/image3.jpg",
    ],
    "title": "Smoothie Promo",
    "aspect_ratio": "16:9",
    "video_tool": "Auto",
    "is_transition": True,
    "scene_duration": 5,
    "audio_option": {"has_bg_music": True, "has_narration": True, "native_audio": False},
    "language": "English",
}

response = requests.post(url, headers=headers, json=payload, timeout=60)
response.raise_for_status()
result = response.json()
print(f"Story ID: {result['id']}, Scenes: {len(payload['image_urls'])}")
```

## audio_option


Audio configuration for story generation (JSON object). Used in idea-2-video, url-2-video, images-2-video, and advanced Step 1 (Create Storyboard).

## Audio parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `narrator` | string | AutoV | Voice for narration. **Available voices**: AutoV, Rachel, Aria, Roger, Sarah, Laura, Charlie, George, Callum, River, Liam, Charlotte, Alice, Matilda, Will, Jessica, Eric, Chris, Brian, Daniel, Lily, Bill |
| `has_narration` | boolean | true | Include narration. Ignored when `native_audio` is true |
| `has_bg_music` | boolean | true | Include background music |
| `native_audio` | boolean | false | Include native sound effects and lip sync. When true, narration is disabled |

## Usage examples (application/json)

**Background music only:**
```json
{
  "has_bg_music": true,
  "has_narration": false,
  "native_audio": false
}
```

**Narration with background music:**
```json
{
  "has_bg_music": true,
  "has_narration": true,
  "native_audio": false,
  "narrator": "Rachel"
}
```

**Native audio (sound effects + lip sync):**
```json
{
  "has_bg_music": true,
  "has_narration": false,
  "native_audio": true
}
```

**No audio:**
```json
{
  "has_bg_music": false,
  "has_narration": false,
  "native_audio": false
}
```

## Notes

- When `native_audio` is true, `has_narration` is ignored (effectively false).
- `narrator` is only used when `has_narration` is true and `native_audio` is false.
- Send `audio_option` as a JSON object in the request body (Content-Type: application/json).

## Output

Returns a story object containing a story ID, status field, and eventually (after polling GET /v2/story/{story_id}) a video_url pointing to the fully composed video, plus an all_medias array with per-scene animated clip URLs, prompts, and metadata such as resolution and video tool used.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "Images2VideoRequest",
 "required": [
  "image_urls"
 ],
 "properties": {
  "idea": {
   "type": "string",
   "title": "Idea",
   "default": "Create a stunning video showcasing these images with a compelling narrative",
   "examples": [
    "Animated story of Charlie, cheerful young person with short brown hair, casual clothes in morning, festive outfits later, consistent appearance across all scenes, cinematic lighting, high detail, warm festive colors. Make it in 3D Pixar style."
   ],
   "description": "Text description of your story concept."
  },
  "title": {
   "type": "string",
   "title": "Story Title",
   "default": "",
   "examples": [
    "My Story Video"
   ]
  },
  "language": {
   "enum": [
    "Arabic",
    "Chinese",
    "English",
    "French",
    "German",
    "Hindi",
    "Japanese",
    "Korean",
    "Spanish",
    "Turkish"
   ],
   "type": "string",
   "title": "Language",
   "default": "English",
   "examples": [
    "English",
    "Spanish",
    "French",
    "German",
    "Japanese"
   ]
  },
  "image_urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "Image URLs",
   "examples": [
    [
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/zd2f0q.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/nkeh11.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/c4khlw.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/q1kq79.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/vgpk83.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/xe929j.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/ajqmkf.jpg",
     "https://media.vimmerse.net/vimmerse-product/assets/7076a3ed-0869-4ad2-875f-e07b40de9498/uploads/obfa5z.jpg"
    ]
   ],
   "minItems": 1,
   "description": "Array of publicly accessible image URLs. Required."
  },
  "video_tool": {
   "enum": [
    "Auto",
    "KlingAI",
    "Seedance",
    "Pixverse",
    "VeoFast",
    "Vidu",
    "AutoT1",
    "VeoLite",
    "PVideo"
   ],
   "type": "string",
   "title": "Video Animation Method",
   "default": "Auto",
   "examples": [
    "Auto",
    "Kl
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "CustomerStoryResponse",
 "properties": {
  "id": {
   "type": "string",
   "title": "ID",
   "default": ""
  },
  "idea": {
   "type": "string",
   "title": "Idea",
   "default": "",
   "description": "Idea of the story"
  },
  "title": {
   "type": "string",
   "title": "Title",
   "default": ""
  },
  "status": {
   "type": "string",
   "title": "Status",
   "default": ""
  },
  "video_url": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Video URL"
  },
  "all_medias": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "CustomerMediaResponse",
    "properties": {
     "id": {
      "type": "string",
      "title": "Id",
      "default": ""
     },
     "title": {
      "type": "string",
      "title": "Title",
      "default": ""
     },
     "prompt": {
      "type": "string",
      "title": "Prompt",
      "default": ""
     },
     "result": {
      "type": "array",
      "items": {},
      "title": "Generated Video URLs",
      "default": []
     },
     "version": {
      "type": "string",
      "title": "Version",
      "default": "3"
     },
     "quantity": {
      "type": "integer",
      "title": "Quantity",
      "default": 1,
      "maximum": 4,
      "minimum": 1,
      "description": "Number of generated outputs."
     },
     "created_at": {
      "type": "string",
      "title": "Created At",
      "default": ""
     },
     "resolution": {
      "type": "array",
      "items": {},
      "title": "Resolution",
      "default": []
     },
     "updated_at": {
      "type": "string",
      "title": "Updated At",
      "default": ""
     },
     "video_tool": {
      "enum": [
       "Auto",
       "AutoT3",
       "AutoT1",
       "HappyHorse",
       "Grok",
       "KlingAI",
       "KlingT3",
       "KlingPro",
       "GoogleOmni",
       "VeoLite",
       "VeoFast",
       "Veo",
       "RunwayML",
       "MinimaxHailuo",
       "MinimaxTurbo",
       "Seedance",
       "SeedanceFast",
       "SeedanceT6",
       "Pixverse",
       "PixverseT3",
       "Hunyuan",
       "Vidu",
       "PVideo",
       "StaticMotion",
       "Wan",
       "TryOnVideo"
      ],
      "type": "string",
      "title": "Video Tool",
      "default": "Auto",
      "description": "Motion/generation tool option (same as create media)."
     },
     "customer_id": {
      "type": "string",
      "title": "Customer ID",
      "default": ""
     },
     "descr
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-images-to-video-5876507f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.vimmerse.net](https://www.zero.xyz/host/agents.vimmerse.net/llms.txt)
