mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-09 16:48:06 +00:00
Compare commits
1 Commits
v1.17.0
...
export-vue
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84a675de88 |
@@ -8,15 +8,6 @@ const vue3CompositionApiBestPractices = [
|
||||
"Use watch and watchEffect for side effects",
|
||||
"Implement lifecycle hooks with onMounted, onUpdated, etc.",
|
||||
"Utilize provide/inject for dependency injection",
|
||||
"Use vue 3.5 style of default prop declaration. Example:
|
||||
|
||||
const { nodes, showTotal = true } = defineProps<{
|
||||
nodes: ApiNodeCost[]
|
||||
showTotal?: boolean
|
||||
}>()
|
||||
|
||||
",
|
||||
"Organize vue component in <template> <script> <style> order",
|
||||
]
|
||||
|
||||
// Folder structure
|
||||
|
||||
4
global.d.ts
vendored
4
global.d.ts
vendored
@@ -15,3 +15,7 @@ interface Navigator {
|
||||
visible: boolean
|
||||
}
|
||||
}
|
||||
|
||||
interface Window {
|
||||
Vue: typeof import('vue')
|
||||
}
|
||||
|
||||
12
package-lock.json
generated
12
package-lock.json
generated
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"name": "@comfyorg/comfyui-frontend",
|
||||
"version": "1.17.0",
|
||||
"version": "1.16.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@comfyorg/comfyui-frontend",
|
||||
"version": "1.17.0",
|
||||
"version": "1.16.7",
|
||||
"license": "GPL-3.0-only",
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"@atlaskit/pragmatic-drag-and-drop": "^1.3.1",
|
||||
"@comfyorg/comfyui-electron-types": "^0.4.31",
|
||||
"@comfyorg/litegraph": "^0.13.2",
|
||||
"@comfyorg/litegraph": "^0.13.1",
|
||||
"@primevue/forms": "^4.2.5",
|
||||
"@primevue/themes": "^4.2.5",
|
||||
"@sentry/vue": "^8.48.0",
|
||||
@@ -480,9 +480,9 @@
|
||||
"license": "GPL-3.0-only"
|
||||
},
|
||||
"node_modules/@comfyorg/litegraph": {
|
||||
"version": "0.13.2",
|
||||
"resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.13.2.tgz",
|
||||
"integrity": "sha512-IzCNipladIUt+oeSwkj6Bb9kk/TwMy7WeOzPbtA2FFSnuR5EFt9S8N5scVDkJNkDJzkgUGybiXwerhjxX3jRvQ==",
|
||||
"version": "0.13.1",
|
||||
"resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.13.1.tgz",
|
||||
"integrity": "sha512-tAlAdeBpvBch5Wj7MghoJvJkGwdeHG3825LqDMkKynYVXfiMcrTtM+LWRkH58JlbEEocD+1fdWKLMZ+lJc9m0A==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@cspotcode/source-map-support": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@comfyorg/comfyui-frontend",
|
||||
"private": true,
|
||||
"version": "1.17.0",
|
||||
"version": "1.16.7",
|
||||
"type": "module",
|
||||
"repository": "https://github.com/Comfy-Org/ComfyUI_frontend",
|
||||
"homepage": "https://comfy.org",
|
||||
@@ -73,7 +73,7 @@
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"@atlaskit/pragmatic-drag-and-drop": "^1.3.1",
|
||||
"@comfyorg/comfyui-electron-types": "^0.4.31",
|
||||
"@comfyorg/litegraph": "^0.13.2",
|
||||
"@comfyorg/litegraph": "^0.13.1",
|
||||
"@primevue/forms": "^4.2.5",
|
||||
"@primevue/themes": "^4.2.5",
|
||||
"@sentry/vue": "^8.48.0",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -1,75 +0,0 @@
|
||||
<template>
|
||||
<div class="flex flex-col gap-3 h-full">
|
||||
<div class="flex justify-between text-xs">
|
||||
<div>{{ t('apiNodesCostBreakdown.title') }}</div>
|
||||
<div>{{ t('apiNodesCostBreakdown.costPerRun') }}</div>
|
||||
</div>
|
||||
<ScrollPanel class="flex-grow h-0">
|
||||
<div class="flex flex-col gap-2">
|
||||
<div
|
||||
v-for="node in nodes"
|
||||
:key="node.name"
|
||||
class="flex items-center justify-between px-3 py-2 rounded-md bg-[var(--p-content-border-color)]"
|
||||
>
|
||||
<div class="flex items-center gap-2">
|
||||
<span class="text-base font-medium leading-tight">{{
|
||||
node.name
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="flex items-center gap-1">
|
||||
<Tag
|
||||
severity="secondary"
|
||||
icon="pi pi-dollar"
|
||||
rounded
|
||||
class="text-amber-400 p-1"
|
||||
/>
|
||||
<span class="text-base font-medium leading-tight">
|
||||
{{ node.cost.toFixed(costPrecision) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollPanel>
|
||||
<template v-if="showTotal && nodes.length > 1">
|
||||
<Divider class="my-2" />
|
||||
<div class="flex justify-between items-center border-t px-3">
|
||||
<span class="text-sm">{{ t('apiNodesCostBreakdown.totalCost') }}</span>
|
||||
<div class="flex items-center gap-1">
|
||||
<Tag
|
||||
severity="secondary"
|
||||
icon="pi pi-dollar"
|
||||
rounded
|
||||
class="text-yellow-500 p-1"
|
||||
/>
|
||||
<span>{{ totalCost.toFixed(costPrecision) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import Divider from 'primevue/divider'
|
||||
import ScrollPanel from 'primevue/scrollpanel'
|
||||
import Tag from 'primevue/tag'
|
||||
import { computed } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
import type { ApiNodeCost } from '@/types/apiNodeTypes'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const {
|
||||
nodes,
|
||||
showTotal = true,
|
||||
costPrecision = 3
|
||||
} = defineProps<{
|
||||
nodes: ApiNodeCost[]
|
||||
showTotal?: boolean
|
||||
costPrecision?: number
|
||||
}>()
|
||||
|
||||
const totalCost = computed(() =>
|
||||
nodes.reduce((sum, node) => sum + node.cost, 0)
|
||||
)
|
||||
</script>
|
||||
@@ -1,43 +0,0 @@
|
||||
<!-- Prompt user that the workflow contains API nodes that needs login to run -->
|
||||
<template>
|
||||
<div class="flex flex-col gap-4 max-w-96 h-110 p-2">
|
||||
<div class="text-2xl font-medium mb-2">
|
||||
{{ t('apiNodesSignInDialog.title') }}
|
||||
</div>
|
||||
|
||||
<div class="text-base mb-4">
|
||||
{{ t('apiNodesSignInDialog.message') }}
|
||||
</div>
|
||||
|
||||
<ApiNodesCostBreakdown :nodes="apiNodes" :show-total="true" />
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<Button :label="t('g.learnMore')" link />
|
||||
<div class="flex gap-2">
|
||||
<Button
|
||||
:label="t('g.cancel')"
|
||||
outlined
|
||||
severity="secondary"
|
||||
@click="onCancel?.()"
|
||||
/>
|
||||
<Button :label="t('g.login')" @click="onLogin?.()" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import Button from 'primevue/button'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
import ApiNodesCostBreakdown from '@/components/common/ApiNodesCostBreakdown.vue'
|
||||
import type { ApiNodeCost } from '@/types/apiNodeTypes'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const { apiNodes, onLogin, onCancel } = defineProps<{
|
||||
apiNodes: ApiNodeCost[]
|
||||
onLogin?: () => void
|
||||
onCancel?: () => void
|
||||
}>()
|
||||
</script>
|
||||
@@ -1,6 +0,0 @@
|
||||
<!-- A dialog header with ComfyOrg logo -->
|
||||
<template>
|
||||
<div class="px-2 py-4">
|
||||
<img src="/assets/images/Comfy_Logo_x32.png" alt="ComfyOrg Logo" />
|
||||
</div>
|
||||
</template>
|
||||
@@ -18,7 +18,7 @@ export const DESKTOP_MAINTENANCE_TASKS: Readonly<MaintenanceTask>[] = [
|
||||
shortDescription: 'Change the application base path.',
|
||||
errorDescription: 'Unable to open the base path. Please select a new one.',
|
||||
description:
|
||||
'The base path is the default location where ComfyUI stores data. It is the location for the python environment, and may also contain models, custom nodes, and other extensions.',
|
||||
'The base path is the default location where ComfyUI stores data. It is the location fo the python environment, and may also contain models, custom nodes, and other extensions.',
|
||||
isInstallationFix: true,
|
||||
button: {
|
||||
icon: PrimeIcons.QUESTION,
|
||||
|
||||
@@ -18,39 +18,7 @@ import { generateUUID } from '@/utils/formatUtil'
|
||||
|
||||
useExtensionService().registerExtension({
|
||||
name: 'Comfy.Load3D',
|
||||
settings: [
|
||||
{
|
||||
id: 'Comfy.Load3D.ShowGrid',
|
||||
category: ['3D', 'Scene', 'Initial Grid Visibility'],
|
||||
name: 'Initial Grid Visibility',
|
||||
tooltip:
|
||||
'Controls whether the grid is visible by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation.',
|
||||
type: 'boolean',
|
||||
defaultValue: true,
|
||||
experimental: true
|
||||
},
|
||||
{
|
||||
id: 'Comfy.Load3D.ShowPreview',
|
||||
category: ['3D', 'Scene', 'Initial Preview Visibility'],
|
||||
name: 'Initial Preview Visibility',
|
||||
tooltip:
|
||||
'Controls whether the preview screen is visible by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation.',
|
||||
type: 'boolean',
|
||||
defaultValue: true,
|
||||
experimental: true
|
||||
},
|
||||
{
|
||||
id: 'Comfy.Load3D.CameraType',
|
||||
category: ['3D', 'Camera', 'Initial Camera Type'],
|
||||
name: 'Initial Camera Type',
|
||||
tooltip:
|
||||
'Controls whether the camera is perspective or orthographic by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation.',
|
||||
type: 'combo',
|
||||
options: ['perspective', 'orthographic'],
|
||||
defaultValue: 'perspective',
|
||||
experimental: true
|
||||
}
|
||||
],
|
||||
|
||||
getCustomWidgets() {
|
||||
return {
|
||||
LOAD_3D(node) {
|
||||
|
||||
@@ -3,7 +3,6 @@ import type { IWidget } from '@comfyorg/litegraph'
|
||||
import Load3d from '@/extensions/core/load3d/Load3d'
|
||||
import Load3dUtils from '@/extensions/core/load3d/Load3dUtils'
|
||||
import { api } from '@/scripts/api'
|
||||
import { useSettingStore } from '@/stores/settingStore'
|
||||
|
||||
class Load3DConfiguration {
|
||||
constructor(private load3d: Load3d) {}
|
||||
@@ -73,21 +72,15 @@ class Load3DConfiguration {
|
||||
private setupDefaultProperties() {
|
||||
const cameraType = this.load3d.loadNodeProperty(
|
||||
'Camera Type',
|
||||
useSettingStore().get('Comfy.Load3D.CameraType')
|
||||
'perspective'
|
||||
)
|
||||
this.load3d.toggleCamera(cameraType)
|
||||
|
||||
const showGrid = this.load3d.loadNodeProperty(
|
||||
'Show Grid',
|
||||
useSettingStore().get('Comfy.Load3D.ShowGrid')
|
||||
)
|
||||
const showGrid = this.load3d.loadNodeProperty('Show Grid', true)
|
||||
|
||||
this.load3d.toggleGrid(showGrid)
|
||||
|
||||
const showPreview = this.load3d.loadNodeProperty(
|
||||
'Show Preview',
|
||||
useSettingStore().get('Comfy.Load3D.ShowPreview')
|
||||
)
|
||||
const showPreview = this.load3d.loadNodeProperty('Show Preview', true)
|
||||
|
||||
this.load3d.togglePreview(showPreview)
|
||||
|
||||
|
||||
@@ -108,9 +108,7 @@
|
||||
"disabling": "Disabling",
|
||||
"updating": "Updating",
|
||||
"migrate": "Migrate",
|
||||
"updateAvailable": "Update Available",
|
||||
"login": "Login",
|
||||
"learnMore": "Learn more"
|
||||
"updateAvailable": "Update Available"
|
||||
},
|
||||
"manager": {
|
||||
"title": "Custom Nodes Manager",
|
||||
@@ -718,11 +716,7 @@
|
||||
"CustomColorPalettes": "Custom Color Palettes",
|
||||
"UV": "UV",
|
||||
"ContextMenu": "Context Menu",
|
||||
"Reroute": "Reroute",
|
||||
"Load 3D": "Load 3D",
|
||||
"Camera": "Camera",
|
||||
"Scene": "Scene",
|
||||
"3D": "3D"
|
||||
"Reroute": "Reroute"
|
||||
},
|
||||
"serverConfigItems": {
|
||||
"listen": {
|
||||
@@ -978,15 +972,6 @@
|
||||
"extensionFileHint": "This may be due to the following script",
|
||||
"promptExecutionError": "Prompt execution failed"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"title": "Sign In Required to Use API Nodes",
|
||||
"message": "This workflow contains API Nodes, which require you to be signed in to your account in order to run."
|
||||
},
|
||||
"apiNodesCostBreakdown": {
|
||||
"title": "API Node(s)",
|
||||
"costPerRun": "Cost per run",
|
||||
"totalCost": "Total Cost"
|
||||
},
|
||||
"desktopUpdate": {
|
||||
"title": "Updating ComfyUI Desktop",
|
||||
"description": "ComfyUI Desktop is installing new dependencies. This may take a few minutes.",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Hidden": "Hidden"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Initial Camera Type",
|
||||
"tooltip": "Controls whether the camera is perspective or orthographic by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation.",
|
||||
"options": {
|
||||
"perspective": "perspective",
|
||||
"orthographic": "orthographic"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Initial Grid Visibility",
|
||||
"tooltip": "Controls whether the grid is visible by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation."
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "Initial Preview Visibility",
|
||||
"tooltip": "Controls whether the preview screen is visible by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Language"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "Costo por ejecución",
|
||||
"title": "Nodo(s) de API",
|
||||
"totalCost": "Costo total"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "Este flujo de trabajo contiene nodos de API, que requieren que inicies sesión en tu cuenta para poder ejecutar.",
|
||||
"title": "Se requiere iniciar sesión para usar los nodos de API"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "Error al copiar al portapapeles",
|
||||
"errorNotSupported": "API del portapapeles no soportada en su navegador",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "Instalando",
|
||||
"interrupted": "Interrumpido",
|
||||
"keybinding": "Combinación de teclas",
|
||||
"learnMore": "Aprende más",
|
||||
"loadAllFolders": "Cargar todas las carpetas",
|
||||
"loadWorkflow": "Cargar flujo de trabajo",
|
||||
"loading": "Cargando",
|
||||
"login": "Iniciar sesión",
|
||||
"logs": "Registros",
|
||||
"migrate": "Migrar",
|
||||
"missing": "Faltante",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "Solucionar problemas"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "Acerca de",
|
||||
"Appearance": "Apariencia",
|
||||
"BrushAdjustment": "Ajuste de Pincel",
|
||||
"Camera": "Cámara",
|
||||
"Canvas": "Lienzo",
|
||||
"ColorPalette": "Paleta de Colores",
|
||||
"Comfy": "Comfy",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "Enlace",
|
||||
"LinkRelease": "Liberación de Enlace",
|
||||
"LiteGraph": "Lite Graph",
|
||||
"Load 3D": "Cargar 3D",
|
||||
"Locale": "Localización",
|
||||
"Mask Editor": "Editor de Máscara",
|
||||
"Menu": "Menú",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "Botón de Cola",
|
||||
"Reroute": "Reenrutar",
|
||||
"RerouteBeta": "Reroute Beta",
|
||||
"Scene": "Escena",
|
||||
"Server": "Servidor",
|
||||
"Server-Config": "Configuración del Servidor",
|
||||
"Settings": "Configuraciones",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "Recto"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Tipo de Cámara",
|
||||
"options": {
|
||||
"orthographic": "ortográfica",
|
||||
"perspective": "perspectiva"
|
||||
},
|
||||
"tooltip": "Controla si la cámara es perspectiva u ortográfica por defecto cuando se crea un nuevo widget 3D. Este valor predeterminado aún puede ser alternado individualmente para cada widget después de su creación."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Mostrar Cuadrícula",
|
||||
"tooltip": "Cambiar para mostrar cuadrícula por defecto"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "Mostrar Previsualización",
|
||||
"tooltip": "Cambiar para mostrar previsualización por defecto"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Idioma"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "Coût par exécution",
|
||||
"title": "Nœud(s) API",
|
||||
"totalCost": "Coût total"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "Ce flux de travail contient des nœuds API, qui nécessitent que vous soyez connecté à votre compte pour pouvoir fonctionner.",
|
||||
"title": "Connexion requise pour utiliser les nœuds API"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "Échec de la copie dans le presse-papiers",
|
||||
"errorNotSupported": "L'API du presse-papiers n'est pas prise en charge par votre navigateur",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "Installation",
|
||||
"interrupted": "Interrompu",
|
||||
"keybinding": "Raccourci clavier",
|
||||
"learnMore": "En savoir plus",
|
||||
"loadAllFolders": "Charger tous les dossiers",
|
||||
"loadWorkflow": "Charger le flux de travail",
|
||||
"loading": "Chargement",
|
||||
"login": "Connexion",
|
||||
"logs": "Journaux",
|
||||
"migrate": "Migrer",
|
||||
"missing": "Manquant",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "Dépannage"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "À Propos",
|
||||
"Appearance": "Apparence",
|
||||
"BrushAdjustment": "Ajustement de Brosse",
|
||||
"Camera": "Caméra",
|
||||
"Canvas": "Toile",
|
||||
"ColorPalette": "Palette de Couleurs",
|
||||
"Comfy": "Confort",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "Lien",
|
||||
"LinkRelease": "Libération de Lien",
|
||||
"LiteGraph": "Lite Graph",
|
||||
"Load 3D": "Charger 3D",
|
||||
"Locale": "Locale",
|
||||
"Mask Editor": "Éditeur de Masque",
|
||||
"Menu": "Menu",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "Bouton de File d'Attente",
|
||||
"Reroute": "Réacheminement",
|
||||
"RerouteBeta": "Reroute Beta",
|
||||
"Scene": "Scène",
|
||||
"Server": "Serveur",
|
||||
"Server-Config": "Config-Serveur",
|
||||
"Settings": "Paramètres",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "Droit"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Type de Caméra",
|
||||
"options": {
|
||||
"orthographic": "orthographique",
|
||||
"perspective": "perspective"
|
||||
},
|
||||
"tooltip": "Contrôle si la caméra est en perspective ou orthographique par défaut lorsqu'un nouveau widget 3D est créé. Ce défaut peut toujours être basculé individuellement pour chaque widget après sa création."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Afficher la Grille",
|
||||
"tooltip": "Basculer pour afficher la grille par défaut"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "Afficher l'Aperçu",
|
||||
"tooltip": "Basculer pour afficher l'aperçu par défaut"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Langue"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "実行あたりのコスト",
|
||||
"title": "APIノード",
|
||||
"totalCost": "合計コスト"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "このワークフローにはAPIノードが含まれており、実行するためにはアカウントにサインインする必要があります。",
|
||||
"title": "APIノードを使用するためにはサインインが必要です"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "クリップボードへのコピーに失敗しました",
|
||||
"errorNotSupported": "お使いのブラウザではクリップボードAPIがサポートされていません",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "インストール中",
|
||||
"interrupted": "中断されました",
|
||||
"keybinding": "キーバインディング",
|
||||
"learnMore": "詳細を学ぶ",
|
||||
"loadAllFolders": "すべてのフォルダーを読み込む",
|
||||
"loadWorkflow": "ワークフローを読み込む",
|
||||
"loading": "読み込み中",
|
||||
"login": "ログイン",
|
||||
"logs": "ログ",
|
||||
"migrate": "移行する",
|
||||
"missing": "不足している",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "トラブルシューティング"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "情報",
|
||||
"Appearance": "外観",
|
||||
"BrushAdjustment": "ブラシ調整",
|
||||
"Camera": "カメラ",
|
||||
"Canvas": "キャンバス",
|
||||
"ColorPalette": "カラーパレット",
|
||||
"Comfy": "Comfy",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "リンク",
|
||||
"LinkRelease": "リンク解除",
|
||||
"LiteGraph": "Lite Graph",
|
||||
"Load 3D": "3Dを読み込む",
|
||||
"Locale": "ロケール",
|
||||
"Mask Editor": "マスクエディタ",
|
||||
"Menu": "メニュー",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "キューボタン",
|
||||
"Reroute": "リルート",
|
||||
"RerouteBeta": "ルート変更ベータ",
|
||||
"Scene": "シーン",
|
||||
"Server": "サーバー",
|
||||
"Server-Config": "サーバー設定",
|
||||
"Settings": "設定",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "ストレート"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "カメラタイプ",
|
||||
"options": {
|
||||
"orthographic": "オルソグラフィック",
|
||||
"perspective": "パースペクティブ"
|
||||
},
|
||||
"tooltip": "新しい3Dウィジェットが作成されたときに、デフォルトでカメラが透視投影か平行投影かを制御します。このデフォルトは、作成後に各ウィジェットごとに個別に切り替えることができます。"
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "グリッドを表示",
|
||||
"tooltip": "デフォルトでグリッドを表示するには切り替えます"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "プレビューを表示",
|
||||
"tooltip": "デフォルトでプレビューを表示するには切り替えます"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "言語"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "실행 당 비용",
|
||||
"title": "API 노드(들)",
|
||||
"totalCost": "총 비용"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "이 워크플로우에는 API 노드가 포함되어 있으며, 실행하려면 계정에 로그인해야 합니다.",
|
||||
"title": "API 노드 사용에 필요한 로그인"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "클립보드에 복사하지 못했습니다",
|
||||
"errorNotSupported": "브라우저가 클립보드 API를 지원하지 않습니다.",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "설치 중",
|
||||
"interrupted": "중단됨",
|
||||
"keybinding": "키 바인딩",
|
||||
"learnMore": "더 알아보기",
|
||||
"loadAllFolders": "모든 폴더 로드",
|
||||
"loadWorkflow": "워크플로 로드",
|
||||
"loading": "로딩 중",
|
||||
"login": "로그인",
|
||||
"logs": "로그",
|
||||
"migrate": "이전(migrate)",
|
||||
"missing": "누락됨",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "문제 해결"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "정보",
|
||||
"Appearance": "모양",
|
||||
"BrushAdjustment": "브러시 조정",
|
||||
"Camera": "카메라",
|
||||
"Canvas": "캔버스",
|
||||
"ColorPalette": "색상 팔레트",
|
||||
"Comfy": "Comfy",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "링크",
|
||||
"LinkRelease": "링크 해제",
|
||||
"LiteGraph": "LiteGraph",
|
||||
"Load 3D": "3D 불러오기",
|
||||
"Locale": "언어 설정",
|
||||
"Mask Editor": "마스크 편집기",
|
||||
"Menu": "메뉴",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "실행 큐 버튼",
|
||||
"Reroute": "경유점",
|
||||
"RerouteBeta": "경유점 (베타)",
|
||||
"Scene": "장면",
|
||||
"Server": "서버",
|
||||
"Server-Config": "서버 구성",
|
||||
"Settings": "설정",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "직선"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "카메라 유형",
|
||||
"options": {
|
||||
"orthographic": "직교법",
|
||||
"perspective": "원근법"
|
||||
},
|
||||
"tooltip": "새로운 3D 위젯이 생성될 때 카메라가 기본적으로 원근법 또는 직교법을 사용하는지를 제어합니다. 이 기본값은 생성 후 각 위젯별로 개별적으로 전환할 수 있습니다."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "그리드 표시",
|
||||
"tooltip": "기본적으로 그리드를 표시하도록 전환"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "미리보기 표시",
|
||||
"tooltip": "기본적으로 미리보기를 표시하도록 전환"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "언어"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "Стоимость за запуск",
|
||||
"title": "API Node(s)",
|
||||
"totalCost": "Общая стоимость"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "Этот рабочий процесс содержит API Nodes, которые требуют входа в вашу учетную запись для выполнения.",
|
||||
"title": "Требуется вход для использования API Nodes"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "Не удалось скопировать в буфер обмена",
|
||||
"errorNotSupported": "API буфера обмена не поддерживается в вашем браузере",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "Установка",
|
||||
"interrupted": "Прервано",
|
||||
"keybinding": "Привязка клавиш",
|
||||
"learnMore": "Узнать больше",
|
||||
"loadAllFolders": "Загрузить все папки",
|
||||
"loadWorkflow": "Загрузить рабочий процесс",
|
||||
"loading": "Загрузка",
|
||||
"login": "Вход",
|
||||
"logs": "Логи",
|
||||
"migrate": "Мигрировать",
|
||||
"missing": "Отсутствует",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "Устранение неполадок"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "О программе",
|
||||
"Appearance": "Внешний вид",
|
||||
"BrushAdjustment": "Настройка кисти",
|
||||
"Camera": "Камера",
|
||||
"Canvas": "Холст",
|
||||
"ColorPalette": "Цветовая палитра",
|
||||
"Comfy": "Comfy",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "Ссылка",
|
||||
"LinkRelease": "Освобождение ссылки",
|
||||
"LiteGraph": "Lite Graph",
|
||||
"Load 3D": "Загрузить 3D",
|
||||
"Locale": "Локализация",
|
||||
"Mask Editor": "Редактор масок",
|
||||
"Menu": "Меню",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "Кнопка очереди",
|
||||
"Reroute": "Перенаправление",
|
||||
"RerouteBeta": "Бета-версия перенаправления",
|
||||
"Scene": "Сцена",
|
||||
"Server": "Сервер",
|
||||
"Server-Config": "Настройки сервера",
|
||||
"Settings": "Настройки",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "Прямой"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Тип камеры",
|
||||
"options": {
|
||||
"orthographic": "ортографическая",
|
||||
"perspective": "перспективная"
|
||||
},
|
||||
"tooltip": "Управляет тем, является ли камера перспективной или ортографической по умолчанию при создании нового 3D-виджета. Это значение по умолчанию все еще может быть переключено индивидуально для каждого виджета после его создания."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Показать сетку",
|
||||
"tooltip": "Переключиться, чтобы показывать сетку по умолчанию"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "Показать предварительный просмотр",
|
||||
"tooltip": "Переключиться, чтобы показывать предварительный просмотр по умолчанию"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Язык"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
{
|
||||
"apiNodesCostBreakdown": {
|
||||
"costPerRun": "每次运行的成本",
|
||||
"title": "API节点",
|
||||
"totalCost": "总成本"
|
||||
},
|
||||
"apiNodesSignInDialog": {
|
||||
"message": "此工作流包含API节点,需要您登录账户才能运行。",
|
||||
"title": "使用API节点需要登录"
|
||||
},
|
||||
"clipboard": {
|
||||
"errorMessage": "复制到剪贴板失败",
|
||||
"errorNotSupported": "您的浏览器不支持剪贴板API",
|
||||
@@ -181,11 +172,9 @@
|
||||
"installing": "正在安装",
|
||||
"interrupted": "已中断",
|
||||
"keybinding": "按键绑定",
|
||||
"learnMore": "了解更多",
|
||||
"loadAllFolders": "加载所有文件夹",
|
||||
"loadWorkflow": "加载工作流",
|
||||
"loading": "加载中",
|
||||
"login": "登录",
|
||||
"logs": "日志",
|
||||
"migrate": "迁移",
|
||||
"missing": "缺失",
|
||||
@@ -823,11 +812,9 @@
|
||||
"troubleshoot": "故障排除"
|
||||
},
|
||||
"settingsCategories": {
|
||||
"3D": "3D",
|
||||
"About": "关于",
|
||||
"Appearance": "外观",
|
||||
"BrushAdjustment": "画笔调整",
|
||||
"Camera": "相机",
|
||||
"Canvas": "画布",
|
||||
"ColorPalette": "色彩主题",
|
||||
"Comfy": "Comfy",
|
||||
@@ -844,7 +831,6 @@
|
||||
"Link": "连线",
|
||||
"LinkRelease": "释放链接",
|
||||
"LiteGraph": "画面",
|
||||
"Load 3D": "加载3D",
|
||||
"Locale": "区域设置",
|
||||
"Mask Editor": "遮罩编辑器",
|
||||
"Menu": "菜单",
|
||||
@@ -859,7 +845,6 @@
|
||||
"QueueButton": "执行按钮",
|
||||
"Reroute": "重新路由",
|
||||
"RerouteBeta": "转接点 Beta",
|
||||
"Scene": "场景",
|
||||
"Server": "服务器",
|
||||
"Server-Config": "服务器配置",
|
||||
"Settings": "设置",
|
||||
|
||||
@@ -108,22 +108,6 @@
|
||||
"Straight": "直角线"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "摄像机类型",
|
||||
"options": {
|
||||
"orthographic": "正交",
|
||||
"perspective": "透视"
|
||||
},
|
||||
"tooltip": "控制创建新的3D小部件时,默认的相机是透视还是正交。这个默认设置仍然可以在创建后为每个小部件单独切换。"
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "显示网格",
|
||||
"tooltip": "默认显示网格开关"
|
||||
},
|
||||
"Comfy_Load3D_ShowPreview": {
|
||||
"name": "显示预览",
|
||||
"tooltip": "默认显示预览开关"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "语言"
|
||||
},
|
||||
|
||||
@@ -9,6 +9,7 @@ import ConfirmationService from 'primevue/confirmationservice'
|
||||
import ToastService from 'primevue/toastservice'
|
||||
import Tooltip from 'primevue/tooltip'
|
||||
import { createApp } from 'vue'
|
||||
import * as Vue from 'vue'
|
||||
|
||||
import '@/assets/css/style.css'
|
||||
import router from '@/router'
|
||||
@@ -59,3 +60,5 @@ app
|
||||
.use(pinia)
|
||||
.use(i18n)
|
||||
.mount('#vue-app')
|
||||
|
||||
window.Vue = Vue
|
||||
|
||||
@@ -440,9 +440,6 @@ const zSettings = z.object({
|
||||
'Comfy.MaskEditor.UseNewEditor': z.boolean(),
|
||||
'Comfy.MaskEditor.BrushAdjustmentSpeed': z.number(),
|
||||
'Comfy.MaskEditor.UseDominantAxis': z.boolean(),
|
||||
'Comfy.Load3D.ShowGrid': z.boolean(),
|
||||
'Comfy.Load3D.ShowPreview': z.boolean(),
|
||||
'Comfy.Load3D.CameraType': z.enum(['perspective', 'orthographic']),
|
||||
'pysssss.SnapToGrid': z.boolean(),
|
||||
/** VHS setting is used for queue video preview support. */
|
||||
'VHS.AdvancedPreviews': z.boolean(),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import ApiNodesSignInContent from '@/components/dialog/content/ApiNodesSignInContent.vue'
|
||||
import ConfirmationDialogContent from '@/components/dialog/content/ConfirmationDialogContent.vue'
|
||||
import ErrorDialogContent from '@/components/dialog/content/ErrorDialogContent.vue'
|
||||
import IssueReportDialogContent from '@/components/dialog/content/IssueReportDialogContent.vue'
|
||||
@@ -10,7 +9,6 @@ import SettingDialogContent from '@/components/dialog/content/SettingDialogConte
|
||||
import ManagerDialogContent from '@/components/dialog/content/manager/ManagerDialogContent.vue'
|
||||
import ManagerHeader from '@/components/dialog/content/manager/ManagerHeader.vue'
|
||||
import ManagerProgressFooter from '@/components/dialog/footer/ManagerProgressFooter.vue'
|
||||
import ComfyOrgHeader from '@/components/dialog/header/ComfyOrgHeader.vue'
|
||||
import ManagerProgressHeader from '@/components/dialog/header/ManagerProgressHeader.vue'
|
||||
import SettingDialogHeader from '@/components/dialog/header/SettingDialogHeader.vue'
|
||||
import TemplateWorkflowsContent from '@/components/templates/TemplateWorkflowsContent.vue'
|
||||
@@ -18,7 +16,6 @@ import TemplateWorkflowsDialogHeader from '@/components/templates/TemplateWorkfl
|
||||
import { t } from '@/i18n'
|
||||
import type { ExecutionErrorWsMessage } from '@/schemas/apiSchema'
|
||||
import { type ShowDialogOptions, useDialogStore } from '@/stores/dialogStore'
|
||||
import { ApiNodeCost } from '@/types/apiNodeTypes'
|
||||
import { ManagerTab } from '@/types/comfyManagerTypes'
|
||||
|
||||
export type ConfirmationDialogType =
|
||||
@@ -219,34 +216,6 @@ export const useDialogService = () => {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows a dialog requiring sign in for API nodes
|
||||
* @returns Promise that resolves to true if user clicks login, false if cancelled
|
||||
*/
|
||||
async function showApiNodesSignInDialog(
|
||||
apiNodes: ApiNodeCost[]
|
||||
): Promise<boolean> {
|
||||
return new Promise<boolean>((resolve) => {
|
||||
dialogStore.showDialog({
|
||||
key: 'api-nodes-signin',
|
||||
component: ApiNodesSignInContent,
|
||||
props: {
|
||||
apiNodes,
|
||||
onLogin: () => resolve(true),
|
||||
onCancel: () => resolve(false)
|
||||
},
|
||||
headerComponent: ComfyOrgHeader,
|
||||
dialogComponentProps: {
|
||||
closable: false,
|
||||
onClose: () => resolve(false)
|
||||
}
|
||||
})
|
||||
}).then((result) => {
|
||||
dialogStore.closeDialog({ key: 'api-nodes-signin' })
|
||||
return result
|
||||
})
|
||||
}
|
||||
|
||||
async function prompt({
|
||||
title,
|
||||
message,
|
||||
@@ -331,7 +300,6 @@ export const useDialogService = () => {
|
||||
showManagerDialog,
|
||||
showManagerProgressDialog,
|
||||
showErrorDialog,
|
||||
showApiNodesSignInDialog,
|
||||
prompt,
|
||||
confirm
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
export interface ApiNodeCost {
|
||||
name: string
|
||||
cost: number
|
||||
}
|
||||
Reference in New Issue
Block a user