Updates and fixes

- Update to latest triton
 - Fix huggingface hub automatic downloads
 - Latest transformers may require updating huggingface llava models
 - Compiling flux with fp8 weights is not supported
This commit is contained in:
doctorpangloss 2025-01-28 16:22:09 -08:00
parent a3452f6e6a
commit 044dff6887
71 changed files with 38111 additions and 29494 deletions

View File

@ -23,9 +23,9 @@ def preview_to_image(latent_image) -> Image:
latents_ubyte = (((latent_image + 1.0) / 2.0).clamp(0, 1) # change scale from -1..1 to 0..1
.mul(0xFF) # to 0..255
)
if comfy.model_management.directml_enabled:
latents_ubyte = latents_ubyte.to(dtype=torch.uint8)
latents_ubyte = latents_ubyte.to(device="cpu", dtype=torch.uint8, non_blocking=model_management.device_supports_non_blocking(latent_image.device))
if model_management.directml_device is not None:
latents_ubyte = latents_ubyte.to(dtype=torch.uint8)
latents_ubyte = latents_ubyte.to(device="cpu", dtype=torch.uint8, non_blocking=model_management.device_supports_non_blocking(latent_image.device))
return Image.fromarray(latents_ubyte.numpy())

View File

@ -62,6 +62,7 @@ except Exception:
pass
os.environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
def _fix_pytorch_240():

View File

@ -12,6 +12,9 @@ from os.path import join
from pathlib import Path
from typing import List, Optional, Final, Set
# enable better transfer
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
import tqdm
from huggingface_hub import hf_hub_download, scan_cache_dir, snapshot_download, HfFileSystem
from huggingface_hub.file_download import are_symlinks_supported
@ -582,6 +585,11 @@ def get_huggingface_repo_list(*extra_cache_dirs: str) -> List[str]:
def get_or_download_huggingface_repo(repo_id: str, cache_dirs: Optional[list] = None, local_dirs: Optional[list] = None) -> Optional[str]:
with comfy_tqdm():
return _get_or_download_huggingface_repo(repo_id, cache_dirs, local_dirs)
def _get_or_download_huggingface_repo(repo_id: str, cache_dirs: Optional[list] = None, local_dirs: Optional[list] = None) -> Optional[str]:
cache_dirs = cache_dirs or folder_paths.get_folder_paths("huggingface_cache")
local_dirs = local_dirs or folder_paths.get_folder_paths("huggingface")
cache_dirs_snapshots, local_dirs_snapshots = _get_cache_hits(cache_dirs, local_dirs, repo_id)

View File

@ -18,6 +18,7 @@
from __future__ import annotations
import contextlib
import contextvars
import itertools
import json
import logging
@ -1150,7 +1151,9 @@ def comfy_tqdm():
:return:
"""
_original_init = tqdm.__init__
_original_call = tqdm.__call__
_original_update = tqdm.update
context = contextvars.copy_context()
try:
def __init(self, *args, **kwargs):
_original_init(self, *args, **kwargs)
@ -1161,13 +1164,23 @@ def comfy_tqdm():
_original_update(self, n)
self._progress_bar.update(n)
def __call(self, *args, **kwargs):
# When TQDM is called to wrap an iterable, ensure the instance is created
# with the captured context
instance = context.run(lambda: _original_call(self, *args, **kwargs))
return instance
tqdm.__init__ = __init
tqdm.__call__ = __call
tqdm.update = __update
# todo: modify the tqdm class here to correctly copy the context into the function that tqdm is passed
yield
finally:
# Restore original tqdm
tqdm.__init__ = _original_init
tqdm.__call__ = _original_call
tqdm.update = _original_update
# todo: restore the context copying away
@contextmanager

View File

@ -1 +0,0 @@
{"version":3,"file":"BaseViewTemplate-BG-_HPdC.js","sources":["../../src/views/templates/BaseViewTemplate.vue"],"sourcesContent":["<template>\n <div\n class=\"font-sans w-screen h-screen flex flex-col pointer-events-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 <!-- Virtual top menu for native window (drag handle) -->\n <div\n v-show=\"isNativeWindow\"\n ref=\"topMenuRef\"\n class=\"app-drag w-full h-[var(--comfy-topbar-height)]\"\n />\n <div\n class=\"flex-grow w-full flex items-center justify-center overflow-auto\"\n >\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { nextTick, onMounted, ref } from 'vue'\n\nimport { electronAPI, isElectron } from '@/utils/envUtil'\n\nconst props = withDefaults(\n defineProps<{\n dark?: boolean\n }>(),\n {\n dark: false\n }\n)\n\nconst darkTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#d4d4d4'\n}\n\nconst lightTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#171717'\n}\n\nconst topMenuRef = ref<HTMLDivElement | null>(null)\nconst isNativeWindow = ref(false)\nonMounted(async () => {\n if (isElectron()) {\n const windowStyle = await electronAPI().Config.getWindowStyle()\n isNativeWindow.value = windowStyle === 'custom'\n\n await nextTick()\n\n electronAPI().changeTheme({\n ...(props.dark ? darkTheme : lightTheme),\n height: topMenuRef.value.getBoundingClientRect().height\n })\n }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;AA4BA,UAAM,QAAQ;AASd,UAAM,YAAY;AAAA,MAChB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAEA,UAAM,aAAa;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAEM,UAAA,aAAa,IAA2B,IAAI;AAC5C,UAAA,iBAAiB,IAAI,KAAK;AAChC,cAAU,YAAY;AACpB,UAAI,cAAc;AAChB,cAAM,cAAc,MAAM,cAAc,OAAO,eAAe;AAC9D,uBAAe,QAAQ,gBAAgB;AAEvC,cAAM,SAAS;AAEf,oBAAA,EAAc,YAAY;AAAA,UACxB,GAAI,MAAM,OAAO,YAAY;AAAA,UAC7B,QAAQ,WAAW,MAAM,wBAAwB;AAAA,QAAA,CAClD;AAAA,MAAA;AAAA,IACH,CACD;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,54 +0,0 @@
import { d as defineComponent, ad as ref, t as onMounted, bT as isElectron, bV as electronAPI, af as nextTick, o as openBlock, f as createElementBlock, i as withDirectives, v as vShow, m as createBaseVNode, M as renderSlot, V as normalizeClass } from "./index-QvfM__ze.js";
const _hoisted_1 = { class: "flex-grow w-full flex items-center justify-center overflow-auto" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "BaseViewTemplate",
props: {
dark: { type: Boolean, default: false }
},
setup(__props) {
const props = __props;
const darkTheme = {
color: "rgba(0, 0, 0, 0)",
symbolColor: "#d4d4d4"
};
const lightTheme = {
color: "rgba(0, 0, 0, 0)",
symbolColor: "#171717"
};
const topMenuRef = ref(null);
const isNativeWindow = ref(false);
onMounted(async () => {
if (isElectron()) {
const windowStyle = await electronAPI().Config.getWindowStyle();
isNativeWindow.value = windowStyle === "custom";
await nextTick();
electronAPI().changeTheme({
...props.dark ? darkTheme : lightTheme,
height: topMenuRef.value.getBoundingClientRect().height
});
}
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", {
class: normalizeClass(["font-sans w-screen h-screen flex flex-col pointer-events-auto", [
props.dark ? "text-neutral-300 bg-neutral-900 dark-theme" : "text-neutral-900 bg-neutral-300"
]])
}, [
withDirectives(createBaseVNode("div", {
ref_key: "topMenuRef",
ref: topMenuRef,
class: "app-drag w-full h-[var(--comfy-topbar-height)]"
}, null, 512), [
[vShow, isNativeWindow.value]
]),
createBaseVNode("div", _hoisted_1, [
renderSlot(_ctx.$slots, "default")
])
], 2);
};
}
});
export {
_sfc_main as _
};
//# sourceMappingURL=BaseViewTemplate-BhQMaVFP.js.map

View File

@ -1,4 +1,4 @@
import { d as defineComponent, ab as ref, p as onMounted, bR as isElectron, bT as electronAPI, ad as nextTick, o as openBlock, f as createElementBlock, i as withDirectives, v as vShow, m as createBaseVNode, K as renderSlot, T as normalizeClass } from "./index-Du3ctekX.js";
import { d as defineComponent, U as ref, p as onMounted, b4 as isElectron, W as nextTick, b5 as electronAPI, o as openBlock, f as createElementBlock, i as withDirectives, v as vShow, j as unref, b6 as isNativeWindow, m as createBaseVNode, A as renderSlot, ai as normalizeClass } from "./index-BsGgXmrT.js";
const _hoisted_1 = { class: "flex-grow w-full flex items-center justify-center overflow-auto" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "BaseViewTemplate",
@ -16,11 +16,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
symbolColor: "#171717"
};
const topMenuRef = ref(null);
const isNativeWindow = ref(false);
onMounted(async () => {
if (isElectron()) {
const windowStyle = await electronAPI().Config.getWindowStyle();
isNativeWindow.value = windowStyle === "custom";
await nextTick();
electronAPI().changeTheme({
...props.dark ? darkTheme : lightTheme,
@ -39,7 +36,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
ref: topMenuRef,
class: "app-drag w-full h-[var(--comfy-topbar-height)]"
}, null, 512), [
[vShow, isNativeWindow.value]
[vShow, unref(isNativeWindow)()]
]),
createBaseVNode("div", _hoisted_1, [
renderSlot(_ctx.$slots, "default")
@ -51,4 +48,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as _
};
//# sourceMappingURL=BaseViewTemplate-BG-_HPdC.js.map
//# sourceMappingURL=BaseViewTemplate-DDUNNAbV.js.map

1
comfy/web/assets/BaseViewTemplate-DDUNNAbV.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"BaseViewTemplate-DDUNNAbV.js","sources":["../../src/views/templates/BaseViewTemplate.vue"],"sourcesContent":["<template>\n <div\n class=\"font-sans w-screen h-screen flex flex-col pointer-events-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 <!-- Virtual top menu for native window (drag handle) -->\n <div\n v-show=\"isNativeWindow()\"\n ref=\"topMenuRef\"\n class=\"app-drag w-full h-[var(--comfy-topbar-height)]\"\n />\n <div\n class=\"flex-grow w-full flex items-center justify-center overflow-auto\"\n >\n <slot></slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { nextTick, onMounted, ref } from 'vue'\n\nimport { electronAPI, isElectron, isNativeWindow } from '@/utils/envUtil'\n\nconst props = withDefaults(\n defineProps<{\n dark?: boolean\n }>(),\n {\n dark: false\n }\n)\n\nconst darkTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#d4d4d4'\n}\n\nconst lightTheme = {\n color: 'rgba(0, 0, 0, 0)',\n symbolColor: '#171717'\n}\n\nconst topMenuRef = ref<HTMLDivElement | null>(null)\nonMounted(async () => {\n if (isElectron()) {\n await nextTick()\n\n electronAPI().changeTheme({\n ...(props.dark ? darkTheme : lightTheme),\n height: topMenuRef.value.getBoundingClientRect().height\n })\n }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;AA4BA,UAAM,QAAQ;AASd,UAAM,YAAY;AAAA,MAChB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAEA,UAAM,aAAa;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAEM,UAAA,aAAa,IAA2B,IAAI;AAClD,cAAU,YAAY;AACpB,UAAI,cAAc;AAChB,cAAM,SAAS;AAEf,oBAAA,EAAc,YAAY;AAAA,UACxB,GAAI,MAAM,OAAO,YAAY;AAAA,UAC7B,QAAQ,WAAW,MAAM,wBAAwB;AAAA,QAAA,CAClD;AAAA,MAAA;AAAA,IACH,CACD;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,5 +1,5 @@
import { d as defineComponent, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, k as createVNode, j as unref, ch as script } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
import { d as defineComponent, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, k as createVNode, j as unref, bs as script } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.js";
const _hoisted_1 = { class: "max-w-screen-sm w-screen p-8" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "DesktopStartView",
@ -19,4 +19,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
//# sourceMappingURL=DesktopStartView-le6AjGZr.js.map
//# sourceMappingURL=DesktopStartView-elroCqfp.js.map

1
comfy/web/assets/DesktopStartView-elroCqfp.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"DesktopStartView-elroCqfp.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}

View File

@ -1,12 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/DownloadGitView-B0K5WWed.js
import { d as defineComponent, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, X as toDisplayString, k as createVNode, j as unref, l as script, c0 as useRouter } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
========
import { d as defineComponent, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, k as createVNode, j as unref, l as script, c2 as useRouter } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/DownloadGitView-rPK_vYgU.js
import { d as defineComponent, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, j as unref, l as script, be as useRouter } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.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" };
@ -60,8 +55,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
<<<<<<<< HEAD:comfy/web/assets/DownloadGitView-B0K5WWed.js
//# sourceMappingURL=DownloadGitView-B0K5WWed.js.map
========
//# sourceMappingURL=DownloadGitView-rPK_vYgU.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/DownloadGitView-rPK_vYgU.js
//# sourceMappingURL=DownloadGitView-BFcFCk37.js.map

View File

@ -1 +1 @@
{"version":3,"file":"DownloadGitView-B0K5WWed.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,IACxD,GAFyB;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS,UAAU;AACzB,aAAO,KAAK,SAAS;AAAA,IACvB,GAJgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"DownloadGitView-BFcFCk37.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,IACxD,GAFyB;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS,UAAU;AACzB,aAAO,KAAK,SAAS;AAAA,IACvB,GAJgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,14 +1,8 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/ExtensionPanel-DUEsdkuv.js
import { d as defineComponent, ab as ref, cr as FilterMatchMode, cw as useExtensionStore, a as useSettingStore, p as onMounted, c as computed, o as openBlock, H as createBlock, N as withCtx, k as createVNode, cs as SearchBox, j as unref, c4 as script, m as createBaseVNode, f as createElementBlock, G as renderList, X as toDisplayString, aF as createTextVNode, F as Fragment, l as script$1, J as createCommentVNode, aJ as script$3, b7 as script$4, ca as script$5, ct as _sfc_main$1 } from "./index-Du3ctekX.js";
import { s as script$2, a as script$6 } from "./index-BV_B5E0F.js";
import "./index-Bg6k6_F8.js";
========
import { d as defineComponent, ad as ref, cu as FilterMatchMode, cz as useExtensionStore, a as useSettingStore, t as onMounted, c as computed, o as openBlock, J as createBlock, P as withCtx, k as createVNode, cv as SearchBox, j as unref, c6 as script, m as createBaseVNode, f as createElementBlock, I as renderList, Z as toDisplayString, aG as createTextVNode, H as Fragment, l as script$1, L as createCommentVNode, aK as script$3, b8 as script$4, cc as script$5, cw as _sfc_main$1 } from "./index-QvfM__ze.js";
import { s as script$2, a as script$6 } from "./index-DpF-ptbJ.js";
import "./index-Q1cQr26V.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ExtensionPanel-3jWrm6Zi.js
import { d as defineComponent, U as ref, df as FilterMatchMode, dk as useExtensionStore, a as useSettingStore, p as onMounted, c as computed, o as openBlock, y as createBlock, z as withCtx, k as createVNode, dg as SearchBox, j as unref, bj as script, m as createBaseVNode, f as createElementBlock, D as renderList, E as toDisplayString, a7 as createTextVNode, F as Fragment, l as script$1, B as createCommentVNode, a4 as script$3, ax as script$4, bn as script$5, dh as _sfc_main$1 } from "./index-BsGgXmrT.js";
import { g as script$2, h as script$6 } from "./index-Br6dw1F6.js";
import "./index-COyiXDAn.js";
const _hoisted_1 = { class: "flex justify-end" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "ExtensionPanel",
@ -185,8 +179,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
<<<<<<<< HEAD:comfy/web/assets/ExtensionPanel-DUEsdkuv.js
//# sourceMappingURL=ExtensionPanel-DUEsdkuv.js.map
========
//# sourceMappingURL=ExtensionPanel-3jWrm6Zi.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ExtensionPanel-3jWrm6Zi.js
//# sourceMappingURL=ExtensionPanel-BPpLOa_B.js.map

File diff suppressed because one or more lines are too long

View File

@ -230,7 +230,7 @@
border-bottom-left-radius: 0;
}
.comfyui-queue-button[data-v-e9044686] .p-splitbutton-dropdown {
.comfyui-queue-button[data-v-91a628af] .p-splitbutton-dropdown {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
@ -275,7 +275,7 @@
border-style: solid;
}
.comfyui-menu[data-v-6e35440f] {
.comfyui-menu[data-v-929e7543] {
width: 100vw;
height: var(--comfy-topbar-height);
background: var(--comfy-menu-bg);
@ -288,16 +288,16 @@
order: 0;
grid-column: 1/-1;
}
.comfyui-menu.dropzone[data-v-6e35440f] {
.comfyui-menu.dropzone[data-v-929e7543] {
background: var(--p-highlight-background);
}
.comfyui-menu.dropzone-active[data-v-6e35440f] {
.comfyui-menu.dropzone-active[data-v-929e7543] {
background: var(--p-highlight-background-focus);
}
[data-v-6e35440f] .p-menubar-item-label {
[data-v-929e7543] .p-menubar-item-label {
line-height: revert;
}
.comfyui-logo[data-v-6e35440f] {
.comfyui-logo[data-v-929e7543] {
font-size: 1.2em;
-webkit-user-select: none;
-moz-user-select: none;

4676
comfy/web/assets/GraphView-CPk-0F87.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

1
comfy/web/assets/GraphView-CPk-0F87.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
comfy/web/assets/InstallView-C1fnMZKt.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,20 +2,13 @@
.p-tag[data-v-79125ff6] {
--p-tag-gap: 0.5rem;
}
<<<<<<<< HEAD:comfy/web/assets/InstallView-BATGdh8B.css
.hover-brighten {
&[data-v-79125ff6] {
========
.hover-brighten[data-v-79125ff6] {
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/InstallView-CxhfFC8Y.css
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
transition-property: filter, box-shadow;
<<<<<<<< HEAD:comfy/web/assets/InstallView-BATGdh8B.css
}
========
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/InstallView-CxhfFC8Y.css
&[data-v-79125ff6]:hover {
filter: brightness(107%) contrast(105%);
box-shadow: 0 0 0.25rem #ffffff79;
@ -29,11 +22,7 @@
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
<<<<<<<< HEAD:comfy/web/assets/InstallView-BATGdh8B.css
div.selected {
========
div.selected[data-v-79125ff6] {
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/InstallView-CxhfFC8Y.css
.gpu-button[data-v-79125ff6]:not(.selected) {
opacity: 0.5;
}
@ -59,11 +48,7 @@ div.selected[data-v-79125ff6] {
.gpu-button[data-v-79125ff6]:hover {
--tw-bg-opacity: 0.75;
}
<<<<<<<< HEAD:comfy/web/assets/InstallView-BATGdh8B.css
.gpu-button {
========
.gpu-button[data-v-79125ff6] {
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/InstallView-CxhfFC8Y.css
&.selected[data-v-79125ff6] {
--tw-bg-opacity: 1;
background-color: rgb(64 64 64 / var(--tw-bg-opacity, 1));
@ -91,10 +76,6 @@ div.selected[data-v-79125ff6] {
text-align: center;
}
<<<<<<<< HEAD:comfy/web/assets/InstallView-BATGdh8B.css
[data-v-76d7916c] .p-steppanel {
========
[data-v-0a97b0ae] .p-steppanel {
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/InstallView-CxhfFC8Y.css
background-color: transparent
}

View File

@ -1,16 +1,9 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/KeybindingPanel-B_BiXc7p.js
import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, G as renderList, k as createVNode, N as withCtx, aF as createTextVNode, X as toDisplayString, j as unref, aJ as script, J as createCommentVNode, ab as ref, cr as FilterMatchMode, a_ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bx as useToast, r as resolveDirective, H as createBlock, cs as SearchBox, m as createBaseVNode, l as script$2, aw as script$4, b2 as withModifiers, c4 as script$5, aO as script$6, i as withDirectives, ct as _sfc_main$2, cu as KeyComboImpl, cv as KeybindingImpl, _ as _export_sfc } from "./index-Du3ctekX.js";
import { s as script$1, a as script$3 } from "./index-BV_B5E0F.js";
import { u as useKeybindingService } from "./keybindingService-GjQNTASR.js";
import "./index-Bg6k6_F8.js";
========
import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, H as Fragment, I as renderList, k as createVNode, P as withCtx, aG as createTextVNode, Z as toDisplayString, j as unref, aK as script, L as createCommentVNode, ad as ref, cu as FilterMatchMode, a$ as useKeybindingStore, a4 as useCommandStore, a3 as useI18n, ah as normalizeI18nKey, w as watchEffect, bz as useToast, r as resolveDirective, J as createBlock, cv as SearchBox, m as createBaseVNode, l as script$2, ax as script$4, b3 as withModifiers, c6 as script$5, aP as script$6, i as withDirectives, cw as _sfc_main$2, p as pushScopeId, q as popScopeId, cx as KeyComboImpl, cy as KeybindingImpl, _ as _export_sfc } from "./index-QvfM__ze.js";
import { s as script$1, a as script$3 } from "./index-DpF-ptbJ.js";
import { u as useKeybindingService } from "./keybindingService-Cak1En5n.js";
import "./index-Q1cQr26V.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/KeybindingPanel-D6O16W_1.js
import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, D as renderList, k as createVNode, z as withCtx, a7 as createTextVNode, E as toDisplayString, j as unref, a4 as script, B as createCommentVNode, U as ref, df as FilterMatchMode, an as useKeybindingStore, L as useCommandStore, K as useI18n, Y as normalizeI18nKey, w as watchEffect, aR as useToast, r as resolveDirective, y as createBlock, dg as SearchBox, m as createBaseVNode, l as script$2, bg as script$4, ar as withModifiers, bj as script$5, ab as script$6, i as withDirectives, dh as _sfc_main$2, di as KeyComboImpl, dj as KeybindingImpl, _ as _export_sfc } from "./index-BsGgXmrT.js";
import { g as script$1, h as script$3 } from "./index-Br6dw1F6.js";
import { u as useKeybindingService } from "./keybindingService-DoUb2RT6.js";
import "./index-COyiXDAn.js";
const _hoisted_1$1 = {
key: 0,
class: "px-2"
@ -286,8 +279,4 @@ const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d
export {
KeybindingPanel as default
};
<<<<<<<< HEAD:comfy/web/assets/KeybindingPanel-B_BiXc7p.js
//# sourceMappingURL=KeybindingPanel-B_BiXc7p.js.map
========
//# sourceMappingURL=KeybindingPanel-D6O16W_1.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/KeybindingPanel-D6O16W_1.js
//# sourceMappingURL=KeybindingPanel-BRfso_Vt.js.map

File diff suppressed because one or more lines are too long

87
comfy/web/assets/MaintenanceView-BB5vXRE8.css generated vendored Normal file
View File

@ -0,0 +1,87 @@
.task-card-ok[data-v-c3bd7658] {
position: absolute;
right: -1rem;
bottom: -1rem;
grid-column: 1 / -1;
grid-row: 1 / -1;
--tw-text-opacity: 1;
color: rgb(150 206 76 / var(--tw-text-opacity, 1));
opacity: 1;
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
font-size: 4rem;
text-shadow: 0.25rem 0 0.5rem black;
z-index: 10;
}
.p-card {
&[data-v-c3bd7658] {
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
--p-card-background: var(--p-button-secondary-background);
opacity: 0.9;
}
&.opacity-65[data-v-c3bd7658] {
opacity: 0.4;
}
&[data-v-c3bd7658]:hover {
opacity: 1;
}
}
[data-v-c3bd7658] .p-card-header {
z-index: 0;
}
[data-v-c3bd7658] .p-card-body {
z-index: 1;
flex-grow: 1;
justify-content: space-between;
}
.task-div {
> i[data-v-c3bd7658] {
pointer-events: none;
}
&:hover > i[data-v-c3bd7658] {
opacity: 0.2;
}
}
[data-v-74b78f7d] .p-tag {
--p-tag-gap: 0.375rem;
}
.backspan[data-v-74b78f7d]::before {
position: absolute;
margin: 0px;
color: var(--p-text-muted-color);
font-family: 'primeicons';
top: -2rem;
right: -2rem;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
display: inline-block;
-webkit-font-smoothing: antialiased;
opacity: 0.02;
font-size: min(14rem, 90vw);
z-index: 0;
}

26033
comfy/web/assets/MaintenanceView-DYZ7z6hj.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
comfy/web/assets/MaintenanceView-DYZ7z6hj.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/ManualConfigurationView-Cf62OEk9.js
import { d as defineComponent, a1 as useI18n, ab as ref, p as onMounted, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, X as toDisplayString, k as createVNode, j as unref, aJ as script, bL as script$1, l as script$2, bT as electronAPI, _ as _export_sfc } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
========
import { d as defineComponent, a3 as useI18n, ad as ref, t as onMounted, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, k as createVNode, j as unref, aK as script, bN as script$1, l as script$2, p as pushScopeId, q as popScopeId, bV as electronAPI, _ as _export_sfc } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-dc169863"), n = n(), popScopeId(), n), "_withScopeId");
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ManualConfigurationView-enyqGo0M.js
import { d as defineComponent, K as useI18n, U as ref, p as onMounted, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, j as unref, a4 as script, a$ as script$1, l as script$2, b5 as electronAPI, _ as _export_sfc } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.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" };
@ -77,8 +71,4 @@ const ManualConfigurationView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scop
export {
ManualConfigurationView as default
};
<<<<<<<< HEAD:comfy/web/assets/ManualConfigurationView-Cf62OEk9.js
//# sourceMappingURL=ManualConfigurationView-Cf62OEk9.js.map
========
//# sourceMappingURL=ManualConfigurationView-enyqGo0M.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ManualConfigurationView-enyqGo0M.js
//# sourceMappingURL=ManualConfigurationView-DlH3kpjW.js.map

View File

@ -1 +1 @@
{"version":3,"file":"ManualConfigurationView-Cf62OEk9.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 scoped>\n.p-tag {\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,EAAE,IAAI,QAAQ;AAEtB,UAAM,WAAW,YAAY;AAEvB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"ManualConfigurationView-DlH3kpjW.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 scoped>\n.p-tag {\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,EAAE,IAAI,QAAQ;AAEtB,UAAM,WAAW,YAAY;AAEvB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,7 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
import { d as defineComponent, bz as useToast, a3 as useI18n, ad as ref, c2 as useRouter, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, aG as createTextVNode, k as createVNode, j as unref, cc as script, l as script$1, bV as electronAPI } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.js";
import { d as defineComponent, aR as useToast, K as useI18n, U as ref, be as useRouter, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, a7 as createTextVNode, k as createVNode, j as unref, bn as script, l as script$1, b5 as electronAPI } from "./index-BsGgXmrT.js";
const _hoisted_1 = { class: "h-full p-8 2xl:p-16 flex flex-col items-center justify-center" };
const _hoisted_2 = { class: "bg-neutral-800 rounded-lg shadow-lg p-6 w-full max-w-[600px] flex flex-col gap-6" };
const _hoisted_3 = { class: "text-3xl font-semibold text-neutral-100" };
@ -53,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
createBaseVNode("p", _hoisted_5, [
createTextVNode(toDisplayString(_ctx.$t("install.moreInfo")) + " ", 1),
createBaseVNode("a", _hoisted_6, toDisplayString(_ctx.$t("install.privacyPolicy")), 1),
createTextVNode(". ")
_cache[1] || (_cache[1] = createTextVNode(". "))
]),
createBaseVNode("div", _hoisted_7, [
createVNode(unref(script), {
@ -83,4 +83,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
//# sourceMappingURL=MetricsConsentView-lSfLu4nr.js.map
//# sourceMappingURL=MetricsConsentView-BgqqjOyd.js.map

1
comfy/web/assets/MetricsConsentView-BgqqjOyd.js.map generated vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"MetricsConsentView-BgqqjOyd.js","sources":["../../src/views/MetricsConsentView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark>\n <div class=\"h-full p-8 2xl:p-16 flex flex-col items-center justify-center\">\n <div\n class=\"bg-neutral-800 rounded-lg shadow-lg p-6 w-full max-w-[600px] flex flex-col gap-6\"\n >\n <h2 class=\"text-3xl font-semibold text-neutral-100\">\n {{ $t('install.helpImprove') }}\n </h2>\n <p class=\"text-neutral-400\">\n {{ $t('install.updateConsent') }}\n </p>\n <p class=\"text-neutral-400\">\n {{ $t('install.moreInfo') }}\n <a\n href=\"https://comfy.org/privacy\"\n target=\"_blank\"\n class=\"text-blue-400 hover:text-blue-300 underline\"\n >\n {{ $t('install.privacyPolicy') }} </a\n >.\n </p>\n <div class=\"flex items-center gap-4\">\n <ToggleSwitch\n v-model=\"allowMetrics\"\n aria-describedby=\"metricsDescription\"\n />\n <span id=\"metricsDescription\" class=\"text-neutral-100\">\n {{\n allowMetrics\n ? $t('install.metricsEnabled')\n : $t('install.metricsDisabled')\n }}\n </span>\n </div>\n <div class=\"flex pt-6 justify-end\">\n <Button\n :label=\"$t('g.ok')\"\n icon=\"pi pi-check\"\n :loading=\"isUpdating\"\n iconPos=\"right\"\n @click=\"updateConsent\"\n />\n </div>\n </div>\n </div>\n </BaseViewTemplate>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from 'primevue/button'\nimport ToggleSwitch from 'primevue/toggleswitch'\nimport { useToast } from 'primevue/usetoast'\nimport { ref } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRouter } from 'vue-router'\n\nimport { electronAPI } from '@/utils/envUtil'\n\nconst toast = useToast()\nconst { t } = useI18n()\n\nconst allowMetrics = ref(true)\nconst router = useRouter()\nconst isUpdating = ref(false)\n\nconst updateConsent = async () => {\n isUpdating.value = true\n try {\n await electronAPI().setMetricsConsent(allowMetrics.value)\n } catch (error) {\n toast.add({\n severity: 'error',\n summary: t('install.errorUpdatingConsent'),\n detail: t('install.errorUpdatingConsentDetail'),\n life: 3000\n })\n } finally {\n isUpdating.value = false\n }\n router.push('/')\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA2DA,UAAM,QAAQ,SAAS;AACjB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAEhB,UAAA,eAAe,IAAI,IAAI;AAC7B,UAAM,SAAS,UAAU;AACnB,UAAA,aAAa,IAAI,KAAK;AAE5B,UAAM,gBAAgB,mCAAY;AAChC,iBAAW,QAAQ;AACf,UAAA;AACF,cAAM,YAAY,EAAE,kBAAkB,aAAa,KAAK;AAAA,eACjD,OAAO;AACd,cAAM,IAAI;AAAA,UACR,UAAU;AAAA,UACV,SAAS,EAAE,8BAA8B;AAAA,UACzC,QAAQ,EAAE,oCAAoC;AAAA,UAC9C,MAAM;AAAA,QAAA,CACP;AAAA,MAAA,UACD;AACA,mBAAW,QAAQ;AAAA,MAAA;AAErB,aAAO,KAAK,GAAG;AAAA,IACjB,GAfsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

19
comfy/web/assets/NotSupportedView-BiyVuLfX.css generated vendored Normal file
View File

@ -0,0 +1,19 @@
.sad-container {
&[data-v-ebb20958] {
display: grid;
align-items: center;
justify-content: space-evenly;
grid-template-columns: 25rem 1fr;
}
&[data-v-ebb20958] > * {
grid-row: 1;
}
}
.sad-text[data-v-ebb20958] {
grid-column: 1/3;
}
.sad-girl[data-v-ebb20958] {
grid-column: 2/3;
width: min(75vw, 100vh);
}

View File

@ -1,26 +0,0 @@
<<<<<<<< HEAD:comfy/web/assets/NotSupportedView-BiyVuLfX.css
.sad-container {
&[data-v-ebb20958] {
========
.sad-container[data-v-ebb20958] {
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/NotSupportedView-DQerxQzi.css
display: grid;
align-items: center;
justify-content: space-evenly;
grid-template-columns: 25rem 1fr;
<<<<<<<< HEAD:comfy/web/assets/NotSupportedView-BiyVuLfX.css
}
========
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/NotSupportedView-DQerxQzi.css
&[data-v-ebb20958] > * {
grid-row: 1;
}
}
.sad-text[data-v-ebb20958] {
grid-column: 1/3;
}
.sad-girl[data-v-ebb20958] {
grid-column: 2/3;
width: min(75vw, 100vh);
}

View File

@ -1,16 +1,9 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/NotSupportedView-DyADE5iE.js
import { d as defineComponent, c0 as useRouter, r as resolveDirective, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, X as toDisplayString, k as createVNode, j as unref, l as script, i as withDirectives, _ as _export_sfc } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
========
import { d as defineComponent, c2 as useRouter, r as resolveDirective, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, k as createVNode, j as unref, l as script, i as withDirectives, p as pushScopeId, q as popScopeId, _ as _export_sfc } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/NotSupportedView-Vc8_xWgH.js
import { d as defineComponent, be as useRouter, r as resolveDirective, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, j as unref, l as script, i as withDirectives, _ as _export_sfc } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.js";
const _imports_0 = "" + new URL("images/sad_girl.png", import.meta.url).href;
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-ebb20958"), n = n(), popScopeId(), n), "_withScopeId");
const _hoisted_1 = { class: "sad-container" };
<<<<<<<< HEAD:comfy/web/assets/NotSupportedView-DyADE5iE.js
const _hoisted_2 = { class: "no-drag sad-text flex items-center" };
const _hoisted_3 = { class: "flex flex-col gap-8 p-8 min-w-110" };
const _hoisted_4 = { class: "text-4xl font-bold text-red-500" };
@ -18,20 +11,6 @@ const _hoisted_5 = { class: "space-y-4" };
const _hoisted_6 = { class: "text-xl" };
const _hoisted_7 = { class: "list-disc list-inside space-y-1 text-neutral-800" };
const _hoisted_8 = { class: "flex gap-4" };
========
const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("img", {
class: "sad-girl",
src: _imports_0,
alt: "Sad girl illustration"
}, null, -1));
const _hoisted_3 = { class: "no-drag sad-text flex items-center" };
const _hoisted_4 = { class: "flex flex-col gap-8 p-8 min-w-110" };
const _hoisted_5 = { class: "text-4xl font-bold text-red-500" };
const _hoisted_6 = { class: "space-y-4" };
const _hoisted_7 = { class: "text-xl" };
const _hoisted_8 = { class: "list-disc list-inside space-y-1 text-neutral-800" };
const _hoisted_9 = { class: "flex gap-4" };
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/NotSupportedView-Vc8_xWgH.js
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "NotSupportedView",
setup(__props) {
@ -104,8 +83,4 @@ const NotSupportedView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "
export {
NotSupportedView as default
};
<<<<<<<< HEAD:comfy/web/assets/NotSupportedView-DyADE5iE.js
//# sourceMappingURL=NotSupportedView-DyADE5iE.js.map
========
//# sourceMappingURL=NotSupportedView-Vc8_xWgH.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/NotSupportedView-Vc8_xWgH.js
//# sourceMappingURL=NotSupportedView-IH8EV0bV.js.map

View File

@ -1 +1 @@
{"version":3,"file":"NotSupportedView-DyADE5iE.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 scoped>\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,MACF;AAAA,IACF,GALiB;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAChE,GAFoB;AAIpB,UAAM,SAAS,UAAU;AACzB,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IACxB,GAF0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"NotSupportedView-IH8EV0bV.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 scoped>\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,MACF;AAAA,IACF,GALiB;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAChE,GAFoB;AAIpB,UAAM,SAAS,UAAU;AACzB,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IACxB,GAF0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,12 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/ServerConfigPanel-DgJqhnkz.js
import { o as openBlock, f as createElementBlock, m as createBaseVNode, Z as markRaw, d as defineComponent, a as useSettingStore, aR as storeToRefs, a5 as watch, cR as useCopyToClipboard, a1 as useI18n, H as createBlock, N as withCtx, j as unref, c4 as script, X as toDisplayString, G as renderList, F as Fragment, k as createVNode, l as script$1, J as createCommentVNode, c2 as script$2, cS as FormItem, ct as _sfc_main$1, bT as electronAPI } from "./index-Du3ctekX.js";
import { u as useServerConfigStore } from "./serverConfigStore-B0br_pYH.js";
========
import { m as createBaseVNode, o as openBlock, f as createElementBlock, a0 as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a7 as watch, cW as useCopyToClipboard, a3 as useI18n, J as createBlock, P as withCtx, j as unref, c6 as script, Z as toDisplayString, I as renderList, H as Fragment, k as createVNode, l as script$1, L as createCommentVNode, c4 as script$2, cX as FormItem, cw as _sfc_main$1, bV as electronAPI } from "./index-QvfM__ze.js";
import { u as useServerConfigStore } from "./serverConfigStore-DCme3xlV.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ServerConfigPanel-B-w0HFlz.js
import { o as openBlock, f as createElementBlock, m as createBaseVNode, H as markRaw, d as defineComponent, a as useSettingStore, ae as storeToRefs, O as watch, ds as useCopyToClipboard, K as useI18n, y as createBlock, z as withCtx, j as unref, bj as script, E as toDisplayString, D as renderList, F as Fragment, k as createVNode, l as script$1, B as createCommentVNode, bh as script$2, dt as FormItem, dh as _sfc_main$1, b5 as electronAPI } from "./index-BsGgXmrT.js";
import { u as useServerConfigStore } from "./serverConfigStore-B9riwnSX.js";
const _hoisted_1$1 = {
viewBox: "0 0 24 24",
width: "1.2em",
@ -158,8 +153,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
<<<<<<<< HEAD:comfy/web/assets/ServerConfigPanel-DgJqhnkz.js
//# sourceMappingURL=ServerConfigPanel-DgJqhnkz.js.map
========
//# sourceMappingURL=ServerConfigPanel-B-w0HFlz.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/ServerConfigPanel-B-w0HFlz.js
//# sourceMappingURL=ServerConfigPanel-u0ozNLZ4.js.map

View File

@ -1 +1 @@
{"version":3,"file":"ServerConfigPanel-DgJqhnkz.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,gBAAgB;AACrC,UAAM,oBAAoB,qBAAqB;AACzC,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAClC,GAFsB;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc,WAAW;AAAA,IAC3B,GAFmB;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,gBAAgB,IAAI,mBAAmB;AAC/C,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAC7C,GAF4B;AAItB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAChB,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,MACN;AAAA,IACF,GARsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"ServerConfigPanel-u0ozNLZ4.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,gBAAgB;AACrC,UAAM,oBAAoB,qBAAqB;AACzC,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAClC,GAFsB;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc,WAAW;AAAA,IAC3B,GAFmB;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,gBAAgB,IAAI,mBAAmB;AAC/C,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAC7C,GAF4B;AAItB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAChB,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,MACN;AAAA,IACF,GARsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,101 +0,0 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { d as defineComponent, a3 as useI18n, ad as ref, c7 as ProgressStatus, t as onMounted, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, aG as createTextVNode, Z as toDisplayString, j as unref, f as createElementBlock, L as createCommentVNode, k as createVNode, l as script, i as withDirectives, v as vShow, c8 as BaseTerminal, p as pushScopeId, q as popScopeId, bV as electronAPI, _ as _export_sfc } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-4140d62b"), n = n(), popScopeId(), n), "_withScopeId");
const _hoisted_1 = { class: "flex flex-col w-full h-full items-center" };
const _hoisted_2 = { class: "text-2xl font-bold" };
const _hoisted_3 = { key: 0 };
const _hoisted_4 = {
key: 0,
class: "flex flex-col items-center gap-4"
};
const _hoisted_5 = { class: "flex items-center my-4 gap-2" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "ServerStartView",
setup(__props) {
const electron = electronAPI();
const { t } = useI18n();
const status = ref(ProgressStatus.INITIAL_STATE);
const electronVersion = ref("");
let xterm;
const terminalVisible = ref(true);
const updateProgress = /* @__PURE__ */ __name(({ status: newStatus }) => {
status.value = newStatus;
if (newStatus === ProgressStatus.ERROR) terminalVisible.value = false;
else xterm?.clear();
}, "updateProgress");
const terminalCreated = /* @__PURE__ */ __name(({ terminal, useAutoSize }, root) => {
xterm = terminal;
useAutoSize({ root, autoRows: true, autoCols: true });
electron.onLogMessage((message) => {
terminal.write(message);
});
terminal.options.cursorBlink = false;
terminal.options.disableStdin = true;
terminal.options.cursorInactiveStyle = "block";
}, "terminalCreated");
const reinstall = /* @__PURE__ */ __name(() => electron.reinstall(), "reinstall");
const reportIssue = /* @__PURE__ */ __name(() => {
window.open("https://forum.comfy.org/c/v1-feedback/", "_blank");
}, "reportIssue");
const openLogs = /* @__PURE__ */ __name(() => electron.openLogsFolder(), "openLogs");
onMounted(async () => {
electron.sendReady();
electron.onProgressUpdate(updateProgress);
electronVersion.value = await electron.getElectronVersion();
});
return (_ctx, _cache) => {
return openBlock(), createBlock(_sfc_main$1, {
dark: "",
class: "flex-col"
}, {
default: withCtx(() => [
createBaseVNode("div", _hoisted_1, [
createBaseVNode("h2", _hoisted_2, [
createTextVNode(toDisplayString(unref(t)(`serverStart.process.${status.value}`)) + " ", 1),
status.value === unref(ProgressStatus).ERROR ? (openBlock(), createElementBlock("span", _hoisted_3, " v" + toDisplayString(electronVersion.value), 1)) : createCommentVNode("", true)
]),
status.value === unref(ProgressStatus).ERROR ? (openBlock(), createElementBlock("div", _hoisted_4, [
createBaseVNode("div", _hoisted_5, [
createVNode(unref(script), {
icon: "pi pi-flag",
severity: "secondary",
label: unref(t)("serverStart.reportIssue"),
onClick: reportIssue
}, null, 8, ["label"]),
createVNode(unref(script), {
icon: "pi pi-file",
severity: "secondary",
label: unref(t)("serverStart.openLogs"),
onClick: openLogs
}, null, 8, ["label"]),
createVNode(unref(script), {
icon: "pi pi-refresh",
label: unref(t)("serverStart.reinstall"),
onClick: reinstall
}, null, 8, ["label"])
]),
!terminalVisible.value ? (openBlock(), createBlock(unref(script), {
key: 0,
icon: "pi pi-search",
severity: "secondary",
label: unref(t)("serverStart.showTerminal"),
onClick: _cache[0] || (_cache[0] = ($event) => terminalVisible.value = true)
}, null, 8, ["label"])) : createCommentVNode("", true)
])) : createCommentVNode("", true),
withDirectives(createVNode(BaseTerminal, { onCreated: terminalCreated }, null, 512), [
[vShow, terminalVisible.value]
])
])
]),
_: 1
});
};
}
});
const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4140d62b"]]);
export {
ServerStartView as default
};
//# sourceMappingURL=ServerStartView-48wfE1MS.js.map

View File

@ -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, c5 as ProgressStatus, p as onMounted, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, aF as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, J as createCommentVNode, k as createVNode, l as script, i as withDirectives, v as vShow, c6 as BaseTerminal, bT as electronAPI, _ as _export_sfc } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
import { d as defineComponent, K as useI18n, U as ref, bk as ProgressStatus, p as onMounted, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, a7 as createTextVNode, E as toDisplayString, j as unref, f as createElementBlock, B as createCommentVNode, k as createVNode, l as script, i as withDirectives, v as vShow, bl as BaseTerminal, b5 as electronAPI, _ as _export_sfc } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.js";
const _hoisted_1 = { class: "flex flex-col w-full h-full items-center" };
const _hoisted_2 = { class: "text-2xl font-bold" };
const _hoisted_3 = { key: 0 };
@ -97,4 +97,4 @@ const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d
export {
ServerStartView as default
};
//# sourceMappingURL=ServerStartView-BxD3zfZI.js.map
//# sourceMappingURL=ServerStartView-DgywG2so.js.map

View File

@ -1 +1 @@
{"version":3,"file":"ServerStartView-BxD3zfZI.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark class=\"flex-col\">\n <div class=\"flex flex-col w-full h-full items-center\">\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 </div>\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, autoRows: true, autoCols: 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":";;;;;;;;;;;;;;;AAyDA,UAAM,WAAW,YAAY;AACvB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAEhB,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,IACpB,GANuB;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAER,kBAAY,EAAE,MAAM,UAAU,MAAM,UAAU,MAAM;AAC3C,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,IACzC,GAdwB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,UAAU,GAAzB;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAChE,GAFoB;AAGd,UAAA,WAAW,6BAAM,SAAS,eAAe,GAA9B;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"ServerStartView-DgywG2so.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["<template>\n <BaseViewTemplate dark class=\"flex-col\">\n <div class=\"flex flex-col w-full h-full items-center\">\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 </div>\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, autoRows: true, autoCols: 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":";;;;;;;;;;;;;;;AAyDA,UAAM,WAAW,YAAY;AACvB,UAAA,EAAE,EAAE,IAAI,QAAQ;AAEhB,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,IACpB,GANuB;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAER,kBAAY,EAAE,MAAM,UAAU,MAAM,UAAU,MAAM;AAC3C,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,IACzC,GAdwB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,UAAU,GAAzB;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAChE,GAFoB;AAGd,UAAA,WAAW,6BAAM,SAAS,eAAe,GAA9B;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,12 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/UserSelectView-CPq4bKTd.js
import { d as defineComponent, aW as useUserStore, c0 as useRouter, ab as ref, c as computed, p as onMounted, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, X as toDisplayString, k as createVNode, c1 as withKeys, j as unref, aw as script, c2 as script$1, c3 as script$2, c4 as script$3, aF as createTextVNode, J as createCommentVNode, l as script$4 } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
========
import { d as defineComponent, aX as useUserStore, c2 as useRouter, ad as ref, c as computed, t as onMounted, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, k as createVNode, c3 as withKeys, j as unref, ax as script, c4 as script$1, c5 as script$2, c6 as script$3, aG as createTextVNode, L as createCommentVNode, l as script$4 } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/UserSelectView-CXmVKOeK.js
import { d as defineComponent, aj as useUserStore, be as useRouter, U as ref, c as computed, p as onMounted, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, bf as withKeys, j as unref, bg as script, bh as script$1, bi as script$2, bj as script$3, a7 as createTextVNode, B as createCommentVNode, l as script$4 } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.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"
@ -103,8 +98,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
export {
_sfc_main as default
};
<<<<<<<< HEAD:comfy/web/assets/UserSelectView-CPq4bKTd.js
//# sourceMappingURL=UserSelectView-CPq4bKTd.js.map
========
//# sourceMappingURL=UserSelectView-CXmVKOeK.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/UserSelectView-CXmVKOeK.js
//# sourceMappingURL=UserSelectView-DkeVSFwW.js.map

View File

@ -1 +1 @@
{"version":3,"file":"UserSelectView-CPq4bKTd.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,aAAa;AAC/B,UAAM,SAAS,UAAU;AAEnB,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,WAAW,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,QAAA;AAGpC,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MAAA;AAAA,IAExD,GAfc;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU,WAAW;AAAA,MAAA;AAAA,IAC7B,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"UserSelectView-DkeVSFwW.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,aAAa;AAC/B,UAAM,SAAS,UAAU;AAEnB,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,WAAW,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,QAAA;AAGpC,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MAAA;AAAA,IAExD,GAfc;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU,WAAW;AAAA,MAAA;AAAA,IAC7B,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@ -1,13 +1,7 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/WelcomeView-BmGjncl9.js
import { d as defineComponent, c0 as useRouter, o as openBlock, H as createBlock, N as withCtx, m as createBaseVNode, X as toDisplayString, k as createVNode, j as unref, l as script, _ as _export_sfc } from "./index-Du3ctekX.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BG-_HPdC.js";
========
import { d as defineComponent, c2 as useRouter, o as openBlock, J as createBlock, P as withCtx, m as createBaseVNode, Z as toDisplayString, k as createVNode, j as unref, l as script, p as pushScopeId, q as popScopeId, _ as _export_sfc } from "./index-QvfM__ze.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-BhQMaVFP.js";
const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-7dfaf74c"), n = n(), popScopeId(), n), "_withScopeId");
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/WelcomeView-C8whKl15.js
import { d as defineComponent, be as useRouter, o as openBlock, y as createBlock, z as withCtx, m as createBaseVNode, E as toDisplayString, k as createVNode, j as unref, l as script, _ as _export_sfc } from "./index-BsGgXmrT.js";
import { _ as _sfc_main$1 } from "./BaseViewTemplate-DDUNNAbV.js";
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" };
const _sfc_main = /* @__PURE__ */ defineComponent({
@ -42,8 +36,4 @@ const WelcomeView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-
export {
WelcomeView as default
};
<<<<<<<< HEAD:comfy/web/assets/WelcomeView-BmGjncl9.js
//# sourceMappingURL=WelcomeView-BmGjncl9.js.map
========
//# sourceMappingURL=WelcomeView-C8whKl15.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/WelcomeView-C8whKl15.js
//# sourceMappingURL=WelcomeView-CXVMqRFA.js.map

View File

@ -1 +1 @@
{"version":3,"file":"WelcomeView-BmGjncl9.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,UAAU;AACnB,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAClB,GAFmB;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"WelcomeView-CXVMqRFA.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,UAAU;AACnB,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAClB,GAFmB;;;;;;;;;;;;;;;;;;;;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
comfy/web/assets/index-B_FV7r80.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
comfy/web/assets/index-Br6dw1F6.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { bp as script$1, o as openBlock, f as createElementBlock, E as mergeProps, m as createBaseVNode } from "./index-Du3ctekX.js";
import { bT as script$1, o as openBlock, f as createElementBlock, as as mergeProps, m as createBaseVNode } from "./index-BsGgXmrT.js";
var script = {
name: "BarsIcon",
"extends": script$1
@ -24,4 +24,4 @@ script.render = render;
export {
script as s
};
//# sourceMappingURL=index-Bg6k6_F8.js.map
//# sourceMappingURL=index-COyiXDAn.js.map

View File

@ -1 +1 @@
{"version":3,"file":"index-Bg6k6_F8.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\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()), _cache[0] || (_cache[0] = [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)]), 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,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,KAAK,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAACC,gBAAmB,QAAQ;AAAA,IACpE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,GAAG;AAAA,IACH,MAAM;AAAA,EACP,GAAE,MAAM,EAAE,CAAC,IAAI,EAAE;AACpB;AAbS;AAeT,OAAO,SAAS;","x_google_ignoreList":[0]}
{"version":3,"file":"index-COyiXDAn.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\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()), _cache[0] || (_cache[0] = [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)]), 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,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,KAAK,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAACC,gBAAmB,QAAQ;AAAA,IACpE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,GAAG;AAAA,IACH,MAAM;AAAA,EACP,GAAE,MAAM,EAAE,CAAC,IAAI,EAAE;AACpB;AAbS;AAeT,OAAO,SAAS;","x_google_ignoreList":[0]}

View File

@ -2101,6 +2101,15 @@
.inset-0{
inset: 0px;
}
.-bottom-4{
bottom: -1rem;
}
.-right-14{
right: -3.5rem;
}
.-right-4{
right: -1rem;
}
.bottom-\[10px\]{
bottom: 10px;
}
@ -2134,6 +2143,12 @@
.z-\[9999\]{
z-index: 9999;
}
.col-span-full{
grid-column: 1 / -1;
}
.row-span-full{
grid-row: 1 / -1;
}
.m-0{
margin: 0px;
}
@ -2146,6 +2161,9 @@
.m-2{
margin: 0.5rem;
}
.m-8{
margin: 2rem;
}
.mx-1{
margin-left: 0.25rem;
margin-right: 0.25rem;
@ -2255,6 +2273,9 @@
.h-1{
height: 0.25rem;
}
.h-1\/2{
height: 50%;
}
.h-16{
height: 4rem;
}
@ -2264,6 +2285,9 @@
.h-64{
height: 16rem;
}
.h-8{
height: 2rem;
}
.h-96{
height: 26rem;
}
@ -2288,9 +2312,15 @@
.max-h-full{
max-height: 100%;
}
.min-h-52{
min-height: 13rem;
}
.min-h-8{
min-height: 2rem;
}
.min-h-full{
min-height: 100%;
}
.min-h-screen{
min-height: 100vh;
}
@ -2352,15 +2382,24 @@
.min-w-110{
min-width: 32rem;
}
.min-w-32{
min-width: 8rem;
}
.min-w-84{
min-width: 22rem;
}
.min-w-96{
min-width: 26rem;
}
.min-w-full{
min-width: 100%;
}
.max-w-110{
max-width: 32rem;
}
.max-w-48{
max-width: 12rem;
}
.max-w-64{
max-width: 16rem;
}
@ -2391,6 +2430,9 @@
.grow{
flex-grow: 1;
}
.border-collapse{
border-collapse: collapse;
}
.-translate-y-40{
--tw-translate-y: -10rem;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@ -2459,9 +2501,15 @@
.justify-around{
justify-content: space-around;
}
.justify-evenly{
justify-content: space-evenly;
}
.gap-0{
gap: 0px;
}
.gap-1{
gap: 0.25rem;
}
.gap-2{
gap: 0.5rem;
}
@ -2477,6 +2525,11 @@
.gap-8{
gap: 2rem;
}
.space-x-1 > :not([hidden]) ~ :not([hidden]){
--tw-space-x-reverse: 0;
margin-right: calc(0.25rem * var(--tw-space-x-reverse));
margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]){
--tw-space-y-reverse: 0;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
@ -2524,9 +2577,6 @@
.whitespace-pre-line{
white-space: pre-line;
}
.whitespace-pre-wrap{
white-space: pre-wrap;
}
.text-wrap{
text-wrap: wrap;
}
@ -2556,6 +2606,10 @@
border-left-width: 0px;
border-right-width: 0px;
}
.border-y{
border-top-width: 1px;
border-bottom-width: 1px;
}
.border-b{
border-bottom-width: 1px;
}
@ -2571,9 +2625,16 @@
.border-solid{
border-style: solid;
}
.border-hidden{
border-style: hidden;
}
.border-none{
border-style: none;
}
.border-neutral-700{
--tw-border-opacity: 1;
border-color: rgb(64 64 64 / var(--tw-border-opacity, 1));
}
.bg-\[var\(--comfy-menu-bg\)\]{
background-color: var(--comfy-menu-bg);
}
@ -2728,6 +2789,9 @@
.text-center{
text-align: center;
}
.text-right{
text-align: right;
}
.font-mono{
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
@ -2828,18 +2892,34 @@
.no-underline{
text-decoration-line: none;
}
.antialiased{
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.opacity-0{
opacity: 0;
}
.opacity-100{
opacity: 1;
}
.opacity-15{
opacity: 0.15;
}
.opacity-25{
opacity: 0.25;
}
.opacity-40{
opacity: 0.4;
}
.opacity-50{
opacity: 0.5;
}
.opacity-65{
opacity: 0.65;
}
.opacity-75{
opacity: 0.75;
}
.shadow-lg{
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@ -3668,10 +3748,33 @@ audio.comfy-audio.empty-audio-widget {
padding: var(--comfy-tree-explorer-item-padding) !important;
}
/* Load3d styles */
.comfy-load-3d,
.comfy-load-3d-animation,
.comfy-preview-3d,
.comfy-preview-3d-animation{
display: flex;
flex-direction: column;
background: transparent;
flex: 1;
position: relative;
overflow: hidden;
}
.comfy-load-3d canvas,
.comfy-load-3d-animation canvas,
.comfy-preview-3d canvas,
.comfy-preview-3d-animation canvas{
display: flex;
width: 100% !important;
height: 100% !important;
}
/* End of Load3d styles */
/* [Desktop] Electron window specific styles */
.app-drag {
app-region: drag;
<<<<<<<< HEAD:comfy/web/assets/index-BwaYE8Fk.css
}
.no-drag {
@ -3686,22 +3789,6 @@ audio.comfy-audio.empty-audio-widget {
--tw-bg-opacity: 1;
background-color: rgb(64 64 64 / var(--tw-bg-opacity, 1));
}
========
}
.no-drag {
app-region: no-drag;
}
.window-actions-spacer {
width: calc(100vw - env(titlebar-area-width, 100vw));
}
/* End of [Desktop] Electron window specific styles */
.hover\:bg-neutral-700:hover{
--tw-bg-opacity: 1;
background-color: rgb(64 64 64 / var(--tw-bg-opacity));
}
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/index-Cf-n7v0V.css
.hover\:bg-opacity-75:hover{
--tw-bg-opacity: 0.75;
}
@ -3712,6 +3799,12 @@ audio.comfy-audio.empty-audio-widget {
.hover\:opacity-100:hover{
opacity: 1;
}
@media not all and (min-width: 640px){
.max-sm\:hidden{
display: none;
}
}
@media (min-width: 768px){
.md\:flex{
@ -3811,17 +3904,17 @@ audio.comfy-audio.empty-audio-widget {
margin-bottom: 1rem;
}
.comfy-error-report[data-v-09b72a20] {
.comfy-error-report[data-v-3faf7785] {
display: flex;
flex-direction: column;
gap: 1rem;
}
.action-container[data-v-09b72a20] {
.action-container[data-v-3faf7785] {
display: flex;
gap: 1rem;
justify-content: flex-end;
}
.wrapper-pre[data-v-09b72a20] {
.wrapper-pre[data-v-3faf7785] {
white-space: pre-wrap;
word-wrap: break-word;
}
@ -3839,7 +3932,7 @@ audio.comfy-audio.empty-audio-widget {
margin-left: auto;
}
.comfy-missing-models[data-v-ebf9fccc] {
.comfy-missing-models[data-v-f8d63775] {
max-height: 300px;
overflow-y: auto;
}
@ -3881,22 +3974,22 @@ audio.comfy-audio.empty-audio-widget {
background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1))
}
[data-v-ba13476b] .p-inputtext {
[data-v-b3ab067d] .p-inputtext {
--p-form-field-padding-x: 0.625rem;
}
.p-button.p-inputicon[data-v-ba13476b] {
.p-button.p-inputicon[data-v-b3ab067d] {
width: auto;
border-style: none;
padding: 0px;
}
.form-input[data-v-e4e3022d] .input-slider .p-inputnumber input,
.form-input[data-v-e4e3022d] .input-slider .slider-part {
.form-input[data-v-1451da7b] .input-slider .p-inputnumber input,
.form-input[data-v-1451da7b] .input-slider .slider-part {
width: 5rem
}
.form-input[data-v-e4e3022d] .p-inputtext,
.form-input[data-v-e4e3022d] .p-select {
.form-input[data-v-1451da7b] .p-inputtext,
.form-input[data-v-1451da7b] .p-select {
width: 11rem
}
@ -4538,7 +4631,7 @@ audio.comfy-audio.empty-audio-widget {
word-break: break-all;
}
[data-v-31d518da] .tree-explorer-node-label {
[data-v-243f3ee3] .tree-explorer-node-label {
width: 100%;
display: flex;
align-items: center;
@ -4551,10 +4644,10 @@ audio.comfy-audio.empty-audio-widget {
* By setting the position to relative on the parent and using an absolutely positioned pseudo-element,
* we can create a visual indicator for the drop target without affecting the layout of other elements.
*/
[data-v-31d518da] .p-tree-node-content:has(.tree-folder) {
[data-v-243f3ee3] .p-tree-node-content:has(.tree-folder) {
position: relative;
}
[data-v-31d518da] .p-tree-node-content:has(.tree-folder.can-drop)::after {
[data-v-243f3ee3] .p-tree-node-content:has(.tree-folder.can-drop)::after {
content: '';
position: absolute;
top: 0;
@ -4819,18 +4912,18 @@ audio.comfy-audio.empty-audio-widget {
width: 100%
}
.p-selectbutton .p-button[data-v-05364174] {
.p-selectbutton .p-button[data-v-bd06e12b] {
padding: 0.5rem;
}
.p-selectbutton .p-button .pi[data-v-05364174] {
.p-selectbutton .p-button .pi[data-v-bd06e12b] {
font-size: 1.5rem;
}
.field[data-v-05364174] {
.field[data-v-bd06e12b] {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.color-picker-container[data-v-05364174] {
.color-picker-container[data-v-bd06e12b] {
display: flex;
align-items: center;
gap: 0.5rem;

539
comfy/web/assets/index-DC_-jkme.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
comfy/web/assets/index-DC_-jkme.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

29
comfy/web/assets/index-Q1cQr26V.js generated vendored
View File

@ -1,29 +0,0 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { cA as script$1, m as createBaseVNode, o as openBlock, f as createElementBlock, G as mergeProps } from "./index-QvfM__ze.js";
var script = {
name: "BarsIcon",
"extends": script$1
};
var _hoisted_1 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
"clip-rule": "evenodd",
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",
fill: "currentColor"
}, null, -1);
var _hoisted_2 = [_hoisted_1];
function render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("svg", mergeProps({
width: "14",
height: "14",
viewBox: "0 0 14 14",
fill: "none",
xmlns: "http://www.w3.org/2000/svg"
}, _ctx.pti()), _hoisted_2, 16);
}
__name(render, "render");
script.render = render;
export {
script as s
};
//# sourceMappingURL=index-Q1cQr26V.js.map

File diff suppressed because it is too large Load Diff

1
comfy/web/assets/index-aXhlJPnT.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/keybindingService-GjQNTASR.js
import { a_ as useKeybindingStore, a2 as useCommandStore, a as useSettingStore, cu as KeyComboImpl, cv as KeybindingImpl } from "./index-Du3ctekX.js";
========
import { a$ as useKeybindingStore, a4 as useCommandStore, a as useSettingStore, cx as KeyComboImpl, cy as KeybindingImpl } from "./index-QvfM__ze.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/keybindingService-Cak1En5n.js
import { an as useKeybindingStore, L as useCommandStore, a as useSettingStore, di as KeyComboImpl, dj as KeybindingImpl } from "./index-BsGgXmrT.js";
const CORE_KEYBINDINGS = [
{
combo: {
@ -251,8 +247,4 @@ const useKeybindingService = /* @__PURE__ */ __name(() => {
export {
useKeybindingService as u
};
<<<<<<<< HEAD:comfy/web/assets/keybindingService-GjQNTASR.js
//# sourceMappingURL=keybindingService-GjQNTASR.js.map
========
//# sourceMappingURL=keybindingService-Cak1En5n.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/keybindingService-Cak1En5n.js
//# sourceMappingURL=keybindingService-DoUb2RT6.js.map

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,6 @@
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
<<<<<<<< HEAD:comfy/web/assets/serverConfigStore-B0br_pYH.js
import { $ as defineStore, ab as ref, c as computed } from "./index-Du3ctekX.js";
========
import { a1 as defineStore, ad as ref, c as computed } from "./index-QvfM__ze.js";
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/serverConfigStore-DCme3xlV.js
import { I as defineStore, U as ref, c as computed } from "./index-BsGgXmrT.js";
const useServerConfigStore = defineStore("serverConfig", () => {
const serverConfigById = ref({});
const serverConfigs = computed(() => {
@ -91,8 +87,4 @@ const useServerConfigStore = defineStore("serverConfig", () => {
export {
useServerConfigStore as u
};
<<<<<<<< HEAD:comfy/web/assets/serverConfigStore-B0br_pYH.js
//# sourceMappingURL=serverConfigStore-B0br_pYH.js.map
========
//# sourceMappingURL=serverConfigStore-DCme3xlV.js.map
>>>>>>>> 13fd4d6e45128f3aed95ee66151353e84daf2d13:comfy/web/assets/serverConfigStore-DCme3xlV.js
//# sourceMappingURL=serverConfigStore-B9riwnSX.js.map

File diff suppressed because one or more lines are too long

30
comfy/web/index.html vendored
View File

@ -1,15 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ComfyUI</title>
<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-QvfM__ze.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-Cf-n7v0V.css">
</head>
<body class="litegraph grid">
<div id="vue-app"></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ComfyUI</title>
<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-BsGgXmrT.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-ChXzdVeQ.css">
</head>
<body class="litegraph grid">
<div id="vue-app"></div>
</body>
</html>

View File

@ -266,7 +266,7 @@
],
"properties": {},
"widgets_values": [
"v1-5-pruned-emaonly.safetensors"
"v1-5-pruned-emaonly-fp16.safetensors"
]
}
],
@ -349,8 +349,8 @@
"extra": {},
"version": 0.4,
"models": [{
"name": "v1-5-pruned-emaonly.safetensors",
"url": "https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly.safetensors?download=true",
"name": "v1-5-pruned-emaonly-fp16.safetensors",
"url": "https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors?download=true",
"directory": "checkpoints"
}]
}

View File

@ -1,5 +1,5 @@
sageattention
triton ;platform_system == 'Linux'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post5/triton-3.1.0-cp312-cp312-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.12'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post5/triton-3.1.0-cp311-cp311-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.11'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post5/triton-3.1.0-cp310-cp310-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.10'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post9/triton-3.1.0-cp312-cp312-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.12'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post9/triton-3.1.0-cp311-cp311-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.11'
triton @ https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post9/triton-3.1.0-cp310-cp310-win_amd64.whl ;platform_system == 'Windows' and python_version == '3.10'

View File

@ -36,7 +36,7 @@ aio-pika
pyjwt[crypto]
kornia>=0.7.0
mpmath>=1.0,!=1.4.0a0
huggingface_hub
huggingface_hub[hf_transfer]
lazy-object-proxy
lazy_loader>=0.3
can_ada

View File

@ -1,205 +0,0 @@
{
"8": {
"inputs": {
"samples": [
"16",
0
],
"vae": [
"14",
0
]
},
"class_type": "VAEDecode",
"_meta": {
"title": "VAE Decode"
}
},
"9": {
"inputs": {
"filename_prefix": "nike/nike_images_",
"images": [
"8",
0
]
},
"class_type": "SaveImage",
"_meta": {
"title": "Save Image"
}
},
"13": {
"inputs": {
"clip_name1": "clip_l.safetensors",
"clip_name2": "t5xxl_fp16.safetensors",
"type": "flux"
},
"class_type": "DualCLIPLoader",
"_meta": {
"title": "DualCLIPLoader"
}
},
"14": {
"inputs": {
"vae_name": "ae.safetensors"
},
"class_type": "VAELoader",
"_meta": {
"title": "Load VAE"
}
},
"15": {
"inputs": {
"text": "A photoreal image of a Nike Air Force 1 shoe in black, with a red Nike swoosh and red sole. The interior of the shoe is blue, and the laces are bright green.",
"clip": [
"13",
0
]
},
"class_type": "CLIPTextEncode",
"_meta": {
"title": "CLIP Text Encode (Prompt)"
}
},
"16": {
"inputs": {
"noise": [
"17",
0
],
"guider": [
"18",
0
],
"sampler": [
"21",
0
],
"sigmas": [
"22",
0
],
"latent_image": [
"49",
0
]
},
"class_type": "SamplerCustomAdvanced",
"_meta": {
"title": "SamplerCustomAdvanced"
}
},
"17": {
"inputs": {
"noise_seed": 2
},
"class_type": "RandomNoise",
"_meta": {
"title": "RandomNoise"
}
},
"18": {
"inputs": {
"model": [
"51",
0
],
"conditioning": [
"19",
0
]
},
"class_type": "BasicGuider",
"_meta": {
"title": "BasicGuider"
}
},
"19": {
"inputs": {
"guidance": 5,
"conditioning": [
"15",
0
]
},
"class_type": "FluxGuidance",
"_meta": {
"title": "FluxGuidance"
}
},
"21": {
"inputs": {
"sampler_name": "euler"
},
"class_type": "KSamplerSelect",
"_meta": {
"title": "KSamplerSelect"
}
},
"22": {
"inputs": {
"scheduler": "normal",
"steps": 20,
"denoise": 1,
"model": [
"51",
0
]
},
"class_type": "BasicScheduler",
"_meta": {
"title": "BasicScheduler"
}
},
"23": {
"inputs": {
"vae": [
"14",
0
]
},
"class_type": "VAEEncode",
"_meta": {
"title": "VAE Encode"
}
},
"49": {
"inputs": {
"width": 1024,
"height": 1024,
"batch_size": 1
},
"class_type": "EmptySD3LatentImage",
"_meta": {
"title": "EmptySD3LatentImage"
}
},
"51": {
"inputs": {
"object_patch": "diffusion_model",
"fullgraph": false,
"dynamic": false,
"backend": "inductor",
"mode": "reduce-overhead",
"torch_tensorrt_optimization_level": 3,
"model": [
"53",
0
]
},
"class_type": "TorchCompileModel",
"_meta": {
"title": "TorchCompileModel"
}
},
"53": {
"inputs": {
"unet_name": "flux1-dev-fp8.safetensors",
"weight_dtype": "fp8_e4m3fn"
},
"class_type": "UNETLoader",
"_meta": {
"title": "Load Diffusion Model"
}
}
}