invoke-ai/InvokeAI · error · NotImplementedError
Regional prompting is not yet supported in Multi-Diffusion.
Error message
Regional prompting is not yet supported in Multi-Diffusion.
What it means
Multi-diffusion tiles the canvas and denoises each tile with its own conditioning, but regional prompt conditioning (per-region text masks) is only implemented for the standard pipeline. _check_regional_prompting raises NotImplementedError if any region's conditioning carries cond_regions or uncond_regions.
Source
Thrown at invokeai/backend/stable_diffusion/multi_diffusion_pipeline.py:37
@dataclass
class MultiDiffusionRegionConditioning:
# Region coords in latent space.
region: Tile
text_conditioning_data: TextConditioningData
control_data: list[ControlNetData]
class MultiDiffusionPipeline(StableDiffusionGeneratorPipeline):
"""A Stable Diffusion pipeline that uses Multi-Diffusion (https://arxiv.org/pdf/2302.08113) for denoising."""
def _check_regional_prompting(self, multi_diffusion_conditioning: list[MultiDiffusionRegionConditioning]):
"""Validate that regional conditioning is not used."""
for region_conditioning in multi_diffusion_conditioning:
if (
region_conditioning.text_conditioning_data.cond_regions is not None
or region_conditioning.text_conditioning_data.uncond_regions is not None
):
raise NotImplementedError("Regional prompting is not yet supported in Multi-Diffusion.")
def multi_diffusion_denoise(
self,
multi_diffusion_conditioning: list[MultiDiffusionRegionConditioning],
target_overlap: int,
latents: torch.Tensor,
scheduler_step_kwargs: dict[str, Any],
noise: Optional[torch.Tensor],
timesteps: torch.Tensor,
init_timestep: torch.Tensor,
callback: Callable[[PipelineIntermediateState], None],
) -> torch.Tensor:
self._check_regional_prompting(multi_diffusion_conditioning)
if init_timestep.shape[0] == 0:
return latents
batch_size, _, latent_height, latent_width = latents.shapeView on GitHub (pinned to 0b6a024f2f)
Solutions
- Disable regional prompting or remove region layers when using multi-diffusion.
- Switch the denoising method from multi-diffusion to standard denoising to keep regional prompts.
- Split the job: run regional prompts in the normal pipeline, and use multi-diffusion only for unconditioned tiling.
- Check the InvokeAI changelog for added regional+multi-diffusion support before attempting the combination.
Example fix
// before
pipeline.multi_diffusion_denoise(regions_with_prompts, overlap, latents)
// after
regions_without_regions = [
MultiDiffusionRegionConditioning(PositiveBasicConditioningData(cond.embeds, None), cond.noise_level)
for cond in conditions
]
pipeline.multi_diffusion_denoise(regions_without_regions, overlap, latents) Defensive patterns
Strategy: fallback
Validate before calling
has_regions = any(
rc.text_conditioning_data.cond_regions is not None
or rc.text_conditioning_data.uncond_regions is not None
for rc in multi_diffusion_conditioning
)
if has_regions:
use_standard_pipeline = True Type guard
def is_multi_diffusion_compatible(rcs) -> bool:
return all(
rc.text_conditioning_data.cond_regions is None
and rc.text_conditioning_data.uncond_regions is None
for rc in rcs
) Try / catch
try:
latents = pipeline.multi_diffusion_denoise(regions, overlap, latents)
except NotImplementedError:
latents = run_standard_denoising(pipeline, regions, latents) Prevention
- Don't combine regional prompting layers with multi-diffusion denoising
- Offer a standard-denoising fallback in custom UIs/graphs
- Check regions fields on conditioning data before choosing the denoiser
- Track InvokeAI releases for regional multi-diffusion support
When it happens
Trigger: Running multi_diffusion_denoise with a MultiDiffusionRegionConditioning list where any text_conditioning_data has cond_regions or uncond_regions set (i.e. a regional prompt graph used with multi-diffusion).
Common situations: Users combining regional prompting (canvas regions) with the multi-diffusion denoiser; a UI automatically enabling multi-diffusion for large canvases while regional layers exist; config flag mismatch.
Related errors
- CheckpointConfigBase is not implemented for Z-Image models.
- Unsupported control_lllite type: {type(control_lllite)}
- The Anima ControlNet-LLLite model '{lllite_field.control_mod
- This Anima ControlNet-LLLite adapter is an inpainting adapte
- Unsupported Anima ControlNet-LLLite adapter: expected 3 or 4
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/211b600fcc6a5f37.
Report an issue: GitHub.