-
Notifications
You must be signed in to change notification settings - Fork 221
Open
Description
Great work!
I noticed denoising_loss_type can be flow or other choice. _convert_x0_to_flow_pred or convert_x0_to_noise will be compute In the file model/dmd.py. What's the difference between x0 and flow for denoising_loss_type? (x0 in wan2.2 5b, flow in wan 2.1 1.3b)
Should we always use flow as it's flow in all config yaml files in this repo?
# Step 3: Compute the denoising loss for the fake critic
if self.args.denoising_loss_type == "flow":
from utils.wan_wrapper import WanDiffusionWrapper
flow_pred = WanDiffusionWrapper._convert_x0_to_flow_pred(
scheduler=self.scheduler,
x0_pred=pred_fake_image.flatten(0, 1),
xt=noisy_generated_image.flatten(0, 1),
timestep=critic_timestep.flatten(0, 1)
)
pred_fake_noise = None
else:
flow_pred = None
pred_fake_noise = self.scheduler.convert_x0_to_noise(
x0=pred_fake_image.flatten(0, 1),
xt=noisy_generated_image.flatten(0, 1),
timestep=critic_timestep.flatten(0, 1)
).unflatten(0, image_or_video_shape[:2])
denoising_loss = self.denoising_loss_func(
x=generated_image.flatten(0, 1),
x_pred=pred_fake_image.flatten(0, 1),
noise=critic_noise.flatten(0, 1),
noise_pred=pred_fake_noise,
alphas_cumprod=self.scheduler.alphas_cumprod,
timestep=critic_timestep.flatten(0, 1),
flow_pred=flow_pred
)Metadata
Metadata
Assignees
Labels
No labels