MOSS-TTS-Nano (RLX)
Single runnable moss-nano.rlxp: nested native graphs (prefill/local/codec) + tokenizer + voices. No ONNX on Hub.
| Field | Value |
|---|---|
| Hub id | eugenehp/moss-nano |
| Kind | RLX-native weight bundle (graphs + sidecars ready for rlx-* crates). |
| RLX crate | rlx-moss-nano |
| Upstream | https://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
| Field | Value |
|---|---|
| File | moss-nano.rlxp (639.0 MiB) |
| Manifest name | moss-nano |
| Producer | rlx-assets |
| Container | RLXPFLAT v2, flags=0x1 |
| Tensors | 0 |
| Sidecars | 12 |
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.
| Sidecar | Raw | Stored | Role |
|---|---|---|---|
.gitattributes |
695 B | 136 B | |
LICENSE |
9.9 KiB | 3.6 KiB | |
README.md |
4.2 KiB | 1.9 KiB | |
browser_poc_manifest.json |
491.6 KiB | 64.5 KiB | Voice / style manifest (builtin prompt codes) |
codec/moss_audio_tokenizer_decode_shared.data |
42.2 MiB | 39.1 MiB | |
graphs/moss_audio_tokenizer_decode_full.rlxp |
42.4 MiB | 39.2 MiB | Nested codec pack |
graphs/moss_tts_local_fixed_sampled_frame.rlxp |
216.4 MiB | 95.7 MiB | Nested: hot tensors + graph.json |
graphs/moss_tts_prefill.rlxp |
420.6 MiB | 183.7 MiB | Nested: hot tensors + graph.json |
moss_tts_global_shared.data |
420.4 MiB | 183.6 MiB | |
moss_tts_local_shared.data |
219.0 MiB | 97.0 MiB | |
tokenizer.json |
1.3 MiB | 346.8 KiB | Text tokenizer |
tokenizer.model |
459.9 KiB | 267.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.
| Module | Role | Sample rate | Notes |
|---|---|---|---|
moss_tts_prefill |
global AR transformer | β | growing padded seq |
moss_tts_local_fixed_sampled_frame |
local codebook sampler | β | 16 tokens/frame |
moss_audio_tokenizer_decode_full |
codec β waveform | 48 kHz stereo | |
browser_poc_manifest.json |
builtin voices | β | reference 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.