invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError
Unsupported float generator type '{generator_type}'
Error message
Unsupported float generator type '{generator_type}' What it means
A float_generator node in a called batch child workflow declares a generator 'type' that _resolve_float_generator does not implement. Only float_generator_arithmetic_sequence, float_generator_linear_distribution, float_generator_random_distribution_uniform, and float_generator_parse_string are supported in this expansion path; anything else (often None) is rejected.
Source
Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:264
end = float(value.get("end", 1))
count = int(value.get("count", 10))
if count == 1:
return [start]
return [start + (end - start) * (i / (count - 1)) for i in range(count)]
if generator_type == "float_generator_random_distribution_uniform":
minimum = float(value.get("min", 0))
maximum = float(value.get("max", 1))
count = int(value.get("count", 10))
if "values" in value and isinstance(value["values"], list):
return [float(v) for v in value["values"]]
rng = random.Random(value.get("seed"))
return [rng.random() * (maximum - minimum) + minimum for _ in range(count)]
if generator_type == "float_generator_parse_string":
if "values" in value and isinstance(value["values"], list):
return [float(v) for v in value["values"]]
split_values = _parse_split_values(str(value.get("input", "")), str(value.get("splitOn", ",")))
return [float(v.strip()) for v in split_values if v.strip()]
raise UnsupportedWorkflowNodeError(f"Unsupported float generator type '{generator_type}'")
def _resolve_integer_generator(value: Mapping[str, Any]) -> list[int]:
generator_type = value.get("type")
if generator_type == "integer_generator_arithmetic_sequence":
start = int(value.get("start", 0))
step = int(value.get("step", 1))
count = int(value.get("count", 10))
if step == 0:
return [start]
return [start + i * step for i in range(count)]
if generator_type == "integer_generator_linear_distribution":
start = int(value.get("start", 0))
end = int(value.get("end", 10))
count = int(value.get("count", 10))
if count == 1:
return [start]
return [start + round((end - start) * (i / (count - 1))) for i in range(count)]View on GitHub (pinned to 0b6a024f2f)
Solutions
- Change the generator type to one of the supported float types: arithmetic_sequence, linear_distribution, random_distribution_uniform, or parse_string
- Fix typos in the 'type' string in the generator input value
- Pre-compute the float values externally and feed them as a direct list to the batch node instead
- Upgrade InvokeAI if the generator type exists in a newer release
Example fix
// before
{ "type": "float_generator_random_gaussian", "count": 5 }
// after
{ "type": "float_generator_random_distribution_uniform", "min": 0, "max": 1, "count": 5 } Defensive patterns
Strategy: validation
Validate before calling
SUPPORTED_FLOAT_TYPES = {"float_generator_arithmetic_sequence", "float_generator_linear_distribution", "float_generator_random_distribution_uniform", "float_generator_parse_string"}
for node in workflow.get("nodes", []):
d = node.get("data", {}) if isinstance(node, dict) else {}
if d.get("type") == "float_generator":
t = d.get("inputs", {}).get("generator", {}).get("value", {}).get("type")
if t not in SUPPORTED_FLOAT_TYPES:
raise ValueError(f"unsupported float generator type: {t!r}") Type guard
def is_supported_float_generator(value: object) -> bool:
return (isinstance(value, dict) and value.get("type") in {
"float_generator_arithmetic_sequence", "float_generator_linear_distribution",
"float_generator_random_distribution_uniform", "float_generator_parse_string"}) Try / catch
try:
sessions = build_batch_child_workflow_sessions(...)
except UnsupportedWorkflowNodeError as e:
m = re.search(r"Unsupported float generator type '(.+?)'", str(e))
if m:
workflow = replace_generator_with_static_list(workflow, m.group(1))
sessions = build_batch_child_workflow_sessions(...)
else:
raise Prevention
- Restrict child-workflow float generators to the four supported types
- Compute exotic distributions client-side and pass a static list
- Check the InvokeAI version's supported generator set before exporting workflows
- Add generator-type validation to your workflow submission pipeline
When it happens
Trigger: Calling a saved workflow with a float_generator whose inputs.generator.value.type is a type only supported by the interactive queue batch (e.g. other random distributions) or missing/misspelled entirely.
Common situations: Workflows using float generator variants added in newer InvokeAI versions than the running server; hand-edited generator 'type' strings with typos; copying generator configs between different InvokeAI features with different supported sets.
Related errors
- Unsupported integer generator type '{generator_type}'
- Unsupported string generator type '{generator_type}'
- Workflow not found
- Not authorized to access this workflow
- A saved workflow must be selected before executing call_save
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/f11e92cb6a352002.
Report an issue: GitHub.