Skip to content

Commit e4daabb

Browse files
committed
test_backend_registration
1 parent 02ad952 commit e4daabb

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

src/diffusers/schedulers/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@
7474
_import_structure["scheduling_unipc_multistep"] = ["UniPCMultistepScheduler"]
7575
_import_structure["scheduling_utils"] = ["AysSchedules", "KarrasDiffusionSchedulers", "SchedulerMixin"]
7676
_import_structure["scheduling_vq_diffusion"] = ["VQDiffusionScheduler"]
77-
_import_structure["sigmas"] = ["BetaSigmas", "ExponentialSigmas", "KarrasSigmas"]
7877

7978
try:
8079
if not is_flax_available():
@@ -175,7 +174,6 @@
175174
from .scheduling_unipc_multistep import UniPCMultistepScheduler
176175
from .scheduling_utils import AysSchedules, KarrasDiffusionSchedulers, SchedulerMixin
177176
from .scheduling_vq_diffusion import VQDiffusionScheduler
178-
from .sigmas import BetaSigmas, ExponentialSigmas, KarrasSigmas
179177

180178
try:
181179
if not is_flax_available():

src/diffusers/schedulers/sigmas/__init__.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
OptionalDependencyNotAvailable,
2020
_LazyModule,
2121
get_objects_from_module,
22+
is_scipy_available,
2223
is_torch_available,
2324
is_transformers_available,
2425
)
@@ -35,10 +36,21 @@
3536

3637
_dummy_objects.update(get_objects_from_module(dummy_pt_objects))
3738
else:
38-
_import_structure["beta_sigmas"] = ["BetaSigmas"]
3939
_import_structure["exponential_sigmas"] = ["ExponentialSigmas"]
4040
_import_structure["karras_sigmas"] = ["KarrasSigmas"]
4141

42+
try:
43+
if not (is_torch_available() and is_scipy_available()):
44+
raise OptionalDependencyNotAvailable()
45+
except OptionalDependencyNotAvailable:
46+
from ...utils import dummy_torch_and_scipy_objects # noqa F403
47+
48+
_dummy_objects.update(get_objects_from_module(dummy_torch_and_scipy_objects))
49+
50+
else:
51+
_import_structure["beta_sigmas"] = ["BetaSigmas"]
52+
53+
4254
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT:
4355
try:
4456
if not is_torch_available():
@@ -47,10 +59,17 @@
4759
except OptionalDependencyNotAvailable:
4860
from ...utils.dummy_pt_objects import * # noqa F403
4961
else:
50-
from .beta_sigmas import BetaSigmas
5162
from .exponential_sigmas import ExponentialSigmas
5263
from .karras_sigmas import KarrasSigmas
5364

65+
try:
66+
if not (is_torch_available() and is_scipy_available()):
67+
raise OptionalDependencyNotAvailable()
68+
except OptionalDependencyNotAvailable:
69+
from ...utils.dummy_torch_and_scipy_objects import * # noqa F403
70+
else:
71+
from .beta_sigmas import BetaSigmas
72+
5473

5574
else:
5675
import sys

src/diffusers/schedulers/sigmas/beta_sigmas.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ def __init__(
4040
self.beta = beta
4141

4242
def __call__(self, in_sigmas: torch.Tensor):
43+
if not is_scipy_available():
44+
raise ImportError("Make sure to install scipy if you want to use beta sigmas.")
4345
sigma_min = self.sigma_min
4446
if sigma_min is None:
4547
sigma_min = in_sigmas[-1].item()

src/diffusers/utils/dummy_torch_and_scipy_objects.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,9 @@ def from_config(cls, *args, **kwargs):
1515
@classmethod
1616
def from_pretrained(cls, *args, **kwargs):
1717
requires_backends(cls, ["torch", "scipy"])
18+
19+
class BetaSigmas(metaclass=DummyObject):
20+
_backends = ["torch", "scipy"]
21+
22+
def __init__(self, *args, **kwargs):
23+
requires_backends(self, ["torch", "scipy"])

0 commit comments

Comments
 (0)