From c5cd3cb623e1e7999a161024dfc97b01d34d9531 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 30 Nov 2024 19:15:50 -0500 Subject: [PATCH] reinit offoad instance on change Signed-off-by: Vladimir Mandic --- modules/sd_models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/sd_models.py b/modules/sd_models.py index 42bd33d82..24ceff5ee 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -374,9 +374,14 @@ class OffloadHook(accelerate.hooks.ModelHook): shared.opts.diffusers_offload_max_gpu_memory = 0.75 if shared.opts.diffusers_offload_max_cpu_memory > 1: shared.opts.diffusers_offload_max_cpu_memory = 0.75 + self.min_watermark = shared.opts.diffusers_offload_min_gpu_memory + self.max_watermark = shared.opts.diffusers_offload_max_gpu_memory + self.cpu_watermark = shared.opts.diffusers_offload_max_cpu_memory self.gpu = int(shared.gpu_memory * shared.opts.diffusers_offload_max_gpu_memory * 1024*1024*1024) self.cpu = int(shared.cpu_memory * shared.opts.diffusers_offload_max_cpu_memory * 1024*1024*1024) - shared.log.info(f'Init offload: type=balanced gpu={self.gpu} cpu={self.cpu}') + gpu_dict = { "min": self.min_watermark, "max": self.max_watermark, "bytes": self.gpu } + cpu_dict = { "max": self.cpu_watermark, "bytes": self.cpu } + shared.log.info(f'Init offload: type=balanced gpu={gpu_dict} cpu={cpu_dict}') super().__init__() def init_hook(self, module): @@ -411,7 +416,7 @@ offload_hook_instance = None def apply_balanced_offload(sd_model): global offload_hook_instance # pylint: disable=global-statement - if offload_hook_instance is None: + if offload_hook_instance is None or offload_hook_instance.min_watermark != shared.opts.diffusers_offload_min_gpu_memory or offload_hook_instance.max_watermark != shared.opts.diffusers_offload_max_gpu_memory: offload_hook_instance = OffloadHook() t0 = time.time() excluded = ['OmniGenPipeline']