-
Notifications
You must be signed in to change notification settings - Fork 23
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
The node is having no effect in the example workflow for SDXL #62
Comments
It can speed up sdxl but is not as significant as flux! You can try enlarging the value of residual_diff_threshold! |
I'm finding that whatever I set residual_diff_threshold to I get exactly the same output at exactly the same quality in exactly the same generation time. |
@danganbenpa Try a different sampler. I don't know why, but I get no speedup with |
I have the same issue, it did speed up with dpmpp_2m sampler |
Did testing of all samples, here are the results. I used "residual_diff_threshold" of 0.73 to speedup testing. With this unusable setting, I noticed that some samplers just partially react to the node. Maybe they have very noisy residuals??? Good (big skips): Somewhat bad (medium skips at extreme threshold) Bad (minimal skips at extreme threshold) Very Bad (no skips): |
For reference, SDXL 100 steps euler with 0.2 threshold takes 8 seconds. Bypassed node 65 seconds. So I would say SDXL can have big gains from WaveSpeed, just need to pick the right sampler or there is something that makes some samplers behave weirdly. |
I didn’t know that different samplers could have so much differences before. I want to know which samplers that people use often with SDXL and can benefit significantly from caching so that I can update in the example workflow. |
So proper test with 30 steps, semi complex prompt and threshold of 0.2
Maybe I'm sloppy with testing. Some samplers I assumed were fast ended up being slow in this round of more realistic test. Additionally, I tested this with updated comfyui. I have older one too and that one is slow with all samplers with the same workflow. So definitively updating comfyui should be a recommendation. |
Certain samplers do multiple model calls, which could lead to the cache being invalidated on every step. If that's the cause, this might be fixed by #83 |
@Miczu I have tested some of the samplers with 0.2 threshold and found that the quality changed significantly. Do you have same issues? |
It doesn't make any difference which sampler I select or how many steps or what I set residual_diff_threshold to, the outputs are always identical whether the node is on or off. |
Usually multi-step samplers shouldn't be an issue because they won't be calling the model on the same timestep. Most of the time they'll be calling it on descending timesteps which works perfectly with FBCache. (Adaptive ODE solvers actually seem to work quite well.) There's a pathalogical case where a multistep sampler might be jumping around in the sigmas but I don't think that really happens much (ever?) in practice.
Are you using any model patches like PAG/SAG? Ancestral/SDE samplers can also basically disable FBCache from activating.
Seems like it's mostly ancestral/SDE samplers that are slow. Those samplers inject new noise at every step, which pushes the model toward less similar results which causes caching to not activate. I made a cache-aware variant of Euler ancestral, you could possibly try that if you want (some) ancestralness without hurting the ability to cache as much: https://gist.github.com/blepping/ec48891459afc3e9c30e5f94b0fcdb42 (note that this is very experimental, also my own personal thing not endorsed by the WaveSpeed project or anything like that) |
The node is having no effect in the example workflow for SDXL. There are no errors either. It is working properly with Flux in the Flux workflow though.
The text was updated successfully, but these errors were encountered: