A modular hub for generative world models and World Action Models
Project description
Mundus
Mundus is a self-contained, provider-based hub for video/image generators,
learned world models, representation models, and WAMs. Its SANA integration
is bundled in mundus.sana; it does not import or require the sibling
sana_sim project at runtime. Providers have one common generation interface;
heavyweight models are loaded only when used.
The core has no runtime dependencies. For the bundled SANA provider, install
the optional runtime once with pip install -e '.[sana]'.
Standalone SANA video generation
from mundus import Mundus
world = Mundus.from_pretrained(
"sana-video",
model_path="checkpoints/SANA_Video_2B_480p.pth",
vae_path="checkpoints/Wan2.1_VAE.pth",
)
result = world.generate("A robot carefully opens a drawer", num_frames=81, seed=42)
result.save("robot.mp4")
SANA MoT WAM
migma.models.wms.samot.SanaMoTWAM keeps the loaded SANA denoiser as the
video branch and adds an action diffusion head. The action head reads SANA's
per-layer normalized video tokens (world memory) and its own action tokens;
the video branch never reads action tokens. This is the asymmetric
Mixture-of-Transformers contract and preserves the normal SANA video output.
from migma.models.wms.samot import SanaMoTWAM
provider = world.model
wam = SanaMoTWAM(provider.backbone, action_dim=7, max_action_horizon=32).cuda()
text, mask = provider.encode_text("Robot reaches for the drawer handle")
video_noise, action_noise = wam(
noisy_video, video_timestep, text, mask, noisy_actions,
)
Train the two outputs with the appropriate SANA video denoising loss and the action flow/noise loss. SANA can be frozen initially, then selectively unfrozen for joint WAM finetuning.
Extending the hub
Implement the WorldModel protocol (model_id, capabilities, and
generate(request)), then register a factory:
from mundus import registry
registry.register("my-world-model", MyWorldModel)
No provider has to share model internals with another provider. A provider that exposes a backbone may additionally be used by a WAM adapter.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mundus-0.1.0.tar.gz.
File metadata
- Download URL: mundus-0.1.0.tar.gz
- Upload date:
- Size: 104.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
009b8165a6638fe97a950f1e7757e8f9ce9f3888de588f806e368bf49fae7c5f
|
|
| MD5 |
7b8901ae195005c8cb2d5745133c4609
|
|
| BLAKE2b-256 |
f9072050516d8020c6c7ed4ace3d60c79dfc59c94fb45afeeec6c463101bd3a1
|
File details
Details for the file mundus-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mundus-0.1.0-py3-none-any.whl
- Upload date:
- Size: 127.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1c0c6507979b09ae925e20c5aa894c231e41caba3271f894fb471c075f85c48
|
|
| MD5 |
84eb8e7fc9a1745e1c7d99858ab380d6
|
|
| BLAKE2b-256 |
551a54014b484da09cea7da5ce2aa737ddccb25a02b80647f78e344611281e41
|