-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some confusion about VSD loss implementation #21
Comments
I am also confused, it will be great if the author can release the training code |
Have you reproduce the VSD loss now? |
Thanks for your interest in our work. Although VSD produces a two-dimensional gradient, you still need to convert this gradient into a scalar for back-propagation. That's what the |
Thanks for your reply~ |
I will try it again, haha~ |
That's a great question. As discussed in HiFa, SDS loss is a weighted sum of the MSE loss between the generated images and their denoised versions by the diffusion model. For VSD, you can find out that it is a weighted sum of the MSE between the denoised images from the pre-trained diffusion model and those from the fine-tuned model.
|
I see~ But if VSD loss can be seen as a weighted sum of the mse loss between the denoised images from pretrained models and fine-tuned models, why not use mse loss directly? Because develop customized gradient backpropagation is not simple (just for me)😂, and use mse loss directly is an easier way? |
Following the conventional method to compute the gradient requires taking the derivative with respect to the SD's U-net, which significantly increases GPU memory usage. This trick was proposed by DreamFusion for computing the SDS loss and has been adopted by all subsequent works.
|
Hi, can you explain a bit about the VSD loss? 1st, the grad term of VSD loss in the ProlificDreamer is like: grad = w*(noise_pred-noise_pred_q ) From my understanding, in the OSEDiff case, it is grad = w*(noise_pred_pretained_regularizer- noise_pred_finetune_regularizer) is it right? 2nd, did you just follow the w(t) in the ProlificDreamer w = (1 - self.alphas[t]) thanks a lot! |
ok, I see~~ Many thanks for your kind help~~~ |
I use the same way to implement vsd loss~ |
@zzzzzuber |
we meet the same problem. Did you solve the problem? |
I use the official training code,also meet the same problem,Did you solve the problem?
|
Hi, thanks for your wonderful work~
I'm a little confused about the implemention of vsd loss,
I followed your paper and read ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation
I thought vsd loss is pixel-wise grad by net to input LQ, hence it's pixel-wise calcalation between pretrained_regularizer's output and finetuned regularizer's output, however lpips and mse loss is a scalar, i'm really confused about the implementation of vsd loss and how to apply with data loss?
Hope for your reply~
ps: the pic is ProlificDreamer's implementation
The text was updated successfully, but these errors were encountered: