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
- Use one of the supported variant strings defined alongside _flux_max_seq_lengths in invokeai/backend/flux/util.py
- Check FLUXVariant class/enum members for exact valid keys
- Upgrade InvokeAI if your variant is newer than the installed version
- 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
- Map model-manager variant names to supported keys once, centrally
- Handle KeyError/ValueError with a sane default seq length
- Upgrade InvokeAI before adopting new FLUX variants
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
- Unknown variant for FLUX transformer params: {variant}
- Got {params.axes_dim} but expected positional dim {pe_dim}
- Hidden size {params.hidden_size} must be divisible by num_he
- Got {params.axes_dim} but expected positional dim {pe_dim}
- str(e)
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/eccf110a52b31f71.
Report an issue: GitHub.