Compare commits

...

6 Commits

Author SHA1 Message Date
github-actions
5d7fd4b22b Update locales [skip ci] 2025-08-18 07:34:03 +00:00
snomiao
17ad24907c Fix missing locale keys for CI tests
- Restore complete locale file from main branch
- Add missing output explorer keys: audio, folder, image, itemsCount, modifyTime, searchIn, size, type, video
- Add missing sideToolbar.outputExplorer key
- Resolves translation key failures in CI tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 07:07:00 +00:00
github-actions
3fe70be39d Update locales [skip ci] 2025-08-18 05:50:03 +00:00
snomiao
afd561eb83 Fix formatting and linting issues
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 05:45:14 +00:00
hayden
808d63996c Fix source url with api prefix 2025-08-18 05:29:31 +00:00
hayden
cf1ff71651 Add output explorer 2025-08-18 05:29:31 +00:00
25 changed files with 3234 additions and 2510 deletions

View File

@@ -0,0 +1,208 @@
<template>
<div class="h-full overflow-hidden pb-1">
<div class="flex item-center">
<div
v-for="item in columns"
:key="item.key"
class="flex justify-between items-center px-2 overflow-hidden hover:bg-blue-600/40 cursor-pointer"
:style="{ flexBasis: `${item.width}px`, height: '36px' }"
@click="changeSort(item)"
>
<span class="whitespace-nowrap overflow-hidden text-ellipsis">
{{ $t(`g.${item.key}`) }}
</span>
<span
v-show="item.key === sortField"
:class="[
'text-xs pi',
sortDirection === 'asc' ? 'pi-angle-up' : 'pi-angle-down'
]"
></span>
</div>
</div>
<div :style="{ height: 'calc(100% - 36px)' }">
<VirtualScroll :items="sortedItems" :item-size="36">
<template #item="{ item: row }">
<div
class="h-full py-px"
@click="emit('itemClick', row, $event)"
@dblclick="emit('itemDbClick', row, $event)"
>
<div
:class="[
'flex items-center h-full hover:bg-blue-600/40',
selectedKeys.includes(row.key) ? 'bg-blue-700/40' : ''
]"
>
<div
v-for="(item, index) in columns"
:key="item.key"
class="flex items-center px-2 py-1 overflow-hidden select-none"
:style="{ flexBasis: `${item.width}px`, textAlign: item.align }"
>
<span v-if="index === 0" :class="['mr-2 pi', row.icon]"></span>
<span class="whitespace-nowrap overflow-hidden text-ellipsis">
{{ (row._display as any)[item.key] }}
</span>
</div>
</div>
</div>
</template>
</VirtualScroll>
</div>
</div>
</template>
<script setup lang="ts" generic="T">
import { computed, provide, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { formatSize } from '@/utils/formatUtil'
import VirtualScroll from './VirtualScroll.vue'
const { t } = useI18n()
type SortDirection = 'asc' | 'desc'
type Item = {
key: string
name: string
type: string
modifyTime: number
size: number
}
type RecordString<T> = Record<keyof T, any>
type ResolvedItem<T> = T & {
icon: string
_display: RecordString<T>
}
interface Column {
key: string
width: number
align?: 'left' | 'right'
defaultSort?: SortDirection
renderText: (val: any, row: Item) => string
}
const props = defineProps<{
items: Item[]
}>()
const selectedKeys = defineModel<string[]>({ default: [] })
const emit = defineEmits<{
itemClick: [Item, MouseEvent]
itemDbClick: [Item, MouseEvent]
}>()
const columns = ref<Column[]>([
{
key: 'name',
width: 300,
renderText: (val) => val
},
{
key: 'modifyTime',
width: 200,
defaultSort: 'desc',
renderText: (val) =>
new Date(val).toLocaleDateString() +
' ' +
new Date(val).toLocaleTimeString()
},
{
key: 'type',
width: 100,
renderText: (val) => t(`g.${val}`)
},
{
key: 'size',
width: 120,
defaultSort: 'desc',
align: 'right',
renderText: (val, item) => (item.type === 'folder' ? '' : formatSize(val))
}
])
provide('listExplorerColumns', columns)
const sortDirection = ref<SortDirection>('asc')
const sortField = ref('name')
const iconMapLegacy = (icon: string) => {
const prefix = 'pi-'
const legacy: Record<string, string> = {
audio: 'headphones'
}
return prefix + (legacy[icon] || icon)
}
const renderedItems = computed(() => {
const columnRenderText = columns.value.reduce(
(acc, column) => {
acc[column.key] = column.renderText
return acc
},
{} as Record<string, (val: any, row: Item) => string>
)
return props.items.map((item) => {
const display = Object.entries(item).reduce(
(acc, [key, value]) => {
acc[key] = columnRenderText[key]?.(value, item) ?? value
return acc
},
{} as Record<string, any>
)
return { ...item, icon: iconMapLegacy(item.type), _display: display }
})
})
const sortedItems = computed(() => {
const folderItems: ResolvedItem<Item>[] = []
const fileItems: ResolvedItem<Item>[] = []
for (const item of renderedItems.value) {
if (item.type === 'folder') {
folderItems.push(item)
} else {
fileItems.push(item)
}
}
const direction = sortDirection.value === 'asc' ? 1 : -1
const sorting = (a: ResolvedItem<Item>, b: ResolvedItem<Item>) => {
const aValue = (a as any)[sortField.value]
const bValue = (b as any)[sortField.value]
const result =
typeof aValue === 'string'
? aValue.localeCompare(bValue)
: aValue - bValue
return result * direction
}
folderItems.sort(sorting)
fileItems.sort(sorting)
const folderFirstField = ['modifyTime', 'type']
return direction > 0 || folderFirstField.includes(sortField.value)
? [...folderItems, ...fileItems]
: [...fileItems, ...folderItems]
})
const changeSort = (column: Column) => {
if (column.key === sortField.value) {
sortDirection.value = sortDirection.value === 'asc' ? 'desc' : 'asc'
} else {
sortField.value = column.key
sortDirection.value = column.defaultSort ?? 'asc'
}
}
</script>

View File

@@ -0,0 +1,85 @@
<template>
<div ref="container" class="scroll-container">
<div :style="{ height: `${state.start * itemSize}px` }"></div>
<div :style="contentStyle">
<div
v-for="item in renderedItems"
:key="item.key"
:style="{ height: `${itemSize}px` }"
data-virtual-item
>
<slot name="item" :item="item"></slot>
</div>
</div>
<div
:style="{ height: `${(items.length - state.end) * itemSize}px` }"
></div>
</div>
</template>
<script setup lang="ts" generic="T">
import { useElementSize, useScroll } from '@vueuse/core'
import { clamp } from 'es-toolkit'
import { type CSSProperties, computed, ref } from 'vue'
type Item = T & { key: string }
const props = defineProps<{
items: Item[]
itemSize: number
contentStyle?: Partial<CSSProperties>
scrollThrottle?: number
}>()
const { scrollThrottle = 64 } = props
const container = ref<HTMLElement | null>(null)
const { height } = useElementSize(container)
const { y: scrollY } = useScroll(container, {
throttle: scrollThrottle,
eventListenerOptions: { passive: true }
})
const viewRows = computed(() => Math.ceil(height.value / props.itemSize))
const offsetRows = computed(() => Math.floor(scrollY.value / props.itemSize))
const state = computed(() => {
const bufferRows = viewRows.value
const fromRow = offsetRows.value - bufferRows
const toRow = offsetRows.value + bufferRows + viewRows.value
return {
start: clamp(fromRow, 0, props.items.length),
end: clamp(toRow, fromRow, props.items.length)
}
})
const renderedItems = computed(() => {
return props.items.slice(state.value.start, state.value.end)
})
const reset = () => {}
defineExpose({
reset
})
</script>
<style scoped>
.scroll-container {
height: 100%;
overflow-y: auto;
/* Firefox */
scrollbar-width: none;
&::-webkit-scrollbar {
width: 1px;
}
&::-webkit-scrollbar-thumb {
background-color: transparent;
}
}
</style>

View File

@@ -0,0 +1,253 @@
<template>
<SidebarTabTemplate :title="$t('sideToolbar.outputExplorer')">
<template #tool-buttons>
<Button
v-tooltip.bottom="$t('g.back')"
icon="pi pi-arrow-up"
severity="secondary"
text
:disabled="!currentFolder"
@click="handleBackParentFolder"
/>
<Button
v-tooltip.bottom="$t('g.refresh')"
icon="pi pi-refresh"
severity="secondary"
text
@click="loadFolderItems"
/>
</template>
<template #header>
<SearchBox
v-model:modelValue="searchQuery"
class="model-lib-search-box p-2 2xl:p-4"
:placeholder="$t('g.searchIn', ['output'])"
@search="handleSearch"
/>
</template>
<template #body>
<div class="h-full overflow-hidden">
<ListExplorer
class="flex-1"
:style="{ height: 'calc(100% - 36px)' }"
:items="renderedItems"
@item-db-click="handleDbClickItem"
></ListExplorer>
<div class="h-8 flex items-center px-2 text-sm">
<div class="flex gap-1">
{{ $t('g.itemsCount', [itemsCount]) }}
</div>
</div>
</div>
</template>
</SidebarTabTemplate>
<Teleport to="body">
<div
v-show="previewVisible"
class="fixed left-0 top-0 z-[5000] flex h-full w-full items-center justify-center bg-black/70"
>
<div class="absolute right-3 top-3">
<Button
icon="pi pi-times"
severity="secondary"
rounded
@click="closePreview"
></Button>
</div>
<div class="h-full w-full select-none p-10">
<img
v-if="currentItem?.type === 'image'"
class="h-full w-full object-contain"
:src="`/api/output/${folderPrefix}${currentItem?.name}`"
alt="preview"
/>
<video
v-if="currentItem?.type === 'video'"
class="h-full w-full object-contain"
:src="`/api/output/${folderPrefix}${currentItem?.name}`"
controls
></video>
<div
v-if="currentItem?.type === 'audio'"
class="w-full h-full flex items-center justify-center"
>
<div
class="px-8 pt-6 rounded-full"
:style="{ background: 'var(--p-button-secondary-background)' }"
>
<div class="text-center mb-2">{{ currentItem?.name }}</div>
<audio
:src="`/api/output/${folderPrefix}${currentItem?.name}`"
controls
></audio>
</div>
</div>
</div>
<div class="absolute left-2 top-1/2">
<Button
icon="pi pi-angle-left"
severity="secondary"
rounded
@click="openPreviousItem"
></Button>
</div>
<div class="absolute right-2 top-1/2">
<Button
icon="pi pi-angle-right"
severity="secondary"
rounded
@click="openNextItem"
></Button>
</div>
</div>
</Teleport>
</template>
<script setup lang="ts">
import Button from 'primevue/button'
import { computed, onMounted, ref } from 'vue'
import ListExplorer from '@/components/common/ListExplorer.vue'
import SearchBox from '@/components/common/SearchBox.vue'
import SidebarTabTemplate from '@/components/sidebar/tabs/SidebarTabTemplate.vue'
import { api } from '@/scripts/api'
interface OutputItem {
key: string
name: string
type: 'folder' | 'image' | 'video' | 'audio'
size: number
createTime: number
modifyTime: number
}
const searchQuery = ref<string>('')
const folderPaths = ref<OutputItem[]>([])
const currentFolder = computed(() => {
return folderPaths.value.map((item) => item.name).join('/')
})
const currentFolderItems = ref<OutputItem[]>([])
const folderPrefix = computed(() => {
return currentFolder.value ? `${currentFolder.value}/` : ''
})
const filterContent = ref('')
const itemsCount = computed(() => {
return currentFolderItems.value.length.toLocaleString()
})
const renderedItems = computed(() => {
const query = filterContent.value
let items = currentFolderItems.value
if (query) {
items = items.filter((item) => {
return item.name.toLowerCase().includes(query.toLowerCase())
})
}
// Convert OutputItem to Item format expected by ListExplorer
return items.map((item) => ({
key: item.key,
name: item.name,
type: item.type,
size: item.size,
modifyTime: item.modifyTime
}))
})
const handleSearch = async (query: string) => {
filterContent.value = query
}
const previewVisible = ref(false)
const currentItem = ref<OutputItem | null>(null)
const currentItemIndex = ref(-1)
const currentTypeItems = ref<OutputItem[]>([])
const closePreview = () => {
previewVisible.value = false
currentItem.value = null
}
const openPreviousItem = () => {
currentItemIndex.value--
if (currentItemIndex.value < 0) {
currentItemIndex.value = currentTypeItems.value.length - 1
}
const item = currentTypeItems.value[currentItemIndex.value]
currentItem.value = item
}
const openNextItem = () => {
currentItemIndex.value++
if (currentItemIndex.value > currentTypeItems.value.length - 1) {
currentItemIndex.value = 0
}
const item = currentTypeItems.value[currentItemIndex.value]
currentItem.value = item
}
const openItemPreview = (item: OutputItem) => {
previewVisible.value = true
currentItem.value = item
const itemType = item.type
currentTypeItems.value = currentFolderItems.value.filter(
(o) => o.type === itemType
)
currentItemIndex.value = currentTypeItems.value.indexOf(item)
}
const loadFolderItems = async () => {
const resData = await api.getOutputFolderItems(currentFolder.value)
currentFolderItems.value = resData.map((item: any) => ({
key: item.name,
...item
}))
}
const openFolder = async (item: OutputItem, pathIndex: number) => {
folderPaths.value.splice(pathIndex)
folderPaths.value.push(item)
await loadFolderItems()
}
const handleBackParentFolder = async () => {
folderPaths.value.pop()
await loadFolderItems()
}
const handleDbClickItem = (item: any, _event: MouseEvent) => {
// Find the original OutputItem from currentFolderItems
const originalItem = currentFolderItems.value.find(
(outputItem) => outputItem.key === item.key
)
if (!originalItem) return
if (originalItem.type === 'folder') {
void openFolder(originalItem, folderPaths.value.length)
} else {
openItemPreview(originalItem)
}
}
onMounted(async () => {
await loadFolderItems()
})
</script>
<style scoped>
:deep(.pi-fake-spacer) {
height: 1px;
width: 16px;
}
:deep(audio::-webkit-media-controls-enclosure) {
background-color: inherit;
}
</style>

View File

@@ -0,0 +1,18 @@
import { markRaw } from 'vue'
import { useI18n } from 'vue-i18n'
import OutputExplorerSidebarTab from '@/components/sidebar/tabs/OutputExplorerSidebarTab.vue'
import type { SidebarTabExtension } from '@/types/extensionTypes'
export const useOutputExplorerSidebarTab = (): SidebarTabExtension => {
const { t } = useI18n()
return {
id: 'output-explorer',
icon: 'pi pi-image',
title: t('sideToolbar.outputExplorer'),
tooltip: t('sideToolbar.outputExplorer'),
component: markRaw(OutputExplorerSidebarTab),
type: 'vue'
}
}

View File

@@ -54,6 +54,12 @@ export const CORE_KEYBINDINGS: Keybinding[] = [
}, },
commandId: 'Workspace.ToggleSidebarTab.model-library' commandId: 'Workspace.ToggleSidebarTab.model-library'
}, },
{
combo: {
key: 'e'
},
commandId: 'Workspace.ToggleSidebarTab.output-explorer'
},
{ {
combo: { combo: {
key: 's', key: 's',

View File

@@ -277,6 +277,10 @@
"label": "تبديل الشريط الجانبي لمكتبة العقد", "label": "تبديل الشريط الجانبي لمكتبة العقد",
"tooltip": "مكتبة العقد" "tooltip": "مكتبة العقد"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "تبديل الشريط الجانبي لمستكشف النتائج",
"tooltip": "مستكشف النتائج"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "تبديل الشريط الجانبي لقائمة الانتظار", "label": "تبديل الشريط الجانبي لقائمة الانتظار",
"tooltip": "قائمة الانتظار" "tooltip": "قائمة الانتظار"

File diff suppressed because it is too large Load Diff

View File

@@ -277,6 +277,10 @@
"label": "Toggle Node Library Sidebar", "label": "Toggle Node Library Sidebar",
"tooltip": "Node Library" "tooltip": "Node Library"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "Toggle Output Explorer Sidebar",
"tooltip": "Output Explorer"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "Toggle Queue Sidebar", "label": "Toggle Queue Sidebar",
"tooltip": "Queue" "tooltip": "Queue"

View File

@@ -146,7 +146,16 @@
"micPermissionDenied": "Microphone permission denied", "micPermissionDenied": "Microphone permission denied",
"noAudioRecorded": "No audio recorded", "noAudioRecorded": "No audio recorded",
"nodesRunning": "nodes running", "nodesRunning": "nodes running",
"duplicate": "Duplicate" "duplicate": "Duplicate",
"audio": "Audio",
"folder": "Folder",
"image": "Image",
"itemsCount": "{0} Items",
"modifyTime": "Modify Time",
"searchIn": "Search in {0}",
"size": "Size",
"type": "Type",
"video": "Video"
}, },
"manager": { "manager": {
"title": "Custom Nodes Manager", "title": "Custom Nodes Manager",
@@ -497,7 +506,8 @@
"bookmarks": "Bookmarks", "bookmarks": "Bookmarks",
"open": "Open" "open": "Open"
} }
} },
"outputExplorer": "Output Explorer"
}, },
"helpCenter": { "helpCenter": {
"docs": "Docs", "docs": "Docs",
@@ -1036,6 +1046,7 @@
"Focus Mode": "Focus Mode", "Focus Mode": "Focus Mode",
"Model Library": "Model Library", "Model Library": "Model Library",
"Node Library": "Node Library", "Node Library": "Node Library",
"Output Explorer": "Output Explorer",
"Queue Panel": "Queue Panel", "Queue Panel": "Queue Panel",
"Workflows": "Workflows" "Workflows": "Workflows"
}, },

View File

@@ -277,6 +277,10 @@
"label": "Alternar Barra Lateral de Biblioteca de Nodos", "label": "Alternar Barra Lateral de Biblioteca de Nodos",
"tooltip": "Biblioteca de Nodos" "tooltip": "Biblioteca de Nodos"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "Alternar barra lateral del Explorador de Salidas",
"tooltip": "Explorador de Salidas"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "Alternar Barra Lateral de Cola", "label": "Alternar Barra Lateral de Cola",
"tooltip": "Cola" "tooltip": "Cola"

View File

@@ -1,12 +1,12 @@
{ {
"apiNodesCostBreakdown": { "apiNodesCostBreakdown": {
"costPerRun": "Costo por ejecución", "costPerRun": "Costo por ejecución",
"title": "Nodo(s) de API", "title": "Nodo(s) API",
"totalCost": "Costo total" "totalCost": "Costo total"
}, },
"apiNodesSignInDialog": { "apiNodesSignInDialog": {
"message": "Este flujo de trabajo contiene nodos de API, que requieren que inicies sesión en tu cuenta para poder ejecutar.", "message": "Este flujo de trabajo contiene nodos API, que requieren que inicies sesión en tu cuenta para ejecutarse.",
"title": "Se requiere iniciar sesión para usar los nodos de API" "title": "Inicio de sesión requerido para usar nodos API"
}, },
"auth": { "auth": {
"apiKey": { "apiKey": {
@@ -86,7 +86,7 @@
"clearWorkflow": "Limpiar flujo de trabajo", "clearWorkflow": "Limpiar flujo de trabajo",
"deleteWorkflow": "Eliminar flujo de trabajo", "deleteWorkflow": "Eliminar flujo de trabajo",
"duplicate": "Duplicar", "duplicate": "Duplicar",
"enterNewName": "Ingrese un nuevo nombre" "enterNewName": "Introduce un nuevo nombre"
}, },
"chatHistory": { "chatHistory": {
"cancelEdit": "Cancelar", "cancelEdit": "Cancelar",
@@ -97,7 +97,7 @@
}, },
"clipboard": { "clipboard": {
"errorMessage": "Error al copiar al portapapeles", "errorMessage": "Error al copiar al portapapeles",
"errorNotSupported": "API del portapapeles no soportada en su navegador", "errorNotSupported": "La API del portapapeles no es compatible con tu navegador",
"successMessage": "Copiado al portapapeles" "successMessage": "Copiado al portapapeles"
}, },
"color": { "color": {
@@ -108,54 +108,54 @@
"cyan": "Cian", "cyan": "Cian",
"default": "Predeterminado", "default": "Predeterminado",
"green": "Verde", "green": "Verde",
"noColor": "Sin Color", "noColor": "Sin color",
"pale_blue": "Azul Pálido", "pale_blue": "Azul pálido",
"pink": "Rosa", "pink": "Rosa",
"purple": "Morado", "purple": "Púrpura",
"red": "Rojo", "red": "Rojo",
"yellow": "Amarillo" "yellow": "Amarillo"
}, },
"contextMenu": { "contextMenu": {
"Add Group": "Agregar Grupo", "Add Group": "Agregar grupo",
"Add Group For Selected Nodes": "Agregar Grupo para Nodos Seleccionados", "Add Group For Selected Nodes": "Agregar grupo para los nodos seleccionados",
"Add Node": "Agregar Nodo", "Add Node": "Agregar nodo",
"Bypass": "Omitir", "Bypass": "Omitir",
"Clone": "Clonar", "Clone": "Clonar",
"Collapse": "Colapsar", "Collapse": "Colapsar",
"Colors": "Colores", "Colors": "Colores",
"Convert to Group Node": "Convertir en Nodo de Grupo", "Convert to Group Node": "Convertir en nodo de grupo",
"Copy (Clipspace)": "Copiar (Espacio de Clip)", "Copy (Clipspace)": "Copiar (Clipspace)",
"Expand": "Expandir", "Expand": "Expandir",
"Inputs": "Entradas", "Inputs": "Entradas",
"Manage": "Administrar", "Manage": "Gestionar",
"Manage Group Nodes": "Administrar Nodos de Grupo", "Manage Group Nodes": "Gestionar nodos de grupo",
"Mode": "Modo", "Mode": "Modo",
"Node Templates": "Plantillas de Nodos", "Node Templates": "Plantillas de nodo",
"Outputs": "Salidas", "Outputs": "Salidas",
"Pin": "Anclar", "Pin": "Fijar",
"Properties": "Propiedades", "Properties": "Propiedades",
"Properties Panel": "Panel de Propiedades", "Properties Panel": "Panel de propiedades",
"Remove": "Eliminar", "Remove": "Eliminar",
"Resize": "Redimensionar", "Resize": "Redimensionar",
"Save Selected as Template": "Guardar Seleccionado como Plantilla", "Save Selected as Template": "Guardar selección como plantilla",
"Search": "Buscar", "Search": "Buscar",
"Shapes": "Formas", "Shapes": "Formas",
"Title": "Título", "Title": "Título",
"Unpin": "Desanclar" "Unpin": "Desfijar"
}, },
"credits": { "credits": {
"accountInitialized": "Cuenta inicializada", "accountInitialized": "Cuenta inicializada",
"activity": "Actividad", "activity": "Actividad",
"added": "Añadido", "added": "Añadido",
"additionalInfo": "Información adicional", "additionalInfo": "Información adicional",
"apiPricing": "Precios de la API", "apiPricing": "Precios de API",
"credits": "Créditos", "credits": "Créditos",
"details": "Detalles", "details": "Detalles",
"eventType": "Tipo de evento", "eventType": "Tipo de evento",
"faqs": "Preguntas frecuentes", "faqs": "Preguntas frecuentes",
"invoiceHistory": "Historial de facturas", "invoiceHistory": "Historial de facturas",
"lastUpdated": "Última actualización", "lastUpdated": "Última actualización",
"messageSupport": "Contactar soporte", "messageSupport": "Soporte por mensaje",
"model": "Modelo", "model": "Modelo",
"purchaseCredits": "Comprar créditos", "purchaseCredits": "Comprar créditos",
"time": "Hora", "time": "Hora",
@@ -214,7 +214,7 @@
"UPSCALE_MODEL": "MODELO_DE_ESCALADO", "UPSCALE_MODEL": "MODELO_DE_ESCALADO",
"VAE": "VAE", "VAE": "VAE",
"VIDEO": "VÍDEO", "VIDEO": "VÍDEO",
"VOXEL": "VOXEL", "VOXEL": "VÓXEL",
"WEBCAM": "WEBCAM" "WEBCAM": "WEBCAM"
}, },
"desktopMenu": { "desktopMenu": {
@@ -228,7 +228,7 @@
"errorCheckingUpdate": "Error al buscar actualizaciones", "errorCheckingUpdate": "Error al buscar actualizaciones",
"errorInstallingUpdate": "Error al instalar la actualización", "errorInstallingUpdate": "Error al instalar la actualización",
"noUpdateFound": "No se encontró ninguna actualización", "noUpdateFound": "No se encontró ninguna actualización",
"terminalDefaultMessage": "Cualquier salida de consola de la actualización se mostrará aquí.", "terminalDefaultMessage": "Cualquier salida de la consola de la actualización se mostrará aquí.",
"title": "Actualizando ComfyUI Desktop", "title": "Actualizando ComfyUI Desktop",
"updateAvailableMessage": "Hay una actualización disponible. ¿Quieres reiniciar y actualizar ahora?", "updateAvailableMessage": "Hay una actualización disponible. ¿Quieres reiniciar y actualizar ahora?",
"updateFoundTitle": "Actualización encontrada (v{version})" "updateFoundTitle": "Actualización encontrada (v{version})"
@@ -252,8 +252,8 @@
"errorDialog": { "errorDialog": {
"defaultTitle": "Ocurrió un error", "defaultTitle": "Ocurrió un error",
"extensionFileHint": "Esto puede deberse al siguiente script", "extensionFileHint": "Esto puede deberse al siguiente script",
"loadWorkflowTitle": "La carga se interrumpió debido a un error al recargar los datos del flujo de trabajo", "loadWorkflowTitle": "Carga abortada debido a un error al recargar los datos del flujo de trabajo",
"noStackTrace": "No hay seguimiento de pila disponible", "noStackTrace": "No hay traza de pila disponible",
"promptExecutionError": "La ejecución del prompt falló" "promptExecutionError": "La ejecución del prompt falló"
}, },
"g": { "g": {
@@ -264,13 +264,14 @@
"amount": "Cantidad", "amount": "Cantidad",
"apply": "Aplicar", "apply": "Aplicar",
"architecture": "Arquitectura", "architecture": "Arquitectura",
"audio": "Audio",
"audioFailedToLoad": "No se pudo cargar el audio", "audioFailedToLoad": "No se pudo cargar el audio",
"author": "Autor", "author": "Autor",
"back": "Atrás", "back": "Atrás",
"cancel": "Cancelar", "cancel": "Cancelar",
"capture": "captura", "capture": "capturar",
"category": "Categoría", "category": "Categoría",
"choose_file_to_upload": "elige archivo para subir", "choose_file_to_upload": "elige un archivo para subir",
"clear": "Limpiar", "clear": "Limpiar",
"clearFilters": "Borrar filtros", "clearFilters": "Borrar filtros",
"close": "Cerrar", "close": "Cerrar",
@@ -282,8 +283,8 @@
"confirm": "Confirmar", "confirm": "Confirmar",
"confirmed": "Confirmado", "confirmed": "Confirmado",
"continue": "Continuar", "continue": "Continuar",
"control_after_generate": "control después de generar", "control_after_generate": "controlar después de generar",
"control_before_generate": "control antes de generar", "control_before_generate": "controlar antes de generar",
"copy": "Copiar", "copy": "Copiar",
"copyToClipboard": "Copiar al portapapeles", "copyToClipboard": "Copiar al portapapeles",
"copyURL": "Copiar URL", "copyURL": "Copiar URL",
@@ -313,11 +314,13 @@
"filter": "Filtrar", "filter": "Filtrar",
"findIssues": "Encontrar problemas", "findIssues": "Encontrar problemas",
"firstTimeUIMessage": "Esta es la primera vez que usas la nueva interfaz. Elige \"Menú > Usar nuevo menú > Desactivado\" para restaurar la antigua interfaz.", "firstTimeUIMessage": "Esta es la primera vez que usas la nueva interfaz. Elige \"Menú > Usar nuevo menú > Desactivado\" para restaurar la antigua interfaz.",
"folder": "Carpeta",
"frontendNewer": "La versión del frontend {frontendVersion} puede no ser compatible con la versión del backend {backendVersion}.", "frontendNewer": "La versión del frontend {frontendVersion} puede no ser compatible con la versión del backend {backendVersion}.",
"frontendOutdated": "La versión del frontend {frontendVersion} está desactualizada. El backend requiere la versión {requiredVersion} o superior.", "frontendOutdated": "La versión del frontend {frontendVersion} está desactualizada. El backend requiere {requiredVersion} o superior.",
"goToNode": "Ir al nodo", "goToNode": "Ir al nodo",
"help": "Ayuda", "help": "Ayuda",
"icon": "Icono", "icon": "Icono",
"image": "Imagen",
"imageFailedToLoad": "Falló la carga de la imagen", "imageFailedToLoad": "Falló la carga de la imagen",
"imageUrl": "URL de la imagen", "imageUrl": "URL de la imagen",
"import": "Importar", "import": "Importar",
@@ -327,18 +330,20 @@
"installed": "Instalado", "installed": "Instalado",
"installing": "Instalando", "installing": "Instalando",
"interrupted": "Interrumpido", "interrupted": "Interrumpido",
"itemsCount": "{0} elementos",
"keybinding": "Combinación de teclas", "keybinding": "Combinación de teclas",
"keybindingAlreadyExists": "La combinación de teclas ya existe en", "keybindingAlreadyExists": "La combinación de teclas ya existe en",
"learnMore": "Aprende más", "learnMore": "Saber más",
"loadAllFolders": "Cargar todas las carpetas", "loadAllFolders": "Cargar todas las carpetas",
"loadWorkflow": "Cargar flujo de trabajo", "loadWorkflow": "Cargar flujo de trabajo",
"loading": "Cargando", "loading": "Cargando",
"loadingPanel": "Cargando panel {panel}...", "loadingPanel": "Cargando panel de {panel}...",
"login": "Iniciar sesión", "login": "Iniciar sesión",
"logs": "Registros", "logs": "Registros",
"micPermissionDenied": "Permiso de micrófono denegado", "micPermissionDenied": "Permiso de micrófono denegado",
"migrate": "Migrar", "migrate": "Migrar",
"missing": "Faltante", "missing": "Faltante",
"modifyTime": "Hora de modificación",
"name": "Nombre", "name": "Nombre",
"newFolder": "Nueva carpeta", "newFolder": "Nueva carpeta",
"next": "Siguiente", "next": "Siguiente",
@@ -366,13 +371,14 @@
"reportSent": "Informe enviado", "reportSent": "Informe enviado",
"reset": "Reiniciar", "reset": "Reiniciar",
"resetAll": "Restablecer todo", "resetAll": "Restablecer todo",
"resetAllKeybindingsTooltip": "Restablecer todas las teclas de acceso rápido a la configuración predeterminada", "resetAllKeybindingsTooltip": "Restablecer todas las combinaciones de teclas a los valores predeterminados",
"restart": "Reiniciar", "restart": "Reiniciar",
"resultsCount": "Encontrados {count} resultados", "resultsCount": "{count} resultados encontrados",
"save": "Guardar", "save": "Guardar",
"saving": "Guardando", "saving": "Guardando",
"searchExtensions": "Buscar extensiones", "searchExtensions": "Buscar extensiones",
"searchFailedMessage": "No pudimos encontrar ninguna configuración que coincida con tu búsqueda. Intenta ajustar tus términos de búsqueda.", "searchFailedMessage": "No pudimos encontrar ninguna configuración que coincida con tu búsqueda. Intenta ajustar tus términos de búsqueda.",
"searchIn": "Buscar en {0}",
"searchKeybindings": "Buscar combinaciones de teclas", "searchKeybindings": "Buscar combinaciones de teclas",
"searchModels": "Buscar modelos", "searchModels": "Buscar modelos",
"searchNodes": "Buscar nodos", "searchNodes": "Buscar nodos",
@@ -381,9 +387,10 @@
"setAsBackground": "Establecer como fondo", "setAsBackground": "Establecer como fondo",
"settings": "Configuraciones", "settings": "Configuraciones",
"showReport": "Mostrar informe", "showReport": "Mostrar informe",
"size": "Tamaño",
"sort": "Ordenar", "sort": "Ordenar",
"source": "Fuente", "source": "Fuente",
"startRecording": "Iniciar grabación", "startRecording": "Comenzar grabación",
"status": "Estado", "status": "Estado",
"stopRecording": "Detener grabación", "stopRecording": "Detener grabación",
"success": "Éxito", "success": "Éxito",
@@ -391,9 +398,10 @@
"terminal": "Terminal", "terminal": "Terminal",
"title": "Título", "title": "Título",
"triggerPhrase": "Frase de activación", "triggerPhrase": "Frase de activación",
"type": "Tipo",
"unknownError": "Error desconocido", "unknownError": "Error desconocido",
"update": "Actualizar", "update": "Actualizar",
"updateAvailable": "Actualización Disponible", "updateAvailable": "Actualización disponible",
"updateFrontend": "Actualizar frontend", "updateFrontend": "Actualizar frontend",
"updated": "Actualizado", "updated": "Actualizado",
"updating": "Actualizando", "updating": "Actualizando",
@@ -401,7 +409,8 @@
"usageHint": "Sugerencia de uso", "usageHint": "Sugerencia de uso",
"user": "Usuario", "user": "Usuario",
"versionMismatchWarning": "Advertencia de compatibilidad de versión", "versionMismatchWarning": "Advertencia de compatibilidad de versión",
"versionMismatchWarningMessage": "{warning}: {detail} Visita https://docs.comfy.org/installation/update_comfyui#common-update-issues para obtener instrucciones de actualización.", "versionMismatchWarningMessage": "{warning}: {detail} Visita https://docs.comfy.org/installation/update_comfyui#common-update-issues para instrucciones de actualización.",
"video": "Video",
"videoFailedToLoad": "Falló la carga del video", "videoFailedToLoad": "Falló la carga del video",
"workflow": "Flujo de trabajo" "workflow": "Flujo de trabajo"
}, },
@@ -476,7 +485,7 @@
"installLocationDescription": "Selecciona el directorio para los datos de usuario de ComfyUI. Un entorno de python será instalado en la ubicación seleccionada.", "installLocationDescription": "Selecciona el directorio para los datos de usuario de ComfyUI. Un entorno de python será instalado en la ubicación seleccionada.",
"installLocationTooltip": "Directorio de datos de usuario de ComfyUI. Almacena:\n- Entorno Python\n- Modelos\n- Nodos personalizados\n", "installLocationTooltip": "Directorio de datos de usuario de ComfyUI. Almacena:\n- Entorno Python\n- Modelos\n- Nodos personalizados\n",
"insufficientFreeSpace": "Espacio insuficiente - espacio libre mínimo", "insufficientFreeSpace": "Espacio insuficiente - espacio libre mínimo",
"isOneDrive": "OneDrive no es compatible. Por favor instala ComfyUI en otra ubicación.", "isOneDrive": "OneDrive no es compatible. Por favor, instala ComfyUI en otra ubicación.",
"manualConfiguration": { "manualConfiguration": {
"createVenv": "Necesitarás crear un entorno virtual en el siguiente directorio", "createVenv": "Necesitarás crear un entorno virtual en el siguiente directorio",
"requirements": "Requisitos", "requirements": "Requisitos",
@@ -491,7 +500,7 @@
"migrationOptional": "La migración es opcional. Si no tienes una instalación existente, puedes saltarte este paso.", "migrationOptional": "La migración es opcional. Si no tienes una instalación existente, puedes saltarte este paso.",
"migrationSourcePathDescription": "Si tienes una instalación existente de ComfyUI, podemos copiar/enlazar tus archivos de usuario existentes y modelos a la nueva instalación. Tu instalación existente de ComfyUI no será afectada.", "migrationSourcePathDescription": "Si tienes una instalación existente de ComfyUI, podemos copiar/enlazar tus archivos de usuario existentes y modelos a la nueva instalación. Tu instalación existente de ComfyUI no será afectada.",
"moreInfo": "Para más información, por favor lee nuestra", "moreInfo": "Para más información, por favor lee nuestra",
"nonDefaultDrive": "Por favor instala ComfyUI en tu unidad de sistema (ej. C:\\). Las unidades con diferentes sistemas de archivos pueden causar problemas impredecibles. Los modelos y otros archivos pueden ser almacenados en otras unidades después de la instalación.", "nonDefaultDrive": "Por favor, instala ComfyUI en el disco del sistema (por ejemplo, C:\\). Unidades con diferentes sistemas de archivos pueden causar problemas impredecibles. Los modelos y otros archivos pueden almacenarse en otras unidades después de la instalación.",
"parentMissing": "La ruta no existe - crea el directorio contenedor primero", "parentMissing": "La ruta no existe - crea el directorio contenedor primero",
"pathExists": "El directorio ya existe - por favor asegúrate de haber respaldado todos los datos", "pathExists": "El directorio ya existe - por favor asegúrate de haber respaldado todos los datos",
"pathValidationFailed": "Falló la validación de la ruta", "pathValidationFailed": "Falló la validación de la ruta",
@@ -502,7 +511,7 @@
"allowMetricsDescription": "Ayuda a mejorar ComfyUI enviando métricas de uso anónimas. No se recogerá ninguna información personal o contenido de flujo de trabajo.", "allowMetricsDescription": "Ayuda a mejorar ComfyUI enviando métricas de uso anónimas. No se recogerá ninguna información personal o contenido de flujo de trabajo.",
"autoUpdate": "Actualizaciones Automáticas", "autoUpdate": "Actualizaciones Automáticas",
"autoUpdateDescription": "Descarga automáticamente las actualizaciones cuando estén disponibles. Se te notificará antes de que las actualizaciones sean instaladas.", "autoUpdateDescription": "Descarga automáticamente las actualizaciones cuando estén disponibles. Se te notificará antes de que las actualizaciones sean instaladas.",
"checkingMirrors": "Comprobando el acceso a la red a los espejos de python...", "checkingMirrors": "Comprobando el acceso a la red de los mirrors de Python...",
"dataCollectionDialog": { "dataCollectionDialog": {
"collect": { "collect": {
"errorReports": "Mensaje de error y rastreo de pila", "errorReports": "Mensaje de error y rastreo de pila",
@@ -523,11 +532,11 @@
"errorUpdatingConsent": "Error Actualizando Consentimiento", "errorUpdatingConsent": "Error Actualizando Consentimiento",
"errorUpdatingConsentDetail": "Falló al actualizar la configuración de consentimiento de métricas", "errorUpdatingConsentDetail": "Falló al actualizar la configuración de consentimiento de métricas",
"learnMoreAboutData": "Aprende más sobre la recolección de datos", "learnMoreAboutData": "Aprende más sobre la recolección de datos",
"mirrorSettings": "Configuraciones de Espejo", "mirrorSettings": "Configuración de mirrors",
"mirrorsReachable": "El acceso a la red a los espejos de python es bueno", "mirrorsReachable": "El acceso a la red de los mirrors de Python es bueno",
"mirrorsUnreachable": "El acceso a la red a algunos espejos de python es malo", "mirrorsUnreachable": "El acceso a la red de algunos mirrors de Python es deficiente",
"pypiMirrorPlaceholder": "Ingresa la URL del espejo de PyPI", "pypiMirrorPlaceholder": "Introduce la URL del mirror de PyPI",
"pythonMirrorPlaceholder": "Ingresa la URL del espejo de Python" "pythonMirrorPlaceholder": "Introduce la URL del mirror de Python"
}, },
"systemLocations": "Ubicaciones del Sistema", "systemLocations": "Ubicaciones del Sistema",
"unhandledError": "Error desconocido", "unhandledError": "Error desconocido",
@@ -537,7 +546,7 @@
"contactFollowUp": "Contáctame para seguimiento", "contactFollowUp": "Contáctame para seguimiento",
"contactSupportDescription": "Por favor, complete el siguiente formulario con su reporte", "contactSupportDescription": "Por favor, complete el siguiente formulario con su reporte",
"contactSupportTitle": "Contactar Soporte", "contactSupportTitle": "Contactar Soporte",
"describeTheProblem": "Describa el problema", "describeTheProblem": "Describe el problema",
"email": "Correo electrónico", "email": "Correo electrónico",
"feedbackTitle": "Ayúdanos a mejorar ComfyUI proporcionando comentarios", "feedbackTitle": "Ayúdanos a mejorar ComfyUI proporcionando comentarios",
"helpFix": "Ayuda a Solucionar Esto", "helpFix": "Ayuda a Solucionar Esto",
@@ -546,25 +555,25 @@
"bugReport": "Reporte de error", "bugReport": "Reporte de error",
"giveFeedback": "Enviar comentarios", "giveFeedback": "Enviar comentarios",
"loginAccessIssues": "Problemas de inicio de sesión / acceso", "loginAccessIssues": "Problemas de inicio de sesión / acceso",
"somethingElse": "Otro" "somethingElse": "Otra cosa"
}, },
"notifyResolve": "Notifícame cuando se resuelva", "notifyResolve": "Notifícame cuando se resuelva",
"provideAdditionalDetails": "Proporciona detalles adicionales (opcional)", "provideAdditionalDetails": "Proporciona detalles adicionales (opcional)",
"provideEmail": "Danos tu correo electrónico (opcional)", "provideEmail": "Danos tu correo electrónico (opcional)",
"rating": "Calificación", "rating": "Calificación",
"selectIssue": "Seleccione el problema", "selectIssue": "Selecciona el problema",
"stackTrace": "Rastreo de Pila", "stackTrace": "Rastreo de Pila",
"submitErrorReport": "Enviar Reporte de Error (Opcional)", "submitErrorReport": "Enviar Reporte de Error (Opcional)",
"systemStats": "Estadísticas del Sistema", "systemStats": "Estadísticas del Sistema",
"validation": { "validation": {
"descriptionRequired": "Se requiere una descripción", "descriptionRequired": "La descripción es obligatoria",
"helpTypeRequired": "Se requiere el tipo de ayuda", "helpTypeRequired": "El tipo de ayuda es obligatorio",
"invalidEmail": "Por favor ingresa una dirección de correo electrónico válida", "invalidEmail": "Por favor ingresa una dirección de correo electrónico válida",
"maxLength": "Mensaje demasiado largo", "maxLength": "Mensaje demasiado largo",
"selectIssueType": "Por favor, seleccione un tipo de problema" "selectIssueType": "Por favor, selecciona un tipo de problema"
}, },
"whatCanWeInclude": "Especifique qué incluir en el reporte", "whatCanWeInclude": "Especifica qué incluir en el reporte",
"whatDoYouNeedHelpWith": "¿Con qué necesita ayuda?" "whatDoYouNeedHelpWith": "¿Con qué necesitas ayuda?"
}, },
"load3d": { "load3d": {
"applyingTexture": "Aplicando textura...", "applyingTexture": "Aplicando textura...",
@@ -582,7 +591,7 @@
"exportingModel": "Exportando modelo...", "exportingModel": "Exportando modelo...",
"fov": "FOV", "fov": "FOV",
"light": "Luz", "light": "Luz",
"lightIntensity": "Intensidad de luz", "lightIntensity": "Intensidad de la luz",
"loadingBackgroundImage": "Cargando imagen de fondo", "loadingBackgroundImage": "Cargando imagen de fondo",
"loadingModel": "Cargando modelo 3D...", "loadingModel": "Cargando modelo 3D...",
"materialMode": "Modo de material", "materialMode": "Modo de material",
@@ -591,10 +600,10 @@
"lineart": "Dibujo lineal", "lineart": "Dibujo lineal",
"normal": "Normal", "normal": "Normal",
"original": "Original", "original": "Original",
"wireframe": "Malla" "wireframe": "Alámbrico"
}, },
"model": "Modelo", "model": "Modelo",
"openIn3DViewer": "Abrir en el visor 3D", "openIn3DViewer": "Abrir en visor 3D",
"previewOutput": "Vista previa de salida", "previewOutput": "Vista previa de salida",
"removeBackgroundImage": "Eliminar imagen de fondo", "removeBackgroundImage": "Eliminar imagen de fondo",
"resizeNodeMatchOutput": "Redimensionar nodo para coincidir con la salida", "resizeNodeMatchOutput": "Redimensionar nodo para coincidir con la salida",
@@ -604,7 +613,7 @@
"stopRecording": "Detener grabación", "stopRecording": "Detener grabación",
"switchCamera": "Cambiar cámara", "switchCamera": "Cambiar cámara",
"switchingMaterialMode": "Cambiando modo de material...", "switchingMaterialMode": "Cambiando modo de material...",
"upDirection": "Dirección hacia arriba", "upDirection": "Dirección superior",
"upDirections": { "upDirections": {
"original": "Original" "original": "Original"
}, },
@@ -633,13 +642,13 @@
"Skipped": "Omitido", "Skipped": "Omitido",
"allOk": "No se detectaron problemas.", "allOk": "No se detectaron problemas.",
"confirmTitle": "¿Estás seguro?", "confirmTitle": "¿Estás seguro?",
"consoleLogs": "Registros de la consola", "consoleLogs": "Registros de consola",
"detected": "Detectado", "detected": "Detectado",
"error": { "error": {
"cannotContinue": "No se puede continuar - quedan errores", "cannotContinue": "No se puede continuar: quedan errores",
"defaultDescription": "Ocurrió un error mientras se ejecutaba una tarea de mantenimiento.", "defaultDescription": "Ocurrió un error al ejecutar una tarea de mantenimiento.",
"taskFailed": "La tarea falló al ejecutarse.", "taskFailed": "La tarea no se pudo ejecutar.",
"toastTitle": "Error de tarea" "toastTitle": "Error en la tarea"
}, },
"refreshing": "Actualizando", "refreshing": "Actualizando",
"showManual": "Mostrar tareas de mantenimiento", "showManual": "Mostrar tareas de mantenimiento",
@@ -648,43 +657,43 @@
"title": "Mantenimiento" "title": "Mantenimiento"
}, },
"manager": { "manager": {
"changingVersion": "Cambiando versión de {from} a {to}", "changingVersion": "Cambiando la versión de {from} a {to}",
"createdBy": "Creado Por", "createdBy": "Creado por",
"dependencies": "Dependencias", "dependencies": "Dependencias",
"discoverCommunityContent": "Descubre paquetes de nodos, extensiones y más creados por la comunidad...", "discoverCommunityContent": "Descubre paquetes de nodos, extensiones y más creados por la comunidad...",
"downloads": "Descargas", "downloads": "Descargas",
"errorConnecting": "Error al conectar con el Registro de Nodos Comfy.", "errorConnecting": "Error al conectar con el Registro de Nodos de Comfy.",
"failed": "Falló ({count})", "failed": "Fallido ({count})",
"filter": { "filter": {
"disabled": "Deshabilitado", "disabled": "Deshabilitado",
"enabled": "Habilitado", "enabled": "Habilitado",
"nodePack": "Paquete de Nodos" "nodePack": "Paquete de Nodos"
}, },
"inWorkflow": "En Flujo de Trabajo", "inWorkflow": "En el flujo de trabajo",
"infoPanelEmpty": "Haz clic en un elemento para ver la información", "infoPanelEmpty": "Haz clic en un elemento para ver la información",
"installAllMissingNodes": "Instalar todos los nodos faltantes", "installAllMissingNodes": "Instalar todos los nodos faltantes",
"installSelected": "Instalar Seleccionado", "installSelected": "Instalar seleccionados",
"installationQueue": "Cola de Instalación", "installationQueue": "Cola de Instalación",
"lastUpdated": "Última Actualización", "lastUpdated": "Última actualización",
"latestVersion": "Última", "latestVersion": "Última",
"license": "Licencia", "license": "Licencia",
"loadingVersions": "Cargando versiones...", "loadingVersions": "Cargando versiones...",
"nightlyVersion": "Nocturna", "nightlyVersion": "Nocturna",
"noDescription": "No hay descripción disponible", "noDescription": "No hay descripción disponible",
"noNodesFound": "No se encontraron nodos", "noNodesFound": "No se encontraron nodos",
"noNodesFoundDescription": "Los nodos del paquete no se pudieron analizar, o el paquete es solo una extensión de frontend y no tiene ningún nodo.", "noNodesFoundDescription": "Los nodos del paquete no se pudieron analizar, o el paquete es solo una extensión de frontend y no tiene nodos.",
"noResultsFound": "No se encontraron resultados que coincidan con tu búsqueda.", "noResultsFound": "No se encontraron resultados que coincidan con tu búsqueda.",
"nodePack": "Paquete de Nodos", "nodePack": "Paquete de Nodos",
"packsSelected": "Paquetes Seleccionados", "packsSelected": "Paquetes seleccionados",
"repository": "Repositorio", "repository": "Repositorio",
"restartToApplyChanges": "Para aplicar los cambios, por favor reinicia ComfyUI", "restartToApplyChanges": "Para aplicar los cambios, reinicia ComfyUI",
"searchPlaceholder": "Buscar", "searchPlaceholder": "Buscar",
"selectVersion": "Seleccionar Versión", "selectVersion": "Seleccionar versión",
"sort": { "sort": {
"created": "Más reciente", "created": "Más nuevos",
"downloads": "Más Popular", "downloads": "Más populares",
"publisher": "Editor", "publisher": "Editor",
"updated": "Actualizado recientemente" "updated": "Actualizados recientemente"
}, },
"status": { "status": {
"active": "Activo", "active": "Activo",
@@ -695,11 +704,11 @@
"unknown": "Desconocido" "unknown": "Desconocido"
}, },
"title": "Administrador de Nodos Personalizados", "title": "Administrador de Nodos Personalizados",
"totalNodes": "Total de Nodos", "totalNodes": "Nodos totales",
"tryAgainLater": "Por favor intenta de nuevo más tarde.", "tryAgainLater": "Por favor, inténtalo de nuevo más tarde.",
"tryDifferentSearch": "Por favor intenta con una consulta de búsqueda diferente.", "tryDifferentSearch": "Por favor, prueba con otra consulta de búsqueda.",
"uninstall": "Desinstalar", "uninstall": "Desinstalar",
"uninstallSelected": "Desinstalar Seleccionado", "uninstallSelected": "Desinstalar seleccionados",
"uninstalling": "Desinstalando", "uninstalling": "Desinstalando",
"update": "Actualizar", "update": "Actualizar",
"updatingAllPacks": "Actualizando todos los paquetes", "updatingAllPacks": "Actualizando todos los paquetes",
@@ -707,9 +716,9 @@
}, },
"maskEditor": { "maskEditor": {
"Apply to Whole Image": "Aplicar a toda la imagen", "Apply to Whole Image": "Aplicar a toda la imagen",
"Brush Settings": "Configuración de pincel", "Brush Settings": "Configuración del pincel",
"Brush Shape": "Forma de pincel", "Brush Shape": "Forma del pincel",
"Clear": "Borrar", "Clear": "Limpiar",
"Color Select Settings": "Configuración de selección de color", "Color Select Settings": "Configuración de selección de color",
"Fill Opacity": "Opacidad de relleno", "Fill Opacity": "Opacidad de relleno",
"Hardness": "Dureza", "Hardness": "Dureza",
@@ -722,11 +731,11 @@
"Mask Tolerance": "Tolerancia de máscara", "Mask Tolerance": "Tolerancia de máscara",
"Method": "Método", "Method": "Método",
"Opacity": "Opacidad", "Opacity": "Opacidad",
"Paint Bucket Settings": "Configuración de cubo de pintura", "Paint Bucket Settings": "Configuración del bote de pintura",
"Reset to Default": "Restablecer a predeterminado", "Reset to Default": "Restablecer a predeterminado",
"Selection Opacity": "Opacidad de selección", "Selection Opacity": "Opacidad de selección",
"Smoothing Precision": "Precisión de suavizado", "Smoothing Precision": "Precisión de suavizado",
"Stop at mask": "Detener en máscara", "Stop at mask": "Detener en la máscara",
"Thickness": "Grosor", "Thickness": "Grosor",
"Tolerance": "Tolerancia" "Tolerance": "Tolerancia"
}, },
@@ -753,8 +762,8 @@
"refresh": "Actualizar definiciones de nodos", "refresh": "Actualizar definiciones de nodos",
"resetView": "Restablecer vista del lienzo", "resetView": "Restablecer vista del lienzo",
"run": "Ejecutar", "run": "Ejecutar",
"runWorkflow": "Ejecutar flujo de trabajo (Shift para encolar al frente)", "runWorkflow": "Ejecutar flujo de trabajo (Shift para poner al frente de la cola)",
"runWorkflowFront": "Ejecutar flujo de trabajo (Encolar al frente)", "runWorkflowFront": "Ejecutar flujo de trabajo (Poner al frente de la cola)",
"settings": "Configuración", "settings": "Configuración",
"showMenu": "Mostrar menú", "showMenu": "Mostrar menú",
"theme": "Tema", "theme": "Tema",
@@ -823,6 +832,7 @@
"Open Outputs Folder": "Abrir carpeta de salidas", "Open Outputs Folder": "Abrir carpeta de salidas",
"Open Sign In Dialog": "Abrir diálogo de inicio de sesión", "Open Sign In Dialog": "Abrir diálogo de inicio de sesión",
"Open extra_model_paths_yaml": "Abrir extra_model_paths.yaml", "Open extra_model_paths_yaml": "Abrir extra_model_paths.yaml",
"Output Explorer": "Explorador de salidas",
"Pin/Unpin Selected Items": "Anclar/Desanclar elementos seleccionados", "Pin/Unpin Selected Items": "Anclar/Desanclar elementos seleccionados",
"Pin/Unpin Selected Nodes": "Anclar/Desanclar nodos seleccionados", "Pin/Unpin Selected Nodes": "Anclar/Desanclar nodos seleccionados",
"Previous Opened Workflow": "Flujo de trabajo abierto anterior", "Previous Opened Workflow": "Flujo de trabajo abierto anterior",
@@ -902,7 +912,7 @@
"controlnet": "controlnet", "controlnet": "controlnet",
"create": "crear", "create": "crear",
"custom_sampling": "muestreo_personalizado", "custom_sampling": "muestreo_personalizado",
"debug": "depurar", "debug": "depuración",
"deprecated": "obsoleto", "deprecated": "obsoleto",
"flux": "flux", "flux": "flux",
"gligen": "gligen", "gligen": "gligen",
@@ -1188,7 +1198,7 @@
"essentials": "Esenciales", "essentials": "Esenciales",
"keyboardShortcuts": "Atajos de teclado", "keyboardShortcuts": "Atajos de teclado",
"manageShortcuts": "Gestionar atajos", "manageShortcuts": "Gestionar atajos",
"noKeybinding": "Sin asignación de tecla", "noKeybinding": "Sin combinación de teclas",
"subcategories": { "subcategories": {
"node": "Nodo", "node": "Nodo",
"panelControls": "Controles del panel", "panelControls": "Controles del panel",
@@ -1221,9 +1231,9 @@
"module": "Módulo", "module": "Módulo",
"moduleDesc": "Agrupar por fuente del módulo", "moduleDesc": "Agrupar por fuente del módulo",
"source": "Fuente", "source": "Fuente",
"sourceDesc": "Agrupar por tipo de fuente (Core, Custom, API)" "sourceDesc": "Agrupar por tipo de fuente (Core, Personalizado, API)"
}, },
"resetView": "Restablecer vista a la predeterminada", "resetView": "Restablecer vista por defecto",
"sortBy": { "sortBy": {
"alphabetical": "Alfabético", "alphabetical": "Alfabético",
"alphabeticalDesc": "Ordenar alfabéticamente dentro de los grupos", "alphabeticalDesc": "Ordenar alfabéticamente dentro de los grupos",
@@ -1233,6 +1243,7 @@
"sortMode": "Modo de ordenación" "sortMode": "Modo de ordenación"
}, },
"openWorkflow": "Abrir flujo de trabajo en el sistema de archivos local", "openWorkflow": "Abrir flujo de trabajo en el sistema de archivos local",
"outputExplorer": "Explorador de salidas",
"queue": "Cola", "queue": "Cola",
"queueTab": { "queueTab": {
"backToAllTasks": "Volver a todas las tareas", "backToAllTasks": "Volver a todas las tareas",
@@ -1256,7 +1267,7 @@
"deleteFailedTitle": "Eliminación fallida", "deleteFailedTitle": "Eliminación fallida",
"deleted": "Flujo de trabajo eliminado", "deleted": "Flujo de trabajo eliminado",
"dirtyClose": "Los archivos a continuación han sido modificados. ¿Te gustaría guardarlos antes de cerrar?", "dirtyClose": "Los archivos a continuación han sido modificados. ¿Te gustaría guardarlos antes de cerrar?",
"dirtyCloseHint": "Mantén presionada la tecla Shift para cerrar sin preguntar", "dirtyCloseHint": "Mantén presionada la tecla Shift para cerrar sin aviso",
"dirtyCloseTitle": "¿Guardar cambios?", "dirtyCloseTitle": "¿Guardar cambios?",
"workflowTreeType": { "workflowTreeType": {
"bookmarks": "Marcadores", "bookmarks": "Marcadores",
@@ -1278,7 +1289,7 @@
"templateWorkflows": { "templateWorkflows": {
"category": { "category": {
"3D": "3D", "3D": "3D",
"All": "Todas las plantillas", "All": "Todas las Plantillas",
"Area Composition": "Composición de Área", "Area Composition": "Composición de Área",
"Audio": "Audio", "Audio": "Audio",
"Basics": "Básicos", "Basics": "Básicos",
@@ -1289,7 +1300,7 @@
"Image": "Imagen", "Image": "Imagen",
"Image API": "API de Imagen", "Image API": "API de Imagen",
"LLM API": "API LLM", "LLM API": "API LLM",
"Upscaling": "Ampliación", "Upscaling": "Escalado",
"Video": "Video", "Video": "Video",
"Video API": "API de Video" "Video API": "API de Video"
}, },
@@ -1300,7 +1311,7 @@
"3d_hunyuan3d_image_to_model": "Hunyuan3D 2.0", "3d_hunyuan3d_image_to_model": "Hunyuan3D 2.0",
"3d_hunyuan3d_multiview_to_model": "Hunyuan3D 2.0 MV", "3d_hunyuan3d_multiview_to_model": "Hunyuan3D 2.0 MV",
"3d_hunyuan3d_multiview_to_model_turbo": "Hunyuan3D 2.0 MV Turbo", "3d_hunyuan3d_multiview_to_model_turbo": "Hunyuan3D 2.0 MV Turbo",
"stable_zero123_example": "Estable Zero123" "stable_zero123_example": "Stable Zero123"
}, },
"3D API": { "3D API": {
"api_rodin_image_to_model": "Rodin: Imagen a Modelo", "api_rodin_image_to_model": "Rodin: Imagen a Modelo",
@@ -1314,15 +1325,15 @@
"area_composition_square_area_for_subject": "Composición de Área Cuadrada para el Sujeto" "area_composition_square_area_for_subject": "Composición de Área Cuadrada para el Sujeto"
}, },
"Audio": { "Audio": {
"audio_ace_step_1_m2m_editing": "ACE Step v1 Edición M2M", "audio_ace_step_1_m2m_editing": "ACE Step v1 M2M Edición",
"audio_ace_step_1_t2a_instrumentals": "ACE-Step v1 Texto a Música Instrumental", "audio_ace_step_1_t2a_instrumentals": "ACE-Step v1 Texto a Música Instrumental",
"audio_ace_step_1_t2a_song": "ACE Step v1 Texto a Canción", "audio_ace_step_1_t2a_song": "ACE Step v1 Texto a Canción",
"audio_stable_audio_example": "Stable Audio" "audio_stable_audio_example": "Stable Audio"
}, },
"Basics": { "Basics": {
"default": "Generación de Imagen", "default": "Generación de Imágenes",
"embedding_example": "Incrustación", "embedding_example": "Embedding",
"gligen_textbox_example": "Caja de Texto Gligen", "gligen_textbox_example": "Gligen Textbox",
"image2image": "Imagen a Imagen", "image2image": "Imagen a Imagen",
"inpaint_example": "Inpaint", "inpaint_example": "Inpaint",
"inpaint_model_outpainting": "Outpaint", "inpaint_model_outpainting": "Outpaint",
@@ -1330,42 +1341,42 @@
"lora_multiple": "LoRA Múltiple" "lora_multiple": "LoRA Múltiple"
}, },
"ControlNet": { "ControlNet": {
"2_pass_pose_worship": "ControlNet de Pose 2 Pasadas", "2_pass_pose_worship": "Pose ControlNet 2 Pasos",
"controlnet_example": "ControlNet de Garabato", "controlnet_example": "Scribble ControlNet",
"depth_controlnet": "ControlNet de Profundidad", "depth_controlnet": "Depth ControlNet",
"depth_t2i_adapter": "Adaptador de Profundidad T2I", "depth_t2i_adapter": "Depth T2I Adapter",
"mixing_controlnets": "Mezcla de ControlNets" "mixing_controlnets": "Mixing ControlNets"
}, },
"Flux": { "Flux": {
"flux_canny_model_example": "Flux Canny Model", "flux_canny_model_example": "Flux Canny Model",
"flux_depth_lora_example": "Flux Depth LoRA", "flux_depth_lora_example": "Flux Depth LoRA",
"flux_dev_checkpoint_example": "Flux Dev fp8", "flux_dev_checkpoint_example": "Flux Dev fp8",
"flux_dev_full_text_to_image": "Flux Dev texto a imagen completo", "flux_dev_full_text_to_image": "Flux Dev full text to image",
"flux_fill_inpaint_example": "Flux Inpaint", "flux_fill_inpaint_example": "Flux Inpaint",
"flux_fill_outpaint_example": "Flux Outpaint", "flux_fill_outpaint_example": "Flux Outpaint",
"flux_kontext_dev_basic": "Flux Kontext Dev (Básico)", "flux_kontext_dev_basic": "Flux Kontext Dev (Básico)",
"flux_kontext_dev_grouped": "Flux Kontext Dev (Agrupado)", "flux_kontext_dev_grouped": "Flux Kontext Dev (Agrupado)",
"flux_redux_model_example": "Flux Redux Model", "flux_redux_model_example": "Flux Redux Model",
"flux_schnell": "Flux Schnell fp8", "flux_schnell": "Flux Schnell fp8",
"flux_schnell_full_text_to_image": "Flux Schnell texto a imagen completo" "flux_schnell_full_text_to_image": "Flux Schnell full text to image"
}, },
"Image": { "Image": {
"hidream_e1_full": "HiDream E1 Completo", "hidream_e1_full": "HiDream E1 Full",
"hidream_i1_dev": "HiDream I1 Dev", "hidream_i1_dev": "HiDream I1 Dev",
"hidream_i1_fast": "HiDream I1 Rápido", "hidream_i1_fast": "HiDream I1 Fast",
"hidream_i1_full": "HiDream I1 Completo", "hidream_i1_full": "HiDream I1 Full",
"image_chroma_text_to_image": "Chroma texto a imagen", "image_chroma_text_to_image": "Chroma texto a imagen",
"image_cosmos_predict2_2B_t2i": "Cosmos Predict2 2B T2I", "image_cosmos_predict2_2B_t2i": "Cosmos Predict2 2B T2I",
"image_lotus_depth_v1_1": "Lotus Depth", "image_lotus_depth_v1_1": "Lotus Depth",
"image_omnigen2_image_edit": "OmniGen2 Edición de Imagen", "image_omnigen2_image_edit": "OmniGen2 Edición de Imagen",
"image_omnigen2_t2i": "OmniGen2 Texto a Imagen", "image_omnigen2_t2i": "OmniGen2 Texto a Imagen",
"sd3_5_large_blur": "SD3.5 Grande Desenfoque", "sd3_5_large_blur": "SD3.5 Large Blur",
"sd3_5_large_canny_controlnet_example": "SD3.5 Grande Canny ControlNet", "sd3_5_large_canny_controlnet_example": "SD3.5 Large Canny ControlNet",
"sd3_5_large_depth": "SD3.5 Grande Profundidad", "sd3_5_large_depth": "SD3.5 Large Depth",
"sd3_5_simple_example": "SD3.5 Simple", "sd3_5_simple_example": "SD3.5 Simple",
"sdxl_refiner_prompt_example": "SDXL Refinador de Solicitud", "sdxl_refiner_prompt_example": "SDXL Refiner Prompt",
"sdxl_revision_text_prompts": "SDXL Revisión de Solicitud de Texto", "sdxl_revision_text_prompts": "SDXL Revision Text Prompts",
"sdxl_revision_zero_positive": "SDXL Revisión Cero Positivo", "sdxl_revision_zero_positive": "SDXL Revision Zero Positive",
"sdxl_simple_example": "SDXL Simple", "sdxl_simple_example": "SDXL Simple",
"sdxlturbo_example": "SDXL Turbo" "sdxlturbo_example": "SDXL Turbo"
}, },
@@ -1377,16 +1388,16 @@
"api_ideogram_v3_t2i": "Ideogram V3: Texto a Imagen", "api_ideogram_v3_t2i": "Ideogram V3: Texto a Imagen",
"api_luma_photon_i2i": "Luma Photon: Imagen a Imagen", "api_luma_photon_i2i": "Luma Photon: Imagen a Imagen",
"api_luma_photon_style_ref": "Luma Photon: Referencia de Estilo", "api_luma_photon_style_ref": "Luma Photon: Referencia de Estilo",
"api_openai_dall_e_2_inpaint": "OpenAI: Dall-E 2 Rellenar", "api_openai_dall_e_2_inpaint": "OpenAI: Dall-E 2 Inpaint",
"api_openai_dall_e_2_t2i": "OpenAI: Dall-E 2 Texto a Imagen", "api_openai_dall_e_2_t2i": "OpenAI: Dall-E 2 Texto a Imagen",
"api_openai_dall_e_3_t2i": "OpenAI: Dall-E 3 Texto a Imagen", "api_openai_dall_e_3_t2i": "OpenAI: Dall-E 3 Texto a Imagen",
"api_openai_image_1_i2i": "OpenAI: GPT-Image-1 Imagen a Imagen", "api_openai_image_1_i2i": "OpenAI: GPT-Image-1 Imagen a Imagen",
"api_openai_image_1_inpaint": "OpenAI: GPT-Image-1 Rellenar", "api_openai_image_1_inpaint": "OpenAI: GPT-Image-1 Inpaint",
"api_openai_image_1_multi_inputs": "OpenAI: GPT-Image-1 Múltiples Entradas", "api_openai_image_1_multi_inputs": "OpenAI: GPT-Image-1 Múltiples Entradas",
"api_openai_image_1_t2i": "OpenAI: GPT-Image-1 Texto a Imagen", "api_openai_image_1_t2i": "OpenAI: GPT-Image-1 Texto a Imagen",
"api_recraft_image_gen_with_color_control": "Recraft: Generación de Imagen con Control de Color", "api_recraft_image_gen_with_color_control": "Recraft: Generación de Imagen con Control de Color",
"api_recraft_image_gen_with_style_control": "Recraft: Generación de Imagen con Control de Estilo", "api_recraft_image_gen_with_style_control": "Recraft: Generación de Imagen con Control de Estilo",
"api_recraft_vector_gen": "Recraft: Generación de Vectores", "api_recraft_vector_gen": "Recraft: Generación Vectorial",
"api_runway_reference_to_image": "Runway: Referencia a Imagen", "api_runway_reference_to_image": "Runway: Referencia a Imagen",
"api_runway_text_to_image": "Runway: Texto a Imagen", "api_runway_text_to_image": "Runway: Texto a Imagen",
"api_stability_ai_i2i": "Stability AI: Imagen a Imagen", "api_stability_ai_i2i": "Stability AI: Imagen a Imagen",
@@ -1400,9 +1411,9 @@
}, },
"Upscaling": { "Upscaling": {
"esrgan_example": "ESRGAN", "esrgan_example": "ESRGAN",
"hiresfix_esrgan_workflow": "Flujo de Trabajo HiresFix ESRGAN", "hiresfix_esrgan_workflow": "HiresFix ESRGAN Workflow",
"hiresfix_latent_workflow": "Ampliación", "hiresfix_latent_workflow": "Escalado",
"latent_upscale_different_prompt_model": "Ampliación Latente Modelo de Solicitud Diferente" "latent_upscale_different_prompt_model": "Latent Upscale Different Prompt Model"
}, },
"Video": { "Video": {
"hunyuan_video_text_to_video": "Hunyuan Video Texto a Video", "hunyuan_video_text_to_video": "Hunyuan Video Texto a Video",
@@ -1419,7 +1430,7 @@
"video_wan_vace_14B_ref2v": "Wan VACE Referencia a Video", "video_wan_vace_14B_ref2v": "Wan VACE Referencia a Video",
"video_wan_vace_14B_t2v": "Wan VACE Texto a Video", "video_wan_vace_14B_t2v": "Wan VACE Texto a Video",
"video_wan_vace_14B_v2v": "Wan VACE Control Video", "video_wan_vace_14B_v2v": "Wan VACE Control Video",
"video_wan_vace_flf2v": "Wan VACE Primer-Ultimo Fotograma", "video_wan_vace_flf2v": "Wan VACE First-Last Frame",
"video_wan_vace_inpainting": "Wan VACE Inpainting", "video_wan_vace_inpainting": "Wan VACE Inpainting",
"video_wan_vace_outpainting": "Wan VACE Outpainting", "video_wan_vace_outpainting": "Wan VACE Outpainting",
"wan2_1_flf2v_720_f16": "Wan 2.1 FLF2V 720p F16", "wan2_1_flf2v_720_f16": "Wan 2.1 FLF2V 720p F16",
@@ -1437,11 +1448,11 @@
"api_moonvalley_image_to_video": "Moonvalley: Imagen a Video", "api_moonvalley_image_to_video": "Moonvalley: Imagen a Video",
"api_moonvalley_text_to_video": "Moonvalley: Texto a Video", "api_moonvalley_text_to_video": "Moonvalley: Texto a Video",
"api_pika_i2v": "Pika: Imagen a Video", "api_pika_i2v": "Pika: Imagen a Video",
"api_pika_scene": "Pika Escenas: Imágenes a Video", "api_pika_scene": "Pika Scenes: Imágenes a Video",
"api_pixverse_i2v": "PixVerse: Imagen a Video", "api_pixverse_i2v": "PixVerse: Imagen a Video",
"api_pixverse_t2v": "PixVerse: Texto a Video", "api_pixverse_t2v": "PixVerse: Texto a Video",
"api_pixverse_template_i2v": "PixVerse Plantillas: Imagen a Video", "api_pixverse_template_i2v": "PixVerse Plantillas: Imagen a Video",
"api_runway_first_last_frame": "Runway: Primer Último Fotograma a Video", "api_runway_first_last_frame": "Runway: Primer Último Cuadro a Video",
"api_runway_gen3a_turbo_image_to_video": "Runway: Gen3a Turbo Imagen a Video", "api_runway_gen3a_turbo_image_to_video": "Runway: Gen3a Turbo Imagen a Video",
"api_runway_gen4_turo_image_to_video": "Runway: Gen4 Turbo Imagen a Video", "api_runway_gen4_turo_image_to_video": "Runway: Gen4 Turbo Imagen a Video",
"api_veo2_i2v": "Veo2: Imagen a Video" "api_veo2_i2v": "Veo2: Imagen a Video"
@@ -1456,34 +1467,34 @@
}, },
"3D API": { "3D API": {
"api_rodin_image_to_model": "Genera modelos 3D detallados a partir de una sola foto usando Rodin AI.", "api_rodin_image_to_model": "Genera modelos 3D detallados a partir de una sola foto usando Rodin AI.",
"api_rodin_multiview_to_model": "Esculpe modelos 3D completos usando reconstrucción multivista de Rodin.", "api_rodin_multiview_to_model": "Esculpe modelos 3D completos usando la reconstrucción multiángulo de Rodin.",
"api_tripo_image_to_model": "Genera activos 3D profesionales a partir de imágenes 2D usando el motor Tripo.", "api_tripo_image_to_model": "Genera activos 3D profesionales a partir de imágenes 2D usando el motor Tripo.",
"api_tripo_multiview_to_model": "Construye modelos 3D a partir de múltiples ángulos con el escáner avanzado de Tripo.", "api_tripo_multiview_to_model": "Construye modelos 3D desde múltiples ángulos con el escáner avanzado de Tripo.",
"api_tripo_text_to_model": "Crea objetos 3D a partir de descripciones con modelado basado en texto de Tripo." "api_tripo_text_to_model": "Crea objetos 3D a partir de descripciones con el modelado basado en texto de Tripo."
}, },
"Area Composition": { "Area Composition": {
"area_composition": "Genera imágenes controlando la composición con áreas definidas.", "area_composition": "Genera imágenes controlando la composición con áreas definidas.",
"area_composition_square_area_for_subject": "Genera imágenes con colocación consistente del sujeto usando composición de áreas." "area_composition_square_area_for_subject": "Genera imágenes con colocación consistente del sujeto usando composición de área."
}, },
"Audio": { "Audio": {
"audio_ace_step_1_m2m_editing": "Edita canciones existentes para cambiar el estilo y la letra usando ACE-Step v1 M2M.", "audio_ace_step_1_m2m_editing": "Edita canciones existentes para cambiar estilo y letra usando ACE-Step v1 M2M.",
"audio_ace_step_1_t2a_instrumentals": "Genera música instrumental a partir de texto usando ACE-Step v1.", "audio_ace_step_1_t2a_instrumentals": "Genera música instrumental a partir de texto usando ACE-Step v1.",
"audio_ace_step_1_t2a_song": "Genera canciones con voz a partir de texto usando ACE-Step v1, soportando múltiples idiomas y personalización de estilo.", "audio_ace_step_1_t2a_song": "Genera canciones con voz a partir de texto usando ACE-Step v1, soportando multilingüe y personalización de estilo.",
"audio_stable_audio_example": "Genera audio a partir de descripciones de texto usando Stable Audio." "audio_stable_audio_example": "Genera audio a partir de texto usando Stable Audio."
}, },
"Basics": { "Basics": {
"default": "Genera imágenes a partir de descripciones de texto.", "default": "Genera imágenes a partir de indicaciones de texto.",
"embedding_example": "Genera imágenes usando inversión textual para estilos consistentes.", "embedding_example": "Genera imágenes usando inversión textual para estilos consistentes.",
"gligen_textbox_example": "Genera imágenes con colocación precisa de objetos usando cajas de texto.", "gligen_textbox_example": "Genera imágenes con colocación precisa de objetos usando cuadros de texto.",
"image2image": "Transforma imágenes existentes usando indicaciones de texto.", "image2image": "Transforma imágenes existentes usando indicaciones de texto.",
"inpaint_example": "Edita partes específicas de imágenes de manera fluida.", "inpaint_example": "Edita partes específicas de imágenes de forma fluida.",
"inpaint_model_outpainting": "Extiende imágenes más allá de sus límites originales.", "inpaint_model_outpainting": "Extiende imágenes más allá de sus límites originales.",
"lora": "Genera imágenes con modelos LoRA para estilos o temas especializados.", "lora": "Genera imágenes con modelos LoRA para estilos o temas especializados.",
"lora_multiple": "Genera imágenes combinando múltiples modelos LoRA." "lora_multiple": "Genera imágenes combinando múltiples modelos LoRA."
}, },
"ControlNet": { "ControlNet": {
"2_pass_pose_worship": "Genera imágenes guiadas por referencias de pose usando ControlNet.", "2_pass_pose_worship": "Genera imágenes guiadas por referencias de pose usando ControlNet.",
"controlnet_example": "Genera imágenes guiadas por imágenes de garabato usando ControlNet.", "controlnet_example": "Genera imágenes guiadas por imágenes de referencia de garabatos usando ControlNet.",
"depth_controlnet": "Genera imágenes guiadas por información de profundidad usando ControlNet.", "depth_controlnet": "Genera imágenes guiadas por información de profundidad usando ControlNet.",
"depth_t2i_adapter": "Genera imágenes guiadas por información de profundidad usando el adaptador T2I.", "depth_t2i_adapter": "Genera imágenes guiadas por información de profundidad usando el adaptador T2I.",
"mixing_controlnets": "Genera imágenes combinando múltiples modelos ControlNet." "mixing_controlnets": "Genera imágenes combinando múltiples modelos ControlNet."
@@ -1491,31 +1502,31 @@
"Flux": { "Flux": {
"flux_canny_model_example": "Genera imágenes guiadas por detección de bordes usando Flux Canny.", "flux_canny_model_example": "Genera imágenes guiadas por detección de bordes usando Flux Canny.",
"flux_depth_lora_example": "Genera imágenes guiadas por información de profundidad usando Flux LoRA.", "flux_depth_lora_example": "Genera imágenes guiadas por información de profundidad usando Flux LoRA.",
"flux_dev_checkpoint_example": "Genera imágenes usando la versión cuantizada fp8 de Flux Dev. Ideal para dispositivos con poca VRAM, solo requiere un archivo de modelo, pero la calidad es ligeramente inferior a la versión completa.", "flux_dev_checkpoint_example": "Genera imágenes usando Flux Dev versión fp8 cuantizada. Adecuado para dispositivos con VRAM limitada, solo requiere un archivo de modelo, pero la calidad de imagen es ligeramente inferior a la versión completa.",
"flux_dev_full_text_to_image": "Genera imágenes de alta calidad con la versión completa de Flux Dev. Requiere más VRAM y múltiples archivos de modelo, pero ofrece la mejor adherencia a la indicación y calidad de imagen.", "flux_dev_full_text_to_image": "Genera imágenes de alta calidad con Flux Dev versión completa. Requiere mayor VRAM y múltiples archivos de modelo, pero ofrece la mejor capacidad de seguimiento de indicaciones y calidad de imagen.",
"flux_fill_inpaint_example": "Rellena partes faltantes de imágenes usando inpainting de Flux.", "flux_fill_inpaint_example": "Rellena partes faltantes de imágenes usando Flux inpainting.",
"flux_fill_outpaint_example": "Extiende imágenes más allá de los límites usando outpainting de Flux.", "flux_fill_outpaint_example": "Extiende imágenes más allá de los límites usando Flux outpainting.",
"flux_kontext_dev_basic": "Edita imágenes usando Flux Kontext con visibilidad total de nodos, ideal para aprender el flujo de trabajo.", "flux_kontext_dev_basic": "Edita imágenes usando Flux Kontext con visibilidad total de nodos, perfecto para aprender el flujo de trabajo.",
"flux_kontext_dev_grouped": "Versión simplificada de Flux Kontext con nodos agrupados para un espacio de trabajo más limpio.", "flux_kontext_dev_grouped": "Versión simplificada de Flux Kontext con nodos agrupados para un espacio de trabajo más limpio.",
"flux_redux_model_example": "Genera imágenes transfiriendo el estilo de imágenes de referencia usando Flux Redux.", "flux_redux_model_example": "Genera imágenes transfiriendo estilo de imágenes de referencia usando Flux Redux.",
"flux_schnell": "Genera imágenes rápidamente con la versión cuantizada fp8 de Flux Schnell. Perfecto para hardware de gama baja, solo requiere 4 pasos.", "flux_schnell": "Genera imágenes rápidamente con Flux Schnell versión fp8 cuantizada. Ideal para hardware de gama baja, solo requiere 4 pasos para generar imágenes.",
"flux_schnell_full_text_to_image": "Genera imágenes rápidamente con la versión completa de Flux Schnell. Licencia Apache2.0, solo requiere 4 pasos manteniendo buena calidad." "flux_schnell_full_text_to_image": "Genera imágenes rápidamente con Flux Schnell versión completa. Usa licencia Apache2.0, solo requiere 4 pasos para generar imágenes manteniendo buena calidad."
}, },
"Image": { "Image": {
"hidream_e1_full": "Edita imágenes con HiDream E1 - Modelo profesional de edición de imágenes por lenguaje natural.", "hidream_e1_full": "Edita imágenes con HiDream E1 - Modelo profesional de edición de imágenes por lenguaje natural.",
"hidream_i1_dev": "Genera imágenes con HiDream I1 Dev - Versión equilibrada con 28 pasos de inferencia, adecuada para hardware medio.", "hidream_i1_dev": "Genera imágenes con HiDream I1 Dev - Versión equilibrada con 28 pasos de inferencia, adecuada para hardware de gama media.",
"hidream_i1_fast": "Genera imágenes rápidamente con HiDream I1 Fast - Versión ligera con 16 pasos, ideal para previsualizaciones rápidas.", "hidream_i1_fast": "Genera imágenes rápidamente con HiDream I1 Fast - Versión ligera con 16 pasos de inferencia, ideal para previsualizaciones rápidas en hardware de gama baja.",
"hidream_i1_full": "Genera imágenes con HiDream I1 Full - Versión completa con 50 pasos para la máxima calidad.", "hidream_i1_full": "Genera imágenes con HiDream I1 Full - Versión completa con 50 pasos de inferencia para la máxima calidad.",
"image_chroma_text_to_image": "Chroma está modificado de Flux y tiene algunos cambios en la arquitectura.", "image_chroma_text_to_image": "Chroma está modificado de flux y tiene algunos cambios en la arquitectura.",
"image_cosmos_predict2_2B_t2i": "Genera imágenes con Cosmos-Predict2 2B T2I, logrando generación física precisa, alta fidelidad y gran detalle.", "image_cosmos_predict2_2B_t2i": "Genera imágenes con Cosmos-Predict2 2B T2I, logrando generación físicamente precisa, de alta fidelidad y con gran nivel de detalle.",
"image_lotus_depth_v1_1": "Ejecuta Lotus Depth en ComfyUI para estimación de profundidad monocular eficiente y detallada.", "image_lotus_depth_v1_1": "Ejecuta Lotus Depth en ComfyUI para estimación monocular de profundidad eficiente y de alta retención de detalles.",
"image_omnigen2_image_edit": "Edita imágenes con instrucciones en lenguaje natural usando las avanzadas capacidades de edición de imagen y soporte de texto de OmniGen2.", "image_omnigen2_image_edit": "Edita imágenes con instrucciones en lenguaje natural usando las avanzadas capacidades de edición de imagen y soporte de texto de OmniGen2.",
"image_omnigen2_t2i": "Genera imágenes de alta calidad a partir de texto usando el modelo multimodal unificado 7B de OmniGen2 con arquitectura de doble vía.", "image_omnigen2_t2i": "Genera imágenes de alta calidad a partir de texto usando el modelo multimodal unificado 7B de OmniGen2 con arquitectura de doble vía.",
"sd3_5_large_blur": "Genera imágenes guiadas por imágenes de referencia borrosas usando SD 3.5.", "sd3_5_large_blur": "Genera imágenes guiadas por imágenes de referencia desenfocadas usando SD 3.5.",
"sd3_5_large_canny_controlnet_example": "Genera imágenes guiadas por detección de bordes usando SD 3.5 Canny ControlNet.", "sd3_5_large_canny_controlnet_example": "Genera imágenes guiadas por detección de bordes usando SD 3.5 Canny ControlNet.",
"sd3_5_large_depth": "Genera imágenes guiadas por información de profundidad usando SD 3.5.", "sd3_5_large_depth": "Genera imágenes guiadas por información de profundidad usando SD 3.5.",
"sd3_5_simple_example": "Genera imágenes usando SD 3.5.", "sd3_5_simple_example": "Genera imágenes usando SD 3.5.",
"sdxl_refiner_prompt_example": "Mejora imágenes SDXL usando modelos refinadores.", "sdxl_refiner_prompt_example": "Mejora imágenes SDXL usando modelos refiner.",
"sdxl_revision_text_prompts": "Genera imágenes transfiriendo conceptos de imágenes de referencia usando SDXL Revision.", "sdxl_revision_text_prompts": "Genera imágenes transfiriendo conceptos de imágenes de referencia usando SDXL Revision.",
"sdxl_revision_zero_positive": "Genera imágenes usando tanto indicaciones de texto como imágenes de referencia con SDXL Revision.", "sdxl_revision_zero_positive": "Genera imágenes usando tanto indicaciones de texto como imágenes de referencia con SDXL Revision.",
"sdxl_simple_example": "Genera imágenes de alta calidad usando SDXL.", "sdxl_simple_example": "Genera imágenes de alta calidad usando SDXL.",
@@ -1528,23 +1539,23 @@
"api_bfl_flux_pro_t2i": "Genera imágenes con excelente seguimiento de indicaciones y calidad visual usando FLUX.1 Pro.", "api_bfl_flux_pro_t2i": "Genera imágenes con excelente seguimiento de indicaciones y calidad visual usando FLUX.1 Pro.",
"api_ideogram_v3_t2i": "Genera imágenes de calidad profesional con excelente alineación de indicaciones, fotorrealismo y renderizado de texto usando Ideogram V3.", "api_ideogram_v3_t2i": "Genera imágenes de calidad profesional con excelente alineación de indicaciones, fotorrealismo y renderizado de texto usando Ideogram V3.",
"api_luma_photon_i2i": "Guía la generación de imágenes usando una combinación de imágenes e indicaciones.", "api_luma_photon_i2i": "Guía la generación de imágenes usando una combinación de imágenes e indicaciones.",
"api_luma_photon_style_ref": "Genera imágenes combinando referencias de estilo con control preciso usando Luma Photon.", "api_luma_photon_style_ref": "Genera imágenes mezclando referencias de estilo con control preciso usando Luma Photon.",
"api_openai_dall_e_2_inpaint": "Edita imágenes usando inpainting con la API OpenAI Dall-E 2.", "api_openai_dall_e_2_inpaint": "Edita imágenes usando inpainting con la API OpenAI Dall-E 2.",
"api_openai_dall_e_2_t2i": "Genera imágenes a partir de texto usando la API OpenAI Dall-E 2.", "api_openai_dall_e_2_t2i": "Genera imágenes a partir de texto usando la API OpenAI Dall-E 2.",
"api_openai_dall_e_3_t2i": "Genera imágenes a partir de texto usando la API OpenAI Dall-E 3.", "api_openai_dall_e_3_t2i": "Genera imágenes a partir de texto usando la API OpenAI Dall-E 3.",
"api_openai_image_1_i2i": "Genera imágenes a partir de imágenes usando la API OpenAI GPT Image 1.", "api_openai_image_1_i2i": "Genera imágenes a partir de imágenes de entrada usando la API OpenAI GPT Image 1.",
"api_openai_image_1_inpaint": "Edita imágenes usando inpainting con la API OpenAI GPT Image 1.", "api_openai_image_1_inpaint": "Edita imágenes usando inpainting con la API OpenAI GPT Image 1.",
"api_openai_image_1_multi_inputs": "Genera imágenes a partir de múltiples entradas usando la API OpenAI GPT Image 1.", "api_openai_image_1_multi_inputs": "Genera imágenes a partir de múltiples entradas usando la API OpenAI GPT Image 1.",
"api_openai_image_1_t2i": "Genera imágenes a partir de texto usando la API OpenAI GPT Image 1.", "api_openai_image_1_t2i": "Genera imágenes a partir de texto usando la API OpenAI GPT Image 1.",
"api_recraft_image_gen_with_color_control": "Genera imágenes con paletas de color personalizadas y visuales de marca usando Recraft.", "api_recraft_image_gen_with_color_control": "Genera imágenes con paletas de colores personalizadas y visuales específicos de marca usando Recraft.",
"api_recraft_image_gen_with_style_control": "Controla el estilo con ejemplos visuales, alinea la posición y ajusta objetos. Guarda y comparte estilos para consistencia de marca.", "api_recraft_image_gen_with_style_control": "Controla el estilo con ejemplos visuales, alinea la posición y ajusta objetos. Guarda y comparte estilos para coherencia de marca perfecta.",
"api_recraft_vector_gen": "Genera imágenes vectoriales de alta calidad a partir de texto usando el generador de vectores IA de Recraft.", "api_recraft_vector_gen": "Genera imágenes vectoriales de alta calidad a partir de texto usando el generador de vectores IA de Recraft.",
"api_runway_reference_to_image": "Genera nuevas imágenes basadas en estilos y composiciones de referencia con Runway.", "api_runway_reference_to_image": "Genera nuevas imágenes basadas en estilos y composiciones de referencia con la IA de Runway.",
"api_runway_text_to_image": "Genera imágenes de alta calidad a partir de texto usando el modelo IA de Runway.", "api_runway_text_to_image": "Genera imágenes de alta calidad a partir de texto usando el modelo IA de Runway.",
"api_stability_ai_i2i": "Transforma imágenes con generación de alta calidad usando Stability AI, ideal para edición profesional y transferencia de estilo.", "api_stability_ai_i2i": "Transforma imágenes con generación de alta calidad usando Stability AI, perfecto para edición profesional y transferencia de estilo.",
"api_stability_ai_sd3_5_i2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para uso profesional a 1 megapíxel.", "api_stability_ai_sd3_5_i2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para casos profesionales a 1 megapíxel de resolución.",
"api_stability_ai_sd3_5_t2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para uso profesional a 1 megapíxel.", "api_stability_ai_sd3_5_t2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para casos profesionales a 1 megapíxel de resolución.",
"api_stability_ai_stable_image_ultra_t2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para uso profesional a 1 megapíxel." "api_stability_ai_stable_image_ultra_t2i": "Genera imágenes de alta calidad con excelente adherencia a la indicación. Perfecto para casos profesionales a 1 megapíxel de resolución."
}, },
"LLM API": { "LLM API": {
"api_google_gemini": "Experimenta la IA multimodal de Google con las capacidades de razonamiento de Gemini.", "api_google_gemini": "Experimenta la IA multimodal de Google con las capacidades de razonamiento de Gemini.",
@@ -1552,48 +1563,48 @@
}, },
"Upscaling": { "Upscaling": {
"esrgan_example": "Escala imágenes usando modelos ESRGAN para mejorar la calidad.", "esrgan_example": "Escala imágenes usando modelos ESRGAN para mejorar la calidad.",
"hiresfix_esrgan_workflow": "Escala imágenes usando modelos ESRGAN durante pasos intermedios.", "hiresfix_esrgan_workflow": "Escala imágenes usando modelos ESRGAN durante pasos intermedios de generación.",
"hiresfix_latent_workflow": "Escala imágenes mejorando la calidad en el espacio latente.", "hiresfix_latent_workflow": "Escala imágenes mejorando la calidad en el espacio latente.",
"latent_upscale_different_prompt_model": "Escala imágenes cambiando las indicaciones entre pasadas." "latent_upscale_different_prompt_model": "Escala imágenes cambiando las indicaciones entre pasadas de generación."
}, },
"Video": { "Video": {
"hunyuan_video_text_to_video": "Genera videos a partir de texto usando el modelo Hunyuan.", "hunyuan_video_text_to_video": "Genera videos a partir de texto usando el modelo Hunyuan.",
"image_to_video": "Genera videos a partir de imágenes fijas.", "image_to_video": "Genera videos a partir de imágenes fijas.",
"image_to_video_wan": "Genera videos a partir de imágenes usando Wan 2.1.", "image_to_video_wan": "Genera videos a partir de imágenes usando Wan 2.1.",
"ltxv_image_to_video": "Genera videos a partir de imágenes fijas.", "ltxv_image_to_video": "Genera videos a partir de imágenes fijas.",
"ltxv_text_to_video": "Genera videos a partir de texto.", "ltxv_text_to_video": "Genera videos a partir de indicaciones de texto.",
"mochi_text_to_video_example": "Genera videos a partir de texto usando el modelo Mochi.", "mochi_text_to_video_example": "Genera videos a partir de texto usando el modelo Mochi.",
"text_to_video_wan": "Genera videos a partir de texto usando Wan 2.1.", "text_to_video_wan": "Genera videos a partir de texto usando Wan 2.1.",
"txt_to_image_to_video": "Genera videos creando primero imágenes a partir de texto.", "txt_to_image_to_video": "Genera videos creando primero imágenes a partir de texto.",
"video_cosmos_predict2_2B_video2world_480p_16fps": "Genera videos con Cosmos-Predict2 2B Video2World, logrando simulaciones físicas precisas, alta fidelidad y consistencia.", "video_cosmos_predict2_2B_video2world_480p_16fps": "Genera videos con Cosmos-Predict2 2B Video2World, logrando simulaciones de video físicamente precisas, de alta fidelidad y consistentes.",
"video_wan2_1_fun_camera_v1_1_14B": "Genera videos de alta calidad con control avanzado de cámara usando el modelo completo de 14B.", "video_wan2_1_fun_camera_v1_1_14B": "Genera videos de alta calidad con control avanzado de cámara usando el modelo completo de 14B.",
"video_wan2_1_fun_camera_v1_1_1_3B": "Genera videos dinámicos con movimientos de cámara cinematográficos usando Wan 2.1 Fun Camera 1.3B.", "video_wan2_1_fun_camera_v1_1_1_3B": "Genera videos dinámicos con movimientos de cámara cinematográficos usando el modelo Wan 2.1 Fun Camera 1.3B.",
"video_wan_vace_14B_ref2v": "Crea videos que coinciden con el estilo y contenido de una imagen de referencia.", "video_wan_vace_14B_ref2v": "Crea videos que coinciden con el estilo y contenido de una imagen de referencia. Perfecto para generación de video consistente en estilo.",
"video_wan_vace_14B_t2v": "Transforma descripciones de texto en videos de alta calidad. Soporta 480p y 720p con el modelo VACE-14B.", "video_wan_vace_14B_t2v": "Transforma descripciones de texto en videos de alta calidad. Soporta 480p y 720p con el modelo VACE-14B.",
"video_wan_vace_14B_v2v": "Genera videos controlando videos de entrada e imágenes de referencia usando Wan VACE.", "video_wan_vace_14B_v2v": "Genera videos controlando videos de entrada e imágenes de referencia usando Wan VACE.",
"video_wan_vace_flf2v": "Genera transiciones suaves definiendo fotogramas iniciales y finales. Soporta secuencias de fotogramas personalizadas.", "video_wan_vace_flf2v": "Genera transiciones de video suaves definiendo cuadros iniciales y finales. Soporta secuencias de cuadros personalizadas.",
"video_wan_vace_inpainting": "Edita regiones específicas en videos preservando el contenido circundante.", "video_wan_vace_inpainting": "Edita regiones específicas en videos preservando el contenido circundante. Ideal para eliminar o reemplazar objetos.",
"video_wan_vace_outpainting": "Genera videos extendidos expandiendo el tamaño usando Wan VACE outpainting.", "video_wan_vace_outpainting": "Genera videos extendidos ampliando el tamaño del video usando Wan VACE outpainting.",
"wan2_1_flf2v_720_f16": "Genera videos controlando primer y último fotograma usando Wan 2.1 FLF2V.", "wan2_1_flf2v_720_f16": "Genera videos controlando los primeros y últimos cuadros usando Wan 2.1 FLF2V.",
"wan2_1_fun_control": "Genera videos guiados por pose, profundidad y bordes usando Wan 2.1 ControlNet.", "wan2_1_fun_control": "Genera videos guiados por pose, profundidad y bordes usando Wan 2.1 ControlNet.",
"wan2_1_fun_inp": "Genera videos a partir de fotogramas iniciales y finales usando Wan 2.1 inpainting." "wan2_1_fun_inp": "Genera videos a partir de cuadros iniciales y finales usando Wan 2.1 inpainting."
}, },
"Video API": { "Video API": {
"api_hailuo_minimax_i2v": "Genera videos refinados a partir de imágenes y texto con integración CGI usando MiniMax.", "api_hailuo_minimax_i2v": "Genera videos refinados a partir de imágenes y texto con integración CGI usando MiniMax.",
"api_hailuo_minimax_t2v": "Genera videos de alta calidad directamente desde texto. Explora las capacidades avanzadas de IA de MiniMax para crear narrativas visuales diversas con efectos CGI profesionales.", "api_hailuo_minimax_t2v": "Genera videos de alta calidad directamente desde texto. Explora las capacidades avanzadas de IA de MiniMax para crear narrativas visuales diversas con efectos CGI profesionales y elementos estilísticos.",
"api_kling_effects": "Genera videos dinámicos aplicando efectos visuales a imágenes usando Kling.", "api_kling_effects": "Genera videos dinámicos aplicando efectos visuales a imágenes usando Kling.",
"api_kling_flf": "Genera videos controlando los primeros y últimos fotogramas.", "api_kling_flf": "Genera videos controlando el primer y último cuadro.",
"api_kling_i2v": "Genera videos con excelente adherencia a la indicación para acciones, expresiones y movimientos de cámara usando Kling.", "api_kling_i2v": "Genera videos con excelente adherencia a la indicación para acciones, expresiones y movimientos de cámara usando Kling.",
"api_luma_i2v": "Convierte imágenes estáticas en animaciones mágicas de alta calidad al instante.", "api_luma_i2v": "Convierte imágenes estáticas en animaciones mágicas de alta calidad al instante.",
"api_luma_t2v": "Genera videos de alta calidad usando indicaciones simples.", "api_luma_t2v": "Se pueden generar videos de alta calidad usando indicaciones simples.",
"api_moonvalley_image_to_video": "Genera videos cinematográficos 1080p a partir de una imagen usando un modelo entrenado solo con datos licenciados.", "api_moonvalley_image_to_video": "Genera videos cinematográficos en 1080p a partir de una imagen mediante un modelo entrenado exclusivamente con datos licenciados.",
"api_moonvalley_text_to_video": "Genera videos cinematográficos 1080p a partir de texto usando un modelo entrenado solo con datos licenciados.", "api_moonvalley_text_to_video": "Genera videos cinematográficos en 1080p a partir de texto mediante un modelo entrenado exclusivamente con datos licenciados.",
"api_pika_i2v": "Genera videos animados suaves a partir de imágenes estáticas usando Pika AI.", "api_pika_i2v": "Genera videos animados suaves a partir de una sola imagen estática usando Pika AI.",
"api_pika_scene": "Genera videos que incorporan múltiples imágenes de entrada usando Pika Scenes.", "api_pika_scene": "Genera videos que incorporan múltiples imágenes de entrada usando Pika Scenes.",
"api_pixverse_i2v": "Genera videos dinámicos a partir de imágenes estáticas con movimiento y efectos usando PixVerse.", "api_pixverse_i2v": "Genera videos dinámicos a partir de imágenes estáticas con movimiento y efectos usando PixVerse.",
"api_pixverse_t2v": "Genera videos con interpretación precisa de indicaciones y dinámica visual impresionante.", "api_pixverse_t2v": "Genera videos con interpretación precisa de indicaciones y dinámicas visuales impresionantes.",
"api_pixverse_template_i2v": "Genera videos dinámicos a partir de imágenes estáticas con movimiento y efectos usando PixVerse.", "api_pixverse_template_i2v": "Genera videos dinámicos a partir de imágenes estáticas con movimiento y efectos usando PixVerse.",
"api_runway_first_last_frame": "Genera transiciones de video suaves entre dos fotogramas clave con precisión de Runway.", "api_runway_first_last_frame": "Genera transiciones de video suaves entre dos cuadros clave con la precisión de Runway.",
"api_runway_gen3a_turbo_image_to_video": "Genera videos cinematográficos a partir de imágenes estáticas usando Runway Gen3a Turbo.", "api_runway_gen3a_turbo_image_to_video": "Genera videos cinematográficos a partir de imágenes estáticas usando Runway Gen3a Turbo.",
"api_runway_gen4_turo_image_to_video": "Genera videos dinámicos a partir de imágenes usando Runway Gen4 Turbo.", "api_runway_gen4_turo_image_to_video": "Genera videos dinámicos a partir de imágenes usando Runway Gen4 Turbo.",
"api_veo2_i2v": "Genera videos a partir de imágenes usando la API Google Veo2." "api_veo2_i2v": "Genera videos a partir de imágenes usando la API Google Veo2."
@@ -1602,29 +1613,29 @@
"title": "Comienza con una Plantilla" "title": "Comienza con una Plantilla"
}, },
"toastMessages": { "toastMessages": {
"cannotCreateSubgraph": "No se puede crear el subgrafo", "cannotCreateSubgraph": "No se puede crear subgrafo",
"couldNotDetermineFileType": "No se pudo determinar el tipo de archivo", "couldNotDetermineFileType": "No se pudo determinar el tipo de archivo",
"dropFileError": "No se puede procesar el elemento soltado: {error}", "dropFileError": "No se pudo procesar el elemento soltado: {error}",
"emptyCanvas": "Lienzo vacío", "emptyCanvas": "Lienzo vacío",
"errorCopyImage": "Error al copiar la imagen: {error}", "errorCopyImage": "Error al copiar la imagen: {error}",
"errorLoadingModel": "Error al cargar el modelo", "errorLoadingModel": "Error al cargar el modelo",
"errorSaveSetting": "Error al guardar la configuración {id}: {err}", "errorSaveSetting": "Error al guardar la configuración {id}: {err}",
"failedToAccessBillingPortal": "No se pudo acceder al portal de facturación: {error}", "failedToAccessBillingPortal": "No se pudo acceder al portal de facturación: {error}",
"failedToApplyTexture": "Error al aplicar textura", "failedToApplyTexture": "No se pudo aplicar la textura",
"failedToConvertToSubgraph": "No se pudo convertir los elementos en subgrafo", "failedToConvertToSubgraph": "No se pudo convertir los elementos a subgrafo",
"failedToCreateCustomer": "No se pudo crear el cliente: {error}", "failedToCreateCustomer": "No se pudo crear el cliente: {error}",
"failedToDownloadFile": "Error al descargar el archivo", "failedToDownloadFile": "No se pudo descargar el archivo",
"failedToExportModel": "Error al exportar modelo como {format}", "failedToExportModel": "No se pudo exportar el modelo como {format}",
"failedToFetchBalance": "No se pudo obtener el saldo: {error}", "failedToFetchBalance": "No se pudo obtener el saldo: {error}",
"failedToFetchLogs": "Error al obtener los registros del servidor", "failedToFetchLogs": "No se pudieron obtener los registros del servidor",
"failedToInitializeLoad3dViewer": "No se pudo inicializar el visor 3D", "failedToInitializeLoad3dViewer": "No se pudo inicializar el visor 3D",
"failedToInitiateCreditPurchase": "No se pudo iniciar la compra de créditos: {error}", "failedToInitiateCreditPurchase": "No se pudo iniciar la compra de créditos: {error}",
"failedToPurchaseCredits": "No se pudo comprar créditos: {error}", "failedToPurchaseCredits": "No se pudo comprar créditos: {error}",
"fileLoadError": "No se puede encontrar el flujo de trabajo en {fileName}", "fileLoadError": "No se pudo encontrar el flujo de trabajo en {fileName}",
"fileUploadFailed": "Error al subir el archivo", "fileUploadFailed": "Error al subir el archivo",
"interrupted": "La ejecución ha sido interrumpida", "interrupted": "La ejecución ha sido interrumpida",
"migrateToLitegraphReroute": "Los nodos de reroute se eliminarán en futuras versiones. Haz clic para migrar a reroute nativo de litegraph.", "migrateToLitegraphReroute": "Los nodos de redirección serán eliminados en futuras versiones. Haz clic para migrar a la redirección nativa de litegraph.",
"no3dScene": "No hay escena 3D para aplicar textura", "no3dScene": "No hay escena 3D para aplicar la textura",
"no3dSceneToExport": "No hay escena 3D para exportar", "no3dSceneToExport": "No hay escena 3D para exportar",
"noTemplatesToExport": "No hay plantillas para exportar", "noTemplatesToExport": "No hay plantillas para exportar",
"nodeDefinitionsUpdated": "Definiciones de nodos actualizadas", "nodeDefinitionsUpdated": "Definiciones de nodos actualizadas",
@@ -1632,12 +1643,12 @@
"nothingToGroup": "Nada para agrupar", "nothingToGroup": "Nada para agrupar",
"nothingToQueue": "Nada para poner en cola", "nothingToQueue": "Nada para poner en cola",
"pendingTasksDeleted": "Tareas pendientes eliminadas", "pendingTasksDeleted": "Tareas pendientes eliminadas",
"pleaseSelectNodesToGroup": "Por favor, seleccione los nodos (u otros grupos) para crear un grupo para", "pleaseSelectNodesToGroup": "Por favor, selecciona los nodos (u otros grupos) para crear un grupo",
"pleaseSelectOutputNodes": "Por favor, selecciona los nodos de salida", "pleaseSelectOutputNodes": "Por favor, selecciona los nodos de salida",
"unableToGetModelFilePath": "No se puede obtener la ruta del archivo del modelo", "unableToGetModelFilePath": "No se pudo obtener la ruta del archivo del modelo",
"unauthorizedDomain": "Tu dominio {domain} no está autorizado para usar este servicio. Por favor, contacta a {email} para agregar tu dominio a la lista blanca.", "unauthorizedDomain": "Tu dominio {domain} no está autorizado para usar este servicio. Por favor, contacta a {email} para agregar tu dominio a la lista blanca.",
"updateRequested": "Actualización solicitada", "updateRequested": "Actualización solicitada",
"useApiKeyTip": "Consejo: ¿No puedes acceder al inicio de sesión normal? Usa la opción de clave API de Comfy.", "useApiKeyTip": "Consejo: ¿No puedes acceder al inicio de sesión normal? Usa la opción de Comfy API Key.",
"userNotAuthenticated": "Usuario no autenticado" "userNotAuthenticated": "Usuario no autenticado"
}, },
"userSelect": { "userSelect": {
@@ -1651,12 +1662,12 @@
"email": "Correo electrónico", "email": "Correo electrónico",
"name": "Nombre", "name": "Nombre",
"notSet": "No establecido", "notSet": "No establecido",
"provider": "Método de inicio de sesión", "provider": "Proveedor de inicio de sesión",
"title": "Configuración de usuario", "title": "Configuración de usuario",
"updatePassword": "Actualizar contraseña" "updatePassword": "Actualizar contraseña"
}, },
"validation": { "validation": {
"invalidEmail": "Dirección de correo electrónico inválida", "invalidEmail": "Dirección de correo electrónico no válida",
"length": "Debe tener {length} caracteres", "length": "Debe tener {length} caracteres",
"maxLength": "No debe tener más de {length} caracteres", "maxLength": "No debe tener más de {length} caracteres",
"minLength": "Debe tener al menos {length} caracteres", "minLength": "Debe tener al menos {length} caracteres",
@@ -1671,7 +1682,7 @@
}, },
"personalDataConsentRequired": "Debes aceptar el procesamiento de tus datos personales.", "personalDataConsentRequired": "Debes aceptar el procesamiento de tus datos personales.",
"prefix": "Debe comenzar con {prefix}", "prefix": "Debe comenzar con {prefix}",
"required": "Requerido" "required": "Obligatorio"
}, },
"versionMismatchWarning": { "versionMismatchWarning": {
"dismiss": "Descartar", "dismiss": "Descartar",
@@ -1685,7 +1696,7 @@
"title": "Bienvenido a ComfyUI" "title": "Bienvenido a ComfyUI"
}, },
"whatsNewPopup": { "whatsNewPopup": {
"learnMore": "Aprende más", "learnMore": "Más información",
"noReleaseNotes": "No hay notas de la versión disponibles." "noReleaseNotes": "No hay notas de la versión disponibles."
}, },
"workflowService": { "workflowService": {

View File

@@ -277,6 +277,10 @@
"label": "Basculer la barre latérale de la bibliothèque de nœuds", "label": "Basculer la barre latérale de la bibliothèque de nœuds",
"tooltip": "Bibliothèque de nœuds" "tooltip": "Bibliothèque de nœuds"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "Basculer la barre latérale de lExplorateur de sortie",
"tooltip": "Explorateur de sortie"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "Basculer la barre latérale de la file d'attente", "label": "Basculer la barre latérale de la file d'attente",
"tooltip": "File d'attente" "tooltip": "File d'attente"

File diff suppressed because it is too large Load Diff

View File

@@ -277,6 +277,10 @@
"label": "ノードライブラリサイドバーの切り替え", "label": "ノードライブラリサイドバーの切り替え",
"tooltip": "ノードライブラリ" "tooltip": "ノードライブラリ"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "出力エクスプローラーサイドバーを切り替え",
"tooltip": "出力エクスプローラー"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "キューサイドバーの切り替え", "label": "キューサイドバーの切り替え",
"tooltip": "キュー" "tooltip": "キュー"

File diff suppressed because it is too large Load Diff

View File

@@ -277,6 +277,10 @@
"label": "노드 라이브러리 사이드바 토글", "label": "노드 라이브러리 사이드바 토글",
"tooltip": "노드 라이브러리" "tooltip": "노드 라이브러리"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "출력 탐색기 사이드바 전환",
"tooltip": "출력 탐색기"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "실행 큐 사이드바 토글", "label": "실행 큐 사이드바 토글",
"tooltip": "실행 큐" "tooltip": "실행 큐"

File diff suppressed because it is too large Load Diff

View File

@@ -277,6 +277,10 @@
"label": "Переключить боковую панель библиотеки нод", "label": "Переключить боковую панель библиотеки нод",
"tooltip": "Библиотека нод" "tooltip": "Библиотека нод"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "Переключить боковую панель проводника вывода",
"tooltip": "Проводник вывода"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "Переключить боковую панель очереди", "label": "Переключить боковую панель очереди",
"tooltip": "Очередь" "tooltip": "Очередь"

File diff suppressed because it is too large Load Diff

View File

@@ -277,6 +277,10 @@
"label": "切換節點庫側邊欄", "label": "切換節點庫側邊欄",
"tooltip": "節點庫" "tooltip": "節點庫"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "切換輸出總覽側邊欄",
"tooltip": "輸出總覽"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "切換佇列側邊欄", "label": "切換佇列側邊欄",
"tooltip": "佇列" "tooltip": "佇列"

View File

@@ -119,12 +119,12 @@
"Add Group": "新增群組", "Add Group": "新增群組",
"Add Group For Selected Nodes": "為選取的節點新增群組", "Add Group For Selected Nodes": "為選取的節點新增群組",
"Add Node": "新增節點", "Add Node": "新增節點",
"Bypass": "過", "Bypass": "過",
"Clone": "複製", "Clone": "複製",
"Collapse": "收合", "Collapse": "收合",
"Colors": "顏色", "Colors": "顏色",
"Convert to Group Node": "轉換為群組節點", "Convert to Group Node": "轉換為群組節點",
"Copy (Clipspace)": "複製(剪貼空間", "Copy (Clipspace)": "複製(Clipspace",
"Expand": "展開", "Expand": "展開",
"Inputs": "輸入", "Inputs": "輸入",
"Manage": "管理", "Manage": "管理",
@@ -163,7 +163,7 @@
"buyNow": "立即購買", "buyNow": "立即購買",
"insufficientMessage": "您的點數不足,無法執行此工作流程。", "insufficientMessage": "您的點數不足,無法執行此工作流程。",
"insufficientTitle": "點數不足", "insufficientTitle": "點數不足",
"maxAmount": "(最高 $1,000 美元", "maxAmount": "(最高 $1,000 USD",
"quickPurchase": "快速購買", "quickPurchase": "快速購買",
"seeDetails": "查看詳情", "seeDetails": "查看詳情",
"topUp": "儲值" "topUp": "儲值"
@@ -174,7 +174,7 @@
"*": "*", "*": "*",
"AUDIO": "音訊", "AUDIO": "音訊",
"BOOLEAN": "布林值", "BOOLEAN": "布林值",
"CAMERA_CONTROL": "攝影機控制", "CAMERA_CONTROL": "機控制",
"CLIP": "CLIP", "CLIP": "CLIP",
"CLIP_VISION": "CLIP 視覺", "CLIP_VISION": "CLIP 視覺",
"CLIP_VISION_OUTPUT": "CLIP 視覺輸出", "CLIP_VISION_OUTPUT": "CLIP 視覺輸出",
@@ -191,7 +191,7 @@
"INT": "整數", "INT": "整數",
"LATENT": "latent (潛空間)", "LATENT": "latent (潛空間)",
"LATENT_OPERATION": "latent 操作", "LATENT_OPERATION": "latent 操作",
"LOAD3D_CAMERA": "載入 3D 攝影機", "LOAD3D_CAMERA": "載入3D機",
"LOAD_3D": "載入 3D", "LOAD_3D": "載入 3D",
"LOAD_3D_ANIMATION": "載入 3D 動畫", "LOAD_3D_ANIMATION": "載入 3D 動畫",
"LUMA_CONCEPTS": "LUMA 概念", "LUMA_CONCEPTS": "LUMA 概念",
@@ -224,13 +224,13 @@
"reinstall": "重新安裝" "reinstall": "重新安裝"
}, },
"desktopUpdate": { "desktopUpdate": {
"description": "ComfyUI Desktop 正在安裝新相依套件,這可能需要幾分鐘。", "description": "ComfyUI Desktop 正在安裝新依賴項。這可能需要幾分鐘。",
"errorCheckingUpdate": "檢查更新時發生錯誤", "errorCheckingUpdate": "檢查更新時發生錯誤",
"errorInstallingUpdate": "安裝更新時發生錯誤", "errorInstallingUpdate": "安裝更新時發生錯誤",
"noUpdateFound": "未發現更新", "noUpdateFound": "未發現更新",
"terminalDefaultMessage": "任何來自更新的主控台輸出都會顯示在這裡。", "terminalDefaultMessage": "任何來自更新的主控台輸出都會顯示在這裡。",
"title": "正在更新 ComfyUI Desktop", "title": "正在更新 ComfyUI Desktop",
"updateAvailableMessage": "有可用的更新。要立即重新啟動並更新嗎?", "updateAvailableMessage": "有可用的更新。要立即重新啟動並更新嗎?",
"updateFoundTitle": "發現更新v{version}" "updateFoundTitle": "發現更新v{version}"
}, },
"downloadGit": { "downloadGit": {
@@ -264,7 +264,8 @@
"amount": "數量", "amount": "數量",
"apply": "套用", "apply": "套用",
"architecture": "架構", "architecture": "架構",
"audioFailedToLoad": "無法載入音訊", "audio": "音訊",
"audioFailedToLoad": "音訊載入失敗",
"author": "作者", "author": "作者",
"back": "返回", "back": "返回",
"cancel": "取消", "cancel": "取消",
@@ -272,7 +273,7 @@
"category": "分類", "category": "分類",
"choose_file_to_upload": "選擇要上傳的檔案", "choose_file_to_upload": "選擇要上傳的檔案",
"clear": "清除", "clear": "清除",
"clearFilters": "清除篩選", "clearFilters": "清除篩選條件",
"close": "關閉", "close": "關閉",
"color": "顏色", "color": "顏色",
"comingSoon": "即將推出", "comingSoon": "即將推出",
@@ -313,11 +314,13 @@
"filter": "篩選", "filter": "篩選",
"findIssues": "尋找問題", "findIssues": "尋找問題",
"firstTimeUIMessage": "這是您第一次使用新介面。若要返回舊介面,請前往「選單」>「使用新介面」>「關閉」。", "firstTimeUIMessage": "這是您第一次使用新介面。若要返回舊介面,請前往「選單」>「使用新介面」>「關閉」。",
"folder": "資料夾",
"frontendNewer": "前端版本 {frontendVersion} 可能與後端版本 {backendVersion} 不相容。", "frontendNewer": "前端版本 {frontendVersion} 可能與後端版本 {backendVersion} 不相容。",
"frontendOutdated": "前端版本 {frontendVersion} 已過時。後端需要 {requiredVersion} 或更高版本。", "frontendOutdated": "前端版本 {frontendVersion} 已過時。後端需要 {requiredVersion} 或更高版本。",
"goToNode": "前往節點", "goToNode": "前往節點",
"help": "說明", "help": "說明",
"icon": "圖示", "icon": "圖示",
"image": "影像",
"imageFailedToLoad": "無法載入圖片", "imageFailedToLoad": "無法載入圖片",
"imageUrl": "圖片網址", "imageUrl": "圖片網址",
"import": "匯入", "import": "匯入",
@@ -327,23 +330,25 @@
"installed": "已安裝", "installed": "已安裝",
"installing": "安裝中", "installing": "安裝中",
"interrupted": "已中斷", "interrupted": "已中斷",
"itemsCount": "{0} 項",
"keybinding": "快捷鍵", "keybinding": "快捷鍵",
"keybindingAlreadyExists": "快捷鍵已存在於", "keybindingAlreadyExists": "快捷鍵已存在於",
"learnMore": "了解更多", "learnMore": "了解更多",
"loadAllFolders": "載入所有資料夾", "loadAllFolders": "載入所有資料夾",
"loadWorkflow": "載入工作流程", "loadWorkflow": "載入工作流程",
"loading": "載入中", "loading": "載入中",
"loadingPanel": "正在載入{panel}面板...", "loadingPanel": "正在載入 {panel} 面板...",
"login": "登入", "login": "登入",
"logs": "日誌", "logs": "日誌",
"micPermissionDenied": "麥克風權限被拒絕", "micPermissionDenied": "麥克風權限被拒絕",
"migrate": "遷移", "migrate": "遷移",
"missing": "缺少", "missing": "缺少",
"modifyTime": "修改時間",
"name": "名稱", "name": "名稱",
"newFolder": "新資料夾", "newFolder": "新資料夾",
"next": "下一步", "next": "下一步",
"no": "否", "no": "否",
"noAudioRecorded": "沒有錄製音訊", "noAudioRecorded": "錄製音訊",
"noResultsFound": "找不到結果", "noResultsFound": "找不到結果",
"noTasksFound": "找不到任務", "noTasksFound": "找不到任務",
"noTasksFoundMessage": "佇列中沒有任務。", "noTasksFoundMessage": "佇列中沒有任務。",
@@ -358,7 +363,7 @@
"reconnected": "已重新連線", "reconnected": "已重新連線",
"reconnecting": "重新連線中", "reconnecting": "重新連線中",
"refresh": "重新整理", "refresh": "重新整理",
"releaseTitle": "{package} {version} 版本發佈", "releaseTitle": "{package} {version} 發布",
"reloadToApplyChanges": "重新載入以套用變更", "reloadToApplyChanges": "重新載入以套用變更",
"rename": "重新命名", "rename": "重新命名",
"reportIssue": "送出回報", "reportIssue": "送出回報",
@@ -373,6 +378,7 @@
"saving": "儲存中", "saving": "儲存中",
"searchExtensions": "搜尋擴充套件", "searchExtensions": "搜尋擴充套件",
"searchFailedMessage": "找不到符合您搜尋的設定。請嘗試調整搜尋條件。", "searchFailedMessage": "找不到符合您搜尋的設定。請嘗試調整搜尋條件。",
"searchIn": "在 {0} 中搜尋",
"searchKeybindings": "搜尋快捷鍵", "searchKeybindings": "搜尋快捷鍵",
"searchModels": "搜尋模型", "searchModels": "搜尋模型",
"searchNodes": "搜尋節點", "searchNodes": "搜尋節點",
@@ -381,6 +387,7 @@
"setAsBackground": "設為背景", "setAsBackground": "設為背景",
"settings": "設定", "settings": "設定",
"showReport": "顯示報告", "showReport": "顯示報告",
"size": "大小",
"sort": "排序", "sort": "排序",
"source": "來源", "source": "來源",
"startRecording": "開始錄音", "startRecording": "開始錄音",
@@ -391,6 +398,7 @@
"terminal": "終端機", "terminal": "終端機",
"title": "標題", "title": "標題",
"triggerPhrase": "觸發詞", "triggerPhrase": "觸發詞",
"type": "類型",
"unknownError": "未知錯誤", "unknownError": "未知錯誤",
"update": "更新", "update": "更新",
"updateAvailable": "有可用更新", "updateAvailable": "有可用更新",
@@ -402,6 +410,7 @@
"user": "使用者", "user": "使用者",
"versionMismatchWarning": "版本相容性警告", "versionMismatchWarning": "版本相容性警告",
"versionMismatchWarningMessage": "{warning}{detail} 請參閱 https://docs.comfy.org/installation/update_comfyui#common-update-issues 以取得更新說明。", "versionMismatchWarningMessage": "{warning}{detail} 請參閱 https://docs.comfy.org/installation/update_comfyui#common-update-issues 以取得更新說明。",
"video": "影片",
"videoFailedToLoad": "無法載入影片", "videoFailedToLoad": "無法載入影片",
"workflow": "工作流程" "workflow": "工作流程"
}, },
@@ -425,13 +434,13 @@
"docs": "文件", "docs": "文件",
"github": "Github", "github": "Github",
"helpFeedback": "幫助與回饋", "helpFeedback": "幫助與回饋",
"loadingReleases": "正在載入版本資訊…", "loadingReleases": "正在載入版本...",
"more": "更多", "more": "更多...",
"noRecentReleases": "近期沒有新版本", "noRecentReleases": "近期無版本更新",
"openDevTools": "開啟開發者工具", "openDevTools": "開啟開發者工具",
"reinstall": "重新安裝", "reinstall": "重新安裝",
"updateAvailable": "有更新", "updateAvailable": "有更新",
"whatsNew": "有什麼新功能" "whatsNew": "最新消息"
}, },
"icon": { "icon": {
"bookmark": "書籤", "bookmark": "書籤",
@@ -476,7 +485,7 @@
"installLocationDescription": "選擇 ComfyUI 使用者資料的目錄。Python 環境將安裝在所選位置。", "installLocationDescription": "選擇 ComfyUI 使用者資料的目錄。Python 環境將安裝在所選位置。",
"installLocationTooltip": "ComfyUI 的使用者資料目錄。儲存:\n- Python 環境\n- 模型\n- 自訂節點\n", "installLocationTooltip": "ComfyUI 的使用者資料目錄。儲存:\n- Python 環境\n- 模型\n- 自訂節點\n",
"insufficientFreeSpace": "空間不足 - 最低可用空間", "insufficientFreeSpace": "空間不足 - 最低可用空間",
"isOneDrive": "不支援 OneDrive。請 ComfyUI 安裝在其他位置。", "isOneDrive": "不支援 OneDrive。請在其他位置安裝 ComfyUI。",
"manualConfiguration": { "manualConfiguration": {
"createVenv": "您需要在下列目錄建立虛擬環境", "createVenv": "您需要在下列目錄建立虛擬環境",
"requirements": "需求", "requirements": "需求",
@@ -491,7 +500,7 @@
"migrationOptional": "遷移為選擇性步驟。如果您沒有現有安裝,可以略過此步驟。", "migrationOptional": "遷移為選擇性步驟。如果您沒有現有安裝,可以略過此步驟。",
"migrationSourcePathDescription": "如果您已有 ComfyUI 安裝,我們可以將您現有的使用者檔案與模型複製/連結到新安裝。您現有的 ComfyUI 安裝不會受到影響。", "migrationSourcePathDescription": "如果您已有 ComfyUI 安裝,我們可以將您現有的使用者檔案與模型複製/連結到新安裝。您現有的 ComfyUI 安裝不會受到影響。",
"moreInfo": "更多資訊請參閱", "moreInfo": "更多資訊請參閱",
"nonDefaultDrive": "請將 ComfyUI 安裝在您的系統磁碟(例如 C:\\)。不同檔案系統的磁碟可能會導致不可預期的問題。安裝後,模型和其他檔案可儲存在其他磁碟。", "nonDefaultDrive": "請將 ComfyUI 安裝在系統磁碟(例如 C:\\)。不同檔案系統的磁碟可能會導致不可預期的問題。模型和其他檔案可於安裝後儲存在其他磁碟。",
"parentMissing": "路徑不存在 - 請先建立上層目錄", "parentMissing": "路徑不存在 - 請先建立上層目錄",
"pathExists": "目錄已存在 - 請確保您已備份所有資料", "pathExists": "目錄已存在 - 請確保您已備份所有資料",
"pathValidationFailed": "路徑驗證失敗", "pathValidationFailed": "路徑驗證失敗",
@@ -502,7 +511,7 @@
"allowMetricsDescription": "協助改進 ComfyUI傳送匿名使用統計資料。不會收集個人資訊或工作流程內容。", "allowMetricsDescription": "協助改進 ComfyUI傳送匿名使用統計資料。不會收集個人資訊或工作流程內容。",
"autoUpdate": "自動更新", "autoUpdate": "自動更新",
"autoUpdateDescription": "自動下載可用更新。安裝前會通知您。", "autoUpdateDescription": "自動下載可用更新。安裝前會通知您。",
"checkingMirrors": "正在檢查 Python 鏡像的網路連線...", "checkingMirrors": "正在檢查 Python 鏡像的網路連線...",
"dataCollectionDialog": { "dataCollectionDialog": {
"collect": { "collect": {
"errorReports": "錯誤訊息與堆疊追蹤", "errorReports": "錯誤訊息與堆疊追蹤",
@@ -524,10 +533,10 @@
"errorUpdatingConsentDetail": "無法更新統計同意設定", "errorUpdatingConsentDetail": "無法更新統計同意設定",
"learnMoreAboutData": "了解更多資料收集資訊", "learnMoreAboutData": "了解更多資料收集資訊",
"mirrorSettings": "鏡像設定", "mirrorSettings": "鏡像設定",
"mirrorsReachable": "Python 鏡像網路連線正常", "mirrorsReachable": "Python 鏡像網路連線良好",
"mirrorsUnreachable": "部分 Python 鏡像網路連線異常", "mirrorsUnreachable": "部分 Python 鏡像網路連線不佳",
"pypiMirrorPlaceholder": "輸入 PyPI 鏡像網址", "pypiMirrorPlaceholder": "輸入 PyPI 鏡像網址",
"pythonMirrorPlaceholder": "輸入 Python 鏡像網址" "pythonMirrorPlaceholder": "輸入 Python 鏡像網址"
}, },
"systemLocations": "系統位置", "systemLocations": "系統位置",
"unhandledError": "未知錯誤", "unhandledError": "未知錯誤",
@@ -535,14 +544,14 @@
}, },
"issueReport": { "issueReport": {
"contactFollowUp": "需要聯絡我以便後續追蹤", "contactFollowUp": "需要聯絡我以便後續追蹤",
"contactSupportDescription": "請填寫下列表單並提交您的報告", "contactSupportDescription": "請在下方表單填寫您的回報內容",
"contactSupportTitle": "聯絡客服支援", "contactSupportTitle": "聯絡支援",
"describeTheProblem": "請描述問題", "describeTheProblem": "請描述問題",
"email": "電子郵件", "email": "電子郵件",
"feedbackTitle": "協助我們改進 ComfyUI請提供您的回饋", "feedbackTitle": "協助我們改進 ComfyUI請提供您的回饋",
"helpFix": "協助修復此問題", "helpFix": "協助修復此問題",
"helpTypes": { "helpTypes": {
"billingPayments": "帳單/付款問題", "billingPayments": "帳單/付款",
"bugReport": "錯誤回報", "bugReport": "錯誤回報",
"giveFeedback": "提供回饋", "giveFeedback": "提供回饋",
"loginAccessIssues": "登入/存取問題", "loginAccessIssues": "登入/存取問題",
@@ -552,12 +561,12 @@
"provideAdditionalDetails": "提供更多細節", "provideAdditionalDetails": "提供更多細節",
"provideEmail": "請提供您的電子郵件(選填)", "provideEmail": "請提供您的電子郵件(選填)",
"rating": "評分", "rating": "評分",
"selectIssue": "選擇問題", "selectIssue": "選擇問題",
"stackTrace": "堆疊追蹤", "stackTrace": "堆疊追蹤",
"submitErrorReport": "提交錯誤報告(選填)", "submitErrorReport": "提交錯誤報告(選填)",
"systemStats": "系統狀態", "systemStats": "系統狀態",
"validation": { "validation": {
"descriptionRequired": "請填寫問題描述", "descriptionRequired": "請填寫描述",
"helpTypeRequired": "請選擇協助類型", "helpTypeRequired": "請選擇協助類型",
"invalidEmail": "請輸入有效的電子郵件地址", "invalidEmail": "請輸入有效的電子郵件地址",
"maxLength": "訊息過長", "maxLength": "訊息過長",
@@ -588,7 +597,7 @@
"materialMode": "材質模式", "materialMode": "材質模式",
"materialModes": { "materialModes": {
"depth": "深度", "depth": "深度",
"lineart": "線條藝術", "lineart": "線稿",
"normal": "一般", "normal": "一般",
"original": "原始", "original": "原始",
"wireframe": "線框" "wireframe": "線框"
@@ -616,10 +625,10 @@
"cameraType": "相機類型", "cameraType": "相機類型",
"cancel": "取消", "cancel": "取消",
"exportSettings": "匯出設定", "exportSettings": "匯出設定",
"lightSettings": "光設定", "lightSettings": "光設定",
"modelSettings": "模型設定", "modelSettings": "模型設定",
"sceneSettings": "場景設定", "sceneSettings": "場景設定",
"title": "3D 檢視器(測試版" "title": "3D 檢視器(Beta"
} }
}, },
"loadWorkflowWarning": { "loadWorkflowWarning": {
@@ -631,10 +640,10 @@
"None": "無", "None": "無",
"OK": "正常", "OK": "正常",
"Skipped": "已略過", "Skipped": "已略過",
"allOk": "未測到任何問題。", "allOk": "未測到任何問題。",
"confirmTitle": "確定要繼續嗎?", "confirmTitle": "確定嗎?",
"consoleLogs": "控台日誌", "consoleLogs": "控台日誌",
"detected": "已測", "detected": "已測",
"error": { "error": {
"cannotContinue": "無法繼續 - 仍有錯誤存在", "cannotContinue": "無法繼續 - 仍有錯誤存在",
"defaultDescription": "執行維護任務時發生錯誤。", "defaultDescription": "執行維護任務時發生錯誤。",
@@ -669,10 +678,10 @@
"latestVersion": "最新版本", "latestVersion": "最新版本",
"license": "授權條款", "license": "授權條款",
"loadingVersions": "正在載入版本...", "loadingVersions": "正在載入版本...",
"nightlyVersion": "每夜建置版", "nightlyVersion": "夜間版",
"noDescription": "沒有可用的說明", "noDescription": "沒有可用的描述",
"noNodesFound": "找不到任何節點", "noNodesFound": "找不到任何節點",
"noNodesFoundDescription": "此套件的節點無法解析,或此套件僅為前端擴充功能,沒有任何節點。", "noNodesFoundDescription": "此套件的節點無法解析,或此套件僅為前端擴充沒有任何節點。",
"noResultsFound": "找不到符合搜尋條件的結果。", "noResultsFound": "找不到符合搜尋條件的結果。",
"nodePack": "節點包", "nodePack": "節點包",
"packsSelected": "已選擇套件", "packsSelected": "已選擇套件",
@@ -706,7 +715,7 @@
"version": "版本" "version": "版本"
}, },
"maskEditor": { "maskEditor": {
"Apply to Whole Image": "套用至整張圖", "Apply to Whole Image": "套用至整張圖",
"Brush Settings": "筆刷設定", "Brush Settings": "筆刷設定",
"Brush Shape": "筆刷形狀", "Brush Shape": "筆刷形狀",
"Clear": "清除", "Clear": "清除",
@@ -753,8 +762,8 @@
"refresh": "重新整理節點定義", "refresh": "重新整理節點定義",
"resetView": "重設畫布視圖", "resetView": "重設畫布視圖",
"run": "執行", "run": "執行",
"runWorkflow": "執行工作流程Shift 於前方排隊", "runWorkflow": "執行工作流程Shift 以排到最前面",
"runWorkflowFront": "執行工作流程(前方排隊", "runWorkflowFront": "執行工作流程(排到最前面",
"settings": "設定", "settings": "設定",
"showMenu": "顯示選單", "showMenu": "顯示選單",
"theme": "主題", "theme": "主題",
@@ -823,6 +832,7 @@
"Open Outputs Folder": "開啟輸出資料夾", "Open Outputs Folder": "開啟輸出資料夾",
"Open Sign In Dialog": "開啟登入對話框", "Open Sign In Dialog": "開啟登入對話框",
"Open extra_model_paths_yaml": "開啟 extra_model_paths.yaml", "Open extra_model_paths_yaml": "開啟 extra_model_paths.yaml",
"Output Explorer": "輸出總管",
"Pin/Unpin Selected Items": "釘選/取消釘選選取項目", "Pin/Unpin Selected Items": "釘選/取消釘選選取項目",
"Pin/Unpin Selected Nodes": "釘選/取消釘選選取節點", "Pin/Unpin Selected Nodes": "釘選/取消釘選選取節點",
"Previous Opened Workflow": "上一個已開啟的工作流程", "Previous Opened Workflow": "上一個已開啟的工作流程",
@@ -843,12 +853,12 @@
"Show Model Selector (Dev)": "顯示模型選擇器(開發用)", "Show Model Selector (Dev)": "顯示模型選擇器(開發用)",
"Show Settings Dialog": "顯示設定對話框", "Show Settings Dialog": "顯示設定對話框",
"Sign Out": "登出", "Sign Out": "登出",
"Toggle Essential Bottom Panel": "切換基本下方面板", "Toggle Essential Bottom Panel": "切換基本底部面板",
"Toggle Logs Bottom Panel": "切換日誌下方面板", "Toggle Logs Bottom Panel": "切換日誌下方面板",
"Toggle Search Box": "切換搜尋框", "Toggle Search Box": "切換搜尋框",
"Toggle Terminal Bottom Panel": "切換終端機底部面板", "Toggle Terminal Bottom Panel": "切換終端機底部面板",
"Toggle Theme (Dark/Light)": "切換主題(深色/淺色)", "Toggle Theme (Dark/Light)": "切換主題(深色/淺色)",
"Toggle View Controls Bottom Panel": "切換檢視控制下方面板", "Toggle View Controls Bottom Panel": "切換檢視控制底部面板",
"Toggle the Custom Nodes Manager": "切換自訂節點管理器", "Toggle the Custom Nodes Manager": "切換自訂節點管理器",
"Toggle the Custom Nodes Manager Progress Bar": "切換自訂節點管理器進度條", "Toggle the Custom Nodes Manager Progress Bar": "切換自訂節點管理器進度條",
"Undo": "復原", "Undo": "復原",
@@ -889,7 +899,7 @@
"advanced": "進階", "advanced": "進階",
"animation": "動畫", "animation": "動畫",
"api": "API", "api": "API",
"api node": "API 節點", "api node": "api 節點",
"attention_experiments": "注意力實驗", "attention_experiments": "注意力實驗",
"audio": "音訊", "audio": "音訊",
"batch": "批次", "batch": "批次",
@@ -926,12 +936,12 @@
"photomaker": "photomaker", "photomaker": "photomaker",
"postprocessing": "後處理", "postprocessing": "後處理",
"preprocessors": "前處理器", "preprocessors": "前處理器",
"primitive": "基元件", "primitive": "基元件",
"samplers": "取樣器", "samplers": "取樣器",
"sampling": "取樣", "sampling": "取樣",
"schedulers": "排程器", "schedulers": "排程器",
"scheduling": "排程", "scheduling": "排程",
"sd": "SD", "sd": "sd",
"sd3": "sd3", "sd3": "sd3",
"sigmas": "西格瑪值", "sigmas": "西格瑪值",
"stable_cascade": "stable_cascade", "stable_cascade": "stable_cascade",
@@ -980,7 +990,7 @@
"selectionToolbox": { "selectionToolbox": {
"executeButton": { "executeButton": {
"disabledTooltip": "未選取任何輸出節點", "disabledTooltip": "未選取任何輸出節點",
"tooltip": "執行至選取的輸出節點(以色邊框標示)" "tooltip": "執行至選取的輸出節點(以色邊框標示)"
} }
}, },
"serverConfig": { "serverConfig": {
@@ -1143,7 +1153,7 @@
"Comfy": "Comfy", "Comfy": "Comfy",
"Comfy-Desktop": "Comfy-Desktop", "Comfy-Desktop": "Comfy-Desktop",
"ContextMenu": "右鍵選單", "ContextMenu": "右鍵選單",
"Credits": "點數", "Credits": "製作團隊",
"CustomColorPalettes": "自訂色彩調色盤", "CustomColorPalettes": "自訂色彩調色盤",
"DevMode": "開發者模式", "DevMode": "開發者模式",
"EditTokenWeight": "編輯權重", "EditTokenWeight": "編輯權重",
@@ -1185,7 +1195,7 @@
"Workflow": "工作流程" "Workflow": "工作流程"
}, },
"shortcuts": { "shortcuts": {
"essentials": "基本", "essentials": "基本功能",
"keyboardShortcuts": "鍵盤快捷鍵", "keyboardShortcuts": "鍵盤快捷鍵",
"manageShortcuts": "管理快捷鍵", "manageShortcuts": "管理快捷鍵",
"noKeybinding": "無快捷鍵", "noKeybinding": "無快捷鍵",
@@ -1233,6 +1243,7 @@
"sortMode": "排序模式" "sortMode": "排序模式"
}, },
"openWorkflow": "在本機檔案系統中開啟工作流程", "openWorkflow": "在本機檔案系統中開啟工作流程",
"outputExplorer": "輸出總覽",
"queue": "佇列", "queue": "佇列",
"queueTab": { "queueTab": {
"backToAllTasks": "返回所有任務", "backToAllTasks": "返回所有任務",
@@ -1256,7 +1267,7 @@
"deleteFailedTitle": "刪除失敗", "deleteFailedTitle": "刪除失敗",
"deleted": "工作流程已刪除", "deleted": "工作流程已刪除",
"dirtyClose": "下列檔案已被修改。您要在關閉前儲存它們嗎?", "dirtyClose": "下列檔案已被修改。您要在關閉前儲存它們嗎?",
"dirtyCloseHint": "按住 Shift 可直接關閉不提示", "dirtyCloseHint": "按住 Shift 可直接關閉不提示",
"dirtyCloseTitle": "儲存變更?", "dirtyCloseTitle": "儲存變更?",
"workflowTreeType": { "workflowTreeType": {
"bookmarks": "書籤", "bookmarks": "書籤",
@@ -1279,15 +1290,15 @@
"category": { "category": {
"3D": "3D", "3D": "3D",
"All": "所有範本", "All": "所有範本",
"Area Composition": "區域合成", "Area Composition": "區域構圖",
"Audio": "音訊", "Audio": "音訊",
"Basics": "基礎", "Basics": "基礎",
"ComfyUI Examples": "ComfyUI 範例", "ComfyUI Examples": "ComfyUI 範例",
"ControlNet": "ControlNet", "ControlNet": "ControlNet",
"Custom Nodes": "自訂節點", "Custom Nodes": "自訂節點",
"Flux": "Flux", "Flux": "Flux",
"Image": "圖片", "Image": "影像",
"Image API": "圖片 API", "Image API": "影像 API",
"LLM API": "LLM API", "LLM API": "LLM API",
"Upscaling": "放大", "Upscaling": "放大",
"Video": "影片", "Video": "影片",
@@ -1303,96 +1314,96 @@
"stable_zero123_example": "Stable Zero123" "stable_zero123_example": "Stable Zero123"
}, },
"3D API": { "3D API": {
"api_rodin_image_to_model": "Rodin圖片轉模型", "api_rodin_image_to_model": "Rodin影像轉模型",
"api_rodin_multiview_to_model": "Rodin多視角轉模型", "api_rodin_multiview_to_model": "Rodin多視角轉模型",
"api_tripo_image_to_model": "Tripo圖片轉模型", "api_tripo_image_to_model": "Tripo影像轉模型",
"api_tripo_multiview_to_model": "Tripo多視角轉模型", "api_tripo_multiview_to_model": "Tripo多視角轉模型",
"api_tripo_text_to_model": "Tripo文字轉模型" "api_tripo_text_to_model": "Tripo文字轉模型"
}, },
"Area Composition": { "Area Composition": {
"area_composition": "區域合成", "area_composition": "區域構圖",
"area_composition_square_area_for_subject": "主體區域一致合成" "area_composition_square_area_for_subject": "區域構圖主體方格"
}, },
"Audio": { "Audio": {
"audio_ace_step_1_m2m_editing": "ACE Step v1 M2M 編輯", "audio_ace_step_1_m2m_editing": "ACE Step v1 M2M 編輯",
"audio_ace_step_1_t2a_instrumentals": "ACE-Step v1 文字轉純樂器音樂", "audio_ace_step_1_t2a_instrumentals": "ACE-Step v1 文字轉純樂器",
"audio_ace_step_1_t2a_song": "ACE Step v1 文字轉歌曲", "audio_ace_step_1_t2a_song": "ACE Step v1 文字轉歌曲",
"audio_stable_audio_example": "Stable Audio" "audio_stable_audio_example": "Stable Audio"
}, },
"Basics": { "Basics": {
"default": "圖片生成", "default": "影像生成",
"embedding_example": "Embedding", "embedding_example": "Embedding",
"gligen_textbox_example": "Gligen Textbox", "gligen_textbox_example": "Gligen 文字框",
"image2image": "圖片轉圖片", "image2image": "影像轉影像",
"inpaint_example": "Inpaint", "inpaint_example": "修補",
"inpaint_model_outpainting": "外延", "inpaint_model_outpainting": "外延",
"lora": "LoRA", "lora": "LoRA",
"lora_multiple": "多重LoRA" "lora_multiple": "多重 LoRA"
}, },
"ControlNet": { "ControlNet": {
"2_pass_pose_worship": "Pose ControlNet 2 Pass", "2_pass_pose_worship": "姿勢 ControlNet 兩階段",
"controlnet_example": "Scribble ControlNet", "controlnet_example": "塗鴉 ControlNet",
"depth_controlnet": "Depth ControlNet", "depth_controlnet": "深度 ControlNet",
"depth_t2i_adapter": "Depth T2I Adapter", "depth_t2i_adapter": "深度 T2I Adapter",
"mixing_controlnets": "Mixing ControlNets" "mixing_controlnets": "混合 ControlNets"
}, },
"Flux": { "Flux": {
"flux_canny_model_example": "Flux Canny Model", "flux_canny_model_example": "Flux Canny 模型",
"flux_depth_lora_example": "Flux Depth LoRA", "flux_depth_lora_example": "Flux 深度 LoRA",
"flux_dev_checkpoint_example": "Flux Dev fp8", "flux_dev_checkpoint_example": "Flux Dev fp8",
"flux_dev_full_text_to_image": "Flux Dev 完整文字轉", "flux_dev_full_text_to_image": "Flux Dev 完整文字轉影像",
"flux_fill_inpaint_example": "Flux Inpaint", "flux_fill_inpaint_example": "Flux 修補",
"flux_fill_outpaint_example": "Flux Outpaint", "flux_fill_outpaint_example": "Flux 外延",
"flux_kontext_dev_basic": "Flux Kontext Dev基礎", "flux_kontext_dev_basic": "Flux Kontext Dev基礎",
"flux_kontext_dev_grouped": "Flux Kontext Dev合版", "flux_kontext_dev_grouped": "Flux Kontext Dev組)",
"flux_redux_model_example": "Flux Redux Model", "flux_redux_model_example": "Flux Redux 模型",
"flux_schnell": "Flux Schnell fp8", "flux_schnell": "Flux Schnell fp8",
"flux_schnell_full_text_to_image": "Flux Schnell 完整文字轉" "flux_schnell_full_text_to_image": "Flux Schnell 完整文字轉影像"
}, },
"Image": { "Image": {
"hidream_e1_full": "HiDream E1 完整版", "hidream_e1_full": "HiDream E1 Full",
"hidream_i1_dev": "HiDream I1 Dev", "hidream_i1_dev": "HiDream I1 Dev",
"hidream_i1_fast": "HiDream I1 Fast", "hidream_i1_fast": "HiDream I1 Fast",
"hidream_i1_full": "HiDream I1 Full", "hidream_i1_full": "HiDream I1 Full",
"image_chroma_text_to_image": "Chroma 文字轉", "image_chroma_text_to_image": "Chroma 文字轉影像",
"image_cosmos_predict2_2B_t2i": "Cosmos Predict2 2B 文字轉圖", "image_cosmos_predict2_2B_t2i": "Cosmos Predict2 2B T2I",
"image_lotus_depth_v1_1": "Lotus Depth", "image_lotus_depth_v1_1": "Lotus Depth",
"image_omnigen2_image_edit": "OmniGen2 圖片編輯", "image_omnigen2_image_edit": "OmniGen2 影像編輯",
"image_omnigen2_t2i": "OmniGen2 文字轉", "image_omnigen2_t2i": "OmniGen2 文字轉影像",
"sd3_5_large_blur": "SD3.5 Large Blur", "sd3_5_large_blur": "SD3.5 大型模糊",
"sd3_5_large_canny_controlnet_example": "SD3.5 Large Canny ControlNet", "sd3_5_large_canny_controlnet_example": "SD3.5 大型 Canny ControlNet",
"sd3_5_large_depth": "SD3.5 Large Depth", "sd3_5_large_depth": "SD3.5 大型深度",
"sd3_5_simple_example": "SD3.5 Simple", "sd3_5_simple_example": "SD3.5 簡易",
"sdxl_refiner_prompt_example": "SDXL Refiner Prompt", "sdxl_refiner_prompt_example": "SDXL 精煉提示",
"sdxl_revision_text_prompts": "SDXL Revision Text Prompts", "sdxl_revision_text_prompts": "SDXL Revision 文字提示",
"sdxl_revision_zero_positive": "SDXL Revision Zero Positive", "sdxl_revision_zero_positive": "SDXL Revision Zero Positive",
"sdxl_simple_example": "SDXL Simple", "sdxl_simple_example": "SDXL 簡易",
"sdxlturbo_example": "SDXL Turbo" "sdxlturbo_example": "SDXL Turbo"
}, },
"Image API": { "Image API": {
"api_bfl_flux_1_kontext_max_image": "BFL Flux.1 Kontext Max", "api_bfl_flux_1_kontext_max_image": "BFL Flux.1 Kontext Max",
"api_bfl_flux_1_kontext_multiple_images_input": "BFL Flux.1 Kontext 多輸入", "api_bfl_flux_1_kontext_multiple_images_input": "BFL Flux.1 Kontext 多影像輸入",
"api_bfl_flux_1_kontext_pro_image": "BFL Flux.1 Kontext Pro", "api_bfl_flux_1_kontext_pro_image": "BFL Flux.1 Kontext Pro",
"api_bfl_flux_pro_t2i": "BFL Flux 1.1[pro] Ultra Text to Image", "api_bfl_flux_pro_t2i": "BFL Flux[Pro]:文字轉影像",
"api_ideogram_v3_t2i": "Ideogram V3 Text to Image", "api_ideogram_v3_t2i": "Ideogram V3:文字轉影像",
"api_luma_photon_i2i": "Luma Photon Image to Image", "api_luma_photon_i2i": "Luma Photon:影像轉影像",
"api_luma_photon_style_ref": "Luma Photon Style Reference", "api_luma_photon_style_ref": "Luma Photon:風格參考",
"api_openai_dall_e_2_inpaint": "OpenAIDall-E 2 修補", "api_openai_dall_e_2_inpaint": "OpenAIDall-E 2 修補",
"api_openai_dall_e_2_t2i": "OpenAIDall-E 2 文字轉", "api_openai_dall_e_2_t2i": "OpenAIDall-E 2 文字轉影像",
"api_openai_dall_e_3_t2i": "OpenAIDall-E 3 文字轉", "api_openai_dall_e_3_t2i": "OpenAIDall-E 3 文字轉影像",
"api_openai_image_1_i2i": "OpenAI Image-1 Image to Image", "api_openai_image_1_i2i": "OpenAIGPT-Image-1 影像轉影像",
"api_openai_image_1_inpaint": "OpenAI Image-1 Inpaint", "api_openai_image_1_inpaint": "OpenAIGPT-Image-1 修補",
"api_openai_image_1_multi_inputs": "OpenAI Image-1 Multi Inputs", "api_openai_image_1_multi_inputs": "OpenAIGPT-Image-1 多重輸入",
"api_openai_image_1_t2i": "OpenAI Image-1 Text to Image", "api_openai_image_1_t2i": "OpenAIGPT-Image-1 文字轉影像",
"api_recraft_image_gen_with_color_control": "Recraft Color Control Image Generation", "api_recraft_image_gen_with_color_control": "Recraft:色彩控制影像生成",
"api_recraft_image_gen_with_style_control": "Recraft Style Control Image Generation", "api_recraft_image_gen_with_style_control": "Recraft:風格控制影像生成",
"api_recraft_vector_gen": "Recraft Vector Generation", "api_recraft_vector_gen": "Recraft:向量生成",
"api_runway_reference_to_image": "Runway參考圖轉圖", "api_runway_reference_to_image": "Runway參考轉影像",
"api_runway_text_to_image": "Runway文字轉", "api_runway_text_to_image": "Runway文字轉影像",
"api_stability_ai_i2i": "Stability AI圖轉圖", "api_stability_ai_i2i": "Stability AI影像轉影像",
"api_stability_ai_sd3_5_i2i": "Stability AISD3.5 圖轉圖", "api_stability_ai_sd3_5_i2i": "Stability AISD3.5 影像轉影像",
"api_stability_ai_sd3_5_t2i": "Stability AISD3.5 文字轉", "api_stability_ai_sd3_5_t2i": "Stability AISD3.5 文字轉影像",
"api_stability_ai_stable_image_ultra_t2i": "Stability AIStable Image Ultra 文字轉" "api_stability_ai_stable_image_ultra_t2i": "Stability AIStable Image Ultra 文字轉影像"
}, },
"LLM API": { "LLM API": {
"api_google_gemini": "Google Gemini聊天", "api_google_gemini": "Google Gemini聊天",
@@ -1400,23 +1411,23 @@
}, },
"Upscaling": { "Upscaling": {
"esrgan_example": "ESRGAN", "esrgan_example": "ESRGAN",
"hiresfix_esrgan_workflow": "HiresFix ESRGAN Workflow", "hiresfix_esrgan_workflow": "HiresFix ESRGAN 工作流",
"hiresfix_latent_workflow": "Upscale", "hiresfix_latent_workflow": "放大",
"latent_upscale_different_prompt_model": "Latent Upscale Different Prompt Model" "latent_upscale_different_prompt_model": "Latent 放大不同提示模型"
}, },
"Video": { "Video": {
"hunyuan_video_text_to_video": "Hunyuan Video Text to Video", "hunyuan_video_text_to_video": "Hunyuan 影片文字轉影片",
"image_to_video": "SVD Image to Video", "image_to_video": "SVD 影像轉影片",
"image_to_video_wan": "Wan 2.1 Image to Video", "image_to_video_wan": "Wan 2.1 影像轉影片",
"ltxv_image_to_video": "LTXV Image to Video", "ltxv_image_to_video": "LTXV 影像轉影片",
"ltxv_text_to_video": "LTXV Text to Video", "ltxv_text_to_video": "LTXV 文字轉影片",
"mochi_text_to_video_example": "Mochi Text to Video", "mochi_text_to_video_example": "Mochi 文字轉影片",
"text_to_video_wan": "Wan 2.1 Text to Video", "text_to_video_wan": "Wan 2.1 文字轉影片",
"txt_to_image_to_video": "SVD Text to Image to Video", "txt_to_image_to_video": "SVD 文字轉影像再轉影片",
"video_cosmos_predict2_2B_video2world_480p_16fps": "Cosmos Predict2 2B Video2World 480p 16fps", "video_cosmos_predict2_2B_video2world_480p_16fps": "Cosmos Predict2 2B Video2World 480p 16fps",
"video_wan2_1_fun_camera_v1_1_14B": "Wan 2.1 Fun Camera 14B", "video_wan2_1_fun_camera_v1_1_14B": "Wan 2.1 Fun Camera 14B",
"video_wan2_1_fun_camera_v1_1_1_3B": "Wan 2.1 Fun Camera 1.3B", "video_wan2_1_fun_camera_v1_1_1_3B": "Wan 2.1 Fun Camera 1.3B",
"video_wan_vace_14B_ref2v": "Wan VACE 參考轉影片", "video_wan_vace_14B_ref2v": "Wan VACE 參考轉影片",
"video_wan_vace_14B_t2v": "Wan VACE 文字轉影片", "video_wan_vace_14B_t2v": "Wan VACE 文字轉影片",
"video_wan_vace_14B_v2v": "Wan VACE 控制影片", "video_wan_vace_14B_v2v": "Wan VACE 控制影片",
"video_wan_vace_flf2v": "Wan VACE 首尾影格", "video_wan_vace_flf2v": "Wan VACE 首尾影格",
@@ -1424,179 +1435,179 @@
"video_wan_vace_outpainting": "Wan VACE 外延", "video_wan_vace_outpainting": "Wan VACE 外延",
"wan2_1_flf2v_720_f16": "Wan 2.1 FLF2V 720p F16", "wan2_1_flf2v_720_f16": "Wan 2.1 FLF2V 720p F16",
"wan2_1_fun_control": "Wan 2.1 ControlNet", "wan2_1_fun_control": "Wan 2.1 ControlNet",
"wan2_1_fun_inp": "Wan 2.1 Inpainting" "wan2_1_fun_inp": "Wan 2.1 修補"
}, },
"Video API": { "Video API": {
"api_hailuo_minimax_i2v": "MiniMax Image to Video", "api_hailuo_minimax_i2v": "MiniMax:影像轉影片",
"api_hailuo_minimax_t2v": "MiniMax文字轉影片", "api_hailuo_minimax_t2v": "MiniMax文字轉影片",
"api_kling_effects": "Kling影片特效", "api_kling_effects": "Kling影片特效",
"api_kling_flf": "Kling首尾影格", "api_kling_flf": "KlingFLF2V",
"api_kling_i2v": "Kling Image to Video", "api_kling_i2v": "Kling:影像轉影片",
"api_luma_i2v": "Luma Image to Video", "api_luma_i2v": "Luma:影像轉影片",
"api_luma_t2v": "Luma文字轉影片", "api_luma_t2v": "Luma文字轉影片",
"api_moonvalley_image_to_video": "Moonvalley圖片轉影片", "api_moonvalley_image_to_video": "Moonvalley影像轉影片",
"api_moonvalley_text_to_video": "Moonvalley文字轉影片", "api_moonvalley_text_to_video": "Moonvalley文字轉影片",
"api_pika_i2v": "Pika圖片轉影片", "api_pika_i2v": "Pika影像轉影片",
"api_pika_scene": "Pika Scenes: Images to Video", "api_pika_scene": "Pika Scenes:多影像轉影片",
"api_pixverse_i2v": "PixVerse圖片轉影片", "api_pixverse_i2v": "PixVerse影像轉影片",
"api_pixverse_t2v": "PixVerse Text to Video", "api_pixverse_t2v": "PixVerse:文字轉影片",
"api_pixverse_template_i2v": "PixVerse Template Effects: Image to Video", "api_pixverse_template_i2v": "PixVerse 範本:影像轉影片",
"api_runway_first_last_frame": "Runway首尾影格轉影片", "api_runway_first_last_frame": "Runway首尾影格轉影片",
"api_runway_gen3a_turbo_image_to_video": "RunwayGen3a Turbo 圖片轉影片", "api_runway_gen3a_turbo_image_to_video": "RunwayGen3a Turbo 影像轉影片",
"api_runway_gen4_turo_image_to_video": "RunwayGen4 Turbo 圖片轉影片", "api_runway_gen4_turo_image_to_video": "RunwayGen4 Turbo 影像轉影片",
"api_veo2_i2v": "Veo2 Image to Video" "api_veo2_i2v": "Veo2:影像轉影片"
} }
}, },
"templateDescription": { "templateDescription": {
"3D": { "3D": {
"3d_hunyuan3d_image_to_model": "使用 Hunyuan3D 2.0,單張圖片生成 3D 模型。", "3d_hunyuan3d_image_to_model": "使用 Hunyuan3D 2.0 由單張影像生成 3D 模型。",
"3d_hunyuan3d_multiview_to_model": "使用 Hunyuan3D 2.0 MV多視角生成 3D 模型。", "3d_hunyuan3d_multiview_to_model": "使用 Hunyuan3D 2.0 MV多視角生成 3D 模型。",
"3d_hunyuan3d_multiview_to_model_turbo": "使用 Hunyuan3D 2.0 MV Turbo多視角快速生成 3D 模型。", "3d_hunyuan3d_multiview_to_model_turbo": "使用 Hunyuan3D 2.0 MV Turbo多視角生成 3D 模型。",
"stable_zero123_example": "由單張圖片產生 3D 視角。" "stable_zero123_example": "使用 Stable Zero123 由單張影像生成 3D 視角。"
}, },
"3D API": { "3D API": {
"api_rodin_image_to_model": "使用 Rodin AI單張照片生成細緻 3D 模型。", "api_rodin_image_to_model": "使用 Rodin AI單張照片生成細緻 3D 模型。",
"api_rodin_multiview_to_model": "用 Rodin 多角度重建雕塑完整 3D 模型。", "api_rodin_multiview_to_model": "使用 Rodin 多角度重建雕塑完整 3D 模型。",
"api_tripo_image_to_model": "使用 Tripo 引擎,將 2D 圖片生成專業 3D 素材。", "api_tripo_image_to_model": "使用 Tripo 引擎 2D 影像生成專業 3D 素材。",
"api_tripo_multiview_to_model": "用 Tripo 進階掃描,從多角度建立 3D 模型。", "api_tripo_multiview_to_model": "使用 Tripo 進階掃描器由多角度生成 3D 模型。",
"api_tripo_text_to_model": "用 Tripo 文字驅動建模,創作 3D 物件。" "api_tripo_text_to_model": "使用 Tripo 文字驅動建模,創作 3D 物件。"
}, },
"Area Composition": { "Area Composition": {
"area_composition": "以區域控制圖片構圖。", "area_composition": "以區域控制構圖生成影像。",
"area_composition_square_area_for_subject": "建立主體一致擺放。" "area_composition_square_area_for_subject": "以區域構圖確保主體位置一致生成影像。"
}, },
"Audio": { "Audio": {
"audio_ace_step_1_m2m_editing": "使用 ACE-Step v1 M2M編輯現有歌曲,變更風格與歌詞。", "audio_ace_step_1_m2m_editing": "使用 ACE-Step v1 M2M 編輯現有歌曲,變更風格與歌詞。",
"audio_ace_step_1_t2a_instrumentals": "使用 ACE-Step v1,根據文字提示生純樂器音樂。", "audio_ace_step_1_t2a_instrumentals": "使用 ACE-Step v1文字提示生純樂器音樂。",
"audio_ace_step_1_t2a_song": "使用 ACE-Step v1,根據文字提示產生含人聲歌曲,支援多語言與風格自訂。", "audio_ace_step_1_t2a_song": "使用 ACE-Step v1文字提示生成歌曲,支援多語言與風格自訂。",
"audio_stable_audio_example": "使用 Stable Audio,根據文字提示生音訊。" "audio_stable_audio_example": "使用 Stable Audio文字提示生音訊。"
}, },
"Basics": { "Basics": {
"default": "根據文字描述產生圖片。", "default": "從文字提示生成影像。",
"embedding_example": "使用文反轉技術以保持風格一致。", "embedding_example": "用文反轉生成一致風格的影像。",
"gligen_textbox_example": "指定物件的位置與大小。", "gligen_textbox_example": "使用文字框精確放置物件生成影像。",
"image2image": "使用文字提示轉換現有圖片。", "image2image": "使用文字提示轉換現有影像。",
"inpaint_example": "無縫編輯圖片的特定區域。", "inpaint_example": "無縫編輯影像的特定區域。",
"inpaint_model_outpainting": "將影像延伸至原始邊界之外。", "inpaint_model_outpainting": "將影像延伸至原始邊界之外。",
"lora": "用 LoRA 模型以獲得特殊風格或主題。", "lora": "使用 LoRA 模型生成特定風格或主題的影像。",
"lora_multiple": "結合多個 LoRA 模型創造獨特效果。" "lora_multiple": "結合多個 LoRA 模型生成影像。"
}, },
"ControlNet": { "ControlNet": {
"2_pass_pose_worship": "由姿勢參考產生圖片。", "2_pass_pose_worship": "使用 ControlNet 以姿勢參考引導生成影像。",
"controlnet_example": "以參考圖控制圖片生成。", "controlnet_example": "使用 ControlNet 以塗鴉參考影像引導生成影像。",
"depth_controlnet": "產生深度感知圖片。", "depth_controlnet": "使用 ControlNet 以深度資訊引導生成影像。",
"depth_t2i_adapter": "使用 T2I adapter 快速產生深度感知圖片。", "depth_t2i_adapter": "使用 T2I adapter 以深度資訊引導生成影像。",
"mixing_controlnets": "結合多個 ControlNet 模型。" "mixing_controlnets": "結合多個 ControlNet 模型生成影像。"
}, },
"Flux": { "Flux": {
"flux_canny_model_example": "從邊緣偵測產生圖片。", "flux_canny_model_example": "使用 Flux Canny 邊緣偵測引導生成影像。",
"flux_depth_lora_example": "結合深度感知 LoRA 產生圖片。", "flux_depth_lora_example": "使用 Flux LoRA 深度資訊引導生成影像。",
"flux_dev_checkpoint_example": "使用 Flux 開發模型產生圖片。", "flux_dev_checkpoint_example": "使用 Flux Dev fp8 量化版生成影像。適合顯存有限的裝置,只需一個模型檔案,但畫質略低於完整版。",
"flux_dev_full_text_to_image": "使用 Flux Dev 完整版本產生高品質影像。需較大 VRAM 與多個模型檔案,但能提供最佳提示遵循能力與影像品質。", "flux_dev_full_text_to_image": "使用 Flux Dev 完整版生高品質影像。需較大顯存及多個模型檔案,但提示遵循度與畫質最佳。",
"flux_fill_inpaint_example": "填補圖片缺失區域。", "flux_fill_inpaint_example": "使用 Flux 修補影像缺失區域。",
"flux_fill_outpaint_example": "使用 Flux 外延技術延伸圖片。", "flux_fill_outpaint_example": "使用 Flux 將影像延伸至邊界之外。",
"flux_kontext_dev_basic": "使用 Flux Kontext 編輯影像,完整節點可見,適合學習工作流程。", "flux_kontext_dev_basic": "使用 Flux Kontext 編輯影像,完整節點可見,適合學習工作流程。",
"flux_kontext_dev_grouped": "Flux Kontext 精簡版,節點分組,工作區更整潔。", "flux_kontext_dev_grouped": "Flux Kontext 精簡版,節點分組,工作區更整潔。",
"flux_redux_model_example": "從參考圖片轉移風格,指引 Flux 生成圖片。", "flux_redux_model_example": "使用 Flux Redux 參考影像風格轉換生成影像。",
"flux_schnell": "使用 Flux Schnell 快速產生圖片。", "flux_schnell": "使用 Flux Schnell fp8 量化版快速生成影像。適合低階硬體,只需 4 步即可生成影像。",
"flux_schnell_full_text_to_image": "使用 Flux Schnell 完整版快速生影像。採用 Apache2.0 授權,需 4 步即可生成並維持良好畫質。" "flux_schnell_full_text_to_image": "使用 Flux Schnell 完整版快速生影像。採用 Apache2.0 授權,需 4 步即可維持良好畫質。"
}, },
"Image": { "Image": {
"hidream_e1_full": "使用 HiDream E1 編輯圖片。", "hidream_e1_full": "使用 HiDream E1 - 專業自然語言影像編輯模型進行影像編輯。",
"hidream_i1_dev": "使用 HiDream I1 Dev 產生圖片。", "hidream_i1_dev": "使用 HiDream I1 Dev - 平衡版28 步推理,適合中階硬體生成影像。",
"hidream_i1_fast": "使用 HiDream I1 快速產生圖片。", "hidream_i1_fast": "使用 HiDream I1 Fast - 輕量版16 步推理,適合低階硬體快速預覽。",
"hidream_i1_full": "使用 HiDream I1 產生圖片。", "hidream_i1_full": "使用 HiDream I1 Full - 完整版50 步推理,產出最高品質影像。",
"image_chroma_text_to_image": "Chroma 由 flux 修改而來,架構上有部分變動。", "image_chroma_text_to_image": "Chroma 由 flux 修改,架構有所變動。",
"image_cosmos_predict2_2B_t2i": "使用 Cosmos-Predict2 2B T2I 產生物理精確、高保真細節豐富的影像。", "image_cosmos_predict2_2B_t2i": "使用 Cosmos-Predict2 2B T2I,生成物理精確、高保真細節豐富的影像。",
"image_lotus_depth_v1_1": "在 ComfyUI 執行 Lotus Depth進行零樣本高效率的單眼深度估測,保留高細節。", "image_lotus_depth_v1_1": "在 ComfyUI 執行 Lotus Depth零樣本高效單目深度估測,細節保留佳。",
"image_omnigen2_image_edit": "利用 OmniGen2 進階影像編輯能力與文字渲染支援,透過自然語言指令編輯影像。", "image_omnigen2_image_edit": "利用 OmniGen2 進階影像編輯與文字渲染,透過自然語言指令編輯影像。",
"image_omnigen2_t2i": "使用 OmniGen2 統一 7B 多模態模型與雙路架構,根據文字提示生高品質影像。", "image_omnigen2_t2i": "使用 OmniGen2 統一 7B 多模態雙路架構,文字提示生高品質影像。",
"sd3_5_large_blur": "使用 SD 3.5 模糊參考圖產生圖片。", "sd3_5_large_blur": "使用 SD 3.5 模糊參考影像引導生成影像。",
"sd3_5_large_canny_controlnet_example": "使用邊緣偵測搭配 SD 3.5 指引圖片生成。", "sd3_5_large_canny_controlnet_example": "使用 SD 3.5 Canny ControlNet 邊緣偵測引導生成影像。",
"sd3_5_large_depth": "使用 SD 3.5 產生深度感知圖片。", "sd3_5_large_depth": "使用 SD 3.5 深度資訊引導生成影像。",
"sd3_5_simple_example": "使用 SD 3.5 產生圖片。", "sd3_5_simple_example": "使用 SD 3.5 生成影像。",
"sdxl_refiner_prompt_example": "使用精煉器增強 SDXL 輸出。", "sdxl_refiner_prompt_example": "使用精煉模型提升 SDXL 影像品質。",
"sdxl_revision_text_prompts": "將參考圖概念轉移至 SDXL 生成流程。", "sdxl_revision_text_prompts": "使用 SDXL Revision 參考影像概念生成影像。",
"sdxl_revision_zero_positive": "結合文字提示與參考圖指引 SDXL 生成圖片。", "sdxl_revision_zero_positive": "使用 SDXL Revision 結合文字提示與參考影像生成影像。",
"sdxl_simple_example": "使用 SDXL 生高品質圖片。", "sdxl_simple_example": "使用 SDXL 生高品質影像。",
"sdxlturbo_example": "使用 SDXL Turbo 一步產生圖片。" "sdxlturbo_example": "使用 SDXL Turbo 一步生成影像。"
}, },
"Image API": { "Image API": {
"api_bfl_flux_1_kontext_max_image": "使用 Flux.1 Kontext max 編輯圖片。", "api_bfl_flux_1_kontext_max_image": "使用 Flux.1 Kontext max 編輯影像。",
"api_bfl_flux_1_kontext_multiple_images_input": "輸入多張圖片並用 Flux.1 Kontext 編輯。", "api_bfl_flux_1_kontext_multiple_images_input": "輸入多張影像並用 Flux.1 Kontext 編輯。",
"api_bfl_flux_1_kontext_pro_image": "使用 Flux.1 Kontext pro 編輯圖片。", "api_bfl_flux_1_kontext_pro_image": "使用 Flux.1 Kontext pro 編輯影像。",
"api_bfl_flux_pro_t2i": "使用 FLUX.1 [pro] 產生優異提示遵循視覺品質、細節與多樣化圖片。", "api_bfl_flux_pro_t2i": "使用 FLUX.1 Pro 生成提示遵循度與視覺品質極佳的影像。",
"api_ideogram_v3_t2i": "產生高品質圖片與提示對齊、寫實與文字渲染。可製作專業標誌、宣傳海報、登陸頁概念、產品攝影等。輕鬆打造複雜背景、精確光影與真實環境細節的空間構圖。", "api_ideogram_v3_t2i": "使用 Ideogram V3 生成專業品質、提示對齊、寫實與文字渲染影像。",
"api_luma_photon_i2i": "結合圖片與提示指引圖片生成。", "api_luma_photon_i2i": "結合影像與提示詞引導影像生成。",
"api_luma_photon_style_ref": "精確控制套用與混合風格參考。Luma Photon 捕捉每張參考圖的精髓,讓你結合不同視覺元素並維持專業品質。", "api_luma_photon_style_ref": "結合風格參考與精確控制生成影像。",
"api_openai_dall_e_2_inpaint": "使用 OpenAI Dall-E 2 API 進行圖片修補編輯。", "api_openai_dall_e_2_inpaint": "使用 OpenAI Dall-E 2 API 進行影像修補編輯。",
"api_openai_dall_e_2_t2i": "使用 OpenAI Dall-E 2 API,根據文字提示產生圖片。", "api_openai_dall_e_2_t2i": "使用 OpenAI Dall-E 2 API文字提示生成影像。",
"api_openai_dall_e_3_t2i": "使用 OpenAI Dall-E 3 API,根據文字提示產生圖片。", "api_openai_dall_e_3_t2i": "使用 OpenAI Dall-E 3 API文字提示生成影像。",
"api_openai_image_1_i2i": "使用 GPT Image 1 API 由圖片產生圖片。", "api_openai_image_1_i2i": "使用 OpenAI GPT Image 1 API 從輸入影像生成新影像。",
"api_openai_image_1_inpaint": "使用 GPT Image 1 API 修補圖片。", "api_openai_image_1_inpaint": "使用 OpenAI GPT Image 1 API 進行影像修補編輯。",
"api_openai_image_1_multi_inputs": "使用 GPT Image 1 API 多重輸入產生圖片。", "api_openai_image_1_multi_inputs": "使用 OpenAI GPT Image 1 API 多重輸入生成影像。",
"api_openai_image_1_t2i": "使用 GPT Image 1 API 根據文字描述產生圖片。", "api_openai_image_1_t2i": "使用 OpenAI GPT Image 1 API 從文字提示生成影像。",
"api_recraft_image_gen_with_color_control": "建立自訂調色盤以多圖共用,或為每張照片手動挑選顏色。配合品牌色彩,打造專屬視覺風格。", "api_recraft_image_gen_with_color_control": "自訂色板與品牌視覺生成影像,使用 Recraft。",
"api_recraft_image_gen_with_style_control": "以視覺範例控制風格、對齊位置微調物件。儲存並分享風格,確保品牌一致性。", "api_recraft_image_gen_with_style_control": "以視覺範例控制風格、對齊位置微調物件。儲存並分享風格,確保品牌一致性。",
"api_recraft_vector_gen": "從文字提示生成向量圖,Recraft AI 向量生成器可產出最佳品質的標誌、海報、圖示、廣告、橫幅與模型。以高品質 SVG 完善設計,數秒內為你的應用或網站創建品牌向量插圖。", "api_recraft_vector_gen": "使用 Recraft AI 向量生成器,從文字提示生成高品質向量影像。",
"api_runway_reference_to_image": "用 Runway AI根據參考風格與構圖產生新圖片。", "api_runway_reference_to_image": "使用 Runway AI 根據參考風格與構圖生成新影像。",
"api_runway_text_to_image": "使用 Runway AI 模型,根據文字提示生高品質圖片。", "api_runway_text_to_image": "使用 Runway AI 模型文字提示生高品質影像。",
"api_stability_ai_i2i": "使用 Stability AI 進行高品質圖片生成,適合專業編輯與風格轉換。", "api_stability_ai_i2i": "使用 Stability AI 進行高品質影像生成,適合專業編輯與風格轉換。",
"api_stability_ai_sd3_5_i2i": "生高品質、極佳提示遵循度的圖片。1 百萬像素解析度,專業用途首選。", "api_stability_ai_sd3_5_i2i": "生高品質、提示遵循度佳的影像。1 百萬像素,專業用途首選。",
"api_stability_ai_sd3_5_t2i": "生高品質、極佳提示遵循度的圖片。1 百萬像素解析度,專業用途首選。", "api_stability_ai_sd3_5_t2i": "生高品質、提示遵循度佳的影像。1 百萬像素,專業用途首選。",
"api_stability_ai_stable_image_ultra_t2i": "生高品質、極佳提示遵循度的圖片。1 百萬像素解析度,專業用途首選。" "api_stability_ai_stable_image_ultra_t2i": "生高品質、提示遵循度佳的影像。1 百萬像素,專業用途首選。"
}, },
"LLM API": { "LLM API": {
"api_google_gemini": "體驗 Google Gemini 多模態 AI 推理能力。", "api_google_gemini": "體驗 Google Gemini 多模態 AI 推理能力。",
"api_openai_chat": "與 OpenAI 進階語言模型互動,展開智慧對話。" "api_openai_chat": "與 OpenAI 進階語言模型互動對話。"
}, },
"Upscaling": { "Upscaling": {
"esrgan_example": "使用放大模型提升圖片品質。", "esrgan_example": "使用 ESRGAN 模型放大影像並提升品質。",
"hiresfix_esrgan_workflow": "在中間步驟使用放大模型。", "hiresfix_esrgan_workflow": "在中間生成步驟中結合 ESRGAN 模型放大影像。",
"hiresfix_latent_workflow": "在 latent 空間提升圖片品質。", "hiresfix_latent_workflow": "在 latent 空間提升影像品質進行放大。",
"latent_upscale_different_prompt_model": "跨多次處理放大並更換提示。" "latent_upscale_different_prompt_model": "跨生成階段變更提示詞同時放大影像。"
}, },
"Video": { "Video": {
"hunyuan_video_text_to_video": "使用 Hunyuan 模型產生影片。", "hunyuan_video_text_to_video": "使用 Hunyuan 模型由文字提示生成影片。",
"image_to_video": "將圖片轉換為動畫影片。", "image_to_video": "由靜態影像生成影片。",
"image_to_video_wan": "快速將圖片轉換為影片。", "image_to_video_wan": "使用 Wan 2.1 由影像生成影片。",
"ltxv_image_to_video": "靜態圖片轉換為影片。", "ltxv_image_to_video": "靜態影像生成影片。",
"ltxv_text_to_video": "根據文字描述產生影片。", "ltxv_text_to_video": "由文字提示生成影片。",
"mochi_text_to_video_example": "使用 Mochi 模型產生影片。", "mochi_text_to_video_example": "使用 Mochi 模型由文字提示生成影片。",
"text_to_video_wan": "快速將文字描述轉換為影片。", "text_to_video_wan": "使用 Wan 2.1 由文字提示生成影片。",
"txt_to_image_to_video": "先由文字產生圖片,再轉換為影片。", "txt_to_image_to_video": "先由文字生成影像,再生成影片。",
"video_cosmos_predict2_2B_video2world_480p_16fps": "使用 Cosmos-Predict2 2B Video2World 生物理精確、高保真且一致的影片模擬。", "video_cosmos_predict2_2B_video2world_480p_16fps": "使用 Cosmos-Predict2 2B Video2World 生物理精確、高保真且一致的影片模擬。",
"video_wan2_1_fun_camera_v1_1_14B": "使用完整 14B 模型,進階鏡頭控制生高品質影片。", "video_wan2_1_fun_camera_v1_1_14B": "使用 14B 完整版進階鏡頭控制生高品質影片。",
"video_wan2_1_fun_camera_v1_1_1_3B": "使用 Wan 2.1 Fun Camera 1.3B 模型,產生具電影感鏡頭運動的動態影片。", "video_wan2_1_fun_camera_v1_1_1_3B": "使用 Wan 2.1 Fun Camera 1.3B 生具電影感鏡頭運動的動態影片。",
"video_wan_vace_14B_ref2v": "根據參考圖片產生風格與內容一致的影片適合風格一致的影片生成。", "video_wan_vace_14B_ref2v": "根據參考影像生成風格一致的影片適合風格一致性需求。",
"video_wan_vace_14B_t2v": "將文字描述轉換為高品質影片。支援 480p 與 720p,採用 VACE-14B 模型。", "video_wan_vace_14B_t2v": "將文字描述轉換為高品質影片。VACE-14B 支援 480p 與 720p。",
"video_wan_vace_14B_v2v": "透過控制輸入影片與參考圖片,使用 Wan VACE 產生影片。", "video_wan_vace_14B_v2v": "使用 Wan VACE 控制輸入影片與參考影像生成影片。",
"video_wan_vace_flf2v": "自訂起始與結束畫面,產生平滑影片過渡支援自定義關鍵影格序列。", "video_wan_vace_flf2v": "自訂起始與結束影格,生成平滑影片過渡支援自關鍵影格序列。",
"video_wan_vace_inpainting": "編輯影片特定區域,同時保留周圍內容適合物件移除或替換。", "video_wan_vace_inpainting": "編輯影片特定區域,同時保留周圍內容適合物件移除或替換。",
"video_wan_vace_outpainting": "使用 Wan VACE 外延功能,擴展影片尺寸產生延伸影片。", "video_wan_vace_outpainting": "使用 Wan VACE 外延生成擴展尺寸的影片。",
"wan2_1_flf2v_720_f16": "透過控制首尾影格生影片。", "wan2_1_flf2v_720_f16": "使用 Wan 2.1 FLF2V 控制首尾影格生影片。",
"wan2_1_fun_control": "以姿勢、深度、邊緣等控制影片生成。", "wan2_1_fun_control": "使用 Wan 2.1 ControlNet 以姿勢、深度、邊緣引導生成影片。",
"wan2_1_fun_inp": "從起始與結束影格產生影片。" "wan2_1_fun_inp": "使用 Wan 2.1 由起始與結束影格生成影片(修補)。"
}, },
"Video API": { "Video API": {
"api_hailuo_minimax_i2v": "結合圖片與文字生精緻影片,支援 CGI 整合與流行 AI 擁抱等特效。多種影片風格與主題任你選擇,滿足創意需求。", "api_hailuo_minimax_i2v": "MiniMax 由影像與文字生精緻影片,整合 CGI 效果。",
"api_hailuo_minimax_t2v": "直接從文字提示產生高品質影片。探索 MiniMax 進階 AI打造多元視覺敘事專業 CGI 效果與風格元素,讓描述栩栩如生。", "api_hailuo_minimax_t2v": "MiniMax 由文字提示直接生成高品質影片,支援專業 CGI 與多樣風格敘事。",
"api_kling_effects": "使用 Kling 將視覺特效套用於圖片,產生動態影片。", "api_kling_effects": "使用 Kling 將視覺特效套用於影像生成動態影片。",
"api_kling_flf": "透過控制首尾畫面產生影片。", "api_kling_flf": "控制首尾影格生成影片。",
"api_kling_i2v": "產生動作、表情、鏡頭移動等提示遵循度的影片。支援複雜連續動作提示,讓你成為導演。", "api_kling_i2v": "使用 Kling 生成動作、表情、鏡頭運動提示遵循度極佳的影片。",
"api_luma_i2v": "將靜態圖片即時轉換為高品質動畫。", "api_luma_i2v": "將靜態影像即時轉換為高品質動畫。",
"api_luma_t2v": "只需簡單提示即可生高品質影片。", "api_luma_t2v": "只需簡單提示即可生高品質影片。",
"api_moonvalley_image_to_video": "透過專為授權資料訓練的模型,使用圖片產生電影級 1080p 影片。", "api_moonvalley_image_to_video": "由影像生成電影級 1080p 影片,模型僅訓練於授權資料。",
"api_moonvalley_text_to_video": "透過專為授權資料訓練的模型,根據文字提示生電影級 1080p 影片。", "api_moonvalley_text_to_video": "文字提示生電影級 1080p 影片,模型僅訓練於授權資料。",
"api_pika_i2v": "使用 Pika AI將單張靜態圖片轉為流暢動畫影片。", "api_pika_i2v": "使用 Pika AI 將單張靜態影像生成平滑動畫影片。",
"api_pika_scene": "將多張圖片作為素材,產生融合所有圖片的影片。", "api_pika_scene": "使用 Pika Scenes 結合多張輸入影像生成影片。",
"api_pixverse_i2v": "使用 PixVerse將靜態圖片轉為具動態與特效的影片。", "api_pixverse_i2v": "使用 PixVerse 將靜態影像生成具動態與特效的影片。",
"api_pixverse_t2v": "根據提示精確解讀並產生動態出色的影片。", "api_pixverse_t2v": "使用 PixVerse 生成提示解讀精準、動態效果出色的影片。",
"api_pixverse_template_i2v": "將靜態圖片轉換為具動態與特效的影片。", "api_pixverse_template_i2v": "使用 PixVerse 範本將靜態影像生成具動態與特效的影片。",
"api_runway_first_last_frame": "用 Runway 精準控制,於兩個關鍵影格間產生平滑影片過渡。", "api_runway_first_last_frame": "使用 Runway 精準控制兩個關鍵影格間平滑影片過渡。",
"api_runway_gen3a_turbo_image_to_video": "使用 Runway Gen3a Turbo將靜態圖片轉為電影影片。", "api_runway_gen3a_turbo_image_to_video": "使用 Runway Gen3a Turbo 將靜態影像生成電影影片。",
"api_runway_gen4_turo_image_to_video": "使用 Runway Gen4 Turbo,將圖片轉為動態影片。", "api_runway_gen4_turo_image_to_video": "使用 Runway Gen4 Turbo 由影像生成動態影片。",
"api_veo2_i2v": "使用 Google Veo2 API 由圖片產生影片。" "api_veo2_i2v": "使用 Google Veo2 API 由影像生成影片。"
} }
}, },
"title": "從範本開始" "title": "從範本開始"
@@ -1605,24 +1616,24 @@
"cannotCreateSubgraph": "無法建立子圖", "cannotCreateSubgraph": "無法建立子圖",
"couldNotDetermineFileType": "無法判斷檔案類型", "couldNotDetermineFileType": "無法判斷檔案類型",
"dropFileError": "無法處理拖放項目:{error}", "dropFileError": "無法處理拖放項目:{error}",
"emptyCanvas": "畫布為空", "emptyCanvas": "空白畫布",
"errorCopyImage": "複製圖片時發生錯誤:{error}", "errorCopyImage": "複製圖片時發生錯誤:{error}",
"errorLoadingModel": "載入模型時發生錯誤", "errorLoadingModel": "載入模型時發生錯誤",
"errorSaveSetting": "儲存設定 {id} 時發生錯誤:{err}", "errorSaveSetting": "儲存設定 {id} 時發生錯誤:{err}",
"failedToAccessBillingPortal": "無法存取帳單入口", "failedToAccessBillingPortal": "存取帳單入口失敗:{error}",
"failedToApplyTexture": "套用材質失敗", "failedToApplyTexture": "套用材質失敗",
"failedToConvertToSubgraph": "轉換項目為子圖失敗", "failedToConvertToSubgraph": "轉換項目為子圖失敗",
"failedToCreateCustomer": "建立客戶失敗:{error}", "failedToCreateCustomer": "建立客戶失敗:{error}",
"failedToDownloadFile": "檔案下載失敗", "failedToDownloadFile": "檔案下載失敗",
"failedToExportModel": "無法將模型匯出為 {format}", "failedToExportModel": "模型匯出為 {format} 失敗",
"failedToFetchBalance": "取得餘額失敗:{error}", "failedToFetchBalance": "取得餘額失敗:{error}",
"failedToFetchLogs": "無法取得伺服器日誌", "failedToFetchLogs": "取得伺服器日誌失敗",
"failedToInitializeLoad3dViewer": "初始化 3D 檢視器失敗", "failedToInitializeLoad3dViewer": "初始化 3D 檢視器失敗",
"failedToInitiateCreditPurchase": "啟動點數購買失敗:{error}", "failedToInitiateCreditPurchase": "啟動點數購買失敗:{error}",
"failedToPurchaseCredits": "購買點數失敗:{error}", "failedToPurchaseCredits": "購買點數失敗:{error}",
"fileLoadError": "無法在 {fileName} 中找到工作流程", "fileLoadError": "無法在 {fileName} 中找到工作流程",
"fileUploadFailed": "檔案上傳失敗", "fileUploadFailed": "檔案上傳失敗",
"interrupted": "執行已中斷", "interrupted": "執行已中斷",
"migrateToLitegraphReroute": "重導節點將於未來版本移除。點擊以遷移至 litegraph 原生重導。", "migrateToLitegraphReroute": "重導節點將於未來版本移除。點擊以遷移至 litegraph 原生重導。",
"no3dScene": "沒有 3D 場景可套用材質", "no3dScene": "沒有 3D 場景可套用材質",
"no3dSceneToExport": "沒有 3D 場景可匯出", "no3dSceneToExport": "沒有 3D 場景可匯出",
@@ -1659,11 +1670,11 @@
"invalidEmail": "無效的電子郵件地址", "invalidEmail": "無效的電子郵件地址",
"length": "必須為 {length} 個字元", "length": "必須為 {length} 個字元",
"maxLength": "不得超過 {length} 個字元", "maxLength": "不得超過 {length} 個字元",
"minLength": "至少需 {length} 個字元", "minLength": "至少需 {length} 個字元",
"password": { "password": {
"lowercase": "必須包含至少一個小寫字母", "lowercase": "必須包含至少一個小寫字母",
"match": "密碼必須相符", "match": "密碼必須相符",
"minLength": "必須介於 8 32 個字元之間", "minLength": "必須 8 32 個字元",
"number": "必須包含至少一個數字", "number": "必須包含至少一個數字",
"requirements": "密碼要求", "requirements": "密碼要求",
"special": "必須包含至少一個特殊字元", "special": "必須包含至少一個特殊字元",
@@ -1676,7 +1687,7 @@
"versionMismatchWarning": { "versionMismatchWarning": {
"dismiss": "關閉", "dismiss": "關閉",
"frontendNewer": "前端版本 {frontendVersion} 可能與後端版本 {backendVersion} 不相容。", "frontendNewer": "前端版本 {frontendVersion} 可能與後端版本 {backendVersion} 不相容。",
"frontendOutdated": "前端版本 {frontendVersion} 已過時。後端需要版本 {requiredVersion} 或更高版本。", "frontendOutdated": "前端版本 {frontendVersion} 已過時。後端需要 {requiredVersion} 或更高版本。",
"title": "版本相容性警告", "title": "版本相容性警告",
"updateFrontend": "更新前端" "updateFrontend": "更新前端"
}, },

View File

@@ -277,6 +277,10 @@
"label": "切换节点库侧边栏", "label": "切换节点库侧边栏",
"tooltip": "节点库" "tooltip": "节点库"
}, },
"Workspace_ToggleSidebarTab_output-explorer": {
"label": "切换输出资源管理器侧边栏",
"tooltip": "输出资源管理器"
},
"Workspace_ToggleSidebarTab_queue": { "Workspace_ToggleSidebarTab_queue": {
"label": "切换执行队列侧边栏", "label": "切换执行队列侧边栏",
"tooltip": "执行队列" "tooltip": "执行队列"

File diff suppressed because it is too large Load Diff

View File

@@ -699,6 +699,19 @@ export class ComfyApi extends EventTarget {
return await res.json() return await res.json()
} }
/**
* Gets a list of output folder items (eg ['output', 'output/images', 'output/videos', ...])
* @param {string} folder The folder to list items from, such as 'output'
* @returns The list of output folder items within the specified folder
*/
async getOutputFolderItems(folder: string) {
const res = await this.fetchApi(`/output${folder}`)
if (res.status === 404) {
return []
}
return await res.json()
}
/** /**
* Gets the metadata for a model * Gets the metadata for a model
* @param {string} folder The folder containing the model * @param {string} folder The folder containing the model

View File

@@ -1,6 +1,7 @@
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
import { useOutputExplorerSidebarTab } from '@/composables/sidebarTabs/outputExplorerSidebarTab'
import { useModelLibrarySidebarTab } from '@/composables/sidebarTabs/useModelLibrarySidebarTab' import { useModelLibrarySidebarTab } from '@/composables/sidebarTabs/useModelLibrarySidebarTab'
import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab' import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab'
import { useQueueSidebarTab } from '@/composables/sidebarTabs/useQueueSidebarTab' import { useQueueSidebarTab } from '@/composables/sidebarTabs/useQueueSidebarTab'
@@ -92,6 +93,7 @@ export const useSidebarTabStore = defineStore('sidebarTab', () => {
registerSidebarTab(useNodeLibrarySidebarTab()) registerSidebarTab(useNodeLibrarySidebarTab())
registerSidebarTab(useModelLibrarySidebarTab()) registerSidebarTab(useModelLibrarySidebarTab())
registerSidebarTab(useWorkflowsSidebarTab()) registerSidebarTab(useWorkflowsSidebarTab())
registerSidebarTab(useOutputExplorerSidebarTab())
const menuStore = useMenuItemStore() const menuStore = useMenuItemStore()