Spaces:
Running
on
Zero
Running
on
Zero
from types import SimpleNamespace | |
from warnings import filterwarnings | |
from diffusers import ( | |
DEISMultistepScheduler, | |
DPMSolverMultistepScheduler, | |
EulerAncestralDiscreteScheduler, | |
EulerDiscreteScheduler, | |
StableDiffusionControlNetImg2ImgPipeline, | |
StableDiffusionControlNetPipeline, | |
StableDiffusionImg2ImgPipeline, | |
StableDiffusionPipeline, | |
UniPCMultistepScheduler, | |
) | |
from diffusers.utils import logging as diffusers_logging | |
from transformers import logging as transformers_logging | |
filterwarnings("ignore", category=FutureWarning, module="diffusers") | |
filterwarnings("ignore", category=FutureWarning, module="transformers") | |
diffusers_logging.set_verbosity_error() | |
transformers_logging.set_verbosity_error() | |
# Standard Stable Diffusion 1.5 file structure | |
_sd_files = [ | |
"feature_extractor/preprocessor_config.json", | |
"safety_checker/config.json", | |
"scheduler/scheduler_config.json", | |
"text_encoder/config.json", | |
"text_encoder/model.fp16.safetensors", | |
"tokenizer/merges.txt", | |
"tokenizer/special_tokens_map.json", | |
"tokenizer/tokenizer_config.json", | |
"tokenizer/vocab.json", | |
"unet/config.json", | |
"unet/diffusion_pytorch_model.fp16.safetensors", | |
"vae/config.json", | |
"vae/diffusion_pytorch_model.fp16.safetensors", | |
"model_index.json", | |
] | |
# Using namespace instead of dataclass for simplicity | |
Config = SimpleNamespace( | |
PIPELINES={ | |
"txt2img": StableDiffusionPipeline, | |
"img2img": StableDiffusionImg2ImgPipeline, | |
"controlnet_txt2img": StableDiffusionControlNetPipeline, | |
"controlnet_img2img": StableDiffusionControlNetImg2ImgPipeline, | |
}, | |
HF_REPOS={ | |
"ai-forever/Real-ESRGAN": ["RealESRGAN_x2.pth", "RealESRGAN_x4.pth"], | |
"cyberdelia/CyberRealistic": ["CyberRealistic_V5_FP16.safetensors"], | |
"fluently/Fluently-v4": ["Fluently-v4.safetensors"], | |
"h94/IP-Adapter": [ | |
"models/ip-adapter-full-face_sd15.safetensors", | |
"models/ip-adapter-plus_sd15.safetensors", | |
"models/image_encoder/model.safetensors", | |
], | |
"lllyasviel/control_v11p_sd15_canny": ["diffusion_pytorch_model.fp16.safetensors"], | |
"Lykon/dreamshaper-8": _sd_files, | |
"s6yx/ReV_Animated": ["rev_1.2.2/rev_1.2.2-fp16.safetensors"], | |
"SG161222/Realistic_Vision_V5.1_noVAE": ["Realistic_Vision_V5.1_fp16-no-ema.safetensors"], | |
"stable-diffusion-v1-5/stable-diffusion-v1-5": _sd_files, | |
"XpucT/Deliberate": ["Deliberate_v6.safetensors"], | |
"XpucT/Reliberate": ["Reliberate_v3.safetensors"], | |
}, | |
MODEL="XpucT/Reliberate", | |
MODELS=[ | |
"cyberdelia/CyberRealistic", | |
"fluently/Fluently-v4", | |
"Lykon/dreamshaper-8", | |
"s6yx/ReV_Animated", | |
"SG161222/Realistic_Vision_V5.1_noVAE", | |
"stable-diffusion-v1-5/stable-diffusion-v1-5", | |
"XpucT/Deliberate", | |
"XpucT/Reliberate", | |
], | |
SINGLE_FILE_MODELS=[ | |
"cyberdelia/CyberRealistic", | |
"fluently/Fluently-v4", | |
"s6yx/ReV_Animated", | |
"SG161222/Realistic_Vision_V5.1_noVAE", | |
"XpucT/Deliberate", | |
"XpucT/Reliberate", | |
], | |
SCHEDULER="UniPC", | |
SCHEDULERS={ | |
"DEIS": DEISMultistepScheduler, | |
"DPM++ 2M": DPMSolverMultistepScheduler, | |
"Euler": EulerDiscreteScheduler, | |
"Euler a": EulerAncestralDiscreteScheduler, | |
"UniPC": UniPCMultistepScheduler, | |
}, | |
ANNOTATOR="canny", | |
ANNOTATORS={ | |
"canny": "lllyasviel/control_v11p_sd15_canny", | |
}, | |
WIDTH=512, | |
HEIGHT=512, | |
NUM_IMAGES=1, | |
GUIDANCE_SCALE=6, | |
INFERENCE_STEPS=40, | |
DENOISING_STRENGTH=0.8, | |
DEEPCACHE_INTERVAL=1, | |
SCALE=1, | |
SCALES=[1, 2, 4], | |
) | |