{"record":{"id":"0fa835a1c9b0cdbd","repo":"invoke-ai/InvokeAI","slug":"unexpected-conditioning-mode-conditioning-mode","errorCode":null,"errorMessage":"Unexpected conditioning mode: {conditioning_mode}","messagePattern":"Unexpected conditioning mode: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"invokeai/backend/stable_diffusion/diffusion/conditioning_data.py","lineNumber":355,"sourceCode":"            unet_kwargs (UNetKwargs): Object which stores UNet model arguments.\n            conditioning_mode (ConditioningMode): Describes which conditionings should be used.\n        \"\"\"\n        _, _, h, w = unet_kwargs.sample.shape\n        device = unet_kwargs.sample.device\n        dtype = unet_kwargs.sample.dtype\n\n        # TODO: combine regions with conditionings\n        if conditioning_mode == ConditioningMode.Both:\n            conditionings = [self.uncond_text, self.cond_text]\n            c_regions = [self.uncond_regions, self.cond_regions]\n        elif conditioning_mode == ConditioningMode.Positive:\n            conditionings = [self.cond_text]\n            c_regions = [self.cond_regions]\n        elif conditioning_mode == ConditioningMode.Negative:\n            conditionings = [self.uncond_text]\n            c_regions = [self.uncond_regions]\n        else:\n            raise ValueError(f\"Unexpected conditioning mode: {conditioning_mode}\")\n\n        encoder_hidden_states, encoder_attention_mask = self._concat_conditionings_for_batch(\n            [c.embeds for c in conditionings]\n        )\n\n        unet_kwargs.encoder_hidden_states = encoder_hidden_states\n        unet_kwargs.encoder_attention_mask = encoder_attention_mask\n\n        if self.is_sdxl():\n            added_cond_kwargs = dict(  # noqa: C408\n                text_embeds=torch.cat([c.pooled_embeds for c in conditionings]),\n                time_ids=torch.cat([c.add_time_ids for c in conditionings]),\n            )\n\n            unet_kwargs.added_cond_kwargs = added_cond_kwargs\n\n        if any(r is not None for r in c_regions):\n            tmp_regions = []","sourceCodeStart":337,"sourceCodeEnd":373,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/backend/stable_diffusion/diffusion/conditioning_data.py#L337-L373","documentation":"BasicConditioningData.to_unet_kwargs dispatches on a ConditioningMode enum (Positive/Negative). If the mode value is neither — for example an unknown enum member or a corrupted/None value — the if/elif chain falls through to ValueError.","triggerScenarios":"Calling to_unet_kwargs with conditioning_mode set to something other than ConditioningMode.Positive or ConditioningMode.Negative, typically from run_unet or _run.","commonSituations":"A library bug or stale pickle/cached conditioning object carrying an out-of-range enum value; third-party extension passing a raw string or custom mode; version mismatch where ConditioningMode gained new members handled elsewhere but not here.","solutions":["Only pass ConditioningMode.Positive or ConditioningMode.Negative.","If you added a new mode, extend the if/elif chain in to_unet_kwargs to handle it.","Rebuild conditioning data objects rather than unpickling stale cached ones from older versions.","Update InvokeAI in case this is a fixed internal bug."],"exampleFix":"// before\ncond.to_unet_kwargs(unet_kwargs, conditioning_mode=\"both\")\n// after\nfrom invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningMode\ncond.to_unet_kwargs(unet_kwargs, ConditioningMode.Positive)","handlingStrategy":"type-guard","validationCode":"from invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningMode\nassert conditioning_mode in (ConditioningMode.Positive, ConditioningMode.Negative)","typeGuard":"def is_valid_conditioning_mode(m) -> bool:\n    return isinstance(m, ConditioningMode) and m in (ConditioningMode.Positive, ConditioningMode.Negative)","tryCatchPattern":"try:\n    cond.to_unet_kwargs(unet_kwargs, conditioning_mode)\nexcept ValueError as e:\n    if \"Unexpected conditioning mode\" in str(e):\n        cond.to_unet_kwargs(unet_kwargs, ConditioningMode.Positive)\n    else:\n        raise","preventionTips":["Only construct ConditioningMode via the enum, never raw strings","Avoid caching/pickling conditioning data across library versions","Extend to_unet_kwargs when adding new enum members","Update InvokeAI if this fires in stock workflows"],"tags":["python","valueerror","enum","conditioning"],"backgroundTag":"unexpected-enum-value","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}