InSpatio-World 1.5 β€” all weights in one repository

Everything InSpatio-World 1.5 (paper) needs at inference, repackaged for the minimal re-implementation inspatio-world: one folder per component, each a config.json + model.safetensors pair loaded with from_pretrained. No other repository is downloaded.

Folder Component Source Params Dtype
dit/ Causal Wan2.1-1.3B DiT (InSpatio-World 1.5, EMA) inspatio/world-1.5 1.42 B bf16
vae/ Wan2.1 VAE (causal video autoencoder) Wan-AI/Wan2.1-T2V-1.3B 127 M bf16
text_encoder/ umT5-XXL encoder Wan-AI/Wan2.1-T2V-1.3B 5.7 B bf16
tokenizer/ umT5 tokenizer (tokenizer.json) Wan-AI/Wan2.1-T2V-1.3B β€” β€”
taehv/ TAEHV taew2_1 encoder + decoder (fast stand-ins for the VAE) madebyollin/taehv 11.3 M bf16
depth/ Depth-Anything-3 nested giant-large (depth + cameras) depth-anything/DA3NESTED-GIANT-LARGE 1.7 B bf16 / fp32
captioner/ Florence-2-base (video prompts for uploads / examples), transformers format florence-community/Florence-2-base 0.23 B fp32
examples/ Scene folders: the six upstream examples, ten scenes from free Mixkit stock footage and the two video scenes of the InSpatio-World demo (oranges_sidewalk, boxing_ring); trajectories/: camera-path presets with previews upstream examples, scripts/prepare_stock_examples.py β€” β€”

The conversion only renames keys (fusing the DiT's q/k/v and cross-attention k/v projections), drops unused branches (DA3's ray / Gaussian-splatting heads) and casts to the dtype each module runs in; upstream runs the DiT, VAE and text encoder in bf16, so outputs are unchanged. It was produced by scripts/convert_checkpoints.py.

Usage

pip install "inspatio-world @ git+https://github.com/julien-blanchon/inspatio-world-v1.5"
inspatio-world generate --source.paths photo.jpg --moves forward:36 turn-right+forward:36 --output out.mp4
from inspatio_world import CameraAction, CameraRig, WorldConfig, WorldModel
from inspatio_world.data import load_scene

world = WorldModel.from_pretrained(WorldConfig(dit_precision="fp8", compile=True))
scene = load_scene(examples_dir / "image_example_00")
session, rig = world.start(scene), CameraRig(scene)
while True:
    block = session.step(rig.advance(CameraAction(forward=1.0, yaw=0.3), session.frames_needed))
    ...  # block.frames: (12, 480, 832, 3) uint8

Interactive demo: spaces/blanchon/inspatio-world-v1.5.

Licenses

Each component keeps its original license:

  • dit/: InSpatio-World 1.5 weights, released by the InSpatio team with the Apache-2.0 code of inspatio/inspatio-world-v1.5.
  • vae/, text_encoder/, tokenizer/: Wan2.1, Apache-2.0.
  • taehv/: TAEHV, MIT.
  • captioner/: Florence-2, MIT.
  • depth/: Depth-Anything-3 DA3NESTED-GIANT-LARGE, CC BY-NC 4.0 (non-commercial).
  • examples/: the upstream examples come from the upstream repository; the others are frames of Mixkit clips under the Mixkit Stock Video Free License, downscaled to 832x480 with estimated depth, for demonstration only; oranges_sidewalk and boxing_ring are the source videos of the InSpatio team's online demo, first 120 frames.

Citation

@misc{inspatio-world,
  title={INSPATIO-WORLD: A Real-Time 4D World Simulator via Spatiotemporal Autoregressive Modeling},
  author={InSpatio Team},
  journal={arXiv preprint arXiv:2604.07209},
  year={2026}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for blanchon/inspatio-world-v1.5

Finetuned
(129)
this model

Space using blanchon/inspatio-world-v1.5 1

Paper for blanchon/inspatio-world-v1.5