Skip to main content

Overview

Video to Video transforms existing videos by applying new styles, effects, and visual treatments while preserving the original motion and structure. The API enables style transfer, artistic effects, and visual enhancement of video content.

How It Works

  1. Provide a source video - Upload the video you want to transform
  2. Describe the style - Use a text prompt to describe the new visual style
  3. API transforms the video - AI applies the style while preserving motion
  4. Download the result - Retrieve your stylized video

Use Cases

  • Style transfer - Apply artistic styles to real footage
  • Brand consistency - Apply consistent visual treatments across videos
  • Creative effects - Transform videos into anime, painting, or other styles
  • Post-production - Apply visual effects and color grading
  • Content repurposing - Give old content a fresh visual look

Best Practices

Source Video Quality

Use stable, well-lit footage - Consistent lighting and smooth motion produce the best style transfers.
  • Good lighting - Even, consistent lighting throughout
  • Stable footage - Tripod or stabilized footage works best
  • Clear subjects - Well-defined subjects transfer styles better
  • Moderate motion - Avoid extremely fast or chaotic motion

Style Prompts

Describe the visual style you want to apply: ✅ Good prompts:
  • “Studio Ghibli anime style, soft colors, hand-painted look”
  • “Oil painting style with thick brushstrokes and impressionist colors”
  • “Cyberpunk neon aesthetic with high contrast and purple/pink color grading”
  • “Vintage film look with grain, warm tones, and faded blacks”
❌ Avoid:
  • Changing content: “Add a person” (this changes content, not style)
  • Vague descriptions: “Make it better”
  • Conflicting styles: “Realistic and cartoon”

Style Categories

CategoryDescriptionExample Prompts
Anime/CartoonHand-drawn animated look”Anime style, vibrant colors”
PaintingTraditional art styles”Oil painting, impressionist”
CinematicFilm-like treatments”Vintage film, warm tones”
FuturisticModern/sci-fi aesthetics”Cyberpunk, neon lights”
ArtisticAbstract/creative styles”Abstract, geometric patterns”

Code Examples

Basic Style Transfer

from magic_hour import Client
import os

client = Client(token=os.getenv("MAGIC_HOUR_API_KEY"))

result = client.v1.video_to_video.generate(
    assets={
        "video_file_path": "https://raw.githubusercontent.com/runshouse/Sample_Assets/main/obamamicdrop.mov",
        "video_source": "file"
    },
    end_seconds=2,
    fps_resolution="HALF",
    height=512,
    width=576,
    start_seconds=0,
    style={
        "art_style": "Retro Anime",
        "prompt": "Obama's mic drop, on fire, burning, flames, retro anime, textured, symbolism, retrofuturism, (intricate:1.1), (detailed:1.1), (ornate:1.1), (aesthetic:1.1), (90's:1.1), (neon:1.0), (glowing:1.0), (flat colors:1.1), (flat texture:1.1)",
        "prompt_type": "custom",
        "version": "default"
    },
    name="Anime Mic Drop",
    wait_for_completion=True,
    download_outputs=True,
    download_directory="./outputs/"
)

if result.status == "complete":
    print(f"✅ Video complete!")
    print(f"Downloaded to: {result.downloaded_paths}")
    print(f"Credits charged: {result.credits_charged}")
else:
    print(f"❌ Job failed with status: {result.status}")
    if hasattr(result, 'error_message'):
        print(f"Error: {result.error_message}")

Pricing

Video to Video uses credits based on video duration and frame rate:
FactorImpact
DurationMore seconds = more credits
Frame rateHigher FPS = more credits
ResolutionHigher resolution = more credits

Resolution Limits

Video to Video has a maximum resolution of 1472px (either width or height).
64-Pixel Increments: Video to Video requires resolution dimensions to be in increments of 64 pixels (e.g., 512, 576, 640, 704, etc.).
Try this in our Google Colab Cookbook: Run this API with sample code. Just add your API key.

API Reference

Video to Video API Reference

View full API specification