From dfdb4071a637013a3b33fd939c5b77704694f2e1 Mon Sep 17 00:00:00 2001 From: Rattus Date: Wed, 29 Apr 2026 17:33:11 +1000 Subject: [PATCH] model_base: support non-dynamic disable cases --- comfy/ldm/lightricks/av_model.py | 2 +- comfy/model_base.py | 5 +++++ comfy/model_prefetch.py | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/comfy/ldm/lightricks/av_model.py b/comfy/ldm/lightricks/av_model.py index 7987c8cf2..3fb87b4a3 100644 --- a/comfy/ldm/lightricks/av_model.py +++ b/comfy/ldm/lightricks/av_model.py @@ -908,7 +908,7 @@ class LTXAVModel(LTXVModel): """Process transformer blocks for LTXAV.""" patches_replace = transformer_options.get("patches_replace", {}) blocks_replace = patches_replace.get("dit", {}) - prefetch_queue = comfy.model_prefetch.make_prefetch_queue(list(self.transformer_blocks), vx.device) + prefetch_queue = comfy.model_prefetch.make_prefetch_queue(list(self.transformer_blocks), vx.device, transformer_options) # Process transformer blocks for i, block in enumerate(self.transformer_blocks): diff --git a/comfy/model_base.py b/comfy/model_base.py index 787ea1145..cc8ba69cb 100644 --- a/comfy/model_base.py +++ b/comfy/model_base.py @@ -210,6 +210,11 @@ class BaseModel(torch.nn.Module): if "latent_shapes" in extra_conds: xc = utils.unpack_latents(xc, extra_conds.pop("latent_shapes")) + transformer_options = transformer_options.copy() + transformer_options["prefetch_dynamic_vbars"] = ( + self.current_patcher is not None and self.current_patcher.is_dynamic() + ) + model_output = self.diffusion_model(xc, t, context=context, control=control, transformer_options=transformer_options, **extra_conds) if len(model_output) > 1 and not torch.is_tensor(model_output): model_output, _ = utils.pack_latents(model_output) diff --git a/comfy/model_prefetch.py b/comfy/model_prefetch.py index 982c599b4..b705029f6 100644 --- a/comfy/model_prefetch.py +++ b/comfy/model_prefetch.py @@ -57,8 +57,9 @@ def prefetch_queue_pop(queue, device, module): comfy.model_management.sync_stream(device, offload_stream) queue[0] = (offload_stream, (prefetch, comfy_modules)) -def make_prefetch_queue(queue, device): - if (comfy.model_management.NUM_STREAMS == 0 +def make_prefetch_queue(queue, device, transformer_options): + if (not transformer_options.get("prefetch_dynamic_vbars", False) + or comfy.model_management.NUM_STREAMS == 0 or comfy.model_management.is_device_cpu(device) or not comfy.model_management.device_supports_non_blocking(device)): return None