document add_difference on-screen

This commit is contained in:
Lincoln Stein 2023-02-17 15:42:06 -05:00
parent 4888d0d832
commit f129393a2e

View File

@ -79,8 +79,8 @@ def merge_diffusion_models_and_commit(
merged_model_name = name for new model merged_model_name = name for new model
alpha - The interpolation parameter. Ranges from 0 to 1. It affects the ratio in which the checkpoints are merged. A 0.8 alpha alpha - The interpolation parameter. Ranges from 0 to 1. It affects the ratio in which the checkpoints are merged. A 0.8 alpha
would mean that the first model checkpoints would affect the final result far less than an alpha of 0.2 would mean that the first model checkpoints would affect the final result far less than an alpha of 0.2
interp - The interpolation method to use for the merging. Supports "sigmoid", "inv_sigmoid", "add_difference" and None. interp - The interpolation method to use for the merging. Supports "weighted_average", "sigmoid", "inv_sigmoid", "add_difference" and None.
Passing None uses the default interpolation which is weighted sum interpolation. For merging three checkpoints, only "add_difference" is supported. Passing None uses the default interpolation which is weighted sum interpolation. For merging three checkpoints, only "add_difference" is supported. Add_difference is A+(B-C).
force - Whether to ignore mismatch in model_config.json for the current models. Defaults to False. force - Whether to ignore mismatch in model_config.json for the current models. Defaults to False.
**kwargs - the default DiffusionPipeline.get_config_dict kwargs: **kwargs - the default DiffusionPipeline.get_config_dict kwargs:
@ -322,7 +322,7 @@ class mergeModelsForm(npyscreen.FormMultiPageAction):
self.merged_model_name.value = merged_model_name self.merged_model_name.value = merged_model_name
if selected_model3 > 0: if selected_model3 > 0:
self.merge_method.values = ['add_difference'] self.merge_method.values = ['add_difference ( A+(B-C) )']
self.merged_model_name.value += f"+{models[selected_model3]}" self.merged_model_name.value += f"+{models[selected_model3]}"
else: else:
self.merge_method.values = self.interpolations self.merge_method.values = self.interpolations
@ -348,11 +348,14 @@ class mergeModelsForm(npyscreen.FormMultiPageAction):
] ]
if self.model3.value[0] > 0: if self.model3.value[0] > 0:
models.append(model_names[self.model3.value[0] - 1]) models.append(model_names[self.model3.value[0] - 1])
interp='add_difference'
else:
interp=self.interpolations[self.merge_method.value[0]]
args = dict( args = dict(
models=models, models=models,
alpha=self.alpha.value, alpha=self.alpha.value,
interp=self.interpolations[self.merge_method.value[0]], interp=interp,
force=self.force.value, force=self.force.value,
merged_model_name=self.merged_model_name.value, merged_model_name=self.merged_model_name.value,
) )
@ -416,7 +419,8 @@ def run_gui(args: Namespace):
mergeapp.run() mergeapp.run()
args = mergeapp.merge_arguments args = mergeapp.merge_arguments
merge_diffusion_models_and_commit(**args) print(f'DEBUG: {args}')
#merge_diffusion_models_and_commit(**args)
print(f'>> Models merged into new model: "{args["merged_model_name"]}".') print(f'>> Models merged into new model: "{args["merged_model_name"]}".')