Nine pages under LLM/ document the upstream radiance engine at 8da043c: - engine shape, plugin model, RAD2 container, ABI and environment - every serve flag grouped with defaults and the law behind each knob - the HTTP surface, request fields and refusal classes - rad-convert, the recipe language, quantisers, imports, reuse, rad-export, KL scoring - the (arch id, quant) family table and the recipe of record per model - kernel/quantiser plugin authoring, encodings, build and checks - architecture plugin authoring: declare, step, probe, lane and media rules - rad-info/radbench/radtune and the shell harnesses - the container contract, host prerequisites, readiness and restart triage Also completes the dangling Related line on the frank-archon endpoint page.
12 KiB
type, title, description, tags, timestamp
| type | title | description | tags | timestamp | ||||
|---|---|---|---|---|---|---|---|---|
| reference | Radiance Model Families — arch ids, descriptors and recipes | Which radiance plugin claims which model family, and the conversion command and recipe of record for each. |
|
2026-10-30 |
Radiance model families
The selection key is the exact (architecture id, quantisation descriptor) pair, so a family at
two weight formats is two .so files. A checkpoint's id is its config.json model_type without
underscores (qwen3_5 → qwen35); rad-convert --arch ID overrides it. data/recipes/ is the
authority: read the recipe's header — it names the exact rad-convert line, its --set keys
and whether it needs calibration.
The plugin table
| plugin | id | quant | what it serves |
|---|---|---|---|
llama_fp8 |
llama |
fp8_e4m3 |
plain LLaMA decoder (MiniCPM5, Llama 3, derivatives reporting model_type: llama) from a checkpoint holding E4M3 codes + weight_scale_inv |
llama_dense_fp8 |
llama |
(empty) | the same graph from a bf16 checkpoint, linears made block fp8 by a recipe |
qwen35_bf16 |
qwen35 |
(empty) | Qwen3.5/3.6/3.8 dense hybrid (GDN + gated attention), bf16 |
qwen35_fp8 |
qwen35 |
fp8_e4m3 |
the same, block-scaled FP8 weights and activations |
qwen35_w8a8 |
qwen35 |
w8a8_fwht128 |
int8 trunk: i8 weights, bf16 scale per 128 of K, 128-wide Hadamard, int8 activations |
qwen35moe_fp8 |
qwen35moe |
fp8_e4m3 |
qwen35_fp8 with a routed feed-forward |
qwen4exp_fp8 |
qwen4exp |
(empty) | Qwen4-Exp / Qwen3.8-Flash-Next: a bf16 checkpoint quantised at convert, or Qwen's FP8 release as it ships |
glm5next |
glm5next |
(empty) | GLM-5.3-Flash: four mHC residual streams, 34 KDA + 11 sparse MLA layers with a DSA indexer, 288 MXFP4 experts top-8, block-FP8 attention/dense at f32 scales, MTP drafter, vision tower |
hyv3_bf16 |
hyv3 |
(empty) | Tencent Hy-Memory-30B-A3B bf16; bf16/W4/W8A8/block-FP8/MXFP4 by recipe |
hyv3_fp8 |
hyv3 |
fp8 |
Hy-Memory-30B-A3B-FP8: imported per-tensor E4M3, one dense layer then sigmoid-routed MoE |
hyv3_gguf |
hyv3 |
gguf_ftype_15 |
a llama.cpp Hy-Memory Q4_K_M GGUF, dequantised and recipe-converted |
gemma4_bf16 |
gemma4 |
compressed-tensors |
Gemma 4 31B dense (and E2B/E4B at one rank): sliding-window + proportional-RoPE global attention, GELU, softcapped logits; int4/Q8 codes per 128; assistant (shared-KV), DFlash or DFlash2 drafter; vision |
gemma4 |
gemma4 |
(empty) | Gemma 4 text from Google's bf16 checkpoint (26B-A4B MoE, dense sizes) with z-lab's DFlash |
gemma3 |
gemma3 |
(empty) | Gemma 3 dense (TranslateGemma 27B): sliding-window + global attention, GemmaRMSNorm, GELU; bf16 or int8/MXFP4/asym-int4 linears; DFlash2 drafter |
lfm2_bf16 |
lfm2 |
(empty) | LiquidAI LFM2 / LFM2-VL, bf16, one rank |
embgemma2 |
embeddinggemma2 |
(empty) | EmbeddingGemma 2: bidirectional encoder with Gemma 4 vision tower and audio conformer, pooled |
nomicbert |
nomicbert |
(empty) | nomic-embed-text-v2-moe: bidirectional post-norm encoder, 8 experts top-2 on every second layer, mean-pooled |
nemotron35_embed |
mistral3 |
(empty) | Nemotron 3.5 Embed 1B/8B and Rerank 8B: bf16 text/image retrieval with a Pixtral tower |
qwenimage21 |
qwenimage21 |
(empty) | Qwen-Image 2.1 / 2.1-Turbo image generator and editor (diffusers pipeline) |
krea2 |
krea2 |
(empty) | Krea 2 Raw/Turbo: Qwen3-VL-4B tapped layers, 12.9B single-stream DiT, Wan 2.1 VAE |
sdxl |
sdxl |
(empty) | Stable Diffusion XL and finetunes (Illustrious, NoobAI, Pony), single-file checkpoint |
flux3 |
flux3 |
(empty) | FLUX.3 [klein] and base: image generation and edits from up to ten pictures |
flux3distilled |
flux3distilled |
(empty) | the same plugin under the step-distilled release's own pipeline name |
anima |
anima |
(empty) | Anima Base/Aesthetic/Turbo from the release's three single files |
qwen3asr |
qwen3asr |
(empty) | Qwen3-ASR: Whisper-style audio encoder over a dense Qwen3 decoder, speech to text |
minimaxmusic3 |
minimaxmusic3 |
(empty) | MiniMax-Music3: Qwen3-8B frame model, depth decoder, flow-matching DiT, DAC vocoder |
breeze |
breeze |
(empty) | Breeze-TTS-2: T5Gemma 2 text encoder, Qwen3 backbone, 16-codebook depth decoder, Qwen3-TTS 12 Hz codec |
fishomni |
fishomni |
bsgemm-moe |
Fish Audio drama-3: Qwen3.5-35B-A3B backbone, block-FP8 experts at f32 scales, 13-layer codebook tower, Fish S2 DAC/codec |
minimaxh3 |
minimaxh3 |
(empty) | MiniMax-H3 video with stereo sound: Qwen3-VL-32B text encoder, 33B DiT, tiled ViT decoder, BigVGAN audio |
ltx2 |
ltx2 |
(empty) | LTX-2.5 base/distilled: Gemma 4 LM + text connectors, duration head, audio-video DiT, causal video VAE, audio VAE |
Recipes of record, by family
$SRC is a downloaded checkpoint; $CALIB is a calibration directory (see
Radiance Conversion). Paths are shortened to the recipe name.
| target | command |
|---|---|
| Qwen3.8-27B bf16 | rad-convert $SRC -o q38-27b-bf16.rad --recipe data/recipes/q38-27b-bf16.recipe |
| Qwen3.8-27B block fp8 + DFlash2 | rad-convert $SRC -o q38-27b-fp8.rad --recipe data/recipes/q38-27b-fp8block-df2.recipe --draft-model $DFLASH2 --set quantization_config.quant_method=fp8 --set quantization_config.fmt=e4m3 --set "quantization_config.weight_block_size=128 128" --set quantization_config.activation_scheme=dynamic |
| Qwen3.8-27B MXFP4 + DFlash2 | rad-convert $SRC -o q38-27b-mxfp4.rad --recipe data/recipes/q38-27b-mxfp4-df2.recipe --draft-model $DFLASH2 --set quantization_config.quant_method=fp8 --set quantization_config.fmt=e4m3 |
| Qwen3.8-27B w4a16 (an int4 release) | rad-convert $SRC -o q38-27b-w4a16.rad --recipe data/recipes/q38-27b-w4a16.recipe |
| Qwen3.8-27B Quark AWQ-MXFP4 | rad-convert $SRC -o q38-27b-quark.rad --recipe data/recipes/q38-27b-quark-mxfp4-df2.recipe --draft-model $DFLASH2 |
| Qwen3.8-27B ParoQuant int4/int5/MXFP4 | rad-convert $SRC -o q38-27b-paro.rad --recipe data/recipes/q38-27b-paro-mxfp4-df2.recipe --draft-model $DFLASH2 |
| Qwen3.8-27B NVFP4 (compressed-tensors or ModelOpt) | --recipe data/recipes/q38-27b-nvfp4-df2.recipe or q38-27b-modelopt-nvfp4.recipe; every NVFP4 weight must take a rule (no kernel serves NVFP4) |
| Qwen3.8-Flash-Next bf16 reference | rad-convert $SRC -o flashnext-bf16.rad --max-ctx 4096 (no recipe; served with --weights-disk-tier) |
| Qwen3.8-Flash-Next four-bit production | CALIB=$CALIB rad-convert $SRC -o w4nl64-i8lm.rad --recipe data/recipes/qwen4exp-w4nl64-i8-hc8m.recipe (GPTQ experts + int8 trunk) |
| Qwen3.8-Flash-Next uncalibrated four-bit | --recipe data/recipes/qwen4exp-w4.recipe (rtn, no calibration) |
| Flash-Next from an AutoRound int4 release | --recipe data/recipes/qwen4exp-autoround-i8-hc8m.recipe |
| Gemma 4 31B w4a8 (no calibration) | --recipe data/recipes/gemma4-31b-dense-bf16-w4a8.recipe --set quantization_config.quant_method=compressed-tensors --draft-model $ASSISTANT |
| Gemma 4 31B w4a8 + DFlash / DFlash2 | gemma4-31b-dense-bf16-w4a8-df.recipe / -w4a8-df2.recipe, same --set |
| Gemma 4 31B Q8 grid | gemma4-31b-dense-bf16-q8-df.recipe |
| Gemma 4 26B-A4B + DFlash | gemma4-26b-a4b-df.recipe; -pad768 when the experts were padded to 768 (down may then be block fp8) |
| Gemma 4 E4B (Nemotron Bolt) | gemma4-e4b-bf16-df.recipe, -i8g-, -a4-, -w4a8-, -w8a8- variants |
| TranslateGemma 27B | translategemma-27b-i8a8.recipe (calibration container), then CALIB=$CALIB translategemma-27b-mxfp4-gptq.recipe (or -df2) |
| GLM-5.3-Flash | rad-convert $AMD_QUARK -o glm53.rad --recipe data/recipes/glm53-mxfp4.recipe |
| Hy-Memory-30B-A3B | hy-memory-30b-a3b-bf16-fp8.recipe, -mxfp4, -w4, -w8, hy-memory-30b-a3b-fp8.recipe, hy-memory-30b-a3b-gguf-q4k-to-w4.recipe |
| MiniCPM5-2B | minicpm5-2b-dspark.recipe (or -bf16-dspark) with --draft-model $DSPARK |
| Qwen3.6-35B-A3B | q36-35b-a3b-fp8.recipe |
| Qwen-Image 2.1 | qwen-image-2.1-fp8.recipe (Turbo uses the same file) or -bf16 |
| Krea 2 | krea-2-fp8.recipe, krea-2-bf16.recipe, krea-2-fp8-unscaled.recipe for a plain-FP8 finetune file |
| FLUX.3 [klein] | flux-3-klein-fp8.recipe |
| SDXL / finetunes | sdxl-bf16.recipe --tokenizer <openai/clip-vit-large-patch14>/tokenizer.json |
| Anima | anima-fp8.recipe (or -bf16) + --add ×2 + --config + --tokenizer2 + --arch anima --set anima.variant=aesthetic |
| LTX-2.5 | ltx-2.5-fp8.recipe (or -bf16); full DiT: symlink a folder whose transformer/ is transformer_full/ and --set scheduler.use_dynamic_shifting=1 --set scheduler.shift_terminal=0.1 |
| MiniMax-H3 / FastH3 | minimax-h3-fp8.recipe, minimax-h3-w8a8.recipe, minimax-h3-curve-* for curve-form checkpoints |
| MiniMax-Music3 | minimax-music3-bf16.recipe |
| Breeze-TTS-2 | breeze-tts2-bf16.recipe |
| drama-3 | drama3-fp8.recipe |
| nomic-embed-v2-moe | nomic-embed-v2-moe-bf16.recipe |
| Unlimited-OCR | unlimited-ocr-bf16.recipe |
| Qwen3-ASR | no container: serve the checkpoint directory as it ships |
| EmbeddingGemma 2, Nemotron Embed/Rerank | serve the checkpoint, or convert bf16 with no recipe |
A checkpoint served at its own precision needs no container at all:
radiance --model /srv/models/hf/Qwen/Qwen3.8-27B-FP8. Convert when you want a tier only a container
has (quantised encodings, a drafter, a second vocab) or a smaller file.
Family-specific traps
head_dimis read, never derived. On the Qwen hybrids it is 256 whilehidden_size / num_attention_headsis 213; a derived value silently breaks projection widths, KV page size and the attention kernel's band.- A fused projection shards by part, not by contiguous rows. A tensor-parallel rank owns a slice
of each stacked projection in a fused
[gate|up]or[q|k|v|z]; a contiguous slice would hand rank 0 the whole gate, and the model would produce fluent wrong text. This is declared throughRadWeightDecl::row_parts, never inferred from the container. - Gemma 4 26B-A4B: the routed experts'
gate_upmay be block fp8, butdownstays bf16 unless the experts were padded to 768 — hence the-pad768recipe. - GLM-5.3-Flash: every weight is served as stored except the latent attention's small
kv_b, decoded to bf16. Its KV cache is bf16 only (the plugin refusesfp8at startup), and at 172 GiB it needs--tp 8. - TranslateGemma 27B: the checkpoint's template takes structured turns naming two languages and
refuses the plain turn the server renders at startup. The container therefore serves a plain Gemma 3
template, and a client sends on
/v1/completionsthe prompt the checkpoint's own template renders. - ParoQuant containers made before 1.5.0 are refused at startup. Convert again with the old
container as
--reuse; every tensor that did not change is copied. - SDXL carries no tokeniser. Pass CLIP's
tokenizer.jsonbeside the single file. A Krea 2 finetune shipped as one DiT file in Krea's key names is rewritten into a directory whosetransformer/holds it (scripts/krea2_native.py), with the release's other parts copied in. - Anima ships as three single files:
--addthe text encoder and VAE,--configa Qwen3-0.6B-Base directory (config + tokenizer),--tokenizer2ComfyUI's T5 tokenizer,--arch anima,--set anima.variant=…. - drama-3's codec is
codec.pth, atorch.savefile read as data, never unpickled. - Generators that load LoRA files declare their module aliases; the checkpoint and a ComfyUI port
disagree in ways that load without error and generate garbage. The per-plugin alias table is in
docs/ARCHITECTURES.md("Adapter key names of the generators"). - Licences travel with the checkpoint, not the engine. Qwen-Image 2.1 is non-commercial; MiniMax-H3's licence excludes the EU, UK, Republic of Korea and USA; drama-3's community licence needs a commercial licence to serve speech to others, and cloning a real person needs consent; Breeze-TTS-2 is research/non-commercial.
Related
- Radiance Conversion — the tool, recipe language and quantisers used above.
- Radiance Serve Options — the flags each family's compose file uses.
- Radiance Architecture Plugins — writing a plugin for a family not in this table.
- Quantization Production — the fleet's campaign and gates.