Skip to content
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

why is NFE=1 for marigold pure noise #3

Open
w-hc opened this issue Mar 23, 2024 · 4 comments
Open

why is NFE=1 for marigold pure noise #3

w-hc opened this issue Mar 23, 2024 · 4 comments

Comments

@w-hc
Copy link

w-hc commented Mar 23, 2024

Hi thanks for the inspiring work.
In fig 6, for marigold NFE=1, the result is pure noise. That seems counter-intuitive. At NFE=1, we should just get the conditional mean of the prediction i.e. x0 hat. It may be blurry, but it's hard to see why it should be pure noise.

@Fannovel16
Copy link
Contributor

I think NFE=1 is just another way of saying "1 denoising step"

@mgui7
Copy link
Member

mgui7 commented Mar 25, 2024

Hi w-hc, as Fannovel16 pointed out NFE=1 means predicting the depth within one single step. Marigold uses DDIM sampler that approximates the diffusion SDE with an ODE, and fewer inference steps results in increased ODE approximation error. This basically always leads to generation of noises or images that are noised. Please refer to more details in DDIM and DPM-Solver.

@jiahaoli95
Copy link

I believe diffuser's DDIM solver is not intended to be used with NFE=1. In that case the diffuser implementation uses timestep t=1 and the model will basically do nothing to the image. But I think the correct way to do it is using t=999 for one step denoising.

@w-hc
Copy link
Author

w-hc commented Mar 25, 2024

second Jiahao. The NFE=1 result for marigold should be much better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants