Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mundus-0.1.0.tar.gz (104.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mundus-0.1.0-py3-none-any.whl (127.7 kB view details)

Uploaded Python 3

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

Hashes for mundus-0.1.0.tar.gz
Algorithm Hash digest
SHA256 009b8165a6638fe97a950f1e7757e8f9ce9f3888de588f806e368bf49fae7c5f
MD5 7b8901ae195005c8cb2d5745133c4609
BLAKE2b-256 f9072050516d8020c6c7ed4ace3d60c79dfc59c94fb45afeeec6c463101bd3a1

See more details on using hashes here.

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

Hashes for mundus-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1c0c6507979b09ae925e20c5aa894c231e41caba3271f894fb471c075f85c48
MD5 84eb8e7fc9a1745e1c7d99858ab380d6
BLAKE2b-256 551a54014b484da09cea7da5ce2aa737ddccb25a02b80647f78e344611281e41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page