Add Singlestep DPM-Solver (singlestep high-order schedulers) (#1442) · zmic/diffusers@8e74efa · GitHub
Skip to content

Commit 8e74efa

Browse files
Add Singlestep DPM-Solver (singlestep high-order schedulers) (huggingface#1442)
* add singlestep dpmsolver * fix a style typo * fix a style typo * add docs * finish Co-authored-by: Patrick von Platen <patrick.v.platen@gmail.com>
1 parent 6a7f1f0 commit 8e74efa

7 files changed

Lines changed: 800 additions & 0 deletions

File tree

‎docs/source/api/schedulers.mdx‎

Lines changed: 6 additions & 0 deletions

‎src/diffusers/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
DDIMScheduler,
4545
DDPMScheduler,
4646
DPMSolverMultistepScheduler,
47+
DPMSolverSinglestepScheduler,
4748
EulerAncestralDiscreteScheduler,
4849
EulerDiscreteScheduler,
4950
HeunDiscreteScheduler,

‎src/diffusers/schedulers/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from .scheduling_ddim import DDIMScheduler
2121
from .scheduling_ddpm import DDPMScheduler
2222
from .scheduling_dpmsolver_multistep import DPMSolverMultistepScheduler
23+
from .scheduling_dpmsolver_singlestep import DPMSolverSinglestepScheduler
2324
from .scheduling_euler_ancestral_discrete import EulerAncestralDiscreteScheduler
2425
from .scheduling_euler_discrete import EulerDiscreteScheduler
2526
from .scheduling_heun_discrete import HeunDiscreteScheduler

‎src/diffusers/schedulers/scheduling_dpmsolver_singlestep.py‎

Lines changed: 599 additions & 0 deletions
Large diffs are not rendered by default.

‎src/diffusers/utils/__init__.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
"HeunDiscreteScheduler",
9191
"EulerAncestralDiscreteScheduler",
9292
"DPMSolverMultistepScheduler",
93+
"DPMSolverSinglestepScheduler",
9394
]
9495

9596

‎src/diffusers/utils/dummy_pt_objects.py‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,21 @@ def from_pretrained(cls, *args, **kwargs):
362362
requires_backends(cls, ["torch"])
363363

364364

365+
class DPMSolverSinglestepScheduler(metaclass=DummyObject):
366+
_backends = ["torch"]
367+
368+
def __init__(self, *args, **kwargs):
369+
requires_backends(self, ["torch"])
370+
371+
@classmethod
372+
def from_config(cls, *args, **kwargs):
373+
requires_backends(cls, ["torch"])
374+
375+
@classmethod
376+
def from_pretrained(cls, *args, **kwargs):
377+
requires_backends(cls, ["torch"])
378+
379+
365380
class EulerAncestralDiscreteScheduler(metaclass=DummyObject):
366381
_backends = ["torch"]
367382

‎tests/test_scheduler.py‎

Lines changed: 177 additions & 0 deletions

0 commit comments

Comments
 (0)