Views
No views yet
TensorWiseINT8Layout.quantize, registry quantize_int8_convrot_weight).weight — torch.int8, original [out, in] shape, contains the offline Hadamard-rotated weight (W @ H^T per 256-column group)weight_scale — torch.float32, [out, 1] per-output-row scalebias — original float biascomfy_quant — uint8 JSON: {"format": "int8_tensorwise", "convrot": true, "convrot_groupsize": 256}comfy_kitchen.int8_linear(..., convrot=True, convrot_groupsize=256) — dynamic per-row INT8 activation
quantization + INT8 GEMM, rescaled by scale_x * scale_w. No whole-weight dequantization on the hot path.| Component | Quantized | Kept float |
|---|---|---|
fireredtts3_base | 321/332 Linears (1.73B params, 81.5% of core): all backbone_llm.layers.*, patch_encoder.blocks.*, dit.blocks.* | embeddings, norms, spk_proj_*, patch_encoder.in_proj/out_proj, dit_head, dit.in_proj (1600 % 256 != 0), dit.t_embedder, dit.final_layer, stop_head, Conv1d |
fireredtts3_instruct | 321/331 Linears (1.73B params, 71.2% of core): same block families (backbone_llm.model.layers.*) | same exclusions |
redae | nothing | everything |
campp | nothing | everything |
| Core | Official fp32 | This repo |
|---|---|---|
fireredtts3_base | 8.48 GB | 3.30 GB |
fireredtts3_instruct | 8.48 GB | 3.30 GB |
redae / campp / tokenizer | copied through unchanged |
comfy_kitchen.int8_linear runtime: worst rel-L2 0.01162, worst cosine 0.999932[N,1] and positive, Conv1d/RedAE/CAM++ untouchedConvRotInt8Linear modules, >42k counted INT8 ConvRot kernel calls during generation, weights stay int8 across unload/reload1@article{fireredtts3,
2 title = {FireRedTTS3: Unified Speech Generation and Editing with Semantically Enriched Speech Representations},
3 author = {FireRed Team},
4 journal = {arXiv preprint},
5 year = {2026},
6}