OrbitQuant: Data-Agnostic Quantization for Image and Video Diffusion Transformers
By Donghyun Lee, Jitesh Chavan, Duy Nguyen, Sam Huang, Liming Jiang, Priyadarshini Panda, Timo Mertens, Saurabh Shukla
"OrbitQuant achieves data-agnostic PTQ for DiTs by quantizing in a rotated basis, using a RPBH transform to fix coordinate marginals, enabling a single Lloyd-Max codebook across all timesteps and prompts."
Abstract
Diffusion transformers (DiTs) achieve state-of-the-art image and video generation, but their multi-step sampling and growing parameter count make inference expensive. Post-training quantization (PTQ) is the natural remedy, yet DiT activations shift across timesteps, prompts, and guidance branches, forcing prior methods to re-fit calibration data for every new checkpoint or modality. We present OrbitQuant, a data-agnostic weight-activation quantizer that bypasses range estimation by quantizing in a normalized, rotated basis. In this basis, a randomized permuted block-Hadamard (RPBH) rotation concentrates each coordinate around one fixed, known marginal regardless of the input, so a single Lloyd-Max codebook serves all timesteps, prompts, and layers of a given input dimension. We extend the same quantizer to weight rows offline, absorbing the rotation into the weights so that it cancels inside each linear layer and only a forward rotation on the activations remains at runtime. The same recipe transfers from image to video with no per-modality tuning. Across FLUX.1, Z-Image-Turbo, Wan 2.1, and CogVideoX, it sets the state of the art for PTQ at several low-bit settings. It also pushes PTQ of image diffusion transformers to W2A4 with usable generation quality.
Technical Analysis & Implementation
Core Methodology§
OrbitQuant addresses the challenge of post-training quantization (PTQ) for diffusion transformers (DiTs), where activation statistics vary across timesteps, prompts, and guidance branches. Instead of data-dependent calibration, it applies a randomized permuted block-Hadamard (RPBH) rotation before quantization. This rotation makes each activation coordinate follow a fixed, known marginal distribution (approximately Gaussian) regardless of input, enabling a single Lloyd-Max optimal scalar codebook to be used for all layers, timesteps, and prompts.
Mathematical Formulation§
For a weight matrix $W \in \mathbb{R}^{m \times n}$ and activation vector $x \in \mathbb{R}^{n}$, standard linear layer computes $y = Wx$. OrbitQuant applies an orthogonal rotation $R$ (RPBH) to the activations before quantization and absorbs its inverse into weights:
$$ \hat{y} = Q_w(W R^{-1}) \cdot Q_a(R x) $$
where $Q_w$ and $Q_a$ are weight and activation quantizers. The rotation $R$ is designed so that each element of $R x$ has a distribution close to a fixed standard Gaussian with zero mean and unit variance, independent of the original input. Therefore, a single codebook learned via the Lloyd-Max algorithm on a standard Gaussian suffices for all inputs.
Implementation Details§
- RPBH Rotation: A block-Hadamard matrix is randomly permuted and applied in chunks. It is an orthogonal transform that can be computed efficiently via fast Walsh-Hadamard transform.
- Quantization: Weights are quantized offline to low-bit integers (e.g., 2-4 bits) using standard min-max or percentile clipping, after absorbing the inverse rotation. Activations are rotated online then quantized with a fixed, precomputed Lloyd-Max codebook.
- Codebook Design: The Lloyd-Max codebook is optimized for a zero-mean, unit-variance Gaussian, minimizing MSE. Since the rotated activations match this distribution, no calibration data is needed.
Code Snippet§
import torch
import torch.nn.functional as F
def rpbh_rotation(x, block_size=256):
# Simplified: apply random permutation and block Hadamard
n = x.shape[-1]
H = torch.hadamard(n // block_size).float() # Hadamard matrix
perm = torch.randperm(n)
x_perm = x[..., perm]
x_rot = torch.cat([F.linear(x_perm[..., i*block_size:(i+1)*block_size], H)
for i in range(n // block_size)], dim=-1)
return x_rot
class OrbitQuantLinear(torch.nn.Linear):
def __init__(self, in_features, out_features, bit_width=4):
super().__init__(in_features, out_features, bias=False)
self.bit_width = bit_width
# Precompute inverse rotation and absorb into weights
R_inv = rpbh_rotation(torch.eye(in_features)).inverse()
self.weight.data = self.weight.data @ R_inv.t()
# Quantize weights offline
self.weight = quantize_weight(self.weight, bit_width)
# Precompute activation codebook for standard normal
self.codebook = lloyd_max_gaussian(bit_width)
def forward(self, x):
# Rotate activations
x_rot = rpbh_rotation(x)
# Quantize activations with fixed codebook
x_q = quantize_activation(x_rot, self.codebook)
return F.linear(x_q, self.weight)Results & Significance§
OrbitQuant sets new state-of-the-art PTQ results on FLUX.1, Z-Image-Turbo, Wan 2.1, and CogVideoX at various bit-widths (W8A8 down to W2A4). It is data-agnostic and transfers directly from image to video models without retuning. The key insight is that a fixed rotation stabilizes activation distributions, eliminating the need for calibration data and making PTQ truly plug-and-play.
Interactive LLM Token & Cost Calculator
Estimate token usage and model pricing. Enter your prompt below to see how it is parsed into tokens and calculate the exact API cost for different providers.
Cost Breakdown (USD)
API Pricing Comparison (per Million Tokens)
| Model | Input | Output |
|---|---|---|
| GLM 4.7 Flash | $0.06 | $0.40 |
| o3 Pro | $20.00 | $80.00 |
| DeepSeek V3.1 | $0.21 | $0.79 |
| Gemini 2.5 Pro Preview 06-05 | $1.25 | $10.00 |
| GPT-5.2-Codex | $1.75 | $14.00 |
| Mistral Medium 3.1 | $0.40 | $2.00 |
| Seed 1.6 Flash | $0.07 | $0.30 |
| MiniMax M1 | $0.40 | $2.20 |
| Gemini 2.5 Flash | $0.30 | $2.50 |
| Seed 1.6 | $0.25 | $2.00 |
| R1 0528 | $0.50 | $2.15 |
| GPT-4o-mini | $0.15 | $0.60 |
| Qwen3 Coder Flash | $0.20 | $0.97 |
| Qwen3 Next 80B A3B Thinking | $0.10 | $0.78 |
| Qwen3 Next 80B A3B Instruct | $0.09 | $1.10 |
| Claude Sonnet 5 | $2.00 | $10.00 |
| Nano Banana 2 Lite (Gemini 3.1 Flash Lite Image) | $0.25 | $1.50 |
| Qwen Plus 0728 (thinking) | $0.26 | $0.78 |
| o4 Mini | $1.10 | $4.40 |
| GPT-4.1 Mini | $0.40 | $1.60 |
| o1 | $15.00 | $60.00 |
| GPT-4o (2024-11-20) | $2.50 | $10.00 |
| Claude Sonnet 4.6 | $3.00 | $15.00 |
| Mistral Large 2407 | $2.00 | $6.00 |
| GLM 4.5V | $0.60 | $1.80 |
| Claude Opus 4.7 (Fast) | $30.00 | $150.00 |
| GPT-5 Chat | $1.25 | $10.00 |
| GPT-5 Nano | $0.05 | $0.40 |
| Qwen2.5 Coder 32B Instruct | $0.66 | $1.00 |
| gpt-oss-120b | $0.03 | $0.15 |
| Gemini 3.1 Flash Lite | $0.25 | $1.50 |
| GPT Chat Latest | $5.00 | $30.00 |
| Mistral Medium 3.5 | $1.50 | $7.50 |
| Anthropic Claude Haiku Latest | $1.00 | $5.00 |
| GPT-5 Mini | $0.25 | $2.00 |
| MoonshotAI Kimi Latest | $0.66 | $3.41 |
| gpt-oss-20b | $0.03 | $0.14 |
| Claude Opus 4.1 | $15.00 | $75.00 |
| Google Gemini Flash Latest | $1.50 | $9.00 |
| DeepSeek V3 0324 | $0.24 | $0.90 |
| o1-pro | $150.00 | $600.00 |
| Mistral Small 3.1 24B | $0.35 | $0.56 |
| Qwen2.5 7B Instruct | $0.04 | $0.10 |
| Llama 3.2 3B Instruct | $0.05 | $0.34 |
| Anthropic Claude Sonnet Latest | $2.00 | $10.00 |
| Qwen3.5 Plus 2026-04-20 | $0.30 | $1.80 |
| Qwen3.6 Flash | $0.19 | $1.13 |
| Qwen3.6 27B | $0.28 | $2.40 |
| GPT-5.5 Pro | $30.00 | $180.00 |
| Qwen2.5 72B Instruct | $0.36 | $0.40 |
| Command R (08-2024) | $0.15 | $0.60 |
| GPT-4o (2024-08-06) | $2.50 | $10.00 |
| Llama 3.1 8B Instruct | $0.02 | $0.03 |
| Mistral Nemo | $0.02 | $0.03 |
| GPT-4o-mini (2024-07-18) | $0.15 | $0.60 |
| Hy3 preview | $0.06 | $0.21 |
| GPT-5.4 Image 2 | $8.00 | $15.00 |
| GPT-4o (2024-05-13) | $5.00 | $15.00 |
| Llama 3 8B Instruct | $0.14 | $0.14 |
| Mixtral 8x22B Instruct | $2.00 | $6.00 |
| Mistral Large | $2.00 | $6.00 |
| GPT-3.5 Turbo (older v0613) | $1.00 | $2.00 |
| GPT-4 Turbo Preview | $10.00 | $30.00 |
| Mistral Small 3 | $0.07 | $0.20 |
| Claude Sonnet 4 | $3.00 | $15.00 |
| MiniMax M2.7 | $0.18 | $0.72 |
| GPT-5.4 Nano | $0.20 | $1.25 |
| GPT-5.4 Mini | $0.75 | $4.50 |
| Claude 3 Haiku | $0.25 | $1.25 |
| Qwen3 30B A3B Instruct 2507 | $0.05 | $0.19 |
| GLM 4.5 Air | $0.13 | $0.85 |
| Command R+ | $2.50 | $10.00 |
| Qwen3 Coder 480B A35B | $0.22 | $1.80 |
| UI-TARS 7B | $0.10 | $0.20 |
| Hunyuan A13B Instruct | $0.14 | $0.57 |
| ERNIE 4.5 VL 424B A47B | $0.42 | $1.25 |
| Claude Opus 4.8 | $5.00 | $25.00 |
| GPT-5.5 | $5.00 | $30.00 |
| o3 Mini | $1.10 | $4.40 |
| GPT-4o | $2.50 | $10.00 |
| Mistral Small 4 | $0.15 | $0.60 |
| GLM 5 Turbo | $1.20 | $4.00 |
| Claude Opus 4.6 | $5.00 | $25.00 |
| GPT-5 | $1.25 | $10.00 |
| GPT-5.3-Codex | $1.75 | $14.00 |
| Gemini 3.1 Pro Preview | $2.00 | $12.00 |
| Claude Sonnet 4.5 | $3.00 | $15.00 |
| Qwen3 30B A3B Thinking 2507 | $0.13 | $1.56 |
| Mistral Small 3.2 24B | $0.07 | $0.20 |
| Qwen3.5 Plus 2026-02-15 | $0.26 | $1.56 |
| Claude Opus 4.5 | $5.00 | $25.00 |
| Claude Haiku 4.5 | $1.00 | $5.00 |
| Claude Opus 4 | $15.00 | $75.00 |
| Gemma 3n 4B | $0.06 | $0.12 |
| Gemini 2.5 Pro Preview 05-06 | $1.25 | $10.00 |
| Llama Guard 4 12B | $0.18 | $0.18 |
| Qwen3 30B A3B | $0.12 | $0.50 |
| Qwen3 8B | $0.12 | $0.46 |
| Qwen3 14B | $0.10 | $0.24 |
| Qwen3 235B A22B | $0.46 | $1.82 |
| o4 Mini High | $1.10 | $4.40 |
| Step 3.5 Flash | $0.10 | $0.30 |
| Kimi K2.5 | $0.38 | $2.02 |
| Gemini 2.5 Pro | $1.25 | $10.00 |
| o3 | $2.00 | $8.00 |
| Llama 3.2 11B Vision | $0.34 | $0.34 |
| GPT-4.1 | $2.00 | $8.00 |
| Gemini 3.1 Pro | $2.00 | $12.00 |
| Gemini 3.1 Flash | $0.25 | $1.50 |
| Llama 4 Maverick | $0.15 | $0.60 |
| Gemini 3.5 Flash | $1.50 | $9.00 |
| DeepSeek V3.2 | $0.23 | $0.34 |
| Nano Banana Pro (Gemini 3 Pro Image Preview) | $2.00 | $12.00 |
| GPT-5.1 | $1.25 | $10.00 |
| GPT-5 Image Mini | $2.50 | $2.00 |
| Llama 4 Scout | $0.10 | $0.30 |
| Llama 3.3 70B Instruct | $0.10 | $0.32 |
| Mistral Large 3 | $0.50 | $1.50 |
| Command R | $0.15 | $0.60 |
| Grok 4.20 | $1.25 | $2.50 |
| DeepSeek R1 | $0.70 | $2.50 |
| Qwen Plus 0728 | $0.26 | $0.78 |
| Qwen3 235B A22B Thinking 2507 | $0.15 | $1.50 |
| Qwen 2.5-Coder 32B | $0.35 | $0.70 |
| Yi-Lightning | $0.15 | $0.30 |
| ERNIE 4.0 | $1.20 | $2.40 |
| Doubao Pro | $0.80 | $1.60 |
| Gemini 2.0 Flash | $0.10 | $0.40 |
| Kimi K2 0711 | $0.57 | $2.30 |
| Hunyuan Pro | $0.60 | $1.20 |
| Seed-2.0-Lite | $0.25 | $2.00 |
| GPT-5.1 Chat | $1.25 | $10.00 |
| GPT-5.1-Codex | $1.25 | $10.00 |
| Kimi K2 Thinking | $0.60 | $2.50 |
| Voxtral Small 24B 2507 | $0.10 | $0.30 |
| gpt-oss-safeguard-20b | $0.07 | $0.30 |
| MiniMax M2 | $0.26 | $1.02 |
| Qwen3 VL 32B Instruct | $0.10 | $0.42 |
| Qwen3 VL 8B Thinking | $0.12 | $1.36 |
| Qwen3 VL 8B Instruct | $0.12 | $0.46 |
| GPT-5 Image | $10.00 | $10.00 |
| o3 Deep Research | $10.00 | $40.00 |
| o4 Mini Deep Research | $2.00 | $8.00 |
| Nano Banana 2 (Gemini 3.1 Flash Image) | $0.50 | $3.00 |
| Nano Banana Pro (Gemini 3 Pro Image) | $2.00 | $12.00 |
| Kimi K2.7 Code | $0.74 | $3.50 |
| Claude Fable Latest | $10.00 | $50.00 |
| Claude Fable 5 | $10.00 | $50.00 |
| Qwen3.7 Plus | $0.32 | $1.28 |
| MiniMax M3 | $0.30 | $1.20 |
| Step 3.7 Flash | $0.20 | $1.15 |
| Claude Opus 4.8 (Fast) | $10.00 | $50.00 |
| Qwen3.7 Max | $1.25 | $3.75 |
| Grok Build 0.1 | $1.00 | $2.00 |
| Mistral Medium 3 | $0.40 | $2.00 |
| Grok 4.3 | $1.25 | $2.50 |
| Google Gemini Pro Latest | $2.00 | $12.00 |
| Qwen3.6 35B A3B | $0.14 | $1.00 |
| Qwen3.6 Max Preview | $1.04 | $6.24 |
| DeepSeek V4 Pro | $0.43 | $0.87 |
| DeepSeek V4 Flash | $0.09 | $0.18 |
| Claude Opus Latest | $5.00 | $25.00 |
| Kimi K2.6 | $0.66 | $3.41 |
| Claude Opus 4.7 | $5.00 | $25.00 |
| GLM 5.1 | $0.97 | $3.04 |
| Gemma 4 26B A4B | $0.06 | $0.33 |
| Gemma 4 31B | $0.12 | $0.35 |
| Qwen3.6 Plus | $0.33 | $1.95 |
| GLM 5V Turbo | $1.20 | $4.00 |
| Grok 4.20 Multi-Agent | $1.25 | $2.50 |
| Lyria 3 Pro Preview | $0.00 | $0.00 |
| GPT-4.1 Nano | $0.10 | $0.40 |
| Llama 4 Maverick | $0.15 | $0.60 |
| Nano Banana 2 (Gemini 3.1 Flash Image Preview) | $0.50 | $3.00 |
| Qwen 2.5 72B | $0.40 | $0.80 |
| Qwen3.5-35B-A3B | $0.14 | $1.00 |
| Qwen3.5-27B | $0.20 | $1.56 |
| Qwen3.5-122B-A10B | $0.26 | $2.08 |
| Qwen3.5-Flash | $0.07 | $0.26 |
| Gemini 3.1 Pro Preview Custom Tools | $2.00 | $12.00 |
| Qwen3.5 397B A17B | $0.39 | $2.45 |
| MiniMax M2.5 | $0.12 | $0.48 |
| GLM 5 | $0.60 | $1.92 |
| Qwen3 Max Thinking | $0.78 | $3.90 |
| Qwen3 Coder Next | $0.11 | $0.80 |
| MiniMax M2-her | $0.30 | $1.20 |
| GPT Audio | $2.50 | $10.00 |
| GPT Audio Mini | $0.60 | $2.40 |
| MiniMax M2.1 | $0.30 | $1.20 |
| Mistral Large 2 | $0.60 | $1.80 |
| Mixtral 8x22B | $0.50 | $1.00 |
| Llama 3.1 405B | $0.80 | $0.80 |
| Llama 3.1 8B | $0.04 | $0.04 |
| Qwen3.5-9B | $0.10 | $0.15 |
| GLM 4.7 | $0.40 | $1.75 |
| Gemini 3 Flash Preview | $0.50 | $3.00 |
| GPT-5.2 Chat | $1.75 | $14.00 |
| GPT-5.2 Pro | $21.00 | $168.00 |
| Gemma 3 4B | $0.05 | $0.10 |
| Gemma 3 12B | $0.05 | $0.15 |
| Command A | $2.50 | $10.00 |
| GPT-4o-mini Search Preview | $0.15 | $0.60 |
| GPT-4o Search Preview | $2.50 | $10.00 |
| GPT-5.4 Pro | $30.00 | $180.00 |
| Claude 3.5 Sonnet v2 | $3.00 | $15.00 |
| GPT-5.4 | $2.50 | $15.00 |
| GPT-5.3 Chat | $1.75 | $14.00 |
| Gemini 3.1 Flash Lite Preview | $0.25 | $1.50 |
| Seed-2.0-Mini | $0.10 | $0.40 |
| Nano Banana (Gemini 2.5 Flash Image) | $0.30 | $2.50 |
| Qwen3 VL 30B A3B Thinking | $0.13 | $1.56 |
| Qwen3 VL 30B A3B Instruct | $0.13 | $0.52 |
| GPT-5 Pro | $15.00 | $120.00 |
| GLM 4.6 | $0.43 | $1.74 |
| Qwen3 Max | $0.78 | $3.90 |
| Qwen3 Coder Plus | $0.65 | $3.25 |
| GLM 5.2 | $0.91 | $2.86 |
| Grok 4.20 | $1.25 | $2.50 |
| Lyria 3 Clip Preview | $0.00 | $0.00 |
| KAT-Coder-Pro V2 | $0.30 | $1.20 |
| Codestral 2508 | $0.30 | $0.90 |
| Qwen3 Coder 30B A3B Instruct | $0.07 | $0.27 |
| GLM 4.5 | $0.60 | $2.20 |
| Gemini 2.5 Flash Lite | $0.10 | $0.40 |
| Qwen3 235B A22B Instruct 2507 | $0.09 | $0.10 |
| GPT-5.2 | $1.75 | $14.00 |
| Devstral 2 2512 | $0.40 | $2.00 |
| GLM 4.6V | $0.30 | $0.90 |
| GPT-5.1-Codex-Max | $1.25 | $10.00 |
| Ministral 3 14B 2512 | $0.20 | $0.20 |
| Ministral 3 8B 2512 | $0.15 | $0.15 |
| Ministral 3 3B 2512 | $0.10 | $0.10 |
| Mistral Large 3 2512 | $0.50 | $1.50 |
| GPT-5 Codex | $1.25 | $10.00 |
| DeepSeek V3.1 Terminus | $0.27 | $0.95 |
| Qwen3 32B | $0.08 | $0.28 |
| GPT-5.1-Codex-Mini | $0.25 | $2.00 |
| Qwen-Plus | $0.26 | $0.78 |
| Llama 3.1 70B Instruct | $0.40 | $0.40 |
| Kimi K2 0905 | $0.60 | $2.50 |
| DeepSeek V3.2 Exp | $0.27 | $0.41 |
| Gemini 2.5 Flash Lite Preview 09-2025 | $0.10 | $0.40 |
| Qwen3 VL 235B A22B Thinking | $0.26 | $2.60 |
| Qwen3 VL 235B A22B Instruct | $0.20 | $0.88 |
| Qwen2.5 VL 72B Instruct | $0.80 | $1.00 |
| R1 Distill Llama 70B | $0.80 | $0.80 |
| R1 | $0.70 | $2.50 |
| MiniMax-01 | $0.20 | $1.10 |
| DeepSeek V3 | $0.20 | $0.80 |
| Command R7B (12-2024) | $0.04 | $0.15 |
| Llama 3.3 70B Instruct | $0.10 | $0.32 |
| Gemma 2 27B | $0.65 | $0.65 |
| Gemma 3 27B | $0.08 | $0.16 |
| Saba | $0.20 | $0.60 |
| o3 Mini High | $1.10 | $4.40 |
| Llama 3.2 1B Instruct | $0.03 | $0.20 |
| Llama 3.2 11B Vision Instruct | $0.34 | $0.34 |
| GPT-4 Turbo | $10.00 | $30.00 |
| GPT-3.5 Turbo Instruct | $1.50 | $2.00 |
| GPT-3.5 Turbo 16k | $3.00 | $4.00 |
| GPT-4 | $30.00 | $60.00 |
| GPT-3.5 Turbo | $0.50 | $1.50 |