invoke-ai/InvokeAI · error · ValueError

Unknown variant for FLUX max seq len: {variant}

Error message

Unknown variant for FLUX max seq len: {variant}

What it means

get_flux_max_seq_length looks up the maximum sequence length in the _flux_max_seq_lengths dict keyed by model variant. An unknown/unsupported variant name raises ValueError because max seq len differs between FLUX schnell (256/512 context) and dev (512) and dev-kontext etc., and a wrong key would silently produce wrong sampler behavior otherwise.

Source

Thrown at invokeai/backend/flux/util.py:58

    (1504, 688),
    (1568, 672),
]


_flux_max_seq_lengths: dict[AnyVariant, Literal[256, 512]] = {
    FluxVariantType.Dev: 512,
    FluxVariantType.DevFill: 512,
    FluxVariantType.Schnell: 256,
    Flux2VariantType.Klein4B: 512,
    Flux2VariantType.Klein9B: 512,
}


def get_flux_max_seq_length(variant: AnyVariant):
    try:
        return _flux_max_seq_lengths[variant]
    except KeyError:
        raise ValueError(f"Unknown variant for FLUX max seq len: {variant}")


_flux_ae_params = AutoEncoderParams(
    resolution=256,
    in_channels=3,
    ch=128,
    out_ch=3,
    ch_mult=[1, 2, 4, 4],
    num_res_blocks=2,
    z_channels=16,
    scale_factor=0.3611,
    shift_factor=0.1159,
)


def get_flux_ae_params() -> AutoEncoderParams:
    return _flux_ae_params

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Use one of the supported variant strings defined alongside _flux_max_seq_lengths in invokeai/backend/flux/util.py
  2. Check FLUXVariant class/enum members for exact valid keys
  3. Upgrade InvokeAI if your variant is newer than the installed version
  4. Add your variant to _flux_max_seq_lengths if intentionally extending

Example fix

// before
seq_len = get_flux_max_seq_length("flux-dev-kontext")
// after
seq_len = get_flux_max_seq_length(FluxVariant.flux_dev)  # or another supported variant key
Defensive patterns

Strategy: try-catch

Validate before calling

from invokeai.backend.flux.util import _flux_max_seq_length if available, else:
assert variant in supported_variants, f"{variant} not in supported FLUX variants"

Try / catch

try:
    seq_len = get_flux_max_seq_length(variant)
except ValueError as e:
    logging.warning("%s — falling back to flux-dev seq len", e)
    seq_len = get_flux_max_seq_length("flux-dev")

Prevention

When it happens

Trigger: Calling get_flux_max_seq_length with a variant string not present in the dict — e.g. 'flux-dev-kontext', 'flux2', typos like 'flux_dev', or newer variants added upstream but not in this InvokeAI version.

Common situations: Passing a user/model-manager variant label straight into the function; adding a new FLUX release without updating the mapping; case/space mismatch in variant naming.

Related errors


AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29). Data as JSON: /api/errors/eccf110a52b31f71. Report an issue: GitHub.