mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-01-10 18:05:16 +00:00
Merge branch 'master' into updater-proxy
This commit is contained in:
commit
29142227e3
58
.github/workflows/update-frontend.yml
vendored
Normal file
58
.github/workflows/update-frontend.yml
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
name: Update Frontend Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: "Frontend version to update to (e.g., 1.0.0)"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
update-frontend:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout ComfyUI
|
||||
uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Install requirements
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
|
||||
pip install -r requirements.txt
|
||||
pip install wait-for-it
|
||||
# Frontend asset will be downloaded to ComfyUI/web_custom_versions/Comfy-Org_ComfyUI_frontend/{version}
|
||||
- name: Start ComfyUI server
|
||||
run: |
|
||||
python main.py --cpu --front-end-version Comfy-Org/ComfyUI_frontend@${{ github.event.inputs.version }} 2>&1 | tee console_output.log &
|
||||
wait-for-it --service 127.0.0.1:8188 -t 30
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config --global user.name "GitHub Action"
|
||||
git config --global user.email "action@github.com"
|
||||
# Replace existing frontend content with the new version and remove .js.map files
|
||||
# See https://github.com/Comfy-Org/ComfyUI_frontend/issues/2145 for why we remove .js.map files
|
||||
- name: Update frontend content
|
||||
run: |
|
||||
rm -rf web/
|
||||
cp -r web_custom_versions/Comfy-Org_ComfyUI_frontend/${{ github.event.inputs.version }} web/
|
||||
rm web/**/*.js.map
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
token: ${{ secrets.PR_BOT_PAT }}
|
||||
commit-message: "Update frontend to v${{ github.event.inputs.version }}"
|
||||
title: "Frontend Update: v${{ github.event.inputs.version }}"
|
||||
body: |
|
||||
Automated PR to update frontend content to version ${{ github.event.inputs.version }}
|
||||
|
||||
This PR was created automatically by the frontend update workflow.
|
||||
branch: release-${{ github.event.inputs.version }}
|
||||
base: master
|
||||
labels: Frontend,dependencies
|
@ -7,19 +7,19 @@ on:
|
||||
description: 'cuda version'
|
||||
required: true
|
||||
type: string
|
||||
default: "124"
|
||||
default: "126"
|
||||
|
||||
python_minor:
|
||||
description: 'python minor version'
|
||||
required: true
|
||||
type: string
|
||||
default: "12"
|
||||
default: "13"
|
||||
|
||||
python_patch:
|
||||
description: 'python patch version'
|
||||
required: true
|
||||
type: string
|
||||
default: "4"
|
||||
default: "1"
|
||||
# push:
|
||||
# branches:
|
||||
# - master
|
||||
|
@ -17,7 +17,7 @@
|
||||
/app/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata
|
||||
|
||||
# Frontend assets
|
||||
/web/ @huchenlei @webfiltered @pythongosssss
|
||||
/web/ @huchenlei @webfiltered @pythongosssss @yoland68 @robinjhuang
|
||||
|
||||
# Extra nodes
|
||||
/comfy_extras/ @yoland68 @robinjhuang @huchenlei @pythongosssss @ltdrdata @Kosinkadink
|
||||
|
@ -442,7 +442,7 @@ class HookKeyframeGroup:
|
||||
return False
|
||||
if curr_t == self._curr_t:
|
||||
return False
|
||||
max_sigma = torch.max(transformer_options["sigmas"])
|
||||
max_sigma = torch.max(transformer_options["sample_sigmas"])
|
||||
prev_index = self._current_index
|
||||
prev_strength = self._current_strength
|
||||
# if met guaranteed steps, look for next keyframe in case need to switch
|
||||
|
@ -70,8 +70,14 @@ def get_ancestral_step(sigma_from, sigma_to, eta=1.):
|
||||
return sigma_down, sigma_up
|
||||
|
||||
|
||||
def default_noise_sampler(x):
|
||||
return lambda sigma, sigma_next: torch.randn_like(x)
|
||||
def default_noise_sampler(x, seed=None):
|
||||
if seed is not None:
|
||||
generator = torch.Generator(device=x.device)
|
||||
generator.manual_seed(seed)
|
||||
else:
|
||||
generator = None
|
||||
|
||||
return lambda sigma, sigma_next: torch.randn(x.size(), dtype=x.dtype, layout=x.layout, device=x.device, generator=generator)
|
||||
|
||||
|
||||
class BatchedBrownianTree:
|
||||
@ -168,7 +174,8 @@ def sample_euler_ancestral(model, x, sigmas, extra_args=None, callback=None, dis
|
||||
return sample_euler_ancestral_RF(model, x, sigmas, extra_args, callback, disable, eta, s_noise, noise_sampler)
|
||||
"""Ancestral sampling with Euler method steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
for i in trange(len(sigmas) - 1, disable=disable):
|
||||
denoised = model(x, sigmas[i] * s_in, **extra_args)
|
||||
@ -189,7 +196,8 @@ def sample_euler_ancestral(model, x, sigmas, extra_args=None, callback=None, dis
|
||||
def sample_euler_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1.0, s_noise=1., noise_sampler=None):
|
||||
"""Ancestral sampling with Euler method steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
for i in trange(len(sigmas) - 1, disable=disable):
|
||||
denoised = model(x, sigmas[i] * s_in, **extra_args)
|
||||
@ -290,7 +298,8 @@ def sample_dpm_2_ancestral(model, x, sigmas, extra_args=None, callback=None, dis
|
||||
|
||||
"""Ancestral sampling with DPM-Solver second-order steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
for i in trange(len(sigmas) - 1, disable=disable):
|
||||
denoised = model(x, sigmas[i] * s_in, **extra_args)
|
||||
@ -318,7 +327,8 @@ def sample_dpm_2_ancestral(model, x, sigmas, extra_args=None, callback=None, dis
|
||||
def sample_dpm_2_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None):
|
||||
"""Ancestral sampling with DPM-Solver second-order steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
for i in trange(len(sigmas) - 1, disable=disable):
|
||||
denoised = model(x, sigmas[i] * s_in, **extra_args)
|
||||
@ -591,7 +601,8 @@ def sample_dpmpp_2s_ancestral(model, x, sigmas, extra_args=None, callback=None,
|
||||
|
||||
"""Ancestral sampling with DPM-Solver++(2S) second-order steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
sigma_fn = lambda t: t.neg().exp()
|
||||
t_fn = lambda sigma: sigma.log().neg()
|
||||
@ -625,7 +636,8 @@ def sample_dpmpp_2s_ancestral(model, x, sigmas, extra_args=None, callback=None,
|
||||
def sample_dpmpp_2s_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None):
|
||||
"""Ancestral sampling with DPM-Solver++(2S) second-order steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
s_in = x.new_ones([x.shape[0]])
|
||||
sigma_fn = lambda lbda: (lbda.exp() + 1) ** -1
|
||||
lambda_fn = lambda sigma: ((1-sigma)/sigma).log()
|
||||
@ -1153,7 +1165,8 @@ def sample_euler_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disabl
|
||||
def sample_euler_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None):
|
||||
"""Ancestral sampling with Euler method steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
|
||||
temp = [0]
|
||||
def post_cfg_function(args):
|
||||
@ -1179,7 +1192,8 @@ def sample_euler_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=No
|
||||
def sample_dpmpp_2s_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None):
|
||||
"""Ancestral sampling with DPM-Solver++(2S) second-order steps."""
|
||||
extra_args = {} if extra_args is None else extra_args
|
||||
noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler
|
||||
seed = extra_args.get("seed", None)
|
||||
noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler
|
||||
|
||||
temp = [0]
|
||||
def post_cfg_function(args):
|
||||
|
@ -1128,10 +1128,6 @@ def unload_all_models():
|
||||
free_memory(1e30, get_torch_device())
|
||||
|
||||
|
||||
def resolve_lowvram_weight(weight, model, key): #TODO: remove
|
||||
logging.warning("The comfy.model_management.resolve_lowvram_weight function will be removed soon, please stop using it.")
|
||||
return weight
|
||||
|
||||
#TODO: might be cleaner to put this somewhere else
|
||||
import threading
|
||||
|
||||
|
@ -849,7 +849,7 @@ class CFGGuider:
|
||||
self.conds = process_conds(self.inner_model, noise, self.conds, device, latent_image, denoise_mask, seed)
|
||||
|
||||
extra_model_options = comfy.model_patcher.create_model_options_clone(self.model_options)
|
||||
extra_model_options.setdefault("transformer_options", {})["sigmas"] = sigmas
|
||||
extra_model_options.setdefault("transformer_options", {})["sample_sigmas"] = sigmas
|
||||
extra_args = {"model_options": extra_model_options, "seed": seed}
|
||||
|
||||
executor = comfy.patcher_extension.WrapperExecutor.new_class_executor(
|
||||
|
22
nodes.py
22
nodes.py
@ -913,6 +913,9 @@ class CLIPLoader:
|
||||
def INPUT_TYPES(s):
|
||||
return {"required": { "clip_name": (folder_paths.get_filename_list("text_encoders"), ),
|
||||
"type": (["stable_diffusion", "stable_cascade", "sd3", "stable_audio", "mochi", "ltxv", "pixart"], ),
|
||||
},
|
||||
"optional": {
|
||||
"device": (["default", "cpu"], {"advanced": True}),
|
||||
}}
|
||||
RETURN_TYPES = ("CLIP",)
|
||||
FUNCTION = "load_clip"
|
||||
@ -921,7 +924,7 @@ class CLIPLoader:
|
||||
|
||||
DESCRIPTION = "[Recipes]\n\nstable_diffusion: clip-l\nstable_cascade: clip-g\nsd3: t5 / clip-g / clip-l\nstable_audio: t5\nmochi: t5"
|
||||
|
||||
def load_clip(self, clip_name, type="stable_diffusion"):
|
||||
def load_clip(self, clip_name, type="stable_diffusion", device="default"):
|
||||
if type == "stable_cascade":
|
||||
clip_type = comfy.sd.CLIPType.STABLE_CASCADE
|
||||
elif type == "sd3":
|
||||
@ -937,8 +940,12 @@ class CLIPLoader:
|
||||
else:
|
||||
clip_type = comfy.sd.CLIPType.STABLE_DIFFUSION
|
||||
|
||||
model_options = {}
|
||||
if device == "cpu":
|
||||
model_options["load_device"] = model_options["offload_device"] = torch.device("cpu")
|
||||
|
||||
clip_path = folder_paths.get_full_path_or_raise("text_encoders", clip_name)
|
||||
clip = comfy.sd.load_clip(ckpt_paths=[clip_path], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type)
|
||||
clip = comfy.sd.load_clip(ckpt_paths=[clip_path], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type, model_options=model_options)
|
||||
return (clip,)
|
||||
|
||||
class DualCLIPLoader:
|
||||
@ -947,6 +954,9 @@ class DualCLIPLoader:
|
||||
return {"required": { "clip_name1": (folder_paths.get_filename_list("text_encoders"), ),
|
||||
"clip_name2": (folder_paths.get_filename_list("text_encoders"), ),
|
||||
"type": (["sdxl", "sd3", "flux", "hunyuan_video"], ),
|
||||
},
|
||||
"optional": {
|
||||
"device": (["default", "cpu"], {"advanced": True}),
|
||||
}}
|
||||
RETURN_TYPES = ("CLIP",)
|
||||
FUNCTION = "load_clip"
|
||||
@ -955,7 +965,7 @@ class DualCLIPLoader:
|
||||
|
||||
DESCRIPTION = "[Recipes]\n\nsdxl: clip-l, clip-g\nsd3: clip-l, clip-g / clip-l, t5 / clip-g, t5\nflux: clip-l, t5"
|
||||
|
||||
def load_clip(self, clip_name1, clip_name2, type):
|
||||
def load_clip(self, clip_name1, clip_name2, type, device="default"):
|
||||
clip_path1 = folder_paths.get_full_path_or_raise("text_encoders", clip_name1)
|
||||
clip_path2 = folder_paths.get_full_path_or_raise("text_encoders", clip_name2)
|
||||
if type == "sdxl":
|
||||
@ -967,7 +977,11 @@ class DualCLIPLoader:
|
||||
elif type == "hunyuan_video":
|
||||
clip_type = comfy.sd.CLIPType.HUNYUAN_VIDEO
|
||||
|
||||
clip = comfy.sd.load_clip(ckpt_paths=[clip_path1, clip_path2], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type)
|
||||
model_options = {}
|
||||
if device == "cpu":
|
||||
model_options["load_device"] = model_options["offload_device"] = torch.device("cpu")
|
||||
|
||||
clip = comfy.sd.load_clip(ckpt_paths=[clip_path1, clip_path2], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type, model_options=model_options)
|
||||
return (clip,)
|
||||
|
||||
class CLIPVisionLoader:
|
||||
|
1
web/assets/BaseViewTemplate-BklhdMAh.js.map
generated
vendored
1
web/assets/BaseViewTemplate-BklhdMAh.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"BaseViewTemplate-BklhdMAh.js","sources":["../../src/views/templates/BaseViewTemplate.vue"],"sourcesContent":["<template>\n <div\n class=\"font-sans w-screen h-screen flex items-center justify-center pointer-events-auto overflow-auto\"\n :class=\"[\n props.dark\n ? 'text-neutral-300 bg-neutral-900 dark-theme'\n : 'text-neutral-900 bg-neutral-300'\n ]\"\n >\n <slot></slot>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nconst props = withDefaults(\n defineProps<{\n dark: boolean\n }>(),\n {\n dark: false\n }\n)\n</script>\n"],"names":[],"mappings":";;;;;;;AAcA,UAAM,QAAQ;;;;;;;;;;;;"}
|
4
web/assets/BaseViewTemplate-BklhdMAh.js → web/assets/BaseViewTemplate-CsEJhGbv.js
generated
vendored
4
web/assets/BaseViewTemplate-BklhdMAh.js → web/assets/BaseViewTemplate-CsEJhGbv.js
generated
vendored
@ -1,4 +1,4 @@
|
||||
import { d as defineComponent, o as openBlock, f as createElementBlock, J as renderSlot, T as normalizeClass } from "./index-De3LoLTp.js";
|
||||
import { d as defineComponent, o as openBlock, f as createElementBlock, J as renderSlot, T as normalizeClass } from "./index-C4Fk50Nx.js";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "BaseViewTemplate",
|
||||
props: {
|
||||
@ -20,4 +20,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as _
|
||||
};
|
||||
//# sourceMappingURL=BaseViewTemplate-BklhdMAh.js.map
|
||||
//# sourceMappingURL=BaseViewTemplate-CsEJhGbv.js.map
|
6
web/assets/DownloadGitView-DgH7MV_l.js → web/assets/DownloadGitView-DP1MIWYX.js
generated
vendored
6
web/assets/DownloadGitView-DgH7MV_l.js → web/assets/DownloadGitView-DP1MIWYX.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, bW as useRouter } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { d as defineComponent, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, bW as useRouter } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
const _hoisted_1 = { class: "max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding" };
|
||||
const _hoisted_2 = { class: "mt-24 text-4xl font-bold text-red-500" };
|
||||
const _hoisted_3 = { class: "space-y-4" };
|
||||
@ -55,4 +55,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=DownloadGitView-DgH7MV_l.js.map
|
||||
//# sourceMappingURL=DownloadGitView-DP1MIWYX.js.map
|
1
web/assets/DownloadGitView-DgH7MV_l.js.map
generated
vendored
1
web/assets/DownloadGitView-DgH7MV_l.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"DownloadGitView-DgH7MV_l.js","sources":["../../src/views/DownloadGitView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate>\n <div\n class=\"max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding\"\n >\n <!-- Header -->\n <h1 class=\"mt-24 text-4xl font-bold text-red-500\">\n {{ $t('downloadGit.title') }}\n </h1>\n\n <!-- Message -->\n <div class=\"space-y-4\">\n <p class=\"text-xl\">\n {{ $t('downloadGit.message') }}\n </p>\n <p class=\"text-xl\">\n {{ $t('downloadGit.instructions') }}\n </p>\n <p class=\"text-m\">\n {{ $t('downloadGit.warning') }}\n </p>\n </div>\n\n <!-- Actions -->\n <div class=\"flex gap-4 flex-row-reverse\">\n <Button\n :label=\"$t('downloadGit.gitWebsite')\"\n icon=\"pi pi-external-link\"\n icon-pos=\"right\"\n @click=\"openGitDownloads\"\n severity=\"primary\"\n />\n <Button\n :label=\"$t('downloadGit.skip')\"\n icon=\"pi pi-exclamation-triangle\"\n @click=\"skipGit\"\n severity=\"secondary\"\n />\n </div>\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport { useRouter } from 'vue-router'\n\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst openGitDownloads = () => {\n window.open('https://git-scm.com/downloads/', '_blank')\n}\n\nconst skipGit = () => {\n console.warn('pushing')\n const router = useRouter()\n router.push('install')\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAiDA,UAAM,mBAAmB,6BAAM;AACtB,aAAA,KAAK,kCAAkC,QAAQ;AAAA,IAAA,GAD/B;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS;AACf,aAAO,KAAK,SAAS;AAAA,IAAA,GAHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
10
web/assets/ExtensionPanel-DI1v0QVi.js → web/assets/ExtensionPanel-CxijYN47.js
generated
vendored
10
web/assets/ExtensionPanel-DI1v0QVi.js → web/assets/ExtensionPanel-CxijYN47.js
generated
vendored
@ -1,9 +1,9 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, ab as ref, cn as FilterMatchMode, cs as useExtensionStore, a as useSettingStore, m as onMounted, c as computed, o as openBlock, k as createBlock, M as withCtx, N as createVNode, co as SearchBox, j as unref, bZ as script, H as createBaseVNode, f as createElementBlock, E as renderList, X as toDisplayString, aE as createTextVNode, F as Fragment, l as script$1, I as createCommentVNode, aI as script$3, bO as script$4, c4 as script$5, cp as _sfc_main$1 } from "./index-De3LoLTp.js";
|
||||
import { s as script$2, a as script$6 } from "./index-BCSm_DIF.js";
|
||||
import "./index-UBW0i6QV.js";
|
||||
import "./index-BwVbIa1-.js";
|
||||
import { d as defineComponent, ab as ref, cn as FilterMatchMode, cs as useExtensionStore, a as useSettingStore, m as onMounted, c as computed, o as openBlock, k as createBlock, M as withCtx, N as createVNode, co as SearchBox, j as unref, bZ as script, H as createBaseVNode, f as createElementBlock, E as renderList, X as toDisplayString, aE as createTextVNode, F as Fragment, l as script$1, I as createCommentVNode, aI as script$3, bO as script$4, c4 as script$5, cp as _sfc_main$1 } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$2, a as script$6 } from "./index-CK0rrCYF.js";
|
||||
import "./index-lMQBwSDj.js";
|
||||
import "./index-B7ycxfFq.js";
|
||||
const _hoisted_1 = { class: "flex justify-end" };
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "ExtensionPanel",
|
||||
@ -180,4 +180,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=ExtensionPanel-DI1v0QVi.js.map
|
||||
//# sourceMappingURL=ExtensionPanel-CxijYN47.js.map
|
1
web/assets/ExtensionPanel-DI1v0QVi.js.map
generated
vendored
1
web/assets/ExtensionPanel-DI1v0QVi.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
web/assets/GraphView-CMQkCEwZ.js.map
generated
vendored
1
web/assets/GraphView-CMQkCEwZ.js.map
generated
vendored
File diff suppressed because one or more lines are too long
14
web/assets/GraphView-CMQkCEwZ.js → web/assets/GraphView-DswvqURL.js
generated
vendored
14
web/assets/GraphView-CMQkCEwZ.js → web/assets/GraphView-DswvqURL.js
generated
vendored
@ -1,11 +1,11 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, u as useExecutionStore, c as computed, a as useSettingStore, b as useWorkflowStore, e as useTitle, o as openBlock, f as createElementBlock, g as useWorkspaceStore, w as watchEffect, h as app, r as resolveDirective, i as withDirectives, v as vShow, j as unref, k as createBlock, n as normalizeStyle, s as showNativeMenu, l as script$d, _ as _export_sfc, m as onMounted, p as onBeforeUnmount, B as BaseStyle, q as script$e, t as getWidth, x as getHeight, y as getOuterWidth, z as getOuterHeight, A as getVNodeProp, C as isArray, D as mergeProps, F as Fragment, E as renderList, G as resolveDynamicComponent, H as createBaseVNode, I as createCommentVNode, J as renderSlot, K as useSidebarTabStore, L as useBottomPanelStore, M as withCtx, N as createVNode, O as getAttribute, P as findSingle, Q as focus, R as equals, S as Ripple, T as normalizeClass, U as getOffset, V as script$f, W as script$g, X as toDisplayString, Y as script$h, Z as markRaw, $ as defineStore, a0 as shallowRef, a1 as useI18n, a2 as useCommandStore, a3 as LiteGraph, a4 as useColorPaletteStore, a5 as watch, a6 as useNodeDefStore, a7 as BadgePosition, a8 as LGraphBadge, a9 as _, aa as NodeBadgeMode, ab as ref, ac as useEventListener, ad as nextTick, ae as st, af as normalizeI18nKey, ag as LGraphGroup, ah as LGraphNode, ai as EditableText, aj as isNotEmpty, ak as UniqueComponentId, al as ZIndex, am as resolveFieldData, an as OverlayEventBus, ao as isEmpty, ap as addStyle, aq as relativePosition, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, au as findLastIndex, av as script$i, aw as script$j, ax as script$k, ay as script$l, az as script$m, aA as script$n, aB as resolveComponent, aC as Transition, aD as createSlots, aE as createTextVNode, aF as useNodeFrequencyStore, aG as useNodeBookmarkStore, aH as highlightQuery, aI as script$o, aJ as formatNumberWithSuffix, aK as NodeSourceType, aL as pushScopeId, aM as popScopeId, aN as NodePreview, aO as NodeSearchFilter, aP as script$p, aQ as SearchFilterChip, aR as useLitegraphService, aS as storeToRefs, aT as isRef, aU as toRaw, aV as LinkReleaseTriggerAction, aW as script$q, aX as useUserStore, aY as useDialogStore, aZ as SettingDialogHeader, a_ as SettingDialogContent, a$ as useKeybindingStore, b0 as Teleport, b1 as LinkMarkerShape, b2 as useModelToNodeStore, b3 as CanvasPointer, b4 as IS_CONTROL_WIDGET, b5 as updateControlWidgetLabel, b6 as useColorPaletteService, b7 as setStorageValue, b8 as api, b9 as usePragmaticDroppable, ba as LGraph, bb as LLink, bc as DragAndScale, bd as LGraphCanvas, be as ContextMenu, bf as ChangeTracker, bg as useWorkflowService, bh as ComfyNodeDefImpl, bi as ComfyModelDef, bj as script$r, bk as script$s, bl as script$t, bm as script$u, bn as script$v, bo as normalizeProps, bp as ToastEventBus, bq as setAttribute, br as TransitionGroup, bs as useToast, bt as useToastStore, bu as resolve, bv as nestedPosition, bw as script$w, bx as isPrintableCharacter, by as useQueueSettingsStore, bz as script$x, bA as useQueuePendingTaskCountStore, bB as useLocalStorage, bC as useDraggable, bD as watchDebounced, bE as inject, bF as useElementBounding, bG as lodashExports, bH as useEventBus, bI as script$z, bJ as guardReactiveProps, bK as useMenuItemStore, bL as usePragmaticDraggable, bM as withModifiers, bN as script$B, bO as script$C, bP as provide, bQ as script$D, bR as useDialogService, bS as LGraphEventMode, bT as useQueueStore, bU as i18n, bV as useModelStore } from "./index-De3LoLTp.js";
|
||||
import { s as script$y } from "./index-Cga7cgPc.js";
|
||||
import { s as script$A } from "./index-UBW0i6QV.js";
|
||||
import { u as useKeybindingService } from "./keybindingService-BlJ-gQG4.js";
|
||||
import { u as useServerConfigStore } from "./serverConfigStore-BuuMHphX.js";
|
||||
import "./index-BwVbIa1-.js";
|
||||
import { d as defineComponent, u as useExecutionStore, c as computed, a as useSettingStore, b as useWorkflowStore, e as useTitle, o as openBlock, f as createElementBlock, g as useWorkspaceStore, w as watchEffect, h as app, r as resolveDirective, i as withDirectives, v as vShow, j as unref, k as createBlock, n as normalizeStyle, s as showNativeMenu, l as script$d, _ as _export_sfc, m as onMounted, p as onBeforeUnmount, B as BaseStyle, q as script$e, t as getWidth, x as getHeight, y as getOuterWidth, z as getOuterHeight, A as getVNodeProp, C as isArray, D as mergeProps, F as Fragment, E as renderList, G as resolveDynamicComponent, H as createBaseVNode, I as createCommentVNode, J as renderSlot, K as useSidebarTabStore, L as useBottomPanelStore, M as withCtx, N as createVNode, O as getAttribute, P as findSingle, Q as focus, R as equals, S as Ripple, T as normalizeClass, U as getOffset, V as script$f, W as script$g, X as toDisplayString, Y as script$h, Z as markRaw, $ as defineStore, a0 as shallowRef, a1 as useI18n, a2 as useCommandStore, a3 as LiteGraph, a4 as useColorPaletteStore, a5 as watch, a6 as useNodeDefStore, a7 as BadgePosition, a8 as LGraphBadge, a9 as _, aa as NodeBadgeMode, ab as ref, ac as useEventListener, ad as nextTick, ae as st, af as normalizeI18nKey, ag as LGraphGroup, ah as LGraphNode, ai as EditableText, aj as isNotEmpty, ak as UniqueComponentId, al as ZIndex, am as resolveFieldData, an as OverlayEventBus, ao as isEmpty, ap as addStyle, aq as relativePosition, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, au as findLastIndex, av as script$i, aw as script$j, ax as script$k, ay as script$l, az as script$m, aA as script$n, aB as resolveComponent, aC as Transition, aD as createSlots, aE as createTextVNode, aF as useNodeFrequencyStore, aG as useNodeBookmarkStore, aH as highlightQuery, aI as script$o, aJ as formatNumberWithSuffix, aK as NodeSourceType, aL as pushScopeId, aM as popScopeId, aN as NodePreview, aO as NodeSearchFilter, aP as script$p, aQ as SearchFilterChip, aR as useLitegraphService, aS as storeToRefs, aT as isRef, aU as toRaw, aV as LinkReleaseTriggerAction, aW as script$q, aX as useUserStore, aY as useDialogStore, aZ as SettingDialogHeader, a_ as SettingDialogContent, a$ as useKeybindingStore, b0 as Teleport, b1 as LinkMarkerShape, b2 as useModelToNodeStore, b3 as CanvasPointer, b4 as IS_CONTROL_WIDGET, b5 as updateControlWidgetLabel, b6 as useColorPaletteService, b7 as setStorageValue, b8 as api, b9 as usePragmaticDroppable, ba as LGraph, bb as LLink, bc as DragAndScale, bd as LGraphCanvas, be as ContextMenu, bf as ChangeTracker, bg as useWorkflowService, bh as ComfyNodeDefImpl, bi as ComfyModelDef, bj as script$r, bk as script$s, bl as script$t, bm as script$u, bn as script$v, bo as normalizeProps, bp as ToastEventBus, bq as setAttribute, br as TransitionGroup, bs as useToast, bt as useToastStore, bu as resolve, bv as nestedPosition, bw as script$w, bx as isPrintableCharacter, by as useQueueSettingsStore, bz as script$x, bA as useQueuePendingTaskCountStore, bB as useLocalStorage, bC as useDraggable, bD as watchDebounced, bE as inject, bF as useElementBounding, bG as lodashExports, bH as useEventBus, bI as script$z, bJ as guardReactiveProps, bK as useMenuItemStore, bL as usePragmaticDraggable, bM as withModifiers, bN as script$B, bO as script$C, bP as provide, bQ as script$D, bR as useDialogService, bS as LGraphEventMode, bT as useQueueStore, bU as i18n, bV as useModelStore } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$y } from "./index-hdfnBvYs.js";
|
||||
import { s as script$A } from "./index-lMQBwSDj.js";
|
||||
import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js";
|
||||
import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js";
|
||||
import "./index-B7ycxfFq.js";
|
||||
const DEFAULT_TITLE = "ComfyUI";
|
||||
const TITLE_SUFFIX = " - ComfyUI";
|
||||
const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
||||
@ -9891,4 +9891,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=GraphView-CMQkCEwZ.js.map
|
||||
//# sourceMappingURL=GraphView-DswvqURL.js.map
|
6
web/assets/InstallView-QxhYK8M7.js → web/assets/InstallView-AV2llYNm.js
generated
vendored
6
web/assets/InstallView-QxhYK8M7.js → web/assets/InstallView-AV2llYNm.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true });
|
||||
import { B as BaseStyle, q as script$6, o as openBlock, f as createElementBlock, D as mergeProps, c1 as findIndexInList, c2 as find, aB as resolveComponent, k as createBlock, G as resolveDynamicComponent, M as withCtx, H as createBaseVNode, X as toDisplayString, J as renderSlot, I as createCommentVNode, T as normalizeClass, P as findSingle, F as Fragment, aC as Transition, i as withDirectives, v as vShow, ak as UniqueComponentId, d as defineComponent, ab as ref, c3 as useModel, N as createVNode, j as unref, c4 as script$7, bQ as script$8, bM as withModifiers, aP as script$9, a1 as useI18n, c as computed, aI as script$a, aE as createTextVNode, c0 as electronAPI, m as onMounted, r as resolveDirective, av as script$b, c5 as script$c, c6 as script$d, l as script$e, bZ as script$f, c7 as MigrationItems, w as watchEffect, E as renderList, c8 as script$g, bW as useRouter, aL as pushScopeId, aM as popScopeId, aU as toRaw, _ as _export_sfc } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$5 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { B as BaseStyle, q as script$6, o as openBlock, f as createElementBlock, D as mergeProps, c1 as findIndexInList, c2 as find, aB as resolveComponent, k as createBlock, G as resolveDynamicComponent, M as withCtx, H as createBaseVNode, X as toDisplayString, J as renderSlot, I as createCommentVNode, T as normalizeClass, P as findSingle, F as Fragment, aC as Transition, i as withDirectives, v as vShow, ak as UniqueComponentId, d as defineComponent, ab as ref, c3 as useModel, N as createVNode, j as unref, c4 as script$7, bQ as script$8, bM as withModifiers, aP as script$9, a1 as useI18n, c as computed, aI as script$a, aE as createTextVNode, c0 as electronAPI, m as onMounted, r as resolveDirective, av as script$b, c5 as script$c, c6 as script$d, l as script$e, bZ as script$f, c7 as MigrationItems, w as watchEffect, E as renderList, c8 as script$g, bW as useRouter, aL as pushScopeId, aM as popScopeId, aU as toRaw, _ as _export_sfc } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$5 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
var classes$4 = {
|
||||
root: /* @__PURE__ */ __name(function root(_ref) {
|
||||
var instance = _ref.instance;
|
||||
@ -1285,4 +1285,4 @@ const InstallView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-
|
||||
export {
|
||||
InstallView as default
|
||||
};
|
||||
//# sourceMappingURL=InstallView-QxhYK8M7.js.map
|
||||
//# sourceMappingURL=InstallView-AV2llYNm.js.map
|
1
web/assets/InstallView-QxhYK8M7.js.map
generated
vendored
1
web/assets/InstallView-QxhYK8M7.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
web/assets/KeybindingPanel-BAf87LRH.js.map
generated
vendored
1
web/assets/KeybindingPanel-BAf87LRH.js.map
generated
vendored
File diff suppressed because one or more lines are too long
12
web/assets/KeybindingPanel-BAf87LRH.js → web/assets/KeybindingPanel-CxaJ1IiJ.js
generated
vendored
12
web/assets/KeybindingPanel-BAf87LRH.js → web/assets/KeybindingPanel-CxaJ1IiJ.js
generated
vendored
@ -1,10 +1,10 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, E as renderList, N as createVNode, M as withCtx, aE as createTextVNode, X as toDisplayString, j as unref, aI as script, I as createCommentVNode, ab as ref, cn as FilterMatchMode, a$ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bs as useToast, r as resolveDirective, k as createBlock, co as SearchBox, H as createBaseVNode, l as script$2, av as script$4, bM as withModifiers, bZ as script$5, aP as script$6, i as withDirectives, cp as _sfc_main$2, aL as pushScopeId, aM as popScopeId, cq as KeyComboImpl, cr as KeybindingImpl, _ as _export_sfc } from "./index-De3LoLTp.js";
|
||||
import { s as script$1, a as script$3 } from "./index-BCSm_DIF.js";
|
||||
import { u as useKeybindingService } from "./keybindingService-BlJ-gQG4.js";
|
||||
import "./index-UBW0i6QV.js";
|
||||
import "./index-BwVbIa1-.js";
|
||||
import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, E as renderList, N as createVNode, M as withCtx, aE as createTextVNode, X as toDisplayString, j as unref, aI as script, I as createCommentVNode, ab as ref, cn as FilterMatchMode, a$ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bs as useToast, r as resolveDirective, k as createBlock, co as SearchBox, H as createBaseVNode, l as script$2, av as script$4, bM as withModifiers, bZ as script$5, aP as script$6, i as withDirectives, cp as _sfc_main$2, aL as pushScopeId, aM as popScopeId, cq as KeyComboImpl, cr as KeybindingImpl, _ as _export_sfc } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$1, a as script$3 } from "./index-CK0rrCYF.js";
|
||||
import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js";
|
||||
import "./index-lMQBwSDj.js";
|
||||
import "./index-B7ycxfFq.js";
|
||||
const _hoisted_1$1 = {
|
||||
key: 0,
|
||||
class: "px-2"
|
||||
@ -281,4 +281,4 @@ const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d
|
||||
export {
|
||||
KeybindingPanel as default
|
||||
};
|
||||
//# sourceMappingURL=KeybindingPanel-BAf87LRH.js.map
|
||||
//# sourceMappingURL=KeybindingPanel-CxaJ1IiJ.js.map
|
@ -1,9 +1,9 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, a1 as useI18n, ab as ref, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, aI as script, l as script$2, c0 as electronAPI } from "./index-De3LoLTp.js";
|
||||
import { s as script$1 } from "./index-Cga7cgPc.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import "./index-BwVbIa1-.js";
|
||||
import { d as defineComponent, a1 as useI18n, ab as ref, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, aI as script, l as script$2, c0 as electronAPI } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$1 } from "./index-hdfnBvYs.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
import "./index-B7ycxfFq.js";
|
||||
const _hoisted_1 = { class: "comfy-installer grow flex flex-col gap-4 text-neutral-300 max-w-110" };
|
||||
const _hoisted_2 = { class: "text-2xl font-semibold text-neutral-100" };
|
||||
const _hoisted_3 = { class: "m-1 text-neutral-300" };
|
||||
@ -72,4 +72,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=ManualConfigurationView-BzOtCClW.js.map
|
||||
//# sourceMappingURL=ManualConfigurationView-BA4Vtud8.js.map
|
1
web/assets/ManualConfigurationView-BzOtCClW.js.map
generated
vendored
1
web/assets/ManualConfigurationView-BzOtCClW.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"ManualConfigurationView-BzOtCClW.js","sources":["../../src/views/ManualConfigurationView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark>\n <!-- Installation Path Section -->\n <div\n class=\"comfy-installer grow flex flex-col gap-4 text-neutral-300 max-w-110\"\n >\n <h2 class=\"text-2xl font-semibold text-neutral-100\">\n {{ $t('install.manualConfiguration.title') }}\n </h2>\n\n <p class=\"m-1 text-neutral-300\">\n <Tag\n icon=\"pi pi-exclamation-triangle\"\n severity=\"warn\"\n :value=\"t('icon.exclamation-triangle')\"\n ></Tag>\n <strong class=\"ml-2\">{{\n $t('install.gpuSelection.customComfyNeedsPython')\n }}</strong>\n </p>\n\n <div>\n <p class=\"m-1 mb-4\">\n {{ $t('install.manualConfiguration.requirements') }}:\n </p>\n <ul class=\"m-0\">\n <li>{{ $t('install.gpuSelection.customManualVenv') }}</li>\n <li>{{ $t('install.gpuSelection.customInstallRequirements') }}</li>\n </ul>\n </div>\n\n <p class=\"m-1\">{{ $t('install.manualConfiguration.createVenv') }}:</p>\n\n <Panel :header=\"t('install.manualConfiguration.virtualEnvironmentPath')\">\n <span class=\"font-mono\">{{ `${basePath}${sep}.venv${sep}` }}</span>\n </Panel>\n\n <p class=\"m-1\">\n {{ $t('install.manualConfiguration.restartWhenFinished') }}\n </p>\n\n <Button\n class=\"place-self-end\"\n :label=\"t('menuLabels.Restart')\"\n severity=\"warn\"\n icon=\"pi pi-refresh\"\n @click=\"restartApp('Manual configuration complete')\"\n />\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport Panel from 'primevue/panel'\nimport Tag from 'primevue/tag'\nimport { onMounted, ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport { electronAPI } from '@/utils/envUtil'\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst { t } = useI18n()\n\nconst electron = electronAPI()\n\nconst basePath = ref<string>(null)\nconst sep = ref<'\\\\' | '/'>('/')\n\nconst restartApp = (message?: string) => electron.restartApp(message)\n\nonMounted(async () => {\n basePath.value = await electron.getBasePath()\n if (basePath.value.indexOf('/') === -1) sep.value = '\\\\'\n})\n</script>\n\n<style>\n:root {\n --p-tag-gap: 0.5rem;\n}\n\n.comfy-installer {\n margin-top: max(1rem, max(0px, calc((100vh - 42rem) * 0.5)));\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA8DM,UAAA,EAAE,MAAM;AAEd,UAAM,WAAW;AAEX,UAAA,WAAW,IAAY,IAAI;AAC3B,UAAA,MAAM,IAAgB,GAAG;AAE/B,UAAM,aAAa,wBAAC,YAAqB,SAAS,WAAW,OAAO,GAAjD;AAEnB,cAAU,YAAY;AACX,eAAA,QAAQ,MAAM,SAAS,YAAY;AAC5C,UAAI,SAAS,MAAM,QAAQ,GAAG,MAAM,QAAQ,QAAQ;AAAA,IAAA,CACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
1
web/assets/NotSupportedView-CB0a8PqQ.js.map
generated
vendored
1
web/assets/NotSupportedView-CB0a8PqQ.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"NotSupportedView-CB0a8PqQ.js","sources":["../../../../../../../assets/images/sad_girl.png","../../src/views/NotSupportedView.vue"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__b82952e7__\"","<template>\n <BaseViewTemplate>\n <div class=\"sad-container\">\n <!-- Right side image -->\n <img\n class=\"sad-girl\"\n src=\"/assets/images/sad_girl.png\"\n alt=\"Sad girl illustration\"\n />\n\n <div class=\"no-drag sad-text flex items-center\">\n <div class=\"flex flex-col gap-8 p-8 min-w-110\">\n <!-- Header -->\n <h1 class=\"text-4xl font-bold text-red-500\">\n {{ $t('notSupported.title') }}\n </h1>\n\n <!-- Message -->\n <div class=\"space-y-4\">\n <p class=\"text-xl\">\n {{ $t('notSupported.message') }}\n </p>\n <ul class=\"list-disc list-inside space-y-1 text-neutral-800\">\n <li>{{ $t('notSupported.supportedDevices.macos') }}</li>\n <li>{{ $t('notSupported.supportedDevices.windows') }}</li>\n </ul>\n </div>\n\n <!-- Actions -->\n <div class=\"flex gap-4\">\n <Button\n :label=\"$t('notSupported.learnMore')\"\n icon=\"pi pi-github\"\n @click=\"openDocs\"\n severity=\"secondary\"\n />\n <Button\n :label=\"$t('notSupported.reportIssue')\"\n icon=\"pi pi-flag\"\n @click=\"reportIssue\"\n severity=\"secondary\"\n />\n <Button\n :label=\"$t('notSupported.continue')\"\n icon=\"pi pi-arrow-right\"\n iconPos=\"right\"\n @click=\"continueToInstall\"\n severity=\"danger\"\n v-tooltip=\"$t('notSupported.continueTooltip')\"\n />\n </div>\n </div>\n </div>\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport { useRouter } from 'vue-router'\n\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst openDocs = () => {\n window.open(\n 'https://github.com/Comfy-Org/desktop#currently-supported-platforms',\n '_blank'\n )\n}\n\nconst reportIssue = () => {\n window.open('https://forum.comfy.org/c/v1-feedback/', '_blank')\n}\n\nconst router = useRouter()\nconst continueToInstall = () => {\n router.push('/install')\n}\n</script>\n\n<style>\n.sad-container {\n @apply grid items-center justify-evenly;\n grid-template-columns: 25rem 1fr;\n\n & > * {\n grid-row: 1;\n }\n}\n\n.sad-text {\n grid-column: 1/3;\n}\n\n.sad-girl {\n grid-column: 2/3;\n width: min(75vw, 100vh);\n}\n</style>\n"],"names":[],"mappings":";;;;AAAA,MAAe,aAAA,KAAA,IAAA,IAAA,uBAAA,YAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;AC+Df,UAAM,WAAW,6BAAM;AACd,aAAA;AAAA,QACL;AAAA,QACA;AAAA,MAAA;AAAA,IACF,GAJe;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAIpB,UAAM,SAAS;AACf,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IAAA,GADE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
6
web/assets/NotSupportedView-CB0a8PqQ.js → web/assets/NotSupportedView-CRaD8u74.js
generated
vendored
6
web/assets/NotSupportedView-CB0a8PqQ.js → web/assets/NotSupportedView-CRaD8u74.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, bW as useRouter, r as resolveDirective, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, i as withDirectives } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { d as defineComponent, bW as useRouter, r as resolveDirective, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, i as withDirectives } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
const _imports_0 = "" + new URL("images/sad_girl.png", import.meta.url).href;
|
||||
const _hoisted_1 = { class: "sad-container" };
|
||||
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("img", {
|
||||
@ -83,4 +83,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=NotSupportedView-CB0a8PqQ.js.map
|
||||
//# sourceMappingURL=NotSupportedView-CRaD8u74.js.map
|
1
web/assets/ServerConfigPanel-CB49rPGd.js.map
generated
vendored
1
web/assets/ServerConfigPanel-CB49rPGd.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"ServerConfigPanel-CB49rPGd.js","sources":["../../src/components/dialog/content/setting/ServerConfigPanel.vue"],"sourcesContent":["<template>\n <PanelTemplate value=\"Server-Config\" class=\"server-config-panel\">\n <template #header>\n <div class=\"flex flex-col gap-2\">\n <Message\n v-if=\"modifiedConfigs.length > 0\"\n severity=\"info\"\n pt:text=\"w-full\"\n >\n <p>\n {{ $t('serverConfig.modifiedConfigs') }}\n </p>\n <ul>\n <li v-for=\"config in modifiedConfigs\" :key=\"config.id\">\n {{ config.name }}: {{ config.initialValue }} → {{ config.value }}\n </li>\n </ul>\n <div class=\"flex justify-end gap-2\">\n <Button\n :label=\"$t('serverConfig.revertChanges')\"\n @click=\"revertChanges\"\n outlined\n />\n <Button\n :label=\"$t('serverConfig.restart')\"\n @click=\"restartApp\"\n outlined\n severity=\"danger\"\n />\n </div>\n </Message>\n <Message v-if=\"commandLineArgs\" severity=\"secondary\" pt:text=\"w-full\">\n <template #icon>\n <i-lucide:terminal class=\"text-xl font-bold\" />\n </template>\n <div class=\"flex items-center justify-between\">\n <p>{{ commandLineArgs }}</p>\n <Button\n icon=\"pi pi-clipboard\"\n @click=\"copyCommandLineArgs\"\n severity=\"secondary\"\n text\n />\n </div>\n </Message>\n </div>\n </template>\n <div\n v-for=\"([label, items], i) in Object.entries(serverConfigsByCategory)\"\n :key=\"label\"\n >\n <Divider v-if=\"i > 0\" />\n <h3>{{ $t(`serverConfigCategories.${label}`, label) }}</h3>\n <div v-for=\"item in items\" :key=\"item.name\" class=\"mb-4\">\n <FormItem\n :item=\"translateItem(item)\"\n v-model:formValue=\"item.value\"\n :id=\"item.id\"\n :labelClass=\"{\n 'text-highlight': item.initialValue !== item.value\n }\"\n />\n </div>\n </div>\n </PanelTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport { storeToRefs } from 'pinia'\nimport Button from 'primevue/button'\nimport Divider from 'primevue/divider'\nimport Message from 'primevue/message'\nimport { watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport FormItem from '@/components/common/FormItem.vue'\nimport type { ServerConfig } from '@/constants/serverConfig'\nimport { useCopyToClipboard } from '@/hooks/clipboardHooks'\nimport { useServerConfigStore } from '@/stores/serverConfigStore'\nimport { useSettingStore } from '@/stores/settingStore'\nimport type { FormItem as FormItemType } from '@/types/settingTypes'\nimport { electronAPI } from '@/utils/envUtil'\n\nimport PanelTemplate from './PanelTemplate.vue'\n\nconst settingStore = useSettingStore()\nconst serverConfigStore = useServerConfigStore()\nconst {\n serverConfigsByCategory,\n serverConfigValues,\n launchArgs,\n commandLineArgs,\n modifiedConfigs\n} = storeToRefs(serverConfigStore)\n\nconst revertChanges = () => {\n serverConfigStore.revertChanges()\n}\n\nconst restartApp = () => {\n electronAPI().restartApp()\n}\n\nwatch(launchArgs, (newVal) => {\n settingStore.set('Comfy.Server.LaunchArgs', newVal)\n})\n\nwatch(serverConfigValues, (newVal) => {\n settingStore.set('Comfy.Server.ServerConfigValues', newVal)\n})\n\nconst { copyToClipboard } = useCopyToClipboard()\nconst copyCommandLineArgs = async () => {\n await copyToClipboard(commandLineArgs.value)\n}\n\nconst { t } = useI18n()\nconst translateItem = (item: ServerConfig<any>): FormItemType => {\n return {\n ...item,\n name: t(`serverConfigItems.${item.id}.name`, item.name),\n tooltip: item.tooltip\n ? t(`serverConfigItems.${item.id}.tooltip`, item.tooltip)\n : undefined\n }\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,UAAM,eAAe;AACrB,UAAM,oBAAoB;AACpB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAAA,GADZ;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc;IAAW,GADR;AAIb,UAAA,YAAY,CAAC,WAAW;AACf,mBAAA,IAAI,2BAA2B,MAAM;AAAA,IAAA,CACnD;AAEK,UAAA,oBAAoB,CAAC,WAAW;AACvB,mBAAA,IAAI,mCAAmC,MAAM;AAAA,IAAA,CAC3D;AAEK,UAAA,EAAE,oBAAoB;AAC5B,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAAA,GADjB;AAItB,UAAA,EAAE,MAAM;AACR,UAAA,gBAAgB,wBAAC,SAA0C;AACxD,aAAA;AAAA,QACL,GAAG;AAAA,QACH,MAAM,EAAE,qBAAqB,KAAK,EAAE,SAAS,KAAK,IAAI;AAAA,QACtD,SAAS,KAAK,UACV,EAAE,qBAAqB,KAAK,EAAE,YAAY,KAAK,OAAO,IACtD;AAAA,MAAA;AAAA,IACN,GAPoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
6
web/assets/ServerConfigPanel-CB49rPGd.js → web/assets/ServerConfigPanel-TLv4HMGK.js
generated
vendored
6
web/assets/ServerConfigPanel-CB49rPGd.js → web/assets/ServerConfigPanel-TLv4HMGK.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { H as createBaseVNode, o as openBlock, f as createElementBlock, Z as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a5 as watch, cO as useCopyToClipboard, a1 as useI18n, k as createBlock, M as withCtx, j as unref, bZ as script, X as toDisplayString, E as renderList, F as Fragment, N as createVNode, l as script$1, I as createCommentVNode, bQ as script$2, cP as FormItem, cp as _sfc_main$1, c0 as electronAPI } from "./index-De3LoLTp.js";
|
||||
import { u as useServerConfigStore } from "./serverConfigStore-BuuMHphX.js";
|
||||
import { H as createBaseVNode, o as openBlock, f as createElementBlock, Z as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a5 as watch, cO as useCopyToClipboard, a1 as useI18n, k as createBlock, M as withCtx, j as unref, bZ as script, X as toDisplayString, E as renderList, F as Fragment, N as createVNode, l as script$1, I as createCommentVNode, bQ as script$2, cP as FormItem, cp as _sfc_main$1, c0 as electronAPI } from "./index-C4Fk50Nx.js";
|
||||
import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js";
|
||||
const _hoisted_1$1 = {
|
||||
viewBox: "0 0 24 24",
|
||||
width: "1.2em",
|
||||
@ -155,4 +155,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=ServerConfigPanel-CB49rPGd.js.map
|
||||
//# sourceMappingURL=ServerConfigPanel-TLv4HMGK.js.map
|
6
web/assets/ServerStartView-JzBhx-L8.js → web/assets/ServerStartView-CiO_acWT.js
generated
vendored
6
web/assets/ServerStartView-JzBhx-L8.js → web/assets/ServerStartView-CiO_acWT.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, a1 as useI18n, ab as ref, b_ as ProgressStatus, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, aE as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, I as createCommentVNode, N as createVNode, l as script, i as withDirectives, v as vShow, b$ as BaseTerminal, aL as pushScopeId, aM as popScopeId, c0 as electronAPI, _ as _export_sfc } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { d as defineComponent, a1 as useI18n, ab as ref, b_ as ProgressStatus, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, aE as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, I as createCommentVNode, N as createVNode, l as script, i as withDirectives, v as vShow, b$ as BaseTerminal, aL as pushScopeId, aM as popScopeId, c0 as electronAPI, _ as _export_sfc } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-42c1131d"), n = n(), popScopeId(), n), "_withScopeId");
|
||||
const _hoisted_1 = { class: "text-2xl font-bold" };
|
||||
const _hoisted_2 = { key: 0 };
|
||||
@ -95,4 +95,4 @@ const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d
|
||||
export {
|
||||
ServerStartView as default
|
||||
};
|
||||
//# sourceMappingURL=ServerStartView-JzBhx-L8.js.map
|
||||
//# sourceMappingURL=ServerStartView-CiO_acWT.js.map
|
1
web/assets/ServerStartView-JzBhx-L8.js.map
generated
vendored
1
web/assets/ServerStartView-JzBhx-L8.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"ServerStartView-JzBhx-L8.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark class=\"flex-col\">\n <h2 class=\"text-2xl font-bold\">\n {{ t(`serverStart.process.${status}`) }}\n <span v-if=\"status === ProgressStatus.ERROR\">\n v{{ electronVersion }}\n </span>\n </h2>\n <div\n v-if=\"status === ProgressStatus.ERROR\"\n class=\"flex flex-col items-center gap-4\"\n >\n <div class=\"flex items-center my-4 gap-2\">\n <Button\n icon=\"pi pi-flag\"\n severity=\"secondary\"\n :label=\"t('serverStart.reportIssue')\"\n @click=\"reportIssue\"\n />\n <Button\n icon=\"pi pi-file\"\n severity=\"secondary\"\n :label=\"t('serverStart.openLogs')\"\n @click=\"openLogs\"\n />\n <Button\n icon=\"pi pi-refresh\"\n :label=\"t('serverStart.reinstall')\"\n @click=\"reinstall\"\n />\n </div>\n <Button\n v-if=\"!terminalVisible\"\n icon=\"pi pi-search\"\n severity=\"secondary\"\n :label=\"t('serverStart.showTerminal')\"\n @click=\"terminalVisible = true\"\n />\n </div>\n <BaseTerminal v-show=\"terminalVisible\" @created=\"terminalCreated\" />\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport { ProgressStatus } from '@comfyorg/comfyui-electron-types'\nimport { Terminal } from '@xterm/xterm'\nimport Button from 'primevue/button'\nimport { Ref, onMounted, ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport BaseTerminal from '@/components/bottomPanel/tabs/terminal/BaseTerminal.vue'\nimport type { useTerminal } from '@/hooks/bottomPanelTabs/useTerminal'\nimport { electronAPI } from '@/utils/envUtil'\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst electron = electronAPI()\nconst { t } = useI18n()\n\nconst status = ref<ProgressStatus>(ProgressStatus.INITIAL_STATE)\nconst electronVersion = ref<string>('')\nlet xterm: Terminal | undefined\n\nconst terminalVisible = ref(true)\n\nconst updateProgress = ({ status: newStatus }: { status: ProgressStatus }) => {\n status.value = newStatus\n\n // Make critical error screen more obvious.\n if (newStatus === ProgressStatus.ERROR) terminalVisible.value = false\n else xterm?.clear()\n}\n\nconst terminalCreated = (\n { terminal, useAutoSize }: ReturnType<typeof useTerminal>,\n root: Ref<HTMLElement>\n) => {\n xterm = terminal\n\n useAutoSize(root, true, true)\n electron.onLogMessage((message: string) => {\n terminal.write(message)\n })\n\n terminal.options.cursorBlink = false\n terminal.options.disableStdin = true\n terminal.options.cursorInactiveStyle = 'block'\n}\n\nconst reinstall = () => electron.reinstall()\nconst reportIssue = () => {\n window.open('https://forum.comfy.org/c/v1-feedback/', '_blank')\n}\nconst openLogs = () => electron.openLogsFolder()\n\nonMounted(async () => {\n electron.sendReady()\n electron.onProgressUpdate(updateProgress)\n electronVersion.value = await electron.getElectronVersion()\n})\n</script>\n\n<style scoped>\n:deep(.xterm-helper-textarea) {\n /* Hide this as it moves all over when uv is running */\n display: none;\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuDA,UAAM,WAAW;AACX,UAAA,EAAE,MAAM;AAER,UAAA,SAAS,IAAoB,eAAe,aAAa;AACzD,UAAA,kBAAkB,IAAY,EAAE;AAClC,QAAA;AAEE,UAAA,kBAAkB,IAAI,IAAI;AAEhC,UAAM,iBAAiB,wBAAC,EAAE,QAAQ,gBAA4C;AAC5E,aAAO,QAAQ;AAGf,UAAI,cAAc,eAAe,MAAO,iBAAgB,QAAQ;AAAA,kBACpD,MAAM;AAAA,IAAA,GALG;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAEI,kBAAA,MAAM,MAAM,IAAI;AACnB,eAAA,aAAa,CAAC,YAAoB;AACzC,iBAAS,MAAM,OAAO;AAAA,MAAA,CACvB;AAED,eAAS,QAAQ,cAAc;AAC/B,eAAS,QAAQ,eAAe;AAChC,eAAS,QAAQ,sBAAsB;AAAA,IAAA,GAbjB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,aAAf;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAGd,UAAA,WAAW,6BAAM,SAAS,kBAAf;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
6
web/assets/UserSelectView-BtMsxeSh.js → web/assets/UserSelectView-2l9Kbchu.js
generated
vendored
6
web/assets/UserSelectView-BtMsxeSh.js → web/assets/UserSelectView-2l9Kbchu.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, aX as useUserStore, bW as useRouter, ab as ref, c as computed, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, bX as withKeys, j as unref, av as script, bQ as script$1, bY as script$2, bZ as script$3, aE as createTextVNode, I as createCommentVNode, l as script$4 } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { d as defineComponent, aX as useUserStore, bW as useRouter, ab as ref, c as computed, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, bX as withKeys, j as unref, av as script, bQ as script$1, bY as script$2, bZ as script$3, aE as createTextVNode, I as createCommentVNode, l as script$4 } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
const _hoisted_1 = {
|
||||
id: "comfy-user-selection",
|
||||
class: "min-w-84 relative rounded-lg bg-[var(--comfy-menu-bg)] p-5 px-10 shadow-lg"
|
||||
@ -99,4 +99,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=UserSelectView-BtMsxeSh.js.map
|
||||
//# sourceMappingURL=UserSelectView-2l9Kbchu.js.map
|
1
web/assets/UserSelectView-BtMsxeSh.js.map
generated
vendored
1
web/assets/UserSelectView-BtMsxeSh.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"UserSelectView-BtMsxeSh.js","sources":["../../src/views/UserSelectView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark>\n <main\n id=\"comfy-user-selection\"\n class=\"min-w-84 relative rounded-lg bg-[var(--comfy-menu-bg)] p-5 px-10 shadow-lg\"\n >\n <h1 class=\"my-2.5 mb-7 font-normal\">ComfyUI</h1>\n <div class=\"flex w-full flex-col items-center\">\n <div class=\"flex w-full flex-col gap-2\">\n <label for=\"new-user-input\">{{ $t('userSelect.newUser') }}:</label>\n <InputText\n id=\"new-user-input\"\n v-model=\"newUsername\"\n :placeholder=\"$t('userSelect.enterUsername')\"\n @keyup.enter=\"login\"\n />\n </div>\n <Divider />\n <div class=\"flex w-full flex-col gap-2\">\n <label for=\"existing-user-select\"\n >{{ $t('userSelect.existingUser') }}:</label\n >\n <Select\n v-model=\"selectedUser\"\n class=\"w-full\"\n inputId=\"existing-user-select\"\n :options=\"userStore.users\"\n option-label=\"username\"\n :placeholder=\"$t('userSelect.selectUser')\"\n :disabled=\"createNewUser\"\n />\n <Message v-if=\"error\" severity=\"error\">{{ error }}</Message>\n </div>\n <footer class=\"mt-5\">\n <Button :label=\"$t('userSelect.next')\" @click=\"login\" />\n </footer>\n </div>\n </main>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport Divider from 'primevue/divider'\nimport InputText from 'primevue/inputtext'\nimport Message from 'primevue/message'\nimport Select from 'primevue/select'\nimport { computed, onMounted, ref } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { User, useUserStore } from '@/stores/userStore'\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst userStore = useUserStore()\nconst router = useRouter()\n\nconst selectedUser = ref<User | null>(null)\nconst newUsername = ref('')\nconst loginError = ref('')\n\nconst createNewUser = computed(() => newUsername.value.trim() !== '')\nconst newUserExistsError = computed(() => {\n return userStore.users.find((user) => user.username === newUsername.value)\n ? `User \"${newUsername.value}\" already exists`\n : ''\n})\nconst error = computed(() => newUserExistsError.value || loginError.value)\n\nconst login = async () => {\n try {\n const user = createNewUser.value\n ? await userStore.createUser(newUsername.value)\n : selectedUser.value\n\n if (!user) {\n throw new Error('No user selected')\n }\n\n userStore.login(user)\n router.push('/')\n } catch (err) {\n loginError.value = err.message ?? JSON.stringify(err)\n }\n}\n\nonMounted(async () => {\n if (!userStore.initialized) {\n await userStore.initialize()\n }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqDA,UAAM,YAAY;AAClB,UAAM,SAAS;AAET,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,KAAA,MAAW,EAAE;AAC9D,UAAA,qBAAqB,SAAS,MAAM;AACxC,aAAO,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,aAAa,YAAY,KAAK,IACrE,SAAS,YAAY,KAAK,qBAC1B;AAAA,IAAA,CACL;AACD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,WAAW,KAAK;AAEzE,UAAM,QAAQ,mCAAY;AACpB,UAAA;AACI,cAAA,OAAO,cAAc,QACvB,MAAM,UAAU,WAAW,YAAY,KAAK,IAC5C,aAAa;AAEjB,YAAI,CAAC,MAAM;AACH,gBAAA,IAAI,MAAM,kBAAkB;AAAA,QACpC;AAEA,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MACtD;AAAA,IAAA,GAdY;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU;MAClB;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
6
web/assets/WelcomeView-D3kWu7Yf.js → web/assets/WelcomeView-CB7Th_kO.js
generated
vendored
6
web/assets/WelcomeView-D3kWu7Yf.js → web/assets/WelcomeView-CB7Th_kO.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { d as defineComponent, bW as useRouter, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, aL as pushScopeId, aM as popScopeId, _ as _export_sfc } from "./index-De3LoLTp.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BklhdMAh.js";
|
||||
import { d as defineComponent, bW as useRouter, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, aL as pushScopeId, aM as popScopeId, _ as _export_sfc } from "./index-C4Fk50Nx.js";
|
||||
import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js";
|
||||
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-7dfaf74c"), n = n(), popScopeId(), n), "_withScopeId");
|
||||
const _hoisted_1 = { class: "flex flex-col items-center justify-center gap-8 p-8" };
|
||||
const _hoisted_2 = { class: "animated-gradient-text text-glow select-none" };
|
||||
@ -37,4 +37,4 @@ const WelcomeView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-
|
||||
export {
|
||||
WelcomeView as default
|
||||
};
|
||||
//# sourceMappingURL=WelcomeView-D3kWu7Yf.js.map
|
||||
//# sourceMappingURL=WelcomeView-CB7Th_kO.js.map
|
1
web/assets/WelcomeView-D3kWu7Yf.js.map
generated
vendored
1
web/assets/WelcomeView-D3kWu7Yf.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"WelcomeView-D3kWu7Yf.js","sources":["../../src/views/WelcomeView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark>\n <div class=\"flex flex-col items-center justify-center gap-8 p-8\">\n <!-- Header -->\n <h1 class=\"animated-gradient-text text-glow select-none\">\n {{ $t('welcome.title') }}\n </h1>\n\n <!-- Get Started Button -->\n <Button\n :label=\"$t('welcome.getStarted')\"\n icon=\"pi pi-arrow-right\"\n iconPos=\"right\"\n size=\"large\"\n rounded\n @click=\"navigateTo('/install')\"\n class=\"p-4 text-lg fade-in-up\"\n />\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport { useRouter } from 'vue-router'\n\nimport BaseViewTemplate from '@/views/templates/BaseViewTemplate.vue'\n\nconst router = useRouter()\nconst navigateTo = (path: string) => {\n router.push(path)\n}\n</script>\n\n<style scoped>\n.animated-gradient-text {\n @apply font-bold;\n font-size: clamp(2rem, 8vw, 4rem);\n background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59, #12c2e9);\n background-size: 300% auto;\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n animation: gradient 8s linear infinite;\n}\n\n.text-glow {\n filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.3));\n}\n\n@keyframes gradient {\n 0% {\n background-position: 0% center;\n }\n\n 100% {\n background-position: 300% center;\n }\n}\n\n.fade-in-up {\n animation: fadeInUp 1.5s ease-out;\n animation-fill-mode: both;\n}\n\n@keyframes fadeInUp {\n 0% {\n opacity: 0;\n transform: translateY(20px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;AA4BA,UAAM,SAAS;AACT,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAAA,GADC;;;;;;;;;;;;;;;;;;;;;;;"}
|
33
web/assets/index-qpNewm3I.js → web/assets/index-5Sv744Dr.js
generated
vendored
33
web/assets/index-qpNewm3I.js → web/assets/index-5Sv744Dr.js
generated
vendored
@ -1,6 +1,6 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { ca as ComfyDialog, cb as $el, cc as ComfyApp, h as app, a3 as LiteGraph, bd as LGraphCanvas, cd as useExtensionService, ce as processDynamicPrompt, cf as isElectron, c0 as electronAPI, bR as useDialogService, cg as t, ch as DraggableList, bt as useToastStore, ah as LGraphNode, ci as applyTextReplacements, cj as ComfyWidgets, ck as addValueControlWidgets, a6 as useNodeDefStore, cl as serialise, cm as deserialiseAndCreate, b8 as api, a as useSettingStore, ag as LGraphGroup, ad as nextTick } from "./index-De3LoLTp.js";
|
||||
import { ca as ComfyDialog, cb as $el, cc as ComfyApp, h as app, a3 as LiteGraph, bd as LGraphCanvas, cd as useExtensionService, ce as processDynamicPrompt, cf as isElectron, c0 as electronAPI, bR as useDialogService, cg as t, ch as DraggableList, bt as useToastStore, ah as LGraphNode, ci as applyTextReplacements, cj as ComfyWidgets, ck as addValueControlWidgets, a6 as useNodeDefStore, cl as serialise, cm as deserialiseAndCreate, b8 as api, a as useSettingStore, ag as LGraphGroup, ad as nextTick } from "./index-C4Fk50Nx.js";
|
||||
class ClipspaceDialog extends ComfyDialog {
|
||||
static {
|
||||
__name(this, "ClipspaceDialog");
|
||||
@ -52403,11 +52403,11 @@ app.registerExtension({
|
||||
if (!this.properties) {
|
||||
this.properties = { text: "" };
|
||||
}
|
||||
ComfyWidgets.MARKDOWN(
|
||||
ComfyWidgets.STRING(
|
||||
// Should we extends LGraphNode? Yesss
|
||||
this,
|
||||
"",
|
||||
["", { default: this.properties.text }],
|
||||
["", { default: this.properties.text, multiline: true }],
|
||||
app
|
||||
);
|
||||
this.serialize_widgets = true;
|
||||
@ -52423,6 +52423,31 @@ app.registerExtension({
|
||||
})
|
||||
);
|
||||
NoteNode.category = "utils";
|
||||
class MarkdownNoteNode extends LGraphNode {
|
||||
static {
|
||||
__name(this, "MarkdownNoteNode");
|
||||
}
|
||||
static title = "Markdown Note";
|
||||
color = LGraphCanvas.node_colors.yellow.color;
|
||||
bgcolor = LGraphCanvas.node_colors.yellow.bgcolor;
|
||||
groupcolor = LGraphCanvas.node_colors.yellow.groupcolor;
|
||||
constructor(title) {
|
||||
super(title);
|
||||
if (!this.properties) {
|
||||
this.properties = { text: "" };
|
||||
}
|
||||
ComfyWidgets.MARKDOWN(
|
||||
this,
|
||||
"",
|
||||
["", { default: this.properties.text }],
|
||||
app
|
||||
);
|
||||
this.serialize_widgets = true;
|
||||
this.isVirtualNode = true;
|
||||
}
|
||||
}
|
||||
LiteGraph.registerNodeType("MarkdownNote", MarkdownNoteNode);
|
||||
MarkdownNoteNode.category = "utils";
|
||||
}
|
||||
});
|
||||
app.registerExtension({
|
||||
@ -53186,4 +53211,4 @@ app.registerExtension({
|
||||
});
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=index-qpNewm3I.js.map
|
||||
//# sourceMappingURL=index-5Sv744Dr.js.map
|
4
web/assets/index-BwVbIa1-.js → web/assets/index-B7ycxfFq.js
generated
vendored
4
web/assets/index-BwVbIa1-.js → web/assets/index-B7ycxfFq.js
generated
vendored
@ -1,6 +1,6 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-De3LoLTp.js";
|
||||
import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-C4Fk50Nx.js";
|
||||
var script = {
|
||||
name: "PlusIcon",
|
||||
"extends": script$1
|
||||
@ -24,4 +24,4 @@ script.render = render;
|
||||
export {
|
||||
script as s
|
||||
};
|
||||
//# sourceMappingURL=index-BwVbIa1-.js.map
|
||||
//# sourceMappingURL=index-B7ycxfFq.js.map
|
1
web/assets/index-BCSm_DIF.js.map
generated
vendored
1
web/assets/index-BCSm_DIF.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
web/assets/index-BwVbIa1-.js.map
generated
vendored
1
web/assets/index-BwVbIa1-.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"index-BwVbIa1-.js","sources":["../../node_modules/@primevue/icons/plus/index.mjs"],"sourcesContent":["import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'PlusIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["BaseIcon","createElementVNode"],"mappings":";;;AAGG,IAAC,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWA;AACb;AAEA,IAAI,aAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI,aAAa,CAAC,UAAU;AAC5B,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAG,YAAY,EAAE;AAChC;AARS;AAUT,OAAO,SAAS;","x_google_ignoreList":[0]}
|
54
web/assets/index-De3LoLTp.js → web/assets/index-C4Fk50Nx.js
generated
vendored
54
web/assets/index-De3LoLTp.js → web/assets/index-C4Fk50Nx.js
generated
vendored
@ -1,4 +1,4 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphView-CMQkCEwZ.js","./index-Cga7cgPc.js","./index-BwVbIa1-.js","./index-UBW0i6QV.js","./keybindingService-BlJ-gQG4.js","./serverConfigStore-BuuMHphX.js","./GraphView-CIRWBKTm.css","./UserSelectView-BtMsxeSh.js","./BaseViewTemplate-BklhdMAh.js","./ServerStartView-JzBhx-L8.js","./ServerStartView-CnyN4Ib6.css","./InstallView-QxhYK8M7.js","./InstallView-CwQdoH-C.css","./WelcomeView-D3kWu7Yf.js","./WelcomeView-Brz3-luE.css","./NotSupportedView-CB0a8PqQ.js","./NotSupportedView-bFzHmqNj.css","./DownloadGitView-DgH7MV_l.js","./ManualConfigurationView-BzOtCClW.js","./ManualConfigurationView-B6ecEClB.css","./KeybindingPanel-BAf87LRH.js","./index-BCSm_DIF.js","./KeybindingPanel-DvrUYZ4S.css","./ExtensionPanel-DI1v0QVi.js","./ServerConfigPanel-CB49rPGd.js","./index-qpNewm3I.js","./index-BRhY6FpL.css"])))=>i.map(i=>d[i]);
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphView-DswvqURL.js","./index-hdfnBvYs.js","./index-B7ycxfFq.js","./index-lMQBwSDj.js","./keybindingService-D48fkLBy.js","./serverConfigStore-BawYAb1j.js","./GraphView-CIRWBKTm.css","./UserSelectView-2l9Kbchu.js","./BaseViewTemplate-CsEJhGbv.js","./ServerStartView-CiO_acWT.js","./ServerStartView-CnyN4Ib6.css","./InstallView-AV2llYNm.js","./InstallView-CwQdoH-C.css","./WelcomeView-CB7Th_kO.js","./WelcomeView-Brz3-luE.css","./NotSupportedView-CRaD8u74.js","./NotSupportedView-bFzHmqNj.css","./DownloadGitView-DP1MIWYX.js","./ManualConfigurationView-BA4Vtud8.js","./ManualConfigurationView-B6ecEClB.css","./KeybindingPanel-CxaJ1IiJ.js","./index-CK0rrCYF.js","./KeybindingPanel-DvrUYZ4S.css","./ExtensionPanel-CxijYN47.js","./ServerConfigPanel-TLv4HMGK.js","./index-5Sv744Dr.js","./index-BRhY6FpL.css"])))=>i.map(i=>d[i]);
|
||||
var __defProp2 = Object.defineProperty;
|
||||
var __name = (target, value4) => __defProp2(target, "name", { value: value4, configurable: true });
|
||||
(/* @__PURE__ */ __name(function polyfill() {
|
||||
@ -38973,8 +38973,8 @@ class LGraphCanvas {
|
||||
const ratio = window.devicePixelRatio;
|
||||
ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
|
||||
const x2 = eDown.safeOffsetX;
|
||||
const y2 = eDown.safeOffsetX;
|
||||
ctx.strokeRect(x2, y2, eMove.safeOffsetX - x2, eMove.safeOffsetX - y2);
|
||||
const y2 = eDown.safeOffsetY;
|
||||
ctx.strokeRect(x2, y2, eMove.safeOffsetX - x2, eMove.safeOffsetY - y2);
|
||||
ctx.setTransform(transform2);
|
||||
} else {
|
||||
const [x2, y2, w, h2] = this.dragging_rectangle;
|
||||
@ -46123,7 +46123,7 @@ const router = createRouter({
|
||||
{
|
||||
path: "",
|
||||
name: "GraphView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-CMQkCEwZ.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-DswvqURL.js"), true ? __vite__mapDeps([0,1,2,3,4,5,6]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: /* @__PURE__ */ __name(async (to, from2, next2) => {
|
||||
const userStore = useUserStore();
|
||||
await userStore.initialize();
|
||||
@ -46137,42 +46137,42 @@ const router = createRouter({
|
||||
{
|
||||
path: "user-select",
|
||||
name: "UserSelectView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-BtMsxeSh.js"), true ? __vite__mapDeps([7,8]) : void 0, import.meta.url), "component")
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-2l9Kbchu.js"), true ? __vite__mapDeps([7,8]) : void 0, import.meta.url), "component")
|
||||
},
|
||||
{
|
||||
path: "server-start",
|
||||
name: "ServerStartView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-JzBhx-L8.js"), true ? __vite__mapDeps([9,8,10]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-CiO_acWT.js"), true ? __vite__mapDeps([9,8,10]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
},
|
||||
{
|
||||
path: "install",
|
||||
name: "InstallView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-QxhYK8M7.js"), true ? __vite__mapDeps([11,8,12]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-AV2llYNm.js"), true ? __vite__mapDeps([11,8,12]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
},
|
||||
{
|
||||
path: "welcome",
|
||||
name: "WelcomeView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-D3kWu7Yf.js"), true ? __vite__mapDeps([13,8,14]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-CB7Th_kO.js"), true ? __vite__mapDeps([13,8,14]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
},
|
||||
{
|
||||
path: "not-supported",
|
||||
name: "NotSupportedView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-CB0a8PqQ.js"), true ? __vite__mapDeps([15,8,16]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-CRaD8u74.js"), true ? __vite__mapDeps([15,8,16]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
},
|
||||
{
|
||||
path: "download-git",
|
||||
name: "DownloadGitView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-DgH7MV_l.js"), true ? __vite__mapDeps([17,8]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-DP1MIWYX.js"), true ? __vite__mapDeps([17,8]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
},
|
||||
{
|
||||
path: "manual-configuration",
|
||||
name: "ManualConfigurationView",
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ManualConfigurationView-BzOtCClW.js"), true ? __vite__mapDeps([18,1,2,8,19]) : void 0, import.meta.url), "component"),
|
||||
component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ManualConfigurationView-BA4Vtud8.js"), true ? __vite__mapDeps([18,1,2,8,19]) : void 0, import.meta.url), "component"),
|
||||
beforeEnter: guardElectronAccess
|
||||
}
|
||||
]
|
||||
@ -58027,7 +58027,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
|
||||
});
|
||||
const config$1 = {
|
||||
app_title: "ComfyUI",
|
||||
app_version: "1.6.15"
|
||||
app_version: "1.6.17"
|
||||
};
|
||||
/*!
|
||||
* shared v9.13.1
|
||||
@ -117954,7 +117954,7 @@ const useSystemStatsStore = /* @__PURE__ */ defineStore("systemStats", () => {
|
||||
};
|
||||
});
|
||||
const useAboutPanelStore = /* @__PURE__ */ defineStore("aboutPanel", () => {
|
||||
const frontendVersion = "1.6.15";
|
||||
const frontendVersion = "1.6.17";
|
||||
const extensionStore = useExtensionStore();
|
||||
const systemStatsStore = useSystemStatsStore();
|
||||
const coreVersion = computed(
|
||||
@ -123467,13 +123467,13 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const KeybindingPanel = /* @__PURE__ */ defineAsyncComponent(
|
||||
() => __vitePreload(() => import("./KeybindingPanel-BAf87LRH.js"), true ? __vite__mapDeps([20,21,3,2,4,22]) : void 0, import.meta.url)
|
||||
() => __vitePreload(() => import("./KeybindingPanel-CxaJ1IiJ.js"), true ? __vite__mapDeps([20,21,3,2,4,22]) : void 0, import.meta.url)
|
||||
);
|
||||
const ExtensionPanel = /* @__PURE__ */ defineAsyncComponent(
|
||||
() => __vitePreload(() => import("./ExtensionPanel-DI1v0QVi.js"), true ? __vite__mapDeps([23,21,3,2]) : void 0, import.meta.url)
|
||||
() => __vitePreload(() => import("./ExtensionPanel-CxijYN47.js"), true ? __vite__mapDeps([23,21,3,2]) : void 0, import.meta.url)
|
||||
);
|
||||
const ServerConfigPanel = /* @__PURE__ */ defineAsyncComponent(
|
||||
() => __vitePreload(() => import("./ServerConfigPanel-CB49rPGd.js"), true ? __vite__mapDeps([24,5]) : void 0, import.meta.url)
|
||||
() => __vitePreload(() => import("./ServerConfigPanel-TLv4HMGK.js"), true ? __vite__mapDeps([24,5]) : void 0, import.meta.url)
|
||||
);
|
||||
const aboutPanelNode = {
|
||||
key: "about",
|
||||
@ -164042,7 +164042,7 @@ const useExtensionService = /* @__PURE__ */ __name(() => {
|
||||
settingStore.get("Comfy.Extension.Disabled")
|
||||
);
|
||||
const extensions = await api.getExtensions();
|
||||
await __vitePreload(() => import("./index-qpNewm3I.js"), true ? __vite__mapDeps([25,26]) : void 0, import.meta.url);
|
||||
await __vitePreload(() => import("./index-5Sv744Dr.js"), true ? __vite__mapDeps([25,26]) : void 0, import.meta.url);
|
||||
extensionStore.captureCoreExtensions();
|
||||
await Promise.all(
|
||||
extensions.filter((extension) => !extension.includes("extensions/core")).map(async (ext) => {
|
||||
@ -170371,6 +170371,18 @@ const SYSTEM_NODE_DEFS = {
|
||||
output_node: false,
|
||||
python_module: "nodes",
|
||||
description: "Node that add notes to your project"
|
||||
},
|
||||
MarkdownNote: {
|
||||
name: "MarkdownNote",
|
||||
display_name: "Markdown Note",
|
||||
category: "utils",
|
||||
input: { required: {}, optional: {} },
|
||||
output: [],
|
||||
output_name: [],
|
||||
output_is_list: [],
|
||||
output_node: false,
|
||||
python_module: "nodes",
|
||||
description: "Node that add notes to your project. Reformats text as markdown."
|
||||
}
|
||||
};
|
||||
function buildNodeDefTree(nodeDefs) {
|
||||
@ -172862,11 +172874,7 @@ class ComfyApp {
|
||||
graphData = defaultGraph;
|
||||
reset_invalid_values = true;
|
||||
}
|
||||
if (typeof structuredClone === "undefined") {
|
||||
graphData = JSON.parse(JSON.stringify(graphData));
|
||||
} else {
|
||||
graphData = structuredClone(graphData);
|
||||
}
|
||||
graphData = clone$3(graphData);
|
||||
if (useSettingStore().get("Comfy.Validation.Workflows")) {
|
||||
const validatedGraphData = await validateComfyWorkflow(
|
||||
graphData,
|
||||
@ -184702,4 +184710,4 @@ export {
|
||||
getOuterWidth as y,
|
||||
getOuterHeight as z
|
||||
};
|
||||
//# sourceMappingURL=index-De3LoLTp.js.map
|
||||
//# sourceMappingURL=index-C4Fk50Nx.js.map
|
8
web/assets/index-BCSm_DIF.js → web/assets/index-CK0rrCYF.js
generated
vendored
8
web/assets/index-BCSm_DIF.js → web/assets/index-CK0rrCYF.js
generated
vendored
@ -1,8 +1,8 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { B as BaseStyle, q as script$s, ct as script$t, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps, X as toDisplayString, S as Ripple, r as resolveDirective, i as withDirectives, k as createBlock, G as resolveDynamicComponent, bY as script$u, aB as resolveComponent, T as normalizeClass, aD as createSlots, M as withCtx, bz as script$v, bw as script$w, F as Fragment, E as renderList, aE as createTextVNode, bq as setAttribute, ak as UniqueComponentId, bo as normalizeProps, J as renderSlot, I as createCommentVNode, R as equals, bk as script$x, c8 as script$y, cu as getFirstFocusableElement, an as OverlayEventBus, A as getVNodeProp, am as resolveFieldData, cv as invokeElementMethod, O as getAttribute, cw as getNextElementSibling, y as getOuterWidth, cx as getPreviousElementSibling, l as script$z, ay as script$A, W as script$B, bn as script$D, aj as isNotEmpty, bM as withModifiers, z as getOuterHeight, cy as _default, al as ZIndex, Q as focus, ap as addStyle, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, cz as FilterOperator, ax as script$E, cA as FocusTrap, N as createVNode, aC as Transition, bX as withKeys, cB as getIndex, aW as script$G, cC as isClickable, cD as clearSelection, cE as localeComparator, cF as sort, cG as FilterService, cn as FilterMatchMode, P as findSingle, c1 as findIndexInList, c2 as find, cH as exportCSV, U as getOffset, cI as getHiddenElementOuterWidth, cJ as getHiddenElementOuterHeight, cK as reorderArray, cL as getWindowScrollTop, cM as removeClass, cN as addClass, ao as isEmpty, aw as script$H, az as script$I } from "./index-De3LoLTp.js";
|
||||
import { s as script$C } from "./index-UBW0i6QV.js";
|
||||
import { s as script$F } from "./index-BwVbIa1-.js";
|
||||
import { B as BaseStyle, q as script$s, ct as script$t, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps, X as toDisplayString, S as Ripple, r as resolveDirective, i as withDirectives, k as createBlock, G as resolveDynamicComponent, bY as script$u, aB as resolveComponent, T as normalizeClass, aD as createSlots, M as withCtx, bz as script$v, bw as script$w, F as Fragment, E as renderList, aE as createTextVNode, bq as setAttribute, ak as UniqueComponentId, bo as normalizeProps, J as renderSlot, I as createCommentVNode, R as equals, bk as script$x, c8 as script$y, cu as getFirstFocusableElement, an as OverlayEventBus, A as getVNodeProp, am as resolveFieldData, cv as invokeElementMethod, O as getAttribute, cw as getNextElementSibling, y as getOuterWidth, cx as getPreviousElementSibling, l as script$z, ay as script$A, W as script$B, bn as script$D, aj as isNotEmpty, bM as withModifiers, z as getOuterHeight, cy as _default, al as ZIndex, Q as focus, ap as addStyle, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, cz as FilterOperator, ax as script$E, cA as FocusTrap, N as createVNode, aC as Transition, bX as withKeys, cB as getIndex, aW as script$G, cC as isClickable, cD as clearSelection, cE as localeComparator, cF as sort, cG as FilterService, cn as FilterMatchMode, P as findSingle, c1 as findIndexInList, c2 as find, cH as exportCSV, U as getOffset, cI as getHiddenElementOuterWidth, cJ as getHiddenElementOuterHeight, cK as reorderArray, cL as getWindowScrollTop, cM as removeClass, cN as addClass, ao as isEmpty, aw as script$H, az as script$I } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$C } from "./index-lMQBwSDj.js";
|
||||
import { s as script$F } from "./index-B7ycxfFq.js";
|
||||
var ColumnStyle = BaseStyle.extend({
|
||||
name: "column"
|
||||
});
|
||||
@ -8783,4 +8783,4 @@ export {
|
||||
script as a,
|
||||
script$r as s
|
||||
};
|
||||
//# sourceMappingURL=index-BCSm_DIF.js.map
|
||||
//# sourceMappingURL=index-CK0rrCYF.js.map
|
1
web/assets/index-Cga7cgPc.js.map
generated
vendored
1
web/assets/index-Cga7cgPc.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
web/assets/index-De3LoLTp.js.map
generated
vendored
1
web/assets/index-De3LoLTp.js.map
generated
vendored
File diff suppressed because one or more lines are too long
0
web/assets/index-BaCwTTqK.css → web/assets/index-DmMtlpqz.css
generated
vendored
0
web/assets/index-BaCwTTqK.css → web/assets/index-DmMtlpqz.css
generated
vendored
1
web/assets/index-UBW0i6QV.js.map
generated
vendored
1
web/assets/index-UBW0i6QV.js.map
generated
vendored
@ -1 +0,0 @@
|
||||
{"version":3,"file":"index-UBW0i6QV.js","sources":["../../node_modules/@primevue/icons/bars/index.mjs"],"sourcesContent":["import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'BarsIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M13.3226 3.6129H0.677419C0.497757 3.6129 0.325452 3.54152 0.198411 3.41448C0.0713707 3.28744 0 3.11514 0 2.93548C0 2.75581 0.0713707 2.58351 0.198411 2.45647C0.325452 2.32943 0.497757 2.25806 0.677419 2.25806H13.3226C13.5022 2.25806 13.6745 2.32943 13.8016 2.45647C13.9286 2.58351 14 2.75581 14 2.93548C14 3.11514 13.9286 3.28744 13.8016 3.41448C13.6745 3.54152 13.5022 3.6129 13.3226 3.6129ZM13.3226 7.67741H0.677419C0.497757 7.67741 0.325452 7.60604 0.198411 7.479C0.0713707 7.35196 0 7.17965 0 6.99999C0 6.82033 0.0713707 6.64802 0.198411 6.52098C0.325452 6.39394 0.497757 6.32257 0.677419 6.32257H13.3226C13.5022 6.32257 13.6745 6.39394 13.8016 6.52098C13.9286 6.64802 14 6.82033 14 6.99999C14 7.17965 13.9286 7.35196 13.8016 7.479C13.6745 7.60604 13.5022 7.67741 13.3226 7.67741ZM0.677419 11.7419H13.3226C13.5022 11.7419 13.6745 11.6706 13.8016 11.5435C13.9286 11.4165 14 11.2442 14 11.0645C14 10.8848 13.9286 10.7125 13.8016 10.5855C13.6745 10.4585 13.5022 10.3871 13.3226 10.3871H0.677419C0.497757 10.3871 0.325452 10.4585 0.198411 10.5855C0.0713707 10.7125 0 10.8848 0 11.0645C0 11.2442 0.0713707 11.4165 0.198411 11.5435C0.325452 11.6706 0.497757 11.7419 0.677419 11.7419Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["BaseIcon","createElementVNode"],"mappings":";;;AAGG,IAAC,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWA;AACb;AAEA,IAAI,aAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI,aAAa,CAAC,UAAU;AAC5B,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAG,YAAY,EAAE;AAChC;AARS;AAUT,OAAO,SAAS;","x_google_ignoreList":[0]}
|
6
web/assets/index-Cga7cgPc.js → web/assets/index-hdfnBvYs.js
generated
vendored
6
web/assets/index-Cga7cgPc.js → web/assets/index-hdfnBvYs.js
generated
vendored
@ -1,7 +1,7 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { B as BaseStyle, q as script$2, ak as UniqueComponentId, c9 as script$4, l as script$5, S as Ripple, aB as resolveComponent, o as openBlock, f as createElementBlock, D as mergeProps, H as createBaseVNode, J as renderSlot, T as normalizeClass, X as toDisplayString, I as createCommentVNode, k as createBlock, M as withCtx, G as resolveDynamicComponent, N as createVNode, aC as Transition, i as withDirectives, v as vShow } from "./index-De3LoLTp.js";
|
||||
import { s as script$3 } from "./index-BwVbIa1-.js";
|
||||
import { B as BaseStyle, q as script$2, ak as UniqueComponentId, c9 as script$4, l as script$5, S as Ripple, aB as resolveComponent, o as openBlock, f as createElementBlock, D as mergeProps, H as createBaseVNode, J as renderSlot, T as normalizeClass, X as toDisplayString, I as createCommentVNode, k as createBlock, M as withCtx, G as resolveDynamicComponent, N as createVNode, aC as Transition, i as withDirectives, v as vShow } from "./index-C4Fk50Nx.js";
|
||||
import { s as script$3 } from "./index-B7ycxfFq.js";
|
||||
var theme = /* @__PURE__ */ __name(function theme2(_ref) {
|
||||
var dt = _ref.dt;
|
||||
return "\n.p-panel {\n border: 1px solid ".concat(dt("panel.border.color"), ";\n border-radius: ").concat(dt("panel.border.radius"), ";\n background: ").concat(dt("panel.background"), ";\n color: ").concat(dt("panel.color"), ";\n}\n\n.p-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ").concat(dt("panel.header.padding"), ";\n background: ").concat(dt("panel.header.background"), ";\n color: ").concat(dt("panel.header.color"), ";\n border-style: solid;\n border-width: ").concat(dt("panel.header.border.width"), ";\n border-color: ").concat(dt("panel.header.border.color"), ";\n border-radius: ").concat(dt("panel.header.border.radius"), ";\n}\n\n.p-panel-toggleable .p-panel-header {\n padding: ").concat(dt("panel.toggleable.header.padding"), ";\n}\n\n.p-panel-title {\n line-height: 1;\n font-weight: ").concat(dt("panel.title.font.weight"), ";\n}\n\n.p-panel-content {\n padding: ").concat(dt("panel.content.padding"), ";\n}\n\n.p-panel-footer {\n padding: ").concat(dt("panel.footer.padding"), ";\n}\n");
|
||||
@ -170,4 +170,4 @@ script.render = render;
|
||||
export {
|
||||
script as s
|
||||
};
|
||||
//# sourceMappingURL=index-Cga7cgPc.js.map
|
||||
//# sourceMappingURL=index-hdfnBvYs.js.map
|
4
web/assets/index-UBW0i6QV.js → web/assets/index-lMQBwSDj.js
generated
vendored
4
web/assets/index-UBW0i6QV.js → web/assets/index-lMQBwSDj.js
generated
vendored
@ -1,6 +1,6 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-De3LoLTp.js";
|
||||
import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-C4Fk50Nx.js";
|
||||
var script = {
|
||||
name: "BarsIcon",
|
||||
"extends": script$1
|
||||
@ -26,4 +26,4 @@ script.render = render;
|
||||
export {
|
||||
script as s
|
||||
};
|
||||
//# sourceMappingURL=index-UBW0i6QV.js.map
|
||||
//# sourceMappingURL=index-lMQBwSDj.js.map
|
1
web/assets/index-qpNewm3I.js.map
generated
vendored
1
web/assets/index-qpNewm3I.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
web/assets/keybindingService-BlJ-gQG4.js.map
generated
vendored
1
web/assets/keybindingService-BlJ-gQG4.js.map
generated
vendored
File diff suppressed because one or more lines are too long
4
web/assets/keybindingService-BlJ-gQG4.js → web/assets/keybindingService-D48fkLBy.js
generated
vendored
4
web/assets/keybindingService-BlJ-gQG4.js → web/assets/keybindingService-D48fkLBy.js
generated
vendored
@ -1,6 +1,6 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { a$ as useKeybindingStore, a2 as useCommandStore, a as useSettingStore, cq as KeyComboImpl, cr as KeybindingImpl } from "./index-De3LoLTp.js";
|
||||
import { a$ as useKeybindingStore, a2 as useCommandStore, a as useSettingStore, cq as KeyComboImpl, cr as KeybindingImpl } from "./index-C4Fk50Nx.js";
|
||||
const CORE_KEYBINDINGS = [
|
||||
{
|
||||
combo: {
|
||||
@ -247,4 +247,4 @@ const useKeybindingService = /* @__PURE__ */ __name(() => {
|
||||
export {
|
||||
useKeybindingService as u
|
||||
};
|
||||
//# sourceMappingURL=keybindingService-BlJ-gQG4.js.map
|
||||
//# sourceMappingURL=keybindingService-D48fkLBy.js.map
|
4
web/assets/serverConfigStore-BuuMHphX.js → web/assets/serverConfigStore-BawYAb1j.js
generated
vendored
4
web/assets/serverConfigStore-BuuMHphX.js → web/assets/serverConfigStore-BawYAb1j.js
generated
vendored
@ -1,6 +1,6 @@
|
||||
var __defProp = Object.defineProperty;
|
||||
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
||||
import { $ as defineStore, ab as ref, c as computed } from "./index-De3LoLTp.js";
|
||||
import { $ as defineStore, ab as ref, c as computed } from "./index-C4Fk50Nx.js";
|
||||
const useServerConfigStore = defineStore("serverConfig", () => {
|
||||
const serverConfigById = ref({});
|
||||
const serverConfigs = computed(() => {
|
||||
@ -87,4 +87,4 @@ const useServerConfigStore = defineStore("serverConfig", () => {
|
||||
export {
|
||||
useServerConfigStore as u
|
||||
};
|
||||
//# sourceMappingURL=serverConfigStore-BuuMHphX.js.map
|
||||
//# sourceMappingURL=serverConfigStore-BawYAb1j.js.map
|
1
web/assets/serverConfigStore-BuuMHphX.js.map
generated
vendored
1
web/assets/serverConfigStore-BuuMHphX.js.map
generated
vendored
File diff suppressed because one or more lines are too long
4
web/index.html
vendored
4
web/index.html
vendored
@ -6,8 +6,8 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
<link rel="stylesheet" type="text/css" href="user.css" />
|
||||
<link rel="stylesheet" type="text/css" href="materialdesignicons.min.css" />
|
||||
<script type="module" crossorigin src="./assets/index-De3LoLTp.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-BaCwTTqK.css">
|
||||
<script type="module" crossorigin src="./assets/index-C4Fk50Nx.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="./assets/index-DmMtlpqz.css">
|
||||
</head>
|
||||
<body class="litegraph grid">
|
||||
<div id="vue-app"></div>
|
||||
|
Loading…
Reference in New Issue
Block a user