@@ -31,6 +31,7 @@ class ModelDef(BaseModel):
31
31
field_alias : str
32
32
field_type : Any
33
33
field_value : Any
34
+ field_exclude : bool = False
34
35
35
36
36
37
class PydanticModelGenerator :
@@ -68,7 +69,7 @@ def merge_class_params(class_):
68
69
field = underscore (k ),
69
70
field_alias = k ,
70
71
field_type = field_type_generator (k , v ),
71
- field_value = v .default
72
+ field_value = v .default ,
72
73
)
73
74
for (k ,v ) in self ._class_data .items () if k not in API_NOT_ALLOWED
74
75
]
@@ -78,15 +79,16 @@ def merge_class_params(class_):
78
79
field = underscore (fields ["key" ]),
79
80
field_alias = fields ["key" ],
80
81
field_type = fields ["type" ],
81
- field_value = fields ["default" ]))
82
+ field_value = fields ["default" ],
83
+ field_exclude = fields ["exclude" ] if "exclude" in fields else False ))
82
84
83
85
def generate_model (self ):
84
86
"""
85
87
Creates a pydantic BaseModel
86
88
from the json and overrides provided at initialization
87
89
"""
88
90
fields = {
89
- d .field : (d .field_type , Field (default = d .field_value , alias = d .field_alias )) for d in self ._model_def
91
+ d .field : (d .field_type , Field (default = d .field_value , alias = d .field_alias , exclude = d . field_exclude )) for d in self ._model_def
90
92
}
91
93
DynamicModel = create_model (self ._model_name , ** fields )
92
94
DynamicModel .__config__ .allow_population_by_field_name = True
@@ -102,5 +104,5 @@ def generate_model(self):
102
104
StableDiffusionImg2ImgProcessingAPI = PydanticModelGenerator (
103
105
"StableDiffusionProcessingImg2Img" ,
104
106
StableDiffusionProcessingImg2Img ,
105
- [{"key" : "sampler_index" , "type" : str , "default" : "Euler" }, {"key" : "init_images" , "type" : list , "default" : None }, {"key" : "denoising_strength" , "type" : float , "default" : 0.75 }, {"key" : "mask" , "type" : str , "default" : None }]
107
+ [{"key" : "sampler_index" , "type" : str , "default" : "Euler" }, {"key" : "init_images" , "type" : list , "default" : None }, {"key" : "denoising_strength" , "type" : float , "default" : 0.75 }, {"key" : "mask" , "type" : str , "default" : None }, { "key" : "include_init_images" , "type" : bool , "default" : False , "exclude" : True } ]
106
108
).generate_model ()
0 commit comments