diff --git a/comfy/model_management.py b/comfy/model_management.py index dcfd57b57..574fbf214 100644 --- a/comfy/model_management.py +++ b/comfy/model_management.py @@ -456,7 +456,13 @@ def mps_mode(): def is_device_cpu(device): if hasattr(device, 'type'): - if (device.type == 'cpu' or device.type == 'mps'): + if (device.type == 'cpu'): + return True + return False + +def is_device_mps(device): + if hasattr(device, 'type'): + if (device.type == 'mps'): return True return False @@ -468,7 +474,7 @@ def should_use_fp16(device=None, model_params=0): return True if device is not None: #TODO - if is_device_cpu(device): + if is_device_cpu(device) or is_device_mps(device): return False if FORCE_FP32: diff --git a/comfy_extras/nodes_model_merging.py b/comfy_extras/nodes_model_merging.py index 72eeffb39..9bbb84da4 100644 --- a/comfy_extras/nodes_model_merging.py +++ b/comfy_extras/nodes_model_merging.py @@ -46,9 +46,11 @@ class ModelMergeBlocks: ratio = default_ratio k_unet = k[len("diffusion_model."):] + last_arg_size = 0 for arg in kwargs: - if k_unet.startswith(arg): + if k_unet.startswith(arg) and last_arg_size < len(arg): ratio = kwargs[arg] + last_arg_size = len(arg) m.add_patches({k: (sd[k], )}, 1.0 - ratio, ratio) return (m, )