"No interpolation":interp_description_css.format("No interpolation will be used. Requires one model; A. Allows for format conversion and VAE baking."),
"Weighted sum":interp_description_css.format("A weighted sum will be used for interpolation. Requires two models; A and B. The result is calculated as A * (1 - M) + B * M"),
"Add difference":interp_description_css.format("The difference between the last two models will be added to the first. Requires three models; A, B and C. The result is calculated as A + (B - C) * M")
custom_name=gr.Textbox(label="Custom Name (Optional)",elem_id="modelmerger_custom_name")
interp_amount=gr.Slider(minimum=0.0,maximum=1.0,step=0.05,label='Multiplier (M) - set to 0 to get model A',value=0.3,elem_id="modelmerger_interp_amount")
config_source=gr.Radio(choices=["A, B or C","B","C","Don't"],value="A, B or C",label="Copy config from",type="index",elem_id="modelmerger_config_method")
withgr.Column():
withFormRow():
bake_in_vae=gr.Dropdown(choices=["None"]+list(sd_vae.vae_dict),value="None",label="Bake in VAE",elem_id="modelmerger_bake_in_vae")
"No interpolation":interp_description_css.format("No interpolation will be used. Requires one model; A. Allows for format conversion and VAE baking."),
"Weighted sum":interp_description_css.format("A weighted sum will be used for interpolation. Requires two models; A and B. The result is calculated as A * (1 - M) + B * M"),
"Add difference":interp_description_css.format("The difference between the last two models will be added to the first. Requires three models; A, B and C. The result is calculated as A + (B - C) * M")
}
returninterp_descriptions[value]
defmodelmerger(*args):
try:
results=extras.run_modelmerger(*args)
exceptExceptionase:
errors.report("Error loading/saving model file",exc_info=True)
sd_models.list_models()# to remove the potentially missing models from the list
self.custom_name=gr.Textbox(label="Custom Name (Optional)",elem_id="modelmerger_custom_name")
self.interp_amount=gr.Slider(minimum=0.0,maximum=1.0,step=0.05,label='Multiplier (M) - set to 0 to get model A',value=0.3,elem_id="modelmerger_interp_amount")
self.save_as_half=gr.Checkbox(value=False,label="Save as float16",elem_id="modelmerger_save_as_half")
withFormRow():
withgr.Column():
self.config_source=gr.Radio(choices=["A, B or C","B","C","Don't"],value="A, B or C",label="Copy config from",type="index",elem_id="modelmerger_config_method")
withgr.Column():
withFormRow():
self.bake_in_vae=gr.Dropdown(choices=["None"]+list(sd_vae.vae_dict),value="None",label="Bake in VAE",elem_id="modelmerger_bake_in_vae")