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

FlowMatch schedulers - closing the gap #9607

Open
vladmandic opened this issue Oct 8, 2024 · 8 comments
Open

FlowMatch schedulers - closing the gap #9607

vladmandic opened this issue Oct 8, 2024 · 8 comments
Assignees

Comments

@vladmandic
Copy link
Contributor

vladmandic commented Oct 8, 2024

As stated here, lets close the scheduler gap!

Problem statement:

  • Most (if not all quality ones) new models are DiT based
  • Implementation of DiT based models in Diffusers typically requires Flow-match type schedulers
  • Currently only working scheduler is FlowMatchEulerDiscreteScheduler which creates a massive gap!

(just for completeness, there is also an older implementation of FlowMatchHeunDiscreteScheduler, but its not updated to support required set_timesteps or mu inputs, so it cannot be used with newer DiT models like Flux.1)

on the other hand, ComfyUI allows use of any regular scheduler with DiT and does not require separate duplicate -FlowMatch variant of the same scheduler (e.g. EulerDiscrete vs FlowMatchEulerDiscrete) with Flux.1.

reference: matrix of different schedulers used with Flux.1.Dev via ComfyUI:
https://civitai.com/articles/6582/flux1-dev-sampler-scheduler-comparison

cc: @yiyixuxu @sayakpaul @DN6 @asomoza

@yiyixuxu yiyixuxu self-assigned this Oct 9, 2024
@yiyixuxu
Copy link
Collaborator

yiyixuxu commented Oct 9, 2024

cc @hlky here too if interested!

@hlky
Copy link
Collaborator

hlky commented Oct 9, 2024

I'd have to dig into FlowMatch a bit more in the community implementations, but it looks like there's little difference between EulerDiscrete and FlowMatchEulerDiscrete so FlowMatchEulerDiscrete could be integrated into EulerDiscrete controlled by some configuration option, this would avoid the need for separate duplicate variants and reduce maintenance burden - as there's already some divergence between schedulers, in set_timesteps for example, where some support sigmas/timesteps as input and others don't, support for final_sigmas_type, etc. Schedulers as a whole could probably do with an overhaul.

Copy link

github-actions bot commented Nov 8, 2024

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.

@github-actions github-actions bot added the stale Issues that haven't received updates label Nov 8, 2024
@vladmandic
Copy link
Contributor Author

ping to remove stale.

@vladmandic
Copy link
Contributor Author

any chance we get this one moving - given the popularity of flux and sd35 its one of the most frequent asks

@vladmandic
Copy link
Contributor Author

@sayakpaul @yiyixuxu @asomoza as requested yesterday in a discussion, tagging this as a high-priority ask.

@sayakpaul
Copy link
Member

This is definitely high-prio and is something @yiyixuxu is actively considering/looking into.

Copy link

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.

@github-actions github-actions bot added the stale Issues that haven't received updates label Dec 12, 2024
@a-r-r-o-w a-r-r-o-w added wip and removed stale Issues that haven't received updates labels Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants