{"record":{"id":"2367a1d1861828ab","repo":"sgl-project/sglang","slug":"got-config-rope-axes-dim-but-expected-positional","errorCode":null,"errorMessage":"Got {config.rope_axes_dim} but expected positional dim {pe_dim}","messagePattern":"Got (.+?) but expected positional dim (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/models/dits/hunyuanvideo.py","lineNumber":683,"sourceCode":"\n        self.patch_size = [config.patch_size_t, config.patch_size, config.patch_size]\n        self.in_channels = config.in_channels\n        self.num_channels_latents = config.num_channels_latents\n        self.out_channels = (\n            config.in_channels if config.out_channels is None else config.out_channels\n        )\n        self.unpatchify_channels = self.out_channels\n        self.guidance_embeds = config.guidance_embeds\n        self.rope_dim_list = list(config.rope_axes_dim)\n        self.rope_theta = config.rope_theta\n        self.text_states_dim = config.text_embed_dim\n        self.text_states_dim_2 = config.pooled_projection_dim\n        # TODO(will): hack?\n        self.dtype = config.dtype\n\n        pe_dim = config.hidden_size // config.num_attention_heads\n        if sum(config.rope_axes_dim) != pe_dim:\n            raise ValueError(\n                f\"Got {config.rope_axes_dim} but expected positional dim {pe_dim}\"\n            )\n\n        self.hidden_size = config.hidden_size\n        self.num_attention_heads = config.num_attention_heads\n        self.num_channels_latents = config.num_channels_latents\n\n        # Image projection\n        self.img_in = PatchEmbed(\n            self.patch_size,\n            self.in_channels,\n            self.hidden_size,\n            dtype=config.dtype,\n            prefix=f\"{config.prefix}.img_in\",\n        )\n\n        self.txt_in = SingleTokenRefiner(\n            self.text_states_dim,","sourceCodeStart":665,"sourceCodeEnd":701,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/models/dits/hunyuanvideo.py#L665-L701","documentation":"HunyuanVideo computes pe_dim = hidden_size // num_attention_heads and requires sum(config.rope_axes_dim) to equal it, since the 3-axis RoPE must exactly fill each head's channel budget. A mismatch raises this ValueError in __init__.","triggerScenarios":"Loading a HunyuanVideo config where rope_axes_dim doesn't sum to hidden_size//num_attention_heads — e.g. editing num_attention_heads or hidden_size without adjusting rope_axes_dim, or mixing configs across HunyuanVideo variants.","commonSituations":"Config edits for distillation/pruning experiments; merging a config from a different video model size variant; hand-writing a config file.","solutions":["Set rope_axes_dim entries to sum to hidden_size//num_attention_heads (e.g. pe_dim=128 → [16,24,88] or similar valid split)","If you changed heads/width, recompute rope_axes_dim to match","Use the original config JSON shipped with the checkpoint"],"exampleFix":"# before\n# hidden_size=3072, num_attention_heads=24 -> pe_dim=128\n\"rope_axes_dim\": [16, 24, 32]  # sums to 72\n\n# after\n\"rope_axes_dim\": [16, 24, 88]  # sums to 128","handlingStrategy":"validation","validationCode":"pe_dim = config.hidden_size // config.num_attention_heads\nassert sum(config.rope_axes_dim) == pe_dim, f'{config.rope_axes_dim} != pe_dim {pe_dim}'","typeGuard":"def rope_axes_valid(config) -> bool:\n    return sum(config.rope_axes_dim) == config.hidden_size // config.num_attention_heads","tryCatchPattern":null,"preventionTips":["Never edit hidden_size/num_attention_heads without recomputing rope_axes_dim","Load the checkpoint's original config.json","Add config invariant tests for video DiT configs"],"tags":["config","validation","rope","video-diffusion"],"backgroundTag":"positional-embedding-dimension-mismatch","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}