| | from app_settings import AppSettings |
| | from utils import show_system_info |
| | import constants |
| | from argparse import ArgumentParser |
| | from context import Context |
| | from constants import APP_VERSION, LCM_DEFAULT_MODEL_OPENVINO |
| | from models.interface_types import InterfaceType |
| | from constants import DEVICE |
| | from state import get_settings |
| | import traceback |
| |
|
| |
|
| | from fastapi import FastAPI,Body |
| |
|
| | import uvicorn |
| | import json |
| | import logging |
| | from PIL import Image |
| | import time |
| |
|
| | from diffusers.utils import load_image |
| | import base64 |
| | import io |
| | from datetime import datetime |
| |
|
| | from typing import Any |
| | from backend.models.lcmdiffusion_setting import DiffusionTask |
| |
|
| | from frontend.utils import is_reshape_required |
| | from concurrent.futures import ThreadPoolExecutor |
| |
|
| |
|
| | context = Context(InterfaceType.WEBUI) |
| | previous_width = 0 |
| | previous_height = 0 |
| | previous_model_id = "" |
| | previous_num_of_images = 0 |
| |
|
| | 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( |
| | "--use_tiny_auto_encoder", |
| | action="store_true", |
| | help="Use tiny auto encoder for SD (TAESD)", |
| | ) |
| | args = parser.parse_args() |
| |
|
| | if args.version: |
| | print(APP_VERSION) |
| | exit() |
| |
|
| | parser.print_help() |
| | show_system_info() |
| | print(f"Using device : {constants.DEVICE}") |
| | 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" |
| | ) |
| | app_settings.settings.lcm_diffusion_setting.use_openvino = True |
| | from frontend.webui.ui import start_webui |
| |
|
| | print("Starting web UI mode") |
| | start_webui( |
| | args.share, |
| | ) |
| |
|
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|