Instructions to use Viggle/Meridian with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Viggle/Meridian with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Viggle/Meridian", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
import torch
from diffusers import DiffusionPipeline
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("Viggle/Meridian", dtype=torch.bfloat16, device_map="cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]Meridian: A new perspective on space and time
By Viggle AI · built on MiniMax-H3 · geometry by VGGT-Omega
One event. Anywhere. Anytime.
Meridian is a geometry-guided video model for authoring new observations of existing events. Revisit a recorded event from a new viewpoint. Let the action unfold, slow it down, or hold a moment still—all while moving the camera along a path you choose. You can also create a camera move from a single image.
51-second teaser
See it in motion
The motocross example includes the original video and a diagram of the planned camera path. The ballet example uses a single photograph. The NBA edit labels the parts taken from the original footage.
|
A dunk. A new look at the same play. This edit combines generated views with original footage, including the dunk's finish. |
Play. Hold. Resume. Pause the splash, move the camera, then let the action continue. |
|
Compose a camera path. Orbit, move sideways, and change distance—all in one continuous shot. |
One image. Another viewpoint. A camera move from a single ballet photograph. |
Space and time, independently
| Choose… | What you can do |
|---|---|
| Where to watch from | Orbit, move in or out, slide sideways, or move up and down. Set the viewing direction and field of view. |
| When to watch | Choose a sequence, hold one frame, or slow down / speed up the input video before generation. |
| How the two meet | Move around a frozen moment, follow slow-motion action, or choose a new angle for a sped-up sequence. |
Bullet time is one combination—not the boundary of the model. To slow down or speed up the action, retime the input video first. Then design the camera path over that timeline.
Beyond the frame
A camera's position shapes how an event is seen: what draws our attention, what feels close, and what remains outside the frame. Meridian explores keeping some of those choices open after capture.
For filmmakers, this opens room to compose a new shot around an existing moment—not just edit what the camera recorded, but generate another way of observing it. In the longer term, that freedom could extend to viewers: choosing a perspective, following a subject, or lingering on a detail rather than watching only a predetermined sequence.
The event has passed. The choice of how to see it remains open.
Method
The same moment in the input, warped reference, and output. The 3D points and cameras are schematic.
Choose the moment. Place the camera. Render the reference. Complete the view.
- Build the geometry. VGGT-Omega estimates depth and camera poses from the input video. We use these estimates to turn the selected frames into colored 3D points.
- Render the new view. For each output frame, choose a moment from the input and a camera viewpoint. Render the corresponding points from that view, leaving uncovered regions grey.
- Generate the shot. Meridian takes the input video and the matching rendered video as references, then fills in missing regions and refines the image.
Preview before generation. Once the 3D points are available, rendering the reference is fast. You can check the framing and camera motion, spot gaps in the view, and adjust the path before running the video model.
Model
Meridian uses MiniMax-H3's transformer and VAE, without loading a text encoder at inference. The task's text embeddings are precomputed; the transformer architecture is unchanged.
| Component | Role |
|---|---|
transformer/ |
Meridian's finetuned MiniMax-H3 checkpoint; 61.7 GiB in bf16. |
lora/ |
Fast-inference adapter; 2.5 GiB. Default: --steps 4 --flow-shift 3, 3 forwards. |
assets/ |
Precomputed text embeddings, audio-layout assets, and the readable task prompt. |
Use the adapter with Meridian's transformer, not the unmodified MiniMax-H3 checkpoint.
- Output: 24 fps, aspect-matched 768-class canvas; 1344 × 768 for a 16:9 input.
- Lengths: 73, 90, 107, 124, 141, 158, 175, or 243 frames—approximately 3–10 seconds per take.
- Included tools: inference CLI, runtime assets, sample clips, and a prototype Studio.
Install
Follow the installation guide for code, checkpoint setup, dependencies, and the separately obtained VGGT-Omega geometry model. Inference requires Meridian's transformer and adapter, the MiniMax-H3 VAE, and VGGT-Omega. Checkpoint availability and paths are listed in the guide.
The reference implementation runs on one high-memory CUDA GPU; memory and timings are reported below. It does not currently expose quantization, CPU offloading, or multi-GPU sharding.
Community: bring Meridian to smaller GPUs. Keeping MiniMax-H3's architecture and omitting the text encoder provides a starting point for adapting community memory-saving techniques. We welcome work on quantization and CPU offloading toward consumer GPUs such as the RTX 4090. These are integration targets, not supported or validated configurations in the current scripts.
Review the licenses before use: the code license does not cover the weights or remove VGGT-Omega's noncommercial restrictions.
Quickstart
After completing installation, including the separately supplied weights, run from the Meridian directory. The included CC0 sample clips are already 24 fps and contain 73 frames each.
# A gentle 15° orbit over the live event.
python inference/sample.py --video examples/media/sp_bouldering_hang.mp4 \
--yaw 15 --sweep --ease --out out/orbit
# Play 24 frames, then hold frame 24 for 49 output frames while orbiting.
python inference/sample.py --video examples/media/sp_bouldering_reach.mp4 \
--yaw 35 --freeze 24:49 --out out/bullet
Open out/orbit/grid.mp4 to compare source → geometry reference → generated take. The take is
out.mp4; render.mp4 shows the geometric input with grey holes.
For your own footage, use a continuous shot exported at constant 24 fps. The CLI reads frames
by index: an ordinary take needs at least start + frames input frames. It does not normalize the
frame rate or detect cuts for you.
Self-hosting the demo
Designing a camera path and previewing the geometry.
Early prototype. The Studio is a very basic, vibe-coded demo, not a production editor. The walkthrough shows one simple way to use it.
CARD=0 bash service/run.sh --host 127.0.0.1 --port 8412
Open http://127.0.0.1:8412 once the terminal prints ready.
Upload a clip, design a path with multiple camera keyframes, preview the geometry, then generate. The browser provides real-time 3D feedback once geometry is loaded; full-path rendering and final video generation are separate GPU operations, not real-time generative video.
The service has no authentication. The command above binds to loopback; do not expose this prototype directly to the internet.
Performance
Reported results on one B200 with the service resident, using the default adapter:
| Output length | Take generation | Peak GPU memory |
|---|---|---|
| 73 frames | ~36 s | 88 GiB |
| 124 frames | ~80 s | 89 GiB |
| 243 frames | ~150 s | 113 GiB |
Generation timings start with geometry prepared; upload processing and reconstruction are separate. A 73-frame reference warp was reported at 0.24 s, versus approximately 36 s for generation. These are indicative measurements, not guarantees across GPUs, resolutions, or cache states.
Limitations
Unseen surfaces are generated, not recovered.
- Geometry robustness. Meridian generally handles imperfect geometry well, but cannot reliably recover from severe errors or a badly warped reference.
- Large moves are less stable. Full 360° orbits can work, but large viewpoint changes can cause distortion, drift, or inconsistent details in newly visible areas.
- Timing and continuity. Retiming changes which input frames are used; it does not recover missing motion. Separately generated clips may not join smoothly.
Documentation and code
Inference guide — camera recipes, source timing, CLI options, and troubleshooting.
Implementation lives in recam/, the CLI in inference/sample.py, and the Studio in service/.
License
- Weights (
transformer/,lora/,assets/*.pt): the MiniMax H3 Community License Agreement. Meridian (released as Viggle-Recam) is a Model Derivative of MiniMax-H3;MODIFICATIONS.mdis the Section III.2 notice. Powered by MiniMax H3. The Agreement licenses use and distribution of the weights and their outputs in its Applicable Territory only, which excludes the European Union, the United Kingdom, the Republic of Korea and the United States (Section I.3, I.5, V.4); read it before you download. - Code (
recam/,inference/,service/): Apache 2.0. - VGGT-Omega: not included. FAIR Noncommercial Research License v1, obtained from Meta separately; see Install.
- Sample clips: Wikimedia Commons, CC0; see
examples/CREDITS.md.
Intended use
Exploring new viewpoints and timing in footage you have the rights to, for previsualisation, editing, and creative work. Do not use it to fabricate footage of real people or events presented as genuine, and label what you generate as AI-generated. If you pass the weights on or host them, the Agreement makes you bind your users to its use restrictions and tell them so (Section V.2), keep safeguards on any generation service (V.5), display "MiniMax H3" in a commercial product's interface (IV.2), and ask MiniMax for authorization above US$20M yearly revenue (IV.1).
Citation
@misc{viggle-meridian-2026,
title = {Meridian: A New Perspective on Space and Time},
author = {Viggle AI},
year = {2026},
url = {https://huggingface.co/Viggle/Meridian}
}
- Downloads last month
- -
Model tree for Viggle/Meridian
Base model
MiniMaxAI/MiniMax-H3