invoke-ai/InvokeAI · error · ValueError

Unsupported blend mode: '{self.blend_mode}'.

Error message

Unsupported blend mode: '{self.blend_mode}'.

What it means

The ImageToTiles / blend tiles invocation only supports a fixed set of blend modes (e.g. Linear and Seam). Any other value for self.blend_mode reaches an else branch that raises ValueError. The mode string must match one of the supported enum members exactly.

Source

Thrown at invokeai/app/invocations/tiles.py:278

            pil_image = context.images.get_pil(image.image_name)
            pil_image = pil_image.convert("RGB")
            tile_np_images.append(np.array(pil_image))

        # Prepare the output image buffer.
        # Check the first tile to determine how many image channels are expected in the output.
        channels = tile_np_images[0].shape[-1]
        dtype = tile_np_images[0].dtype
        np_image = np.zeros(shape=(height, width, channels), dtype=dtype)
        if self.blend_mode == "Linear":
            merge_tiles_with_linear_blending(
                dst_image=np_image, tiles=tiles, tile_images=tile_np_images, blend_amount=self.blend_amount
            )
        elif self.blend_mode == "Seam":
            merge_tiles_with_seam_blending(
                dst_image=np_image, tiles=tiles, tile_images=tile_np_images, blend_amount=self.blend_amount
            )
        else:
            raise ValueError(f"Unsupported blend mode: '{self.blend_mode}'.")

        # Convert into a PIL image and save
        pil_image = Image.fromarray(np_image)

        image_dto = context.images.save(image=pil_image)
        return ImageOutput.build(image_dto)

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Set blend_mode to a supported value exactly (e.g. 'Linear' or 'Seam' as defined by the invocation's enum)
  2. Update stale workflow JSON to the current enum values
  3. Validate the field against the BlendMode enum before invoking

Example fix

// before
blend_mode="seam"
// after
blend_mode="Seam"
Defensive patterns

Strategy: validation

Validate before calling

SUPPORTED_BLEND_MODES = {"Linear", "Seam"}
if blend_mode not in SUPPORTED_BLEND_MODES:
    raise ValueError(f"blend_mode must be one of {sorted(SUPPORTED_BLEND_MODES)}, got {blend_mode!r}")

Type guard

def is_supported_blend_mode(mode: str) -> bool:
    return mode in {"Linear", "Seam"}

Try / catch

try:
    output = invocation.invoke(context)
except ValueError as e:
    if str(e).startswith("Unsupported blend mode"):
        invocation.blend_mode = "Linear"  # safe default
        output = invocation.invoke(context)
    else:
        raise

Prevention

When it happens

Trigger: Setting blend_mode to an unsupported string like 'seam', 'linear' (wrong case), 'smooth', or a free-text value instead of one of the enumerated supported modes when invoking the tiles invocation.

Common situations: Old workflow JSON from a previous InvokeAI version whose blend mode enum value was renamed; hand-editing a workflow file with a typo; case mismatch ('seam' vs 'Seam').

Understand the failure class

Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.

Related errors


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