sgl-project/sglang · error · ValueError

MiniMax H3 does not support enable_upscaling: the accepted d

Error message

MiniMax H3 does not support enable_upscaling: the accepted delivery contract is the resolved target canvas

What it means

MiniMax H3 SGLang backend emits output at the resolved target canvas resolution and does not run an upscaling post-pass. Requests with enable_upscaling=True are rejected to keep the delivery contract explicit.

Source

Thrown at python/sglang/multimodal_gen/runtime/pipelines_core/stages/model_specific_stages/minimax_h3/video_adapter.py:219

        self._positive_finite_extra(request, "audio_flow_shift")
        if _extra_value(request, "audio_guidance_scale") is not None:
            raise ValueError(
                "audio_guidance_scale is not supported: MiniMax H3 serves only "
                "the CFG-distilled single-positive-branch checkpoint"
            )
        output_mode = _extra_value(request, "output_mode")
        if output_mode not in (None, "decoded_files"):
            raise ValueError(
                "MiniMax H3 SGLang backend only supports "
                f"output_mode='decoded_files', got {output_mode!r}"
            )
        if request.enable_frame_interpolation:
            raise ValueError(
                "MiniMax H3 does not support enable_frame_interpolation: the "
                "accepted delivery contract is the canonical 24 fps output"
            )
        if request.enable_upscaling:
            raise ValueError(
                "MiniMax H3 does not support enable_upscaling: the accepted "
                "delivery contract is the resolved target canvas"
            )

    def validate_sampling_params(self, sampling_params: SamplingParams) -> None:
        """Apply the HTTP task/delivery gate to offline requests as well."""

        task = getattr(sampling_params, "task", None)
        self.validate_task_gate(task, provided=task is not None)
        sampling_params.task = canonical_minimax_h3_task(task)
        if getattr(sampling_params, "enable_frame_interpolation", False):
            raise ValueError(
                "MiniMax H3 does not support enable_frame_interpolation: the "
                "accepted delivery contract is the canonical 24 fps output"
            )
        if getattr(sampling_params, "enable_upscaling", False):
            raise ValueError(
                "MiniMax H3 does not support enable_upscaling: the accepted "

View on GitHub (pinned to 0132848349)

Solutions

  1. Set enable_upscaling=False and request the desired final resolution directly in the video request parameters
  2. Upscale offline (ffmpeg/RWGINS/Real-ESRGAN) after decoding the output files

Example fix

// before
request.enable_upscaling = True
// after
request.enable_upscaling = False
request.resolution = "1080p"  # request target canvas directly
Defensive patterns

Strategy: validation

Validate before calling

assert not getattr(request, "enable_upscaling", False), "MiniMax H3 has no upscaling"

Prevention

When it happens

Trigger: Passing enable_upscaling=True on a video request lowered through the MiniMax H3 adapter's validate_transport_options.

Common situations: Clients migrating from backends with built-in 2x/4x upscalers; enabling upscale hoping to compensate for a low resolution request.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/0a4dea668fa5e0fc. Report an issue: GitHub.