eugenehp/moss-nano

Model

0

stars

29

commits

1

linked in READMEs

Jul 24, 2026

updated

moss-tts
rlx
rlxp
text-to-speech
tts
Browse cluster: Text-to-Speech and Audio Generation

README

MOSS-TTS-Nano (RLX)

Single runnable moss-nano.rlxp: nested native graphs (prefill/local/codec) + tokenizer + voices. No ONNX on Hub.

FieldValue
Hub ideugenehp/moss-nano
KindRLX-native weight bundle (graphs + sidecars ready for rlx-* crates).
RLX craterlx-moss-nano
Upstreamhttps://huggingface.co/OpenMOSS-Team/MOSS-TTS-Nano-100M-ONNX

Quick start

just fetch-moss-nano   # or: hf download eugenehp/moss-nano moss-nano.rlxp --local-dir weights/tts/moss-nano
just fetch-moss-nano && just moss-nano

Primary files (use these)

  • moss-nano.rlxp — 639.0 MiB

Contents

Hub ships moss-nano.rlxp only (nested graphs/*.rlxp). Pack locally with just export-moss-nano-rlxp. CPU / Metal / MLX / CUDA / wgpu.

Pack layout (.rlxp)

Outer RLXPFLAT: nested native subgraph packs (prefill, local frame, codec) plus tokenizer and voice manifest. No .onnx / .data on Hub. Weights are hot tensors inside each nested .rlxp; graph structure is graph.json.

Official RLX package format (RLXPFLAT, container v2).

[0..8)   magic          RLXPFLAT
[8..12)  version        u32 LE (= 2)
[12..16) flags          u32 LE (hybrid hot/warm/cold)
[16..24) toc_len        u64 LE
[24..)   TOC            JSON table of contents
         data region    64-byte aligned payloads

The TOC lists tensors (named weight blobs) and/or sidecars (files: ONNX, tokenizers, manifests, …). Sidecars are usually cold + zstd; model weights in tensor packs are hot + uncompressed for mmap. Runtime crates open the pack directly (or materialize sidecars to a temp dir for asset-only packs).

This pack

FieldValue
Filemoss-nano.rlxp (639.0 MiB)
Manifest namemoss-nano
Producerrlx-assets
ContainerRLXPFLAT v2, flags=0x1
Tensors0
Sidecars12

Sidecars (file assets)

Outer TOC: tokenizer/manifest + nested graphs/*.rlxp (neural).

Paths below are logical ids inside the pack (__flat__/sidecar/<id>). Cold sidecars are zstd-compressed; sizes show raw → stored.

SidecarRawStoredRole
.gitattributes695 B136 B
LICENSE9.9 KiB3.6 KiB
README.md4.2 KiB1.9 KiB
browser_poc_manifest.json491.6 KiB64.5 KiBVoice / style manifest (builtin prompt codes)
codec/moss_audio_tokenizer_decode_shared.data42.2 MiB39.1 MiB
graphs/moss_audio_tokenizer_decode_full.rlxp42.4 MiB39.2 MiBNested codec pack
graphs/moss_tts_local_fixed_sampled_frame.rlxp216.4 MiB95.7 MiBNested: hot tensors + graph.json
graphs/moss_tts_prefill.rlxp420.6 MiB183.7 MiBNested: hot tensors + graph.json
moss_tts_global_shared.data420.4 MiB183.6 MiB
moss_tts_local_shared.data219.0 MiB97.0 MiB
tokenizer.json1.3 MiB346.8 KiBText tokenizer
tokenizer.model459.9 KiB267.3 KiB

Architecture

Pipeline: text → tokenizer → global prefill (12-layer) → local frame sampler (16 codebook tokens/frame, CPU-pinned) → MOSS audio tokenizer decode → 48 kHz stereo.

ModuleRoleSample rateNotes
moss_tts_prefillglobal AR transformergrowing padded seq
moss_tts_local_fixed_sampled_framelocal codebook sampler16 tokens/frame
moss_audio_tokenizer_decode_fullcodec → waveform48 kHz stereo
browser_poc_manifest.jsonbuiltin voicesreference codes

Logical tree

moss-nano.rlxp
├── graphs/
│   ├── moss_tts_prefill.rlxp
│   ├── moss_tts_local_fixed_sampled_frame.rlxp
│   └── moss_audio_tokenizer_decode_full.rlxp
├── browser_poc_manifest.json
└── tokenizer.json

How it is packed

just export-moss-nano-rlxp — pack-time ONNX+.data → nested graphs/*.rlxp (external data inlined as tensors). Hub has zero ONNX.

Note

Hub ships .rlxp only — no ONNX / .data. Nested packs hold hot tensors + graph.json.

Run with RLX

Clone rlx-models, place this repo under weights/tts/moss-nano (or pass the path explicitly), then:

just fetch-moss-nano && just moss-nano

License

Apache License 2.0 — see LICENSE. Inherit upstream terms when redistributing.

Original weights and authorship: https://huggingface.co/OpenMOSS-Team/MOSS-TTS-Nano-100M-ONNX

Maintenance

Cards and LFS attrs are regenerated from the local weights/ tree in rlx-models via python3 scripts/prepare_weights_hf.py.

Contributors

eugenehp

29 commits

eugenehp/moss-nano

Model

0

stars

29

commits

1

linked in READMEs

Jul 24, 2026

updated

moss-tts
rlx
rlxp
text-to-speech
tts
Browse cluster: Text-to-Speech and Audio Generation

README

MOSS-TTS-Nano (RLX)

Single runnable moss-nano.rlxp: nested native graphs (prefill/local/codec) + tokenizer + voices. No ONNX on Hub.

FieldValue
Hub ideugenehp/moss-nano
KindRLX-native weight bundle (graphs + sidecars ready for rlx-* crates).
RLX craterlx-moss-nano
Upstreamhttps://huggingface.co/OpenMOSS-Team/MOSS-TTS-Nano-100M-ONNX

Quick start

just fetch-moss-nano   # or: hf download eugenehp/moss-nano moss-nano.rlxp --local-dir weights/tts/moss-nano
just fetch-moss-nano && just moss-nano

Primary files (use these)

  • moss-nano.rlxp — 639.0 MiB

Contents

Hub ships moss-nano.rlxp only (nested graphs/*.rlxp). Pack locally with just export-moss-nano-rlxp. CPU / Metal / MLX / CUDA / wgpu.

Pack layout (.rlxp)

Outer RLXPFLAT: nested native subgraph packs (prefill, local frame, codec) plus tokenizer and voice manifest. No .onnx / .data on Hub. Weights are hot tensors inside each nested .rlxp; graph structure is graph.json.

Official RLX package format (RLXPFLAT, container v2).

[0..8)   magic          RLXPFLAT
[8..12)  version        u32 LE (= 2)
[12..16) flags          u32 LE (hybrid hot/warm/cold)
[16..24) toc_len        u64 LE
[24..)   TOC            JSON table of contents
         data region    64-byte aligned payloads

The TOC lists tensors (named weight blobs) and/or sidecars (files: ONNX, tokenizers, manifests, …). Sidecars are usually cold + zstd; model weights in tensor packs are hot + uncompressed for mmap. Runtime crates open the pack directly (or materialize sidecars to a temp dir for asset-only packs).

This pack

FieldValue
Filemoss-nano.rlxp (639.0 MiB)
Manifest namemoss-nano
Producerrlx-assets
ContainerRLXPFLAT v2, flags=0x1
Tensors0
Sidecars12

Sidecars (file assets)

Outer TOC: tokenizer/manifest + nested graphs/*.rlxp (neural).

Paths below are logical ids inside the pack (__flat__/sidecar/<id>). Cold sidecars are zstd-compressed; sizes show raw → stored.

SidecarRawStoredRole
.gitattributes695 B136 B
LICENSE9.9 KiB3.6 KiB
README.md4.2 KiB1.9 KiB
browser_poc_manifest.json491.6 KiB64.5 KiBVoice / style manifest (builtin prompt codes)
codec/moss_audio_tokenizer_decode_shared.data42.2 MiB39.1 MiB
graphs/moss_audio_tokenizer_decode_full.rlxp42.4 MiB39.2 MiBNested codec pack
graphs/moss_tts_local_fixed_sampled_frame.rlxp216.4 MiB95.7 MiBNested: hot tensors + graph.json
graphs/moss_tts_prefill.rlxp420.6 MiB183.7 MiBNested: hot tensors + graph.json
moss_tts_global_shared.data420.4 MiB183.6 MiB
moss_tts_local_shared.data219.0 MiB97.0 MiB
tokenizer.json1.3 MiB346.8 KiBText tokenizer
tokenizer.model459.9 KiB267.3 KiB

Architecture

Pipeline: text → tokenizer → global prefill (12-layer) → local frame sampler (16 codebook tokens/frame, CPU-pinned) → MOSS audio tokenizer decode → 48 kHz stereo.

ModuleRoleSample rateNotes
moss_tts_prefillglobal AR transformergrowing padded seq
moss_tts_local_fixed_sampled_framelocal codebook sampler16 tokens/frame
moss_audio_tokenizer_decode_fullcodec → waveform48 kHz stereo
browser_poc_manifest.jsonbuiltin voicesreference codes

Logical tree

moss-nano.rlxp
├── graphs/
│   ├── moss_tts_prefill.rlxp
│   ├── moss_tts_local_fixed_sampled_frame.rlxp
│   └── moss_audio_tokenizer_decode_full.rlxp
├── browser_poc_manifest.json
└── tokenizer.json

How it is packed

just export-moss-nano-rlxp — pack-time ONNX+.data → nested graphs/*.rlxp (external data inlined as tensors). Hub has zero ONNX.

Note

Hub ships .rlxp only — no ONNX / .data. Nested packs hold hot tensors + graph.json.

Run with RLX

Clone rlx-models, place this repo under weights/tts/moss-nano (or pass the path explicitly), then:

just fetch-moss-nano && just moss-nano

License

Apache License 2.0 — see LICENSE. Inherit upstream terms when redistributing.

Original weights and authorship: https://huggingface.co/OpenMOSS-Team/MOSS-TTS-Nano-100M-ONNX

Maintenance

Cards and LFS attrs are regenerated from the local weights/ tree in rlx-models via python3 scripts/prepare_weights_hf.py.

Contributors

eugenehp

29 commits