diff --git a/nodes_sampler.py b/nodes_sampler.py index d92ef97..9cd82ef 100644 --- a/nodes_sampler.py +++ b/nodes_sampler.py @@ -227,6 +227,12 @@ class WanVideoSampler: seed_g.manual_seed(seed) #region Scheduler + if denoise_strength < 1.0: + if start_step != 0: + raise ValueError("start_step must be 0 when denoise_strength is used") + start_step = steps - int(steps * denoise_strength) - 1 + add_noise_to_samples = True #for now to not break old workflows + sample_scheduler = None if isinstance(scheduler, dict): sample_scheduler = copy.deepcopy(scheduler["sample_scheduler"]) @@ -242,15 +248,6 @@ class WanVideoSampler: is_pusa = "pusa" in sample_scheduler.__class__.__name__.lower() - if end_step != -1 and start_step >= end_step: - raise ValueError("start_step must be less than end_step") - - if denoise_strength < 1.0: - if start_step != 0: - raise ValueError("start_step must be 0 when denoise_strength is used") - start_step = steps - int(steps * denoise_strength) - 1 - add_noise_to_samples = True #for now to not break old workflows - scheduler_step_args = {"generator": seed_g} step_sig = inspect.signature(sample_scheduler.step) for arg in list(scheduler_step_args.keys()): @@ -2507,7 +2504,7 @@ class WanVideoSampler: temporal_ref_latents = vae.encode([bg_image_slice], device,tiled=tiled_vae)[0] else: concatenated = torch.cat([current_ref_images.to(device, dtype=vae.dtype), bg_image_slice[:, mask_reft_len:]], dim=1) - temporal_ref_latents = vae.encode([concatenated.to(device, vae.dtype)], device,tiled=tiled_vae)[0] + temporal_ref_latents = vae.encode([concatenated.to(device, vae.dtype)], device,tiled=tiled_vae, pbar=False)[0] msk[:, :mask_reft_len] = 1 if msk.shape[1] != temporal_ref_latents.shape[1]: @@ -2528,7 +2525,7 @@ class WanVideoSampler: pose_input_slice = None if pose_images is not None: pose_image_slice = pose_images_in[:, start:end].to(device) - pose_input_slice = vae.encode([pose_image_slice], device,tiled=tiled_vae).to(dtype) + pose_input_slice = vae.encode([pose_image_slice], device,tiled=tiled_vae, pbar=False).to(dtype) vae.to(offload_device) diff --git a/wanvideo/schedulers/__init__.py b/wanvideo/schedulers/__init__.py index cf60689..d5e9a3b 100644 --- a/wanvideo/schedulers/__init__.py +++ b/wanvideo/schedulers/__init__.py @@ -101,10 +101,6 @@ def get_scheduler(scheduler, steps, start_step, end_step, shift, device, transfo steps = len(timesteps) if (isinstance(start_step, int) and end_step != -1 and start_step >= end_step) or (not isinstance(start_step, int) and start_step != -1 and end_step >= start_step): raise ValueError("start_step must be less than end_step") - if denoise_strength < 1.0: - if start_step != 0: - raise ValueError("start_step must be 0 when denoise_strength is used") - start_step = steps - int(steps * denoise_strength) - 1 # Determine start and end indices for slicing start_idx = 0