sgl-project/sglang · error · ValueError

MiniMax H3 does not support enable_frame_interpolation: the

Error message

MiniMax H3 does not support enable_frame_interpolation: the accepted delivery contract is the canonical 24 fps output

What it means

MiniMax H3 video generation in SGLang only delivers video at the canonical 24 fps; it does not run a frame-interpolation post-processing pass. The adapter explicitly rejects requests with enable_frame_interpolation=True so clients cannot silently receive non-24fps interpolated output.

Source

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

        model_path: str | None,
    ) -> None:
        extras = request.model_extra or {}
        self.validate_task_gate(extras.get("task"), provided="task" in extras)
        del model_path
        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 "

View on GitHub (pinned to 0132848349)

Solutions

  1. Remove/force enable_frame_interpolation=False on the request
  2. Perform interpolation offline with ffmpeg minterpolate or an external tool after generation

Example fix

// before
request.enable_frame_interpolation = True
// after
request.enable_frame_interpolation = False
Defensive patterns

Strategy: validation

Validate before calling

assert not getattr(request, "enable_frame_interpolation", False), "MiniMax H3 has no interpolation"

Prevention

When it happens

Trigger: Passing a VideoRequest (or equivalent) with enable_frame_interpolation=True through lower_video_request_kwargs / validate_transport_options on the MiniMax H3 backend.

Common situations: Reusing request builders from other SGLang video models that support smooth-motion interpolation; UI toggles for 'smooth motion' carried over from a different backend.

Related errors


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