diff --git a/WebUI/build/settings.json b/WebUI/build/settings.json index 7488c111..c602f9e0 100644 --- a/WebUI/build/settings.json +++ b/WebUI/build/settings.json @@ -5,7 +5,7 @@ "--disable-ipex-optimize", "--bf16-unet", "--reserve-vram", - "4.0" + "5.0" ], "availableThemes": ["dark","lnl","bmg"], "currentTheme": "bmg" diff --git a/WebUI/electron/subprocesses/aiBackendService.ts b/WebUI/electron/subprocesses/aiBackendService.ts index fbccaf7b..762f7947 100644 --- a/WebUI/electron/subprocesses/aiBackendService.ts +++ b/WebUI/electron/subprocesses/aiBackendService.ts @@ -13,7 +13,7 @@ export class AiBackendService extends LongLivedPythonApiService { readonly lsLevelZeroDir = this.pythonEnvDir readonly lsLevelZeroExe = getLsLevelZeroPath(this.lsLevelZeroDir) healthEndpointUrl = `${this.baseUrl}/healthy` - serviceIsSetUp = () => filesystem.existsSync(this.pythonExe) && filesystem.existsSync(this.lsLevelZeroExe); + serviceIsSetUp = () => filesystem.existsSync(this.pythonExe); isSetUp = this.serviceIsSetUp(); async *set_up(): AsyncIterable { diff --git a/WebUI/electron/subprocesses/apiService.ts b/WebUI/electron/subprocesses/apiService.ts index abff3fad..e1060e23 100644 --- a/WebUI/electron/subprocesses/apiService.ts +++ b/WebUI/electron/subprocesses/apiService.ts @@ -53,8 +53,9 @@ export abstract class LongLivedPythonApiService implements ApiService { readonly baseDir = app.isPackaged ? process.resourcesPath : path.join(__dirname, "../../../"); readonly prototypicalPythonEnv = path.join(this.baseDir, "prototype-python-env") readonly customIntelExtensionForPytorch = path.join(app.isPackaged ? this.baseDir : path.join(__dirname, "../../external/"), ipexWheel) - abstract readonly serviceDir: string + abstract readonly pythonEnvDir: string abstract readonly lsLevelZeroDir: string + abstract readonly serviceDir: string abstract readonly pythonExe: string abstract isSetUp: boolean; diff --git a/WebUI/electron/subprocesses/comfyUIBackendService.ts b/WebUI/electron/subprocesses/comfyUIBackendService.ts index f4a5bfe0..5fa7955e 100644 --- a/WebUI/electron/subprocesses/comfyUIBackendService.ts +++ b/WebUI/electron/subprocesses/comfyUIBackendService.ts @@ -13,9 +13,9 @@ export class ComfyUiBackendService extends LongLivedPythonApiService { readonly isRequired = false readonly serviceDir = path.resolve(path.join(this.baseDir, "ComfyUI")); readonly pythonEnvDir = path.resolve(path.join(this.baseDir, `comfyui-backend-env`)); - readonly pythonExe = getPythonPath(this.pythonEnvDir) readonly lsLevelZeroDir = this.pythonEnvDir readonly lsLevelZeroExe = getLsLevelZeroPath(this.lsLevelZeroDir) + readonly pythonExe = getPythonPath(this.pythonEnvDir) healthEndpointUrl = `${this.baseUrl}/queue` private readonly comfyUIStartupParameters = this.settings.comfyUiParameters ? this.settings.comfyUiParameters : [ @@ -23,11 +23,11 @@ export class ComfyUiBackendService extends LongLivedPythonApiService { "--disable-ipex-optimize", "--bf16-unet", "--reserve-vram", - "4.0" + "5.0" ] serviceIsSetUp(): boolean { - return filesystem.existsSync(this.pythonEnvDir) && filesystem.existsSync(this.serviceDir) && filesystem.existsSync(this.lsLevelZeroExe) + return filesystem.existsSync(this.pythonEnvDir) && filesystem.existsSync(this.serviceDir) } isSetUp = this.serviceIsSetUp(); diff --git a/WebUI/electron/subprocesses/llamaCppBackendService.ts b/WebUI/electron/subprocesses/llamaCppBackendService.ts index 9a1e34fe..4dfd84f2 100644 --- a/WebUI/electron/subprocesses/llamaCppBackendService.ts +++ b/WebUI/electron/subprocesses/llamaCppBackendService.ts @@ -8,9 +8,9 @@ export class LlamaCppBackendService extends LongLivedPythonApiService { readonly serviceDir = path.resolve(path.join(this.baseDir, "LlamaCPP")); readonly pythonEnvDir = path.resolve(path.join(this.baseDir, `llama-cpp-env`)); readonly pythonExe = this.getPythonPath(this.pythonEnvDir) - readonly isRequired = false; readonly lsLevelZeroDir = path.resolve(path.join(this.baseDir, "ai-backend-env")); readonly lsLevelZeroExe = getLsLevelZeroPath(this.lsLevelZeroDir) + readonly isRequired = false; healthEndpointUrl = `${this.baseUrl}/health` diff --git a/WebUI/external/settings-dev.json b/WebUI/external/settings-dev.json index df3fd25b..11ce3784 100644 --- a/WebUI/external/settings-dev.json +++ b/WebUI/external/settings-dev.json @@ -5,7 +5,7 @@ "--disable-ipex-optimize", "--bf16-unet", "--reserve-vram", - "4.0" + "5.0" ], "availableThemes": ["dark","lnl","bmg"], "currentTheme": "bmg" diff --git a/WebUI/external/workflows/FaceSwapHD.json b/WebUI/external/workflows/FaceSwapHD.json index 7b2b1277..83fea012 100644 --- a/WebUI/external/workflows/FaceSwapHD.json +++ b/WebUI/external/workflows/FaceSwapHD.json @@ -7,16 +7,38 @@ "onnxruntime" ], "customNodes": [ - "Gourieff/comfyui-reactor-node/be1c60bd62d1fb35511153533032c5a6811c8fab" + "Gourieff/comfyui-reactor-node@be1c60bd62d1fb35511153533032c5a6811c8fab" ], "requiredModels": [ - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors", - "defaultLora:latent-consistency/lcm-lora-sdxl/pytorch_lora_weights.safetensors", - "faceswap:Aitrepreneur/insightface/inswapper_128.onnx", - "facerestore:gmk123/GFPGAN/GFPGANv1.4.pth" + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "defaultLora", + "model": "latent-consistency/lcm-lora-sdxl/pytorch_lora_weights.safetensors" + }, + { + "type": "faceswap", + "model": "Aitrepreneur/insightface/inswapper_128.onnx", + "additionalLicenceLink": "https://huggingface.co/datasets/Gourieff/ReActor" + }, + { + "type": "facerestore", + "model": "gmk123/GFPGAN/GFPGANv1.4.pth" + } ] }, "tags": [ diff --git a/WebUI/external/workflows/Line2ImageHD-Fast.json b/WebUI/external/workflows/Line2ImageHD-Fast.json index 62ab684c..2593fc9c 100644 --- a/WebUI/external/workflows/Line2ImageHD-Fast.json +++ b/WebUI/external/workflows/Line2ImageHD-Fast.json @@ -1,16 +1,35 @@ { "name": "Line2Image-HD-Fast", + "displayPriority": 200, "backend": "comfyui", "comfyUIRequirements": { "customNodes": [ ], "requiredModels": [ - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors", - "defaultLora:latent-consistency/lcm-lora-sdxl/pytorch_lora_weights.safetensors", - "controlNet:stabilityai/control-lora/control-LoRAs-rank128/control-lora-canny-rank128.safetensors" + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "defaultLora", + "model": "latent-consistency/lcm-lora-sdxl/pytorch_lora_weights.safetensors" + }, + { + "type": "controlNet", + "model": "stabilityai/control-lora/control-LoRAs-rank128/control-lora-canny-rank128.safetensors" + } ] }, "tags": [ diff --git a/WebUI/external/workflows/Line2ImageHD-Quality.json b/WebUI/external/workflows/Line2ImageHD-Quality.json index aa33c883..28abcbb6 100644 --- a/WebUI/external/workflows/Line2ImageHD-Quality.json +++ b/WebUI/external/workflows/Line2ImageHD-Quality.json @@ -1,15 +1,31 @@ { "name": "Line2Image-HD-Quality", + "displayPriority": 150, "backend": "comfyui", "comfyUIRequirements": { "customNodes": [ ], "requiredModels": [ - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors", - "defaultCheckpoint:RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors", - "controlNet:stabilityai/control-lora/control-LoRAs-rank128/control-lora-canny-rank128.safetensors" + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/unet/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/text_encoder_2/model.fp16.safetensors" + }, + { + "type": "defaultCheckpoint", + "model": "RunDiffusion/Juggernaut-XL-v9/vae/diffusion_pytorch_model.fp16.safetensors" + }, + { + "type": "controlNet", + "model": "stabilityai/control-lora/control-LoRAs-rank128/control-lora-canny-rank128.safetensors" + } ] }, "tags": [ diff --git a/WebUI/external/workflows/fluxQ4.json b/WebUI/external/workflows/fluxQ4.json index 910376a5..7a2eb4cb 100644 --- a/WebUI/external/workflows/fluxQ4.json +++ b/WebUI/external/workflows/fluxQ4.json @@ -1,5 +1,6 @@ { "name": "Flux.1-Schnell Med Quality", + "displayPriority": 500, "tags": [ "Q4", "Fast" @@ -7,13 +8,25 @@ "backend": "comfyui", "comfyUIRequirements": { "customNodes": [ - "city96/ComfyUI-GGUF/65a7c895bb0ac9547ba2f89d55fbdb609aa2bfe7" + "city96/ComfyUI-GGUF@65a7c895bb0ac9547ba2f89d55fbdb609aa2bfe7" ], "requiredModels": [ - "unet:city96/FLUX.1-schnell-gguf/flux1-schnell-Q4_K_S.gguf", - "clip:city96/t5-v1_1-xxl-encoder-gguf/t5-v1_1-xxl-encoder-Q3_K_M.gguf", - "clip:comfyanonymous/flux_text_encoders/clip_l.safetensors", - "vae:black-forest-labs/FLUX.1-schnell/ae.safetensors" + { + "type": "unet", + "model": "city96/FLUX.1-schnell-gguf/flux1-schnell-Q4_K_S.gguf" + }, + { + "type": "clip", + "model": "city96/t5-v1_1-xxl-encoder-gguf/t5-v1_1-xxl-encoder-Q3_K_M.gguf" + }, + { + "type": "clip", + "model": "comfyanonymous/flux_text_encoders/clip_l.safetensors" + }, + { + "type": "vae", + "model": "black-forest-labs/FLUX.1-schnell/ae.safetensors" + } ] }, diff --git a/WebUI/external/workflows/fluxQ8.json b/WebUI/external/workflows/fluxQ8.json index 215c3f65..69e19d8b 100644 --- a/WebUI/external/workflows/fluxQ8.json +++ b/WebUI/external/workflows/fluxQ8.json @@ -1,16 +1,28 @@ { "name": "Flux.1-Schnell High Quality", - + "displayPriority": 450, "backend": "comfyui", "comfyUIRequirements": { "customNodes": [ - "city96/ComfyUI-GGUF" + "city96/ComfyUI-GGUF@65a7c895bb0ac9547ba2f89d55fbdb609aa2bfe7" ], "requiredModels": [ - "unet:city96/FLUX.1-schnell-gguf/flux1-schnell-Q8_0.gguf", - "clip:city96/t5-v1_1-xxl-encoder-gguf/t5-v1_1-xxl-encoder-Q3_K_M.gguf", - "clip:comfyanonymous/flux_text_encoders/clip_l.safetensors", - "vae:black-forest-labs/FLUX.1-schnell/ae.safetensors" + { + "type": "unet", + "model": "city96/FLUX.1-schnell-gguf/flux1-schnell-Q8_0.gguf" + }, + { + "type": "clip", + "model": "city96/t5-v1_1-xxl-encoder-gguf/t5-v1_1-xxl-encoder-Q3_K_M.gguf" + }, + { + "type": "clip", + "model": "comfyanonymous/flux_text_encoders/clip_l.safetensors" + }, + { + "type": "vae", + "model": "black-forest-labs/FLUX.1-schnell/ae.safetensors" + } ] }, "tags": [ diff --git a/WebUI/src/App.vue b/WebUI/src/App.vue index efd2cba3..e57dcbaf 100644 --- a/WebUI/src/App.vue +++ b/WebUI/src/App.vue @@ -21,17 +21,17 @@ -
+
-
-
+
-
+
@@ -59,7 +59,7 @@
-
+