calesthio/OpenMontage · error · ValueError

{variant} supports only 480p or 720p resolution

Error message

{variant} supports only 480p or 720p resolution

What it means

Variant-specific resolution gate in `_build_payload`: when the resolved model variant is '2.5', 'fast', or 'mini', `resolution` must be 480p or 720p — those lightweight Seedance variants do not support 1080p or 4k outputs. The generic resolution check already passed, so this fires only for a valid resolution attached to the wrong model variant.

Source

Thrown at tools/video/seedance_ark.py:706

        operation = str(inputs.get("operation", "text_to_video"))
        if operation not in {
            "text_to_video",
            "image_to_video",
            "reference_to_video",
        }:
            raise ValueError(
                "operation must be text_to_video, image_to_video, or reference_to_video"
            )

        model, variant = self._resolve_model(inputs)
        resolution = str(inputs.get("resolution", "720p")).lower()
        if resolution not in self.OUTPUT_DIMENSIONS:
            raise ValueError("resolution must be 480p, 720p, 1080p, or 4k")
        if variant in {"2.5", "fast", "mini"} and resolution not in {
            "480p",
            "720p",
        }:
            raise ValueError(f"{variant} supports only 480p or 720p resolution")

        ratio = str(inputs.get("aspect_ratio", "16:9"))
        valid_ratios = {
            "adaptive",
            "21:9",
            "16:9",
            "4:3",
            "1:1",
            "3:4",
            "9:16",
        }
        if ratio not in valid_ratios:
            raise ValueError(
                "aspect_ratio must be adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, or 9:16"
            )

        max_duration = 30 if variant == "2.5" else 15
        duration = self._normalize_duration(inputs.get("duration", 5), max_duration)

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Lower resolution to '480p' or '720p' for fast/mini/2.5 variants
  2. Or switch `model` to a flagship variant that supports 1080p/4k
  3. Derive resolution from the variant programmatically instead of hardcoding

Example fix

# before
inputs = {"model": "seedance-2-5-lite", "resolution": "1080p", "prompt": "..."}
# after
inputs = {"model": "seedance-2-5-lite", "resolution": "720p", "prompt": "..."}
Defensive patterns

Strategy: validation

Validate before calling

LIMITED = {"2.5", "fast", "mini"}
if variant in LIMITED and resolution not in {"480p", "720p"}:
    raise ValueError(f"{variant} supports only 480p/720p — got {resolution}")

Type guard

def resolution_allowed_for_variant(variant: str, resolution: str) -> bool:
    return resolution.lower() in ({"480p", "720p"} if variant in {"2.5", "fast", "mini"} else {"480p", "720p", "1080p", "4k"})

Prevention

When it happens

Trigger: Combining e.g. seedance-fast/mini (or a 2.5 model) with `resolution: '1080p'` or '4k'; reusing a 1080p config block after switching `model` to a fast variant.

Common situations: Batch pipelines with a shared resolution setting across models; users switching models for cost/speed mid-project without revisiting resolution; assuming all variants share the flagship model's resolution envelope.

Related errors


AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15). Data as JSON: /api/errors/7d550c63c57cb2b3. Report an issue: GitHub.