{"record":{"id":"a447027337c66c2f","repo":"sgl-project/sglang","slug":"lora-is-not-supported-on-a-gguf-transformer-an-ad","errorCode":null,"errorMessage":"LoRA is not supported on a GGUF transformer: an adapter cannot be merged into packed GGML blocks. Use the unquantized checkpoint to serve LoRA.","messagePattern":"LoRA is not supported on a GGUF transformer: an adapter cannot be merged into packed GGML blocks\\. Use the unquantized checkpoint to serve LoRA\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/loader/transformer_load_utils.py","lineNumber":562,"sourceCode":"        )\n    if not current_platform.is_cuda():\n        raise ValueError(\n            \"GGUF diffusion checkpoints require CUDA; the GGML kernels have no \"\n            f\"{current_platform.device_type} implementation.\"\n        )\n    uses_fsdp = (\n        server_args.should_use_fsdp_for_component(component_name)\n        if component_name is not None\n        else server_args.use_fsdp_inference\n    )\n    if uses_fsdp:\n        raise ValueError(\n            \"GGUF diffusion checkpoints are incompatible with FSDP inference. \"\n            \"Run without --use-fsdp-inference, or keep this component offloaded \"\n            \"so FSDP does not manage it.\"\n        )\n    if server_args.lora_path is not None:\n        raise ValueError(\n            \"LoRA is not supported on a GGUF transformer: an adapter cannot be \"\n            \"merged into packed GGML blocks. Use the unquantized checkpoint to \"\n            \"serve LoRA.\"\n        )\n    # H3's AdaLN paths read the transformer's safetensors directly -- the cache\n    # builder needs unquantized weights, and the online rebuild is handed the\n    # safetensors file list, which is empty for a GGUF load.\n    if server_args.minimax_h3_adaln_online:\n        raise ValueError(\n            \"--minimax-h3-adaln-online rebuilds AdaLN outputs from the \"\n            \"safetensors checkpoint and cannot read a GGUF transformer.\"\n        )\n    if server_args.minimax_h3_adaln_cache_path is not None:\n        raise ValueError(\n            \"--minimax-h3-adaln-cache-path requires the unquantized \"\n            \"transformer and cannot be combined with a GGUF checkpoint.\"\n        )\n","sourceCodeStart":544,"sourceCodeEnd":580,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/loader/transformer_load_utils.py#L544-L580","documentation":"LoRA adapters require merging into ordinary weight tensors; GGUF stores packed GGML quantized blocks, so LoRA cannot be applied and the load is rejected.","triggerScenarios":"server_args.lora_path is not None while a GGUF transformer is selected via --transformer-weights-path.","commonSituations":"Reusing a serving config that enables --lora-path and swapping the base model to a GGUF quantized export.","solutions":["Drop --lora-path for GGUF serving","Serve LoRA from the unquantized safetensors checkpoint instead"],"exampleFix":"# before\n--transformer-weights-path model.gguf --lora-path ./adapter\n# after\n--model-path unquantized_model --lora-path ./adapter","handlingStrategy":"validation","validationCode":"if server_args.lora_path is not None and str(server_args.transformer_weights_path or '').endswith('.gguf'):\n    raise SystemExit('LoRA requires the unquantized checkpoint')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep a separate config profile for LoRA serving that uses safetensors base models"],"tags":["gguf","lora","unsupported-feature"],"backgroundTag":"unsupported-feature-combination","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}