What is SwitchX Video to Video API?
SwitchX is a video-to-video compositing model by Beeble that replaces a scene element while preserving the original subject, with automatic subject detection and seamless relighting to match a reference image. Does not support tools/function calling.
Technical Specifications
- Supported inputs: Video
- Output: Video
Performance Benchmarks
[embed]
SwitchX Video to Video API Pricing
- Pricing on request
Where to Use SwitchX Video to Video
Short-form video generation
Create clips for social, ads, and product demos from text or image prompts.
Previsualization and storyboards
Rapidly prototype motion concepts before committing to production.
SwitchX Video to Video is documented for background replacement or swapping, relighting subjects or scenes, and virtual production workflows. It is also described as useful for modifying lighting, backgrounds, props, and other scene elements while keeping the original subject intact.
It is suited to selective scene edits with masking, where unmasked areas are preserved and masked areas are regenerated to match the new look. It is also documented for changing environments and mood, including adjusting time of day or genre through lighting changes.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "beeble/switchx-video-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "beeble/switchx-video-to-video", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"beeble/switchx-video-to-video","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
SwitchX Video to Video This page | Video generation |
SwitchX Video to Video takes video as input and returns video.
SwitchX Video to Video became available on June 15, 2026.
SwitchX Video to Video is priced at $0.13–$0.39 / sec (by resolution).
SwitchX Video to Video is billed per generation — a fixed charge per output rather than by prompt length.
SwitchX Video to Video was built by Beeble.
Use beeble/switchx-video-to-video as the model id on AI/ML API.
Yes. SwitchX Video to Video is served through AI/ML API, so the same key and endpoint format used for other models applies.
It replaces a scene element in a video while preserving the original subject, using automatic subject detection and relighting to match a reference image.
It automatically detects the subject and relights the replaced element to match a reference image, rather than needing manual masking or grading.
No, SwitchX does not support tools or function calling.