invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError

Unsupported integer generator type '{generator_type}'

Error message

Unsupported integer generator type '{generator_type}'

What it means

An integer_generator node in a called batch child workflow declares a generator 'type' not implemented by _resolve_integer_generator. Only arithmetic_sequence, linear_distribution, random_distribution_uniform, and parse_string are supported during call_saved_workflow batch expansion.

Source

Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:292

            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)]
    if generator_type == "integer_generator_random_distribution_uniform":
        minimum = int(value.get("min", 0))
        maximum = int(value.get("max", 10))
        count = int(value.get("count", 10))
        rng = random.Random(value.get("seed"))
        return [int(rng.random() * (maximum - minimum + 1)) + minimum for _ in range(count)]
    if generator_type == "integer_generator_parse_string":
        split_values = _parse_split_values(str(value.get("input", "")), str(value.get("splitOn", ",")))
        return [int(v.strip()) for v in split_values if v.strip()]
    raise UnsupportedWorkflowNodeError(f"Unsupported integer generator type '{generator_type}'")


def _resolve_string_generator(value: Mapping[str, Any]) -> list[str]:
    generator_type = value.get("type")
    if generator_type == "string_generator_parse_string":
        return [v for v in _parse_split_values(str(value.get("input", "")), str(value.get("splitOn", ","))) if v]
    if generator_type == "string_generator_dynamic_prompts_combinatorial":
        generator = CombinatorialPromptGenerator()
        return list(generator.generate(str(value.get("input", "")), max_prompts=int(value.get("maxPrompts", 10))))
    if generator_type == "string_generator_dynamic_prompts_random":
        seed = value.get("seed")
        if seed is None:
            seed = random.randint(0, 2**31 - 1)
        generator = RandomPromptGenerator(seed=int(seed))
        return list(generator.generate(str(value.get("input", "")), num_images=int(value.get("count", 10))))
    raise UnsupportedWorkflowNodeError(f"Unsupported string generator type '{generator_type}'")

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Use one of the supported types: integer_generator_arithmetic_sequence, integer_generator_linear_distribution, integer_generator_random_distribution_uniform, or integer_generator_parse_string
  2. Correct the 'type' value spelling in the workflow JSON
  3. Replace the generator with a direct list of integers on the integer_batch node
  4. Upgrade InvokeAI to a version that supports the generator type

Example fix

// before
{ "type": "integer_generator_random", "count": 3 }
// after
{ "type": "integer_generator_random_distribution_uniform", "min": 0, "max": 10, "count": 3 }
Defensive patterns

Strategy: validation

Validate before calling

SUPPORTED_INT_TYPES = {"integer_generator_arithmetic_sequence", "integer_generator_linear_distribution", "integer_generator_random_distribution_uniform", "integer_generator_parse_string"}
for node in workflow.get("nodes", []):
    d = node.get("data", {}) if isinstance(node, dict) else {}
    if d.get("type") == "integer_generator":
        t = d.get("inputs", {}).get("generator", {}).get("value", {}).get("type")
        if t not in SUPPORTED_INT_TYPES:
            raise ValueError(f"unsupported integer generator type: {t!r}")

Type guard

def is_supported_integer_generator(value: object) -> bool:
    return (isinstance(value, dict) and value.get("type") in {
        "integer_generator_arithmetic_sequence", "integer_generator_linear_distribution",
        "integer_generator_random_distribution_uniform", "integer_generator_parse_string"})

Try / catch

try:
    sessions = build_batch_child_workflow_sessions(...)
except UnsupportedWorkflowNodeError as e:
    m = re.search(r"Unsupported integer generator type '(.+?)'", str(e))
    if m:
        workflow = swap_to_supported_int_generator(workflow, m.group(1))
        sessions = build_batch_child_workflow_sessions(...)
    else:
        raise

Prevention

When it happens

Trigger: Calling a saved workflow with an integer_generator whose inputs.generator.value.type is missing, misspelled (e.g. 'integer_generator_random'), or from a newer UI version with additional generator kinds.

Common situations: Version skew between exported workflow JSON and the running server; hand-edited type strings; using generator types from the queue batch editor that the child-workflow expansion path does not support.

Related errors


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