From a36cd157ec5a42c432638e26d24597c97d6a012d Mon Sep 17 00:00:00 2001 From: vladmandic Date: Thu, 8 Jan 2026 08:18:41 +0100 Subject: [PATCH] force move to device if offload=none Signed-off-by: vladmandic --- CHANGELOG.md | 4 +++- modules/sd_offload.py | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2098c97a..456d151b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Update for 2025-01-07 +## Update for 2025-01-08 - **Models** - [Qwen-Image-2512](https://huggingface.co/Qwen/Qwen-Image-2512) @@ -36,6 +36,8 @@ - mobile auto-collapse when using side panel, thanks @awsr - switch processing class not restoring params - hidiffusion tracing + - add skip_keys to offloading logic, fixes wan frames mismatch, thanks @ryanmeador + - force model move on offload=none ## Update for 2025-12-26 diff --git a/modules/sd_offload.py b/modules/sd_offload.py index 819f360d1..a522cbc28 100644 --- a/modules/sd_offload.py +++ b/modules/sd_offload.py @@ -109,9 +109,17 @@ def set_diffuser_offload(sd_model, op:str='model', quiet:bool=False, force:bool= shared.log.warning(f'Setting {op}: offload={shared.opts.diffusers_offload_mode} type={shared.sd_model.__class__.__name__} large model') else: shared.log.quiet(quiet, f'Setting {op}: offload={shared.opts.diffusers_offload_mode} limit={shared.opts.cuda_mem_fraction}') - if hasattr(sd_model, 'maybe_free_model_hooks'): - sd_model.maybe_free_model_hooks() + try: sd_model.has_accelerate = False + if hasattr(sd_model, 'maybe_free_model_hooks'): + sd_model.maybe_free_model_hooks() + sd_model = accelerate.hooks.remove_hook_from_module(sd_model, recurse=True) + except Exception: + pass + try: + sd_model = sd_model.to(devices.device) + except Exception as e: + shared.log.error(f'Setting {op}: offload={shared.opts.diffusers_offload_mode} move device={devices.device} {e}') if shared.opts.diffusers_offload_mode == "model" and hasattr(sd_model, "enable_model_cpu_offload"): try: