Spaces:
Running
Running
from app_settings import AppSettings | |
from utils import show_system_info | |
from PIL import Image | |
from backend.models.lcmdiffusion_setting import DiffusionTask | |
import constants | |
from argparse import ArgumentParser | |
from constants import APP_VERSION, LCM_DEFAULT_MODEL_OPENVINO | |
from models.interface_types import InterfaceType | |
from constants import DEVICE | |
from state import get_settings, get_context | |
parser = ArgumentParser(description=f"FAST SD CPU {constants.APP_VERSION}") | |
parser.add_argument( | |
"-s", | |
"--share", | |
action="store_true", | |
help="Create sharable link(Web UI)", | |
required=False, | |
) | |
group = parser.add_mutually_exclusive_group(required=False) | |
group.add_argument( | |
"-g", | |
"--gui", | |
action="store_true", | |
help="Start desktop GUI", | |
) | |
group.add_argument( | |
"-w", | |
"--webui", | |
action="store_true", | |
help="Start Web UI", | |
) | |
group.add_argument( | |
"-r", | |
"--realtime", | |
action="store_true", | |
help="Start realtime inference UI(experimental)", | |
) | |
group.add_argument( | |
"-v", | |
"--version", | |
action="store_true", | |
help="Version", | |
) | |
parser.add_argument( | |
"--lcm_model_id", | |
type=str, | |
help="Model ID or path,Default SimianLuo/LCM_Dreamshaper_v7", | |
default="SimianLuo/LCM_Dreamshaper_v7", | |
) | |
parser.add_argument( | |
"--prompt", | |
type=str, | |
help="Describe the image you want to generate", | |
) | |
parser.add_argument( | |
"--image_height", | |
type=int, | |
help="Height of the image", | |
default=512, | |
) | |
parser.add_argument( | |
"--image_width", | |
type=int, | |
help="Width of the image", | |
default=512, | |
) | |
parser.add_argument( | |
"--inference_steps", | |
type=int, | |
help="Number of steps,default : 4", | |
default=4, | |
) | |
parser.add_argument( | |
"--guidance_scale", | |
type=int, | |
help="Guidance scale,default : 1.0", | |
default=1.0, | |
) | |
parser.add_argument( | |
"--number_of_images", | |
type=int, | |
help="Number of images to generate ,default : 1", | |
default=1, | |
) | |
parser.add_argument( | |
"--seed", | |
type=int, | |
help="Seed,default : -1 (disabled) ", | |
default=-1, | |
) | |
parser.add_argument( | |
"--use_openvino", | |
action="store_true", | |
help="Use OpenVINO model", | |
) | |
parser.add_argument( | |
"--use_offline_model", | |
action="store_true", | |
help="Use offline model", | |
) | |
parser.add_argument( | |
"--use_safety_checker", | |
action="store_false", | |
help="Use safety checker", | |
) | |
parser.add_argument( | |
"--use_lcm_lora", | |
action="store_true", | |
help="Use LCM-LoRA", | |
) | |
parser.add_argument( | |
"--base_model_id", | |
type=str, | |
help="LCM LoRA base model ID,Default Lykon/dreamshaper-8", | |
default="Lykon/dreamshaper-8", | |
) | |
parser.add_argument( | |
"--lcm_lora_id", | |
type=str, | |
help="LCM LoRA model ID,Default latent-consistency/lcm-lora-sdv1-5", | |
default="latent-consistency/lcm-lora-sdv1-5", | |
) | |
parser.add_argument( | |
"-i", | |
"--interactive", | |
action="store_true", | |
help="Interactive CLI mode", | |
) | |
parser.add_argument( | |
"-t", | |
"--use_tiny_auto_encoder", | |
action="store_true", | |
help="Use tiny auto encoder for SD (TAESD)", | |
) | |
parser.add_argument( | |
"-f", | |
"--file", | |
type=str, | |
help="Input image for img2img mode", | |
default="", | |
) | |
parser.add_argument( | |
"--img2img", | |
action="store_true", | |
help="img2img mode; requires input file via -f argument", | |
) | |
args = parser.parse_args() | |
if args.version: | |
print(APP_VERSION) | |
exit() | |
# parser.print_help() | |
show_system_info() | |
print(f"Using device : {constants.DEVICE}") | |
if args.webui: | |
app_settings = get_settings() | |
else: | |
app_settings = get_settings() | |
print(f"Found {len(app_settings.lcm_models)} LCM models in config/lcm-models.txt") | |
print( | |
f"Found {len(app_settings.stable_diffsuion_models)} stable diffusion models in config/stable-diffusion-models.txt" | |
) | |
print( | |
f"Found {len(app_settings.lcm_lora_models)} LCM-LoRA models in config/lcm-lora-models.txt" | |
) | |
print( | |
f"Found {len(app_settings.openvino_lcm_models)} OpenVINO LCM models in config/openvino-lcm-models.txt" | |
) | |
if args.gui: | |
from frontend.gui.ui import start_gui | |
print("Starting desktop GUI mode(Qt)") | |
start_gui( | |
[], | |
app_settings, | |
) | |
elif args.webui: | |
from frontend.webui.ui import start_webui | |
print("Starting web UI mode") | |
start_webui( | |
args.share, | |
) | |
elif args.realtime: | |
from frontend.webui.realtime_ui import start_realtime_text_to_image | |
print("Starting realtime text to image(EXPERIMENTAL)") | |
start_realtime_text_to_image(args.share) | |
from frontend.webui.hf_demo import start_demo_text_to_image | |
print("Starting demo text to image") | |
start_demo_text_to_image(False) | |