feat(mm): add method to get main model defaults from a base

This commit is contained in:
psychedelicious
2025-10-09 12:03:02 +11:00
parent fc2175ae03
commit d258af0a14
2 changed files with 14 additions and 9 deletions

View File

@@ -457,15 +457,7 @@ class ModelConfigFactory:
# Now do any post-processing needed for specific model types/bases/etc.
match instance.type:
case ModelType.Main:
match instance.base:
case BaseModelType.StableDiffusion1:
instance.default_settings = MainModelDefaultSettings(width=512, height=512)
case BaseModelType.StableDiffusion2:
instance.default_settings = MainModelDefaultSettings(width=768, height=768)
case BaseModelType.StableDiffusionXL:
instance.default_settings = MainModelDefaultSettings(width=1024, height=1024)
case _:
pass
instance.default_settings = MainModelDefaultSettings.from_base(instance.base)
case ModelType.ControlNet | ModelType.T2IAdapter | ModelType.ControlLoRa:
instance.default_settings = ControlAdapterDefaultSettings.from_model_name(instance.name)
case ModelType.LoRA:

View File

@@ -51,6 +51,19 @@ class MainModelDefaultSettings(BaseModel):
model_config = ConfigDict(extra="forbid")
@classmethod
def from_base(cls, base: BaseModelType) -> Self | None:
match base:
case BaseModelType.StableDiffusion1:
return cls(width=512, height=512)
case BaseModelType.StableDiffusion2:
return cls(width=768, height=768)
case BaseModelType.StableDiffusionXL:
return cls(width=1024, height=1024)
case _:
# TODO(psyche): Do we want defaults for other base types?
return None
class Main_Config_Base(ABC, BaseModel):
type: Literal[ModelType.Main] = Field(default=ModelType.Main)