diff --git a/invokeai/app/invocations/flux_denoise.py b/invokeai/app/invocations/flux_denoise.py index 35d095e279..1599e8428c 100644 --- a/invokeai/app/invocations/flux_denoise.py +++ b/invokeai/app/invocations/flux_denoise.py @@ -48,7 +48,7 @@ from invokeai.backend.flux.sampling_utils import ( unpack, ) from invokeai.backend.flux.text_conditioning import FluxReduxConditioning, FluxTextConditioning -from invokeai.backend.model_manager.taxonomy import ModelFormat, ModelVariantType +from invokeai.backend.model_manager.taxonomy import FluxVariantType, ModelFormat from invokeai.backend.patches.layer_patcher import LayerPatcher from invokeai.backend.patches.lora_conversions.flux_lora_constants import FLUX_LORA_TRANSFORMER_PREFIX from invokeai.backend.patches.model_patch_raw import ModelPatchRaw @@ -232,7 +232,7 @@ class FluxDenoiseInvocation(BaseInvocation): ) transformer_config = context.models.get_config(self.transformer.transformer) - is_schnell = "schnell" in getattr(transformer_config, "config_path", "") + is_schnell = transformer_config.variant is FluxVariantType.Schnell # Calculate the timestep schedule. timesteps = get_schedule( @@ -277,7 +277,7 @@ class FluxDenoiseInvocation(BaseInvocation): # Prepare the extra image conditioning tensor (img_cond) for either FLUX structural control or FLUX Fill. img_cond: torch.Tensor | None = None - is_flux_fill = transformer_config.variant == ModelVariantType.Inpaint # type: ignore + is_flux_fill = transformer_config.variant is FluxVariantType.DevFill if is_flux_fill: img_cond = self._prep_flux_fill_img_cond( context, device=TorchDevice.choose_torch_device(), dtype=inference_dtype diff --git a/invokeai/backend/model_manager/config.py b/invokeai/backend/model_manager/config.py index b109fa6297..9ab1cdcc0f 100644 --- a/invokeai/backend/model_manager/config.py +++ b/invokeai/backend/model_manager/config.py @@ -198,7 +198,6 @@ class ModelConfigBase(ABC, BaseModel): super().__init_subclass__(**kwargs) if issubclass(cls, LegacyProbeMixin): ModelConfigBase.USING_LEGACY_PROBE.add(cls) - # Cannot use `elif isinstance(cls, UnknownModelConfig)` because UnknownModelConfig is not defined yet else: ModelConfigBase.USING_CLASSIFY_API.add(cls) @@ -346,11 +345,16 @@ class CheckpointConfigBase(ABC, BaseModel): """Base class for checkpoint-style models.""" format: Literal[ModelFormat.Checkpoint, ModelFormat.BnbQuantizednf4b, ModelFormat.GGUFQuantized] = Field( - description="Format of the provided checkpoint model", default=ModelFormat.Checkpoint + description="Format of the provided checkpoint model", + default=ModelFormat.Checkpoint, ) - config_path: str = Field(description="path to the checkpoint model config file") - converted_at: Optional[float] = Field( - description="When this model was last converted to diffusers", default_factory=time.time + config_path: str | None = Field( + description="path to the checkpoint model config file", + default=None, + ) + converted_at: float | None = Field( + description="When this model was last converted to diffusers", + default_factory=time.time, ) diff --git a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/MainModelPicker.tsx b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/MainModelPicker.tsx index aa527f2934..27194efbd5 100644 --- a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/MainModelPicker.tsx +++ b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/MainModelPicker.tsx @@ -27,7 +27,7 @@ export const MainModelPicker = memo(() => { () => selectedModelConfig && isCheckpointMainModelConfig(selectedModelConfig) && - selectedModelConfig.config_path === 'flux-dev', + selectedModelConfig.variant === 'flux_dev', [selectedModelConfig] ); diff --git a/invokeai/frontend/web/src/features/ui/layouts/InitialStateMainModelPicker.tsx b/invokeai/frontend/web/src/features/ui/layouts/InitialStateMainModelPicker.tsx index 9807ae9e69..b98cbd8067 100644 --- a/invokeai/frontend/web/src/features/ui/layouts/InitialStateMainModelPicker.tsx +++ b/invokeai/frontend/web/src/features/ui/layouts/InitialStateMainModelPicker.tsx @@ -26,7 +26,7 @@ export const InitialStateMainModelPicker = memo(() => { () => selectedModelConfig && isCheckpointMainModelConfig(selectedModelConfig) && - selectedModelConfig.config_path === 'flux-dev', + selectedModelConfig.variant === 'flux_dev', [selectedModelConfig] );