()
| 132 | |
| 133 | |
| 134 | def start_backend(): |
| 135 | config = getConfig() |
| 136 | backend_config = config.get("backend_config") or {} |
| 137 | |
| 138 | backend_dir = get_backend_dir() |
| 139 | log.info(f"Backend dir: {backend_dir}") |
| 140 | |
| 141 | was_still_installing = not is_installed() |
| 142 | |
| 143 | if backend_config.get("auto_update", True) or not is_installed(): |
| 144 | update_backend() |
| 145 | |
| 146 | extra_args = ["--log-level", "debug"] |
| 147 | |
| 148 | vram_usage_level = config.get("vram_usage_level", "balanced") |
| 149 | # if vram_usage_level == "low": |
| 150 | # extra_args.append("--control-net-cpu") |
| 151 | # extra_args.append("--clip-on-cpu") |
| 152 | # extra_args.append("--vae-on-cpu") |
| 153 | |
| 154 | extra_args.append("--diffusion-fa") |
| 155 | |
| 156 | if vram_usage_level in ("low", "balanced"): |
| 157 | extra_args.append("--offload-to-cpu") |
| 158 | extra_args.append("--vae-tiling") # defaults to tile size 256x256 |
| 159 | |
| 160 | if vram_usage_level == "balanced": |
| 161 | extra_args += ["--vae-tile-size", "512x512"] |
| 162 | |
| 163 | user_args = backend_config.get("COMMANDLINE_ARGS") |
| 164 | user_args = user_args.split(" ") if user_args else [] |
| 165 | |
| 166 | webui_common.WEBUI_API_PREFIX = "/v1" |
| 167 | |
| 168 | def run_fn(): |
| 169 | exe_name = "sdkit.exe" if OS_NAME == "Windows" else "sdkit" |
| 170 | common_cli_args = get_common_cli_args(return_string=False) |
| 171 | cmd = [os.path.join(backend_dir, exe_name)] + common_cli_args + extra_args + user_args |
| 172 | |
| 173 | log.info(f"starting: {cmd}") |
| 174 | |
| 175 | return run(cmd, cwd=backend_dir, wait=False, output_prefix="[sdkit3] ") |
| 176 | |
| 177 | do_start_backend(was_still_installing, run_fn) |
| 178 | |
| 179 | |
| 180 | def uninstall_backend(): |
nothing calls this directly
no test coverage detected