Spaces:
Running
on
Zero
Running
on
Zero
from dataclasses import dataclass | |
from enum import Enum | |
from typing import TYPE_CHECKING, List, Optional, Union | |
import numpy as np | |
import PIL | |
from PIL import Image | |
from ...utils import ( | |
DIFFUSERS_SLOW_IMPORT, | |
BaseOutput, | |
OptionalDependencyNotAvailable, | |
_LazyModule, | |
get_objects_from_module, | |
is_torch_available, | |
is_transformers_available, | |
) | |
class SafetyConfig(object): | |
WEAK = { | |
"sld_warmup_steps": 15, | |
"sld_guidance_scale": 20, | |
"sld_threshold": 0.0, | |
"sld_momentum_scale": 0.0, | |
"sld_mom_beta": 0.0, | |
} | |
MEDIUM = { | |
"sld_warmup_steps": 10, | |
"sld_guidance_scale": 1000, | |
"sld_threshold": 0.01, | |
"sld_momentum_scale": 0.3, | |
"sld_mom_beta": 0.4, | |
} | |
STRONG = { | |
"sld_warmup_steps": 7, | |
"sld_guidance_scale": 2000, | |
"sld_threshold": 0.025, | |
"sld_momentum_scale": 0.5, | |
"sld_mom_beta": 0.7, | |
} | |
MAX = { | |
"sld_warmup_steps": 0, | |
"sld_guidance_scale": 5000, | |
"sld_threshold": 1.0, | |
"sld_momentum_scale": 0.5, | |
"sld_mom_beta": 0.7, | |
} | |
_dummy_objects = {} | |
_additional_imports = {} | |
_import_structure = {} | |
_additional_imports.update({"SafetyConfig": SafetyConfig}) | |
try: | |
if not (is_transformers_available() and is_torch_available()): | |
raise OptionalDependencyNotAvailable() | |
except OptionalDependencyNotAvailable: | |
from ...utils import dummy_torch_and_transformers_objects | |
_dummy_objects.update(get_objects_from_module(dummy_torch_and_transformers_objects)) | |
else: | |
_import_structure.update( | |
{ | |
"pipeline_output": ["StableDiffusionSafePipelineOutput"], | |
"pipeline_stable_diffusion_safe": ["StableDiffusionPipelineSafe"], | |
"safety_checker": ["StableDiffusionSafetyChecker"], | |
} | |
) | |
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: | |
try: | |
if not (is_transformers_available() and is_torch_available()): | |
raise OptionalDependencyNotAvailable() | |
except OptionalDependencyNotAvailable: | |
from ...utils.dummy_torch_and_transformers_objects import * | |
else: | |
from .pipeline_output import StableDiffusionSafePipelineOutput | |
from .pipeline_stable_diffusion_safe import StableDiffusionPipelineSafe | |
from .safety_checker import SafeStableDiffusionSafetyChecker | |
else: | |
import sys | |
sys.modules[__name__] = _LazyModule( | |
__name__, | |
globals()["__file__"], | |
_import_structure, | |
module_spec=__spec__, | |
) | |
for name, value in _dummy_objects.items(): | |
setattr(sys.modules[__name__], name, value) | |
for name, value in _additional_imports.items(): | |
setattr(sys.modules[__name__], name, value) | |