mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(mm): add method to get main model defaults from a base
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user