From 7af5bf49e4bef048bc86af9717713b280ce6532d Mon Sep 17 00:00:00 2001 From: Rattus Date: Tue, 18 Nov 2025 10:10:16 +1000 Subject: [PATCH] mm: make garbage collector null safe on real_model currently this hard assumes that the caller of model_unload will keep current_loaded_models in sync. With RAMPressureCache its possible to have the garbage collector occur in the middle of the model free process which can split these two steps. --- comfy/model_management.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/comfy/model_management.py b/comfy/model_management.py index 6222c19ae..1c5796410 100644 --- a/comfy/model_management.py +++ b/comfy/model_management.py @@ -557,7 +557,7 @@ class LoadedModel: self._patcher_finalizer.detach() def is_dead(self): - return self.real_model() is not None and self.model is None + return self.real_model is not None and self.real_model() is not None and self.model is None def use_more_memory(extra_memory, loaded_models, device): @@ -753,7 +753,7 @@ def cleanup_models_gc(): def cleanup_models(): to_delete = [] for i in range(len(current_loaded_models)): - if current_loaded_models[i].real_model() is None: + if current_loaded_models[i].real_model is None or current_loaded_models[i].real_model() is None: to_delete = [i] + to_delete for i in to_delete: