|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
|
|
from packaging import version |
|
|
|
from ..version import VERSION as __version__ |
|
from .deprecation_utils import deprecate |
|
from .import_utils import ( |
|
ENV_VARS_TRUE_AND_AUTO_VALUES, |
|
ENV_VARS_TRUE_VALUES, |
|
USE_PADDLE, |
|
DummyObject, |
|
OptionalDependencyNotAvailable, |
|
is_fastdeploy_available, |
|
is_inflect_available, |
|
is_k_diffusion_available, |
|
is_librosa_available, |
|
is_modelcards_available, |
|
is_onnx_available, |
|
is_paddle_available, |
|
is_paddle_version, |
|
is_paddlenlp_available, |
|
is_scipy_available, |
|
is_unidecode_available, |
|
is_wandb_available, |
|
requires_backends, |
|
) |
|
from .logging import get_logger |
|
from .outputs import BaseOutput |
|
from .pil_utils import PIL_INTERPOLATION |
|
|
|
if is_paddle_available(): |
|
from .testing_utils import ( |
|
floats_tensor, |
|
image_grid, |
|
load_hf_numpy, |
|
load_image, |
|
load_numpy, |
|
load_ppnlp_numpy, |
|
nightly, |
|
paddle_all_close, |
|
parse_flag_from_env, |
|
slow, |
|
) |
|
|
|
logger = get_logger(__name__) |
|
|
|
from paddlenlp.utils.env import _get_ppnlp_home, _get_sub_home |
|
|
|
ppnlp_cache_home = _get_ppnlp_home() |
|
default_cache_path = _get_sub_home("models") |
|
|
|
CONFIG_NAME = "config.json" |
|
WEIGHTS_NAME = "model_state.pdparams" |
|
FASTDEPLOY_WEIGHTS_NAME = "inference.pdiparams" |
|
FASTDEPLOY_MODEL_NAME = "inference.pdmodel" |
|
DOWNLOAD_SERVER = "https://bj.bcebos.com/paddlenlp/models/community" |
|
PPDIFFUSERS_CACHE = default_cache_path |
|
PPDIFFUSERS_DYNAMIC_MODULE_NAME = "ppdiffusers_modules" |
|
PPNLP_MODULES_CACHE = os.getenv("PPNLP_MODULES_CACHE", _get_sub_home("modules")) |
|
HF_CACHE = os.environ.get("HUGGINGFACE_HUB_CACHE", PPDIFFUSERS_CACHE) |
|
TEST_DOWNLOAD_SERVER = "https://paddlenlp.bj.bcebos.com/models/community/ppdiffusers/tests" |
|
HUGGINGFACE_CO_RESOLVE_ENDPOINT = "https://huggingface.co" |
|
|
|
_COMPATIBLE_STABLE_DIFFUSION_SCHEDULERS = [ |
|
"DDIMScheduler", |
|
"DDPMScheduler", |
|
"PNDMScheduler", |
|
"LMSDiscreteScheduler", |
|
"EulerDiscreteScheduler", |
|
"HeunDiscreteScheduler", |
|
"EulerAncestralDiscreteScheduler", |
|
"DPMSolverMultistepScheduler", |
|
"DPMSolverSinglestepScheduler", |
|
] |
|
|
|
|
|
def check_min_version(min_version): |
|
if version.parse(__version__) < version.parse(min_version): |
|
if "dev" in min_version: |
|
error_message = "This example requires a source install from ppdiffusers" |
|
else: |
|
error_message = f"This example requires a minimum version of {min_version}," |
|
error_message += f" but the version found is {__version__}.\n" |
|
raise ImportError(error_message) |
|
|