Tenzro
AI

Models.

Model registry and catalog. Ten modalities, open weights throughout, every entry carrying its source repository, license tier, and hardware floor. Browse the full registry at /models.
STATUS
Testnet
CRATE
tenzro-model
STABILITY
Stable
TYPE
Reference
01

Language catalog

Qwen          3 / 3-Next / 3-VL / 3.5 / 3.6 / 3.8 / AgentWorld
Gemma         3 / 4 (MTP-enabled targets) / DiffusionGemma
DeepSeek      V3 / V4                      Kimi     K2 / K3
GLM           4 / 5 / 6                    MiniMax  M / H
Nemotron      Nano / Ultra / Lightning     GPT-OSS  20B / 120B
Mistral       7B / Nemo / Small / Ministral
Phi 4         mini / reasoning             Granite 4
Ornith · Inkling · Laguna · SmolLM · Muse Glimmer · Cosmos-Reason

Dense and mixture-of-experts alike, from sub-billion-parameter edge models to frontier MoE. Each entry declares its quantization, context window, weights size, and RAM floor, so a node can decide what it can actually hold before it fetches anything.

02

Every other modality

Media gen     FLUX2, Qwen-Image, Z-Image        (text2image, image2image)
              LTX2, Wan 2.1/2.2, MiniMax-H3     (text2video, image2video)
              Hunyuan3D, Trellis2               (image23d)
              MiniMax-Music                     (text2audio)
Vision        CLIP, SigLIP2, DINOv3
Speech in     Moonshine, Distil-Whisper, Whisper-v3-turbo,
              Parakeet-TDT, Canary
Speech out    Qwen3-TTS (preset voices + cloning)
Text embed    Qwen3-Embedding, EmbeddingGemma, BGE-M3, ModernBERT
Segmentation  SAM 2, SAM 3 (open-vocabulary), EdgeSAM, MobileSAM
Detection     RF-DETR, D-FINE
Forecasting   Chronos-2, TimesFM 2.5, TiRex

Media generation is job-based rather than request-response: post a job, a worker claims it, and the output is published against a receipt. The remaining modalities run as ONNX runtimes behind the same modality-aware inference router.

03

License tiers

Each entry carries a license tier: Permissive, Attribution, CommercialCustom, NonCommercial. Tiered admission is enforced centrally in ModelRegistry::register_model().

04

Multi-Token Prediction (MTP)

Every HfModelEntry in the language catalog declares an optional speculative-decoding pairing:drafter_id (catalog ID of a vocab-matched drafter GGUF), mtp_kind(None | Generic | DraftMtp), andmtp_default_draft_n (recommended --spec-draft-n-max, 1..=6).

  • Generic — classical two-model speculative decoding. Any vocab-matched smaller model can be paired as a drafter (e.g. Qwen 3 32B target + Qwen 3 0.6B drafter). llama.cpp flag: --spec-type draft.
  • DraftMtp — jointly-trained Multi-Token-Prediction head. The drafter is a small auxiliary head trained on the target's hidden state, shipped by Unsloth as a sibling GGUF (e.g. unsloth/gemma-4-12b-it-GGUF/MTP/mtp-gemma-4-12B-it.gguf). Higher accept rates than generic speculative decoding because the drafter mirrors the target's distribution. Unsloth measures 1.5–2.2× throughput on Gemma 4. llama.cpp flag: --spec-type draft-mtp.

Gemma 4 E2B / 12B / 31B all declare DraftMtp with draft_n: 2 as a starting point. Set draft_n in your tenzro_chat request to opt in — the in-process runtime runs real speculative decoding: the drafter proposes a block of candidate tokens, the target verifies them in one batched decode, and the accepted prefix advances the stream. Serving a model auto-loads its paired drafter: tenzro_serveModel reads the catalog drafter_id, loads the drafter from disk or downloads it in the background, and reports the outcome in the serve response's mtp field (drafter_loaded, drafter_downloading, inline for single-file MTP models, or disabled when the caller passes "load_drafter": false). A drafter problem never fails the serve. MtpUnavailable is returned only when draft_n is requested for a target with no drafter loaded.

05

List

tenzro model list
tenzro model info gemma4-12b
tenzro chat gemma4-12b --draft-n 2

Over JSON-RPC the catalog is one call per modality:tenzro_listModels for language,tenzro_mediaGen_listCatalog for generation, andtenzro_list{Vision,Detection,Audio,TextEmbedding,Forecast,Segmentation,Tts,TextSegmentation}Catalog for the rest. The list*Models methods are narrower — they report what a given node has loaded right now, not what the registry carries.

06

Content-addressed download + verify

Weights are content-addressed. A node fetch is peer-first: it consults connected iroh peers for the BLAKE3 before reaching HuggingFace Hub, transfers over QUIC with every block BLAKE3-verified, and opportunistically publishes a successful HF fetch back into the local blob store so later fetchers skip the round trip. Every model carries a canonical hash record — the BLAKE3 root, the SHA-256, and a per-file manifest hash — recorded first-recorder-wins. Downloaded weights are checked against that record before load; a mismatch refuses the load.

tenzro model download timesfm-2.5 --rpc http://127.0.0.1:8545
tenzro model get-hash timesfm-2.5 --rpc http://127.0.0.1:8545
tenzro model list-hashes --rpc http://127.0.0.1:8545

The record is read by model_id via tenzro_getModelHash, enumerated via tenzro_listModelHashes, and written first-recorder-wins via tenzro_recordModelHash. Any artifact resolved this way is reachable through the unified scheme — tenzro://blob/<blake3-hex>.

Related
← All docs