mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-06-15 02:56:26 +00:00
Compare commits
24 Commits
cloud/mode
...
test/node-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24a3b28fb9 | ||
|
|
6ac72fafcc | ||
|
|
f50afee6c4 | ||
|
|
3b3430e2d8 | ||
|
|
52a46e72c9 | ||
|
|
3adecc4ded | ||
|
|
7404756b6d | ||
|
|
7c6e2d2c7a | ||
|
|
6feb2022a4 | ||
|
|
b8287f6c2f | ||
|
|
036675bb49 | ||
|
|
513dd0e426 | ||
|
|
1fc34dfd6a | ||
|
|
24612b2082 | ||
|
|
507500a9d7 | ||
|
|
6499eda004 | ||
|
|
a7e4a86ec8 | ||
|
|
7a7a1a5e70 | ||
|
|
4c2f2a910f | ||
|
|
31177bc036 | ||
|
|
8390838ed2 | ||
|
|
ee0c0e9996 | ||
|
|
4b57a12ca5 | ||
|
|
07c8b822bc |
@@ -2,5 +2,6 @@ issue_enrichment:
|
||||
auto_enrich:
|
||||
enabled: true
|
||||
reviews:
|
||||
high_level_summary: false
|
||||
auto_review:
|
||||
drafts: true
|
||||
|
||||
59
browser_tests/assets/missing/replaceable_nodes.json
Normal file
59
browser_tests/assets/missing/replaceable_nodes.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"last_node_id": 3,
|
||||
"last_link_id": 1,
|
||||
"nodes": [
|
||||
{
|
||||
"id": 1,
|
||||
"type": "T2IAdapterLoader",
|
||||
"pos": [100, 100],
|
||||
"size": { "0": 300, "1": 58 },
|
||||
"flags": {},
|
||||
"order": 0,
|
||||
"mode": 0,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "CONTROL_NET",
|
||||
"type": "CONTROL_NET",
|
||||
"links": null
|
||||
}
|
||||
],
|
||||
"properties": { "Node name for S&R": "T2IAdapterLoader" },
|
||||
"widgets_values": ["t2iadapter_model.safetensors"]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"type": "ImageBatch",
|
||||
"pos": [100, 200],
|
||||
"size": { "0": 210, "1": 46 },
|
||||
"flags": {},
|
||||
"order": 1,
|
||||
"mode": 0,
|
||||
"inputs": [
|
||||
{ "name": "image1", "type": "IMAGE", "link": null },
|
||||
{ "name": "image2", "type": "IMAGE", "link": null }
|
||||
],
|
||||
"outputs": [{ "name": "IMAGE", "type": "IMAGE", "links": [1] }],
|
||||
"properties": { "Node name for S&R": "ImageBatch" }
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"type": "UNKNOWN_NO_REPLACEMENT",
|
||||
"pos": [100, 300],
|
||||
"size": { "0": 210, "1": 46 },
|
||||
"flags": {},
|
||||
"order": 2,
|
||||
"mode": 0,
|
||||
"inputs": [{ "name": "image", "type": "IMAGE", "link": 1 }],
|
||||
"outputs": [{ "name": "IMAGE", "type": "IMAGE", "links": null }],
|
||||
"properties": { "Node name for S&R": "UNKNOWN_NO_REPLACEMENT" }
|
||||
}
|
||||
],
|
||||
"links": [[1, 2, 0, 3, 0, "IMAGE"]],
|
||||
"groups": [],
|
||||
"config": {},
|
||||
"extra": {
|
||||
"ds": { "scale": 1, "offset": [0, 0] }
|
||||
},
|
||||
"version": 0.4
|
||||
}
|
||||
@@ -80,4 +80,11 @@ export class ComfyNodeSearchBox {
|
||||
async removeFilter(index: number) {
|
||||
await this.filterChips.nth(index).locator('.p-chip-remove-icon').click()
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a locator for a search result containing the specified text.
|
||||
*/
|
||||
findResult(text: string): Locator {
|
||||
return this.dropdown.locator('li').filter({ hasText: text })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,18 @@ import type { KeyCombo } from '../../../src/platform/keybindings/types'
|
||||
export class CommandHelper {
|
||||
constructor(private readonly page: Page) {}
|
||||
|
||||
async executeCommand(commandId: string): Promise<void> {
|
||||
await this.page.evaluate((id: string) => {
|
||||
return window.app!.extensionManager.command.execute(id)
|
||||
}, commandId)
|
||||
async executeCommand(
|
||||
commandId: string,
|
||||
metadata?: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
await this.page.evaluate(
|
||||
({ commandId, metadata }) => {
|
||||
return window['app'].extensionManager.command.execute(commandId, {
|
||||
metadata
|
||||
})
|
||||
},
|
||||
{ commandId, metadata }
|
||||
)
|
||||
}
|
||||
|
||||
async registerCommand(
|
||||
|
||||
@@ -34,6 +34,33 @@ test.describe('Load workflow warning', { tag: '@ui' }, () => {
|
||||
expect(warningText).toContain('MISSING_NODE_TYPE_IN_SUBGRAPH')
|
||||
expect(warningText).toContain('in subgraph')
|
||||
})
|
||||
|
||||
test('Should show replacement UI for replaceable missing nodes', async ({
|
||||
comfyPage
|
||||
}) => {
|
||||
await comfyPage.settings.setSetting('Comfy.NodeReplacement.Enabled', true)
|
||||
await comfyPage.workflow.loadWorkflow('missing/replaceable_nodes')
|
||||
|
||||
const missingNodesWarning = comfyPage.page.locator('.comfy-missing-nodes')
|
||||
await expect(missingNodesWarning).toBeVisible()
|
||||
|
||||
// Verify "Replaceable" badges appear for nodes with replacements
|
||||
const replaceableBadges = missingNodesWarning.getByText('Replaceable')
|
||||
await expect(replaceableBadges.first()).toBeVisible()
|
||||
expect(await replaceableBadges.count()).toBeGreaterThanOrEqual(2)
|
||||
|
||||
// Verify individual "Replace" buttons appear
|
||||
const replaceButtons = missingNodesWarning.getByRole('button', {
|
||||
name: 'Replace'
|
||||
})
|
||||
expect(await replaceButtons.count()).toBeGreaterThanOrEqual(2)
|
||||
|
||||
// Verify "Replace All" button appears in footer
|
||||
const replaceAllButton = comfyPage.page.getByRole('button', {
|
||||
name: 'Replace All'
|
||||
})
|
||||
await expect(replaceAllButton).toBeVisible()
|
||||
})
|
||||
})
|
||||
|
||||
test('Does not report warning on undo/redo', async ({ comfyPage }) => {
|
||||
|
||||
109
browser_tests/tests/subgraphSearchAliases.spec.ts
Normal file
109
browser_tests/tests/subgraphSearchAliases.spec.ts
Normal file
@@ -0,0 +1,109 @@
|
||||
import { expect } from '@playwright/test'
|
||||
|
||||
import type { ComfyPage } from '../fixtures/ComfyPage'
|
||||
import { comfyPageFixture as test } from '../fixtures/ComfyPage'
|
||||
|
||||
async function createSubgraphAndNavigateInto(comfyPage: ComfyPage) {
|
||||
await comfyPage.workflow.loadWorkflow('default')
|
||||
await comfyPage.nextFrame()
|
||||
|
||||
const ksampler = await comfyPage.nodeOps.getNodeRefById('3')
|
||||
await ksampler.click('title')
|
||||
await ksampler.convertToSubgraph()
|
||||
await comfyPage.nextFrame()
|
||||
|
||||
const subgraphNodes =
|
||||
await comfyPage.nodeOps.getNodeRefsByTitle('New Subgraph')
|
||||
expect(subgraphNodes.length).toBe(1)
|
||||
const subgraphNode = subgraphNodes[0]
|
||||
|
||||
await subgraphNode.navigateIntoSubgraph()
|
||||
return subgraphNode
|
||||
}
|
||||
|
||||
async function exitSubgraphAndPublish(
|
||||
comfyPage: ComfyPage,
|
||||
subgraphNode: Awaited<ReturnType<typeof createSubgraphAndNavigateInto>>,
|
||||
blueprintName: string
|
||||
) {
|
||||
await comfyPage.page.keyboard.press('Escape')
|
||||
await comfyPage.nextFrame()
|
||||
|
||||
await subgraphNode.click('title')
|
||||
await comfyPage.command.executeCommand('Comfy.PublishSubgraph', {
|
||||
name: blueprintName
|
||||
})
|
||||
|
||||
await expect(comfyPage.visibleToasts).toHaveCount(1, { timeout: 5000 })
|
||||
await comfyPage.toast.closeToasts(1)
|
||||
}
|
||||
|
||||
async function searchAndExpectResult(
|
||||
comfyPage: ComfyPage,
|
||||
searchTerm: string,
|
||||
expectedResult: string
|
||||
) {
|
||||
await comfyPage.command.executeCommand('Workspace.SearchBox.Toggle')
|
||||
await expect(comfyPage.searchBox.input).toHaveCount(1)
|
||||
await comfyPage.searchBox.input.fill(searchTerm)
|
||||
await expect(comfyPage.searchBox.findResult(expectedResult)).toBeVisible({
|
||||
timeout: 10000
|
||||
})
|
||||
}
|
||||
|
||||
test.describe('Subgraph Search Aliases', { tag: ['@subgraph'] }, () => {
|
||||
test.beforeEach(async ({ comfyPage }) => {
|
||||
await comfyPage.settings.setSetting('Comfy.UseNewMenu', 'Top')
|
||||
await comfyPage.settings.setSetting('Comfy.NodeSearchBoxImpl', 'default')
|
||||
})
|
||||
|
||||
test('Can set search aliases on subgraph and find via search', async ({
|
||||
comfyPage
|
||||
}) => {
|
||||
const subgraphNode = await createSubgraphAndNavigateInto(comfyPage)
|
||||
|
||||
await comfyPage.command.executeCommand('Comfy.Subgraph.SetSearchAliases', {
|
||||
aliases: 'qwerty,unicorn'
|
||||
})
|
||||
|
||||
const blueprintName = `test-aliases-${Date.now()}`
|
||||
await exitSubgraphAndPublish(comfyPage, subgraphNode, blueprintName)
|
||||
await searchAndExpectResult(comfyPage, 'unicorn', blueprintName)
|
||||
})
|
||||
|
||||
test('Can set description on subgraph', async ({ comfyPage }) => {
|
||||
await createSubgraphAndNavigateInto(comfyPage)
|
||||
|
||||
await comfyPage.command.executeCommand('Comfy.Subgraph.SetDescription', {
|
||||
description: 'This is a test description'
|
||||
})
|
||||
// Verify the description was set on the subgraph's extra
|
||||
const description = await comfyPage.page.evaluate(() => {
|
||||
const subgraph = window['app']!.canvas.subgraph
|
||||
return (subgraph?.extra as Record<string, unknown>)?.BlueprintDescription
|
||||
})
|
||||
expect(description).toBe('This is a test description')
|
||||
})
|
||||
|
||||
test('Search aliases persist after publish and reload', async ({
|
||||
comfyPage
|
||||
}) => {
|
||||
const subgraphNode = await createSubgraphAndNavigateInto(comfyPage)
|
||||
|
||||
await comfyPage.command.executeCommand('Comfy.Subgraph.SetSearchAliases', {
|
||||
aliases: 'dragon, fire breather'
|
||||
})
|
||||
|
||||
const blueprintName = `test-persist-${Date.now()}`
|
||||
await exitSubgraphAndPublish(comfyPage, subgraphNode, blueprintName)
|
||||
|
||||
// Reload the page to ensure aliases are persisted
|
||||
await comfyPage.page.reload()
|
||||
await comfyPage.page.waitForFunction(
|
||||
() => window['app'] && window['app'].extensionManager
|
||||
)
|
||||
await comfyPage.nextFrame()
|
||||
|
||||
await searchAndExpectResult(comfyPage, 'dragon', blueprintName)
|
||||
})
|
||||
})
|
||||
@@ -10,7 +10,5 @@
|
||||
"type": "image/svg+xml"
|
||||
}
|
||||
],
|
||||
"display": "standalone",
|
||||
"background_color": "#172dd7",
|
||||
"theme_color": "#f0ff41"
|
||||
"display": "standalone"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@comfyorg/comfyui-frontend",
|
||||
"version": "1.39.5",
|
||||
"version": "1.39.7",
|
||||
"private": true,
|
||||
"description": "Official front-end implementation of ComfyUI",
|
||||
"homepage": "https://comfy.org",
|
||||
|
||||
@@ -25,10 +25,25 @@
|
||||
:key="i"
|
||||
class="flex min-h-8 items-center justify-between px-4 py-2 bg-secondary-background text-muted-foreground"
|
||||
>
|
||||
<span class="text-xs">
|
||||
{{ node.label }}
|
||||
</span>
|
||||
<span v-if="node.hint" class="text-xs">{{ node.hint }}</span>
|
||||
<div class="flex items-center gap-2">
|
||||
<StatusBadge
|
||||
v-if="node.isReplaceable"
|
||||
:label="$t('nodeReplacement.replaceable')"
|
||||
severity="default"
|
||||
/>
|
||||
<span class="text-xs">{{ node.label }}</span>
|
||||
<span v-if="node.hint" class="text-xs text-muted-foreground">
|
||||
{{ node.hint }}
|
||||
</span>
|
||||
</div>
|
||||
<Button
|
||||
v-if="node.isReplaceable"
|
||||
variant="secondary"
|
||||
size="sm"
|
||||
@click="emit('replace', node.label)"
|
||||
>
|
||||
{{ $t('nodeReplacement.replace') }}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -49,7 +64,9 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue'
|
||||
|
||||
import StatusBadge from '@/components/common/StatusBadge.vue'
|
||||
import MissingCoreNodesMessage from '@/components/dialog/content/MissingCoreNodesMessage.vue'
|
||||
import Button from '@/components/ui/button/Button.vue'
|
||||
import { isCloud } from '@/platform/distribution/types'
|
||||
import type { MissingNodeType } from '@/types/comfy'
|
||||
import { useMissingNodes } from '@/workbench/extensions/manager/composables/nodePack/useMissingNodes'
|
||||
@@ -58,6 +75,10 @@ const props = defineProps<{
|
||||
missingNodeTypes: MissingNodeType[]
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'replace', nodeType: string): void
|
||||
}>()
|
||||
|
||||
// Get missing core nodes for OSS mode
|
||||
const { missingCoreNodes } = useMissingNodes()
|
||||
|
||||
@@ -75,10 +96,12 @@ const uniqueNodes = computed(() => {
|
||||
return {
|
||||
label: node.type,
|
||||
hint: node.hint,
|
||||
action: node.action
|
||||
action: node.action,
|
||||
isReplaceable: node.isReplaceable ?? false,
|
||||
replacement: node.replacement
|
||||
}
|
||||
}
|
||||
return { label: node }
|
||||
return { label: node, isReplaceable: false }
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<!-- Cloud mode: Learn More + Got It buttons -->
|
||||
<!-- Cloud mode: Learn More + Replace All + Got It buttons -->
|
||||
<div
|
||||
v-if="isCloud"
|
||||
class="flex w-full items-center justify-between gap-2 py-2 px-4"
|
||||
@@ -15,16 +15,34 @@
|
||||
<i class="icon-[lucide--info]"></i>
|
||||
<span>{{ $t('missingNodes.cloud.learnMore') }}</span>
|
||||
</Button>
|
||||
<Button variant="secondary" size="md" @click="handleGotItClick">{{
|
||||
$t('missingNodes.cloud.gotIt')
|
||||
}}</Button>
|
||||
<div class="flex gap-1">
|
||||
<Button
|
||||
v-if="hasReplaceableNodes"
|
||||
variant="primary"
|
||||
size="md"
|
||||
@click="emit('replaceAll')"
|
||||
>
|
||||
{{ $t('nodeReplacement.replaceAll') }}
|
||||
</Button>
|
||||
<Button variant="secondary" size="md" @click="handleGotItClick">{{
|
||||
$t('missingNodes.cloud.gotIt')
|
||||
}}</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- OSS mode: Open Manager + Install All buttons -->
|
||||
<!-- OSS mode: Open Manager + Replace All + Install All buttons -->
|
||||
<div v-else-if="showManagerButtons" class="flex justify-end gap-1 py-2 px-4">
|
||||
<Button variant="textonly" @click="openManager">{{
|
||||
$t('g.openManager')
|
||||
}}</Button>
|
||||
<Button
|
||||
v-if="hasReplaceableNodes"
|
||||
variant="primary"
|
||||
size="md"
|
||||
@click="emit('replaceAll')"
|
||||
>
|
||||
{{ $t('nodeReplacement.replaceAll') }}
|
||||
</Button>
|
||||
<PackInstallButton
|
||||
v-if="showInstallAllButton"
|
||||
type="secondary"
|
||||
@@ -51,12 +69,25 @@ import Button from '@/components/ui/button/Button.vue'
|
||||
import { isCloud } from '@/platform/distribution/types'
|
||||
import { useToastStore } from '@/platform/updates/common/toastStore'
|
||||
import { useDialogStore } from '@/stores/dialogStore'
|
||||
import type { MissingNodeType } from '@/types/comfy'
|
||||
import PackInstallButton from '@/workbench/extensions/manager/components/manager/button/PackInstallButton.vue'
|
||||
import { useMissingNodes } from '@/workbench/extensions/manager/composables/nodePack/useMissingNodes'
|
||||
import { useManagerState } from '@/workbench/extensions/manager/composables/useManagerState'
|
||||
import { useComfyManagerStore } from '@/workbench/extensions/manager/stores/comfyManagerStore'
|
||||
import { ManagerTab } from '@/workbench/extensions/manager/types/comfyManagerTypes'
|
||||
|
||||
const { missingNodeTypes = [] } = defineProps<{
|
||||
missingNodeTypes?: MissingNodeType[]
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'replaceAll'): void
|
||||
}>()
|
||||
|
||||
const hasReplaceableNodes = computed(() =>
|
||||
missingNodeTypes.some((n) => typeof n === 'object' && n.isReplaceable)
|
||||
)
|
||||
|
||||
const dialogStore = useDialogStore()
|
||||
const { t } = useI18n()
|
||||
|
||||
|
||||
@@ -20,9 +20,18 @@ defineOptions({
|
||||
|
||||
const {
|
||||
position = 'popper',
|
||||
// Safari has issues with click events on portaled content inside dialogs.
|
||||
// Set disablePortal to true when using Select inside a Dialog on Safari.
|
||||
// See: https://github.com/chakra-ui/ark/issues/1782
|
||||
disablePortal = false,
|
||||
class: className,
|
||||
...restProps
|
||||
} = defineProps<SelectContentProps & { class?: HTMLAttributes['class'] }>()
|
||||
} = defineProps<
|
||||
SelectContentProps & {
|
||||
class?: HTMLAttributes['class']
|
||||
disablePortal?: boolean
|
||||
}
|
||||
>()
|
||||
const emits = defineEmits<SelectContentEmits>()
|
||||
|
||||
const delegatedProps = computed(() => ({
|
||||
@@ -34,7 +43,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<SelectPortal>
|
||||
<SelectPortal :disabled="disablePortal">
|
||||
<SelectContent
|
||||
v-bind="{ ...forwarded, ...$attrs }"
|
||||
:class="
|
||||
|
||||
@@ -68,8 +68,11 @@ vi.mock('@/platform/workflow/core/services/workflowService', () => ({
|
||||
useWorkflowService: vi.fn(() => ({}))
|
||||
}))
|
||||
|
||||
const mockDialogService = vi.hoisted(() => ({
|
||||
prompt: vi.fn()
|
||||
}))
|
||||
vi.mock('@/services/dialogService', () => ({
|
||||
useDialogService: vi.fn(() => ({}))
|
||||
useDialogService: vi.fn(() => mockDialogService)
|
||||
}))
|
||||
|
||||
vi.mock('@/services/litegraphService', () => ({
|
||||
@@ -84,14 +87,31 @@ vi.mock('@/stores/toastStore', () => ({
|
||||
useToastStore: vi.fn(() => ({}))
|
||||
}))
|
||||
|
||||
const mockChangeTracker = vi.hoisted(() => ({
|
||||
checkState: vi.fn()
|
||||
}))
|
||||
const mockWorkflowStore = vi.hoisted(() => ({
|
||||
activeWorkflow: {
|
||||
changeTracker: mockChangeTracker
|
||||
}
|
||||
}))
|
||||
vi.mock('@/platform/workflow/management/stores/workflowStore', () => ({
|
||||
useWorkflowStore: vi.fn(() => ({}))
|
||||
useWorkflowStore: vi.fn(() => mockWorkflowStore)
|
||||
}))
|
||||
|
||||
vi.mock('@/stores/subgraphStore', () => ({
|
||||
useSubgraphStore: vi.fn(() => ({}))
|
||||
}))
|
||||
|
||||
vi.mock('@/renderer/core/canvas/canvasStore', () => ({
|
||||
useCanvasStore: vi.fn(() => ({
|
||||
getCanvas: () => app.canvas
|
||||
})),
|
||||
useTitleEditorStore: vi.fn(() => ({
|
||||
titleEditorTarget: null
|
||||
}))
|
||||
}))
|
||||
|
||||
vi.mock('@/stores/workspace/colorPaletteStore', () => ({
|
||||
useColorPaletteStore: vi.fn(() => ({}))
|
||||
}))
|
||||
@@ -155,11 +175,12 @@ describe('useCoreCommands', () => {
|
||||
findNodeById: vi.fn(),
|
||||
getNodeById: vi.fn(),
|
||||
setDirtyCanvas: vi.fn(),
|
||||
sendActionToCanvas: vi.fn()
|
||||
sendActionToCanvas: vi.fn(),
|
||||
extra: {} as Record<string, unknown>
|
||||
} as Partial<typeof app.canvas.subgraph> as typeof app.canvas.subgraph
|
||||
}
|
||||
|
||||
const mockSubgraph = createMockSubgraph()
|
||||
const mockSubgraph = createMockSubgraph()!
|
||||
|
||||
function createMockSettingStore(
|
||||
getReturnValue: boolean
|
||||
@@ -270,4 +291,138 @@ describe('useCoreCommands', () => {
|
||||
expect(api.dispatchCustomEvent).not.toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
describe('Subgraph metadata commands', () => {
|
||||
beforeEach(() => {
|
||||
mockSubgraph.extra = {}
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
describe('SetDescription command', () => {
|
||||
it('should do nothing when not in subgraph', async () => {
|
||||
app.canvas.subgraph = undefined
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setDescCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetDescription'
|
||||
)!
|
||||
|
||||
await setDescCommand.function()
|
||||
|
||||
expect(mockDialogService.prompt).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should set description on subgraph.extra', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue('Test description')
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setDescCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetDescription'
|
||||
)!
|
||||
|
||||
await setDescCommand.function()
|
||||
|
||||
expect(mockDialogService.prompt).toHaveBeenCalled()
|
||||
expect(mockSubgraph.extra.BlueprintDescription).toBe('Test description')
|
||||
expect(mockChangeTracker.checkState).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should not set description when user cancels', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue(null)
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setDescCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetDescription'
|
||||
)!
|
||||
|
||||
await setDescCommand.function()
|
||||
|
||||
expect(mockSubgraph.extra.BlueprintDescription).toBeUndefined()
|
||||
expect(mockChangeTracker.checkState).not.toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
describe('SetSearchAliases command', () => {
|
||||
it('should do nothing when not in subgraph', async () => {
|
||||
app.canvas.subgraph = undefined
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setAliasesCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetSearchAliases'
|
||||
)!
|
||||
|
||||
await setAliasesCommand.function()
|
||||
|
||||
expect(mockDialogService.prompt).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should set search aliases on subgraph.extra', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue('alias1, alias2, alias3')
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setAliasesCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetSearchAliases'
|
||||
)!
|
||||
|
||||
await setAliasesCommand.function()
|
||||
|
||||
expect(mockDialogService.prompt).toHaveBeenCalled()
|
||||
expect(mockSubgraph.extra.BlueprintSearchAliases).toEqual([
|
||||
'alias1',
|
||||
'alias2',
|
||||
'alias3'
|
||||
])
|
||||
expect(mockChangeTracker.checkState).toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('should trim whitespace and filter empty strings', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue(' alias1 , , alias2 , ')
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setAliasesCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetSearchAliases'
|
||||
)!
|
||||
|
||||
await setAliasesCommand.function()
|
||||
|
||||
expect(mockSubgraph.extra.BlueprintSearchAliases).toEqual([
|
||||
'alias1',
|
||||
'alias2'
|
||||
])
|
||||
})
|
||||
|
||||
it('should set undefined when empty input', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue('')
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setAliasesCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetSearchAliases'
|
||||
)!
|
||||
|
||||
await setAliasesCommand.function()
|
||||
|
||||
expect(mockSubgraph.extra.BlueprintSearchAliases).toBeUndefined()
|
||||
})
|
||||
|
||||
it('should not set aliases when user cancels', async () => {
|
||||
app.canvas.subgraph = mockSubgraph
|
||||
mockDialogService.prompt.mockResolvedValue(null)
|
||||
|
||||
const commands = useCoreCommands()
|
||||
const setAliasesCommand = commands.find(
|
||||
(cmd) => cmd.id === 'Comfy.Subgraph.SetSearchAliases'
|
||||
)!
|
||||
|
||||
await setAliasesCommand.function()
|
||||
|
||||
expect(mockSubgraph.extra.BlueprintSearchAliases).toBeUndefined()
|
||||
expect(mockChangeTracker.checkState).not.toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -171,8 +171,9 @@ export function useCoreCommands(): ComfyCommand[] {
|
||||
icon: 'pi pi-save',
|
||||
label: 'Publish Subgraph',
|
||||
menubarLabel: 'Publish',
|
||||
function: async () => {
|
||||
await useSubgraphStore().publishSubgraph()
|
||||
function: async (metadata?: Record<string, unknown>) => {
|
||||
const name = metadata?.name as string | undefined
|
||||
await useSubgraphStore().publishSubgraph(name)
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1095,6 +1096,75 @@ export function useCoreCommands(): ComfyCommand[] {
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'Comfy.Subgraph.SetDescription',
|
||||
icon: 'pi pi-pencil',
|
||||
label: 'Set Subgraph Description',
|
||||
versionAdded: '1.39.7',
|
||||
function: async (metadata?: Record<string, unknown>) => {
|
||||
const canvas = canvasStore.getCanvas()
|
||||
const subgraph = canvas.subgraph
|
||||
if (!subgraph) return
|
||||
|
||||
const extra = (subgraph.extra ??= {}) as Record<string, unknown>
|
||||
const currentDescription = (extra.BlueprintDescription as string) ?? ''
|
||||
|
||||
let description: string | null | undefined
|
||||
const rawDescription = metadata?.description
|
||||
if (rawDescription != null) {
|
||||
description =
|
||||
typeof rawDescription === 'string'
|
||||
? rawDescription
|
||||
: String(rawDescription)
|
||||
}
|
||||
description ??= await dialogService.prompt({
|
||||
title: t('g.description'),
|
||||
message: t('subgraphStore.enterDescription'),
|
||||
defaultValue: currentDescription
|
||||
})
|
||||
if (description === null) return
|
||||
|
||||
extra.BlueprintDescription = description.trim() || undefined
|
||||
workflowStore.activeWorkflow?.changeTracker?.checkState()
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'Comfy.Subgraph.SetSearchAliases',
|
||||
icon: 'pi pi-search',
|
||||
label: 'Set Subgraph Search Aliases',
|
||||
versionAdded: '1.39.7',
|
||||
function: async (metadata?: Record<string, unknown>) => {
|
||||
const canvas = canvasStore.getCanvas()
|
||||
const subgraph = canvas.subgraph
|
||||
if (!subgraph) return
|
||||
|
||||
const parseAliases = (value: unknown): string[] =>
|
||||
(Array.isArray(value) ? value.map(String) : String(value).split(','))
|
||||
.map((s) => s.trim())
|
||||
.filter(Boolean)
|
||||
|
||||
const extra = (subgraph.extra ??= {}) as Record<string, unknown>
|
||||
|
||||
let aliases: string[]
|
||||
const rawAliases = metadata?.aliases
|
||||
if (rawAliases == null) {
|
||||
const input = await dialogService.prompt({
|
||||
title: t('subgraphStore.searchAliases'),
|
||||
message: t('subgraphStore.enterSearchAliases'),
|
||||
defaultValue: parseAliases(extra.BlueprintSearchAliases ?? '').join(
|
||||
', '
|
||||
)
|
||||
})
|
||||
if (input === null) return
|
||||
aliases = parseAliases(input)
|
||||
} else {
|
||||
aliases = parseAliases(rawAliases)
|
||||
}
|
||||
|
||||
extra.BlueprintSearchAliases = aliases.length > 0 ? aliases : undefined
|
||||
workflowStore.activeWorkflow?.changeTracker?.checkState()
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'Comfy.Dev.ShowModelSelector',
|
||||
icon: 'pi pi-box',
|
||||
|
||||
@@ -5641,7 +5641,7 @@ export class LGraphCanvas implements CustomEventDispatcher<LGraphCanvasEventMap>
|
||||
|
||||
// Skip link rendering while waiting for slot positions to sync after reconfigure
|
||||
if (LiteGraph.vueNodesMode && layoutStore.pendingSlotSync) {
|
||||
this.#visibleReroutes.clear()
|
||||
this._visibleReroutes.clear()
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -195,6 +195,42 @@ describe('contextMenuCompat', () => {
|
||||
expect.any(Error)
|
||||
)
|
||||
})
|
||||
|
||||
it('should handle multiple items with undefined content correctly', () => {
|
||||
// Setup base method with items that have undefined content
|
||||
LGraphCanvas.prototype.getCanvasMenuOptions = function () {
|
||||
return [
|
||||
{ content: undefined, title: 'Separator 1' },
|
||||
{ content: undefined, title: 'Separator 2' },
|
||||
{ content: 'Item 1', callback: () => {} }
|
||||
]
|
||||
}
|
||||
|
||||
legacyMenuCompat.install(LGraphCanvas.prototype, 'getCanvasMenuOptions')
|
||||
|
||||
// Monkey-patch to add an item with undefined content
|
||||
const original = LGraphCanvas.prototype.getCanvasMenuOptions
|
||||
LGraphCanvas.prototype.getCanvasMenuOptions =
|
||||
function (): (IContextMenuValue | null)[] {
|
||||
const items = original.apply(this)
|
||||
items.push({ content: undefined, title: 'Separator 3' })
|
||||
return items
|
||||
}
|
||||
|
||||
// Extract legacy items
|
||||
const legacyItems = legacyMenuCompat.extractLegacyItems(
|
||||
'getCanvasMenuOptions',
|
||||
mockCanvas
|
||||
)
|
||||
|
||||
// Should extract only the newly added item with undefined content
|
||||
// (not collapse with existing undefined content items)
|
||||
expect(legacyItems).toHaveLength(1)
|
||||
expect(legacyItems[0]).toMatchObject({
|
||||
content: undefined,
|
||||
title: 'Separator 3'
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('integration', () => {
|
||||
|
||||
@@ -152,19 +152,51 @@ class LegacyMenuCompat {
|
||||
const patchedItems = methodToCall.apply(context, args) as
|
||||
| (IContextMenuValue | null)[]
|
||||
| undefined
|
||||
if (!patchedItems) return []
|
||||
if (!patchedItems) {
|
||||
return []
|
||||
}
|
||||
// Use content-based diff to detect additions (not reference-based)
|
||||
// Create composite keys from multiple properties to handle undefined content
|
||||
const createItemKey = (item: IContextMenuValue): string => {
|
||||
const parts = [
|
||||
item.content ?? '',
|
||||
item.title ?? '',
|
||||
item.className ?? '',
|
||||
item.property ?? '',
|
||||
item.type ?? ''
|
||||
]
|
||||
return parts.join('|')
|
||||
}
|
||||
|
||||
// Use set-based diff to detect additions by reference
|
||||
const originalSet = new Set<IContextMenuValue | null>(originalItems)
|
||||
const addedItems = patchedItems.filter((item) => !originalSet.has(item))
|
||||
const originalKeys = new Set(
|
||||
originalItems
|
||||
.filter(
|
||||
(item): item is IContextMenuValue =>
|
||||
item !== null && typeof item === 'object' && 'content' in item
|
||||
)
|
||||
.map(createItemKey)
|
||||
)
|
||||
const addedItems = patchedItems.filter((item) => {
|
||||
if (item === null) return false
|
||||
if (typeof item !== 'object' || !('content' in item)) return false
|
||||
return !originalKeys.has(createItemKey(item))
|
||||
})
|
||||
|
||||
// Warn if items were removed (patched has fewer original items than expected)
|
||||
const retainedOriginalCount = patchedItems.filter((item) =>
|
||||
originalSet.has(item)
|
||||
const patchedKeys = new Set(
|
||||
patchedItems
|
||||
.filter(
|
||||
(item): item is IContextMenuValue =>
|
||||
item !== null && typeof item === 'object' && 'content' in item
|
||||
)
|
||||
.map(createItemKey)
|
||||
)
|
||||
const removedCount = [...originalKeys].filter(
|
||||
(key) => !patchedKeys.has(key)
|
||||
).length
|
||||
if (retainedOriginalCount < originalItems.length) {
|
||||
if (removedCount > 0) {
|
||||
console.warn(
|
||||
`[Context Menu Compat] Monkey patch for ${methodName} removed ${originalItems.length - retainedOriginalCount} original menu item(s). ` +
|
||||
`[Context Menu Compat] Monkey patch for ${methodName} removed ${removedCount} original menu item(s). ` +
|
||||
`This may cause unexpected behavior.`
|
||||
)
|
||||
}
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "إعادة التشغيل"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "فتح عارض ثلاثي الأبعاد (بيتا) للعقدة المحددة"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "تجريبي: تصفح أصول النماذج"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "عرض نافذة الإعدادات"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "تعيين وصف الرسم البياني الفرعي"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "تعيين الأسماء المستعارة للبحث في الرسم البياني الفرعي"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "تجريبي: تمكين AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "تبديل اللوحة السفلية"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "تبديل لوحة الطرفية السفلية"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "تبديل لوحة السجلات السفلية"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "تبديل اللوحة السفلية الأساسية"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "جميع {category}",
|
||||
"allModels": "جميع النماذج",
|
||||
"apiKeyHint": "تستورد نماذج خاصة أو محمية؟ {link}.",
|
||||
"apiKeyHintLink": "أضف مفاتيح API الخاصة بك في الإعدادات",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - أصل {type}",
|
||||
"loadingAsset": "جاري تحميل الأصل"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "لا توجد نماذج مستوردة بعد. انقر على \"استيراد نموذج\" لإضافة نموذجك الخاص.",
|
||||
"restricted": "النماذج الشخصية متاحة فقط لمستوى Creator وما فوق."
|
||||
},
|
||||
"errorAccessForbidden": "تم رفض الوصول إلى هذا المورد.",
|
||||
"errorConnectionRefused": "تعذر الاتصال بالمصدر. يرجى المحاولة لاحقًا.",
|
||||
"errorDownloadCancelled": "تم إلغاء التنزيل.",
|
||||
"errorFileTooLarge": "الملف يتجاوز الحد الأقصى المسموح به للحجم",
|
||||
"errorFormatNotAllowed": "يسمح فقط بصيغة SafeTensor",
|
||||
"errorHttpError": "حدث خطأ أثناء جلب البيانات الوصفية.",
|
||||
"errorInternalError": "حدث خطأ غير متوقع. يرجى المحاولة مرة أخرى.",
|
||||
"errorInvalidHost": "تعذر حل اسم مضيف عنوان URL للمصدر.",
|
||||
"errorInvalidUrl": "يرجى إدخال عنوان URL.",
|
||||
"errorInvalidUrlFormat": "تنسيق عنوان URL غير صالح. يرجى التحقق والمحاولة مرة أخرى.",
|
||||
"errorMetadataFetchFailed": "فشل في جلب معلومات الملف من المصدر.",
|
||||
"errorModelTypeNotSupported": "نوع النموذج هذا غير مدعوم",
|
||||
"errorNetworkError": "حدث خطأ في الشبكة. يرجى التحقق من الاتصال والمحاولة مرة أخرى.",
|
||||
"errorNetworkTimeout": "انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.",
|
||||
"errorRateLimited": "عدد كبير جدًا من الطلبات. يرجى المحاولة بعد بضع دقائق.",
|
||||
"errorRequestCancelled": "تم إلغاء الطلب.",
|
||||
"errorResourceNotFound": "لم يتم العثور على الملف. يرجى التحقق من عنوان URL والمحاولة مرة أخرى.",
|
||||
"errorServiceUnavailable": "الخدمة غير متوفرة مؤقتًا. يرجى المحاولة لاحقًا.",
|
||||
"errorSourceServerError": "الخادم المصدر يواجه مشاكل. يرجى المحاولة لاحقًا.",
|
||||
"errorUnauthorized": "يرجى تسجيل الدخول للمتابعة.",
|
||||
"errorUnauthorizedSource": "هذا المورد يتطلب المصادقة. يرجى إضافة رمز API الخاص بك في الإعدادات.",
|
||||
"errorUnknown": "حدث خطأ غير متوقع",
|
||||
"errorUnsafePickleScan": "اكتشف CivitAI رمزًا غير آمن محتملًا في هذا الملف",
|
||||
"errorUnsafeVirusScan": "اكتشف CivitAI برمجيات خبيثة أو محتوى مشبوه في هذا الملف",
|
||||
"errorUnsupportedSource": "هذا العنوان غير مدعوم. فقط عناوين Hugging Face وCivitai مسموحة.",
|
||||
"errorUploadFailed": "فشل في استيراد الأصل. يرجى المحاولة مرة أخرى.",
|
||||
"errorUserTokenAccessDenied": "رمز API الخاص بك لا يملك صلاحية الوصول إلى هذا المورد. يرجى التحقق من أذونات الرمز.",
|
||||
"errorUserTokenInvalid": "رمز API المخزن غير صالح أو منتهي الصلاحية. يرجى تحديث الرمز في الإعدادات.",
|
||||
"failedToCreateNode": "فشل إنشاء العقدة. يرجى المحاولة مرة أخرى أو التحقق من وحدة التحكم للحصول على التفاصيل.",
|
||||
"fileFormats": "تنسيقات الملفات",
|
||||
"fileName": "اسم الملف",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "تكييف",
|
||||
"CONTROL_NET": "ControlNet",
|
||||
"FILE_3D": "ملف ثلاثي الأبعاد",
|
||||
"FILE_3D_FBX": "ملف FBX ثلاثي الأبعاد",
|
||||
"FILE_3D_GLB": "ملف GLB ثلاثي الأبعاد",
|
||||
"FILE_3D_GLTF": "ملف GLTF ثلاثي الأبعاد",
|
||||
"FILE_3D_OBJ": "ملف OBJ ثلاثي الأبعاد",
|
||||
"FILE_3D_STL": "ملف STL ثلاثي الأبعاد",
|
||||
"FILE_3D_USDZ": "ملف USDZ ثلاثي الأبعاد",
|
||||
"FLOAT": "رقم عشري",
|
||||
"FLOATS": "أرقام عشرية",
|
||||
"GEMINI_INPUT_FILES": "ملفات إدخال جيميني",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "الأمر {command} محظور. يرجى التواصل مع المسؤول لمزيد من المعلومات.",
|
||||
"community": "المجتمع",
|
||||
"completed": "اكتمل",
|
||||
"completedWithCheckmark": "اكتمل ✓",
|
||||
"confirm": "تأكيد",
|
||||
"confirmed": "تم التأكيد",
|
||||
"content": "محتوى",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "تنزيل",
|
||||
"downloadImage": "تنزيل الصورة",
|
||||
"downloadVideo": "تنزيل الفيديو",
|
||||
"downloadWithSize": "تنزيل ({size})",
|
||||
"downloading": "جارٍ التحميل",
|
||||
"dropYourFileOr": "أسقط ملفك أو",
|
||||
"duplicate": "تكرار",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "جارٍ التمكين",
|
||||
"enterBaseName": "أدخل الاسم الأساسي",
|
||||
"enterNewName": "أدخل الاسم الجديد",
|
||||
"enterNewNamePrompt": "أدخل اسمًا جديدًا:",
|
||||
"error": "خطأ",
|
||||
"errorLoadingImage": "حدث خطأ أثناء تحميل الصورة",
|
||||
"errorLoadingVideo": "حدث خطأ أثناء تحميل الفيديو",
|
||||
"experimental": "تجريبي",
|
||||
"export": "تصدير",
|
||||
"extensionName": "اسم الامتداد",
|
||||
"extensions": "الملحقات",
|
||||
"failed": "فشل",
|
||||
"failedToCopyJobId": "فشل نسخ معرف المهمة",
|
||||
"failedToDownloadImage": "فشل في تنزيل الصورة",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "تم نسخ معرف المهمة إلى الحافظة",
|
||||
"keybinding": "اختصار لوحة المفاتيح",
|
||||
"keybindingAlreadyExists": "الاختصار موجود بالفعل في",
|
||||
"keybindings": "اختصارات لوحة المفاتيح",
|
||||
"learnMore": "اعرف المزيد",
|
||||
"listening": "جاري الاستماع...",
|
||||
"liveSamplingPreview": "معاينة أخذ العينات المباشرة",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "الملف المحدد",
|
||||
"setAsBackground": "تعيين كخلفية",
|
||||
"settings": "الإعدادات",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "إظهار اللوحة اليسرى",
|
||||
"showReport": "عرض التقرير",
|
||||
"showRightPanel": "إظهار اللوحة اليمنى",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "معاينة الاقتصاص",
|
||||
"custom": "مخصص",
|
||||
"loading": "جارٍ التحميل...",
|
||||
"noInputImage": "لا توجد صورة إدخال متصلة"
|
||||
"lockRatio": "تثبيت النسبة",
|
||||
"noInputImage": "لا توجد صورة إدخال متصلة",
|
||||
"ratio": "النسبة",
|
||||
"unlockRatio": "إلغاء تثبيت النسبة"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "خطأ في النسخ",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "وضع التطبيق",
|
||||
"rerun": "تشغيل مجدد",
|
||||
"reuseParameters": "إعادة استخدام المعلمات",
|
||||
"runCount": "عدد مرات التشغيل:"
|
||||
"runCount": "عدد مرات التشغيل:",
|
||||
"welcome": {
|
||||
"intro": "عرض مبسط يخفي مخطط العقد حتى تتمكن من التركيز على الإبداع.",
|
||||
"layout": "على اليسار، سترى الصور والفيديوهات والمخرجات التي تم إنشاؤها. على اليمين، فقط عناصر التحكم التي تحتاجها. كل ما هو معقد يبقى بعيدًا عن الأنظار.",
|
||||
"sharing": "المشاركة سهلة: أنشئ سير العمل الخاص بك، افتح وضع التطبيق، انقر بزر الماوس الأيمن على علامة التبويب، ثم صدّر. عندما يفتح الآخرون ملفك، سيتم تشغيله مباشرة في هذا العرض النظيف. يمكنك مشاركة سير عمل قوي كأداة بسيطة دون الحاجة لفهم مخططات العقد.",
|
||||
"title": "مرحبًا بك في وضع التطبيق",
|
||||
"widget": "إذا كنت تريد التحكم في الإعدادات الظاهرة، حوّل العقد العليا إلى مخطط فرعي، ثم استخدم ترقية عناصر التحكم في الأدوات أعلاه لاختيار ما يتم عرضه."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "جارٍ تطبيق الخامة...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "مكتبة العقد",
|
||||
"Node Links": "روابط العقد",
|
||||
"Open": "فتح",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "فتح عارض ثلاثي الأبعاد (بيتا) للعقدة المحددة",
|
||||
"Open Color Picker in MaskEditor": "فتح منتقي الألوان في محرر القناع",
|
||||
"Open Custom Nodes Folder": "فتح مجلد العقد المخصصة",
|
||||
"Open DevTools": "فتح أدوات المطور",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "تدوير لليمين في محرر القناع",
|
||||
"Save": "حفظ",
|
||||
"Save As": "حفظ باسم",
|
||||
"Set Subgraph Description": "تعيين وصف المخطط الفرعي",
|
||||
"Set Subgraph Search Aliases": "تعيين الأسماء المستعارة للبحث في المخطط الفرعي",
|
||||
"Show Keybindings Dialog": "عرض مربع حوار اختصارات لوحة المفاتيح",
|
||||
"Show Model Selector (Dev)": "إظهار منتقي النماذج (للمطورين)",
|
||||
"Show Settings Dialog": "عرض نافذة الإعدادات",
|
||||
"Sign Out": "تسجيل خروج",
|
||||
"Toggle App Mode": "تبديل وضع التطبيق",
|
||||
"Toggle Essential Bottom Panel": "تبديل لوحة العناصر الأساسية السفلية",
|
||||
"Toggle Logs Bottom Panel": "تبديل لوحة السجلات السفلية",
|
||||
"Toggle Queue Panel V2": "تبديل لوحة قائمة الانتظار V2",
|
||||
"Toggle Search Box": "تبديل مربع البحث",
|
||||
"Toggle App Mode": "تبديل وضع التطبيق",
|
||||
"Toggle Terminal Bottom Panel": "تبديل لوحة الطرفية السفلية",
|
||||
"Toggle Theme (Dark/Light)": "تبديل السمة (داكن/فاتح)",
|
||||
"Toggle View Controls Bottom Panel": "تبديل لوحة عناصر التحكم في العرض السفلية",
|
||||
"Toggle promotion of hovered widget": "تبديل ترقية عنصر واجهة المستخدم المحدد",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "بايت دانس",
|
||||
"Gemini": "جيميني",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "إيديوغرام",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "المدخلات المفضلة",
|
||||
"favoritesNone": "لا توجد مدخلات مفضلة",
|
||||
"favoritesNoneDesc": "ستظهر المدخلات التي تضعها في المفضلة هنا",
|
||||
"favoritesNoneHint": "في علامة تبويب المعلمات، انقر على {moreIcon} بجانب أي إدخال لإضافته هنا",
|
||||
"favoritesNoneTooltip": "قم بوضع نجمة على الأدوات للوصول السريع إليها دون اختيار العقد",
|
||||
"globalSettings": {
|
||||
"canvas": "اللوحة",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "تبديل لوحة الخصائص",
|
||||
"workflowOverview": "نظرة عامة على سير العمل"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "إضافة سر",
|
||||
"createdAt": "تم الإنشاء في {date}",
|
||||
"deleteConfirmMessage": "هل أنت متأكد أنك تريد حذف \"{name}\"؟ لا يمكن التراجع عن هذا الإجراء.",
|
||||
"deleteConfirmTitle": "حذف السر",
|
||||
"description": "يتم تشفير الأسرار وتُستخدم للبيانات الحساسة مثل مفاتيح API.",
|
||||
"descriptionUsage": "قم بتخزين رموزك هنا لتمكين تنزيل النماذج الخاصة والمحمية من المزودين المدعومين.",
|
||||
"editSecret": "تعديل السر",
|
||||
"errors": {
|
||||
"duplicateName": "يوجد سر بهذا الاسم بالفعل",
|
||||
"duplicateProvider": "يوجد سر لهذا المزود بالفعل",
|
||||
"nameRequired": "الاسم مطلوب",
|
||||
"nameTooLong": "يجب ألا يزيد الاسم عن ٢٥٥ حرفًا",
|
||||
"providerRequired": "المزود مطلوب",
|
||||
"secretValueRequired": "قيمة السر مطلوبة"
|
||||
},
|
||||
"lastUsed": "آخر استخدام في {date}",
|
||||
"modelProviders": "مزودو النماذج",
|
||||
"name": "الاسم",
|
||||
"namePlaceholder": "مثال: مفتاح API الخاص بي",
|
||||
"noSecrets": "لا توجد أسرار مخزنة. أضف أول مفتاح API للبدء.",
|
||||
"provider": "المزود",
|
||||
"providerHint": "اختياري. اختيار مزود يتيح استخدام الرمز تلقائيًا.",
|
||||
"secretValue": "قيمة السر",
|
||||
"secretValueHint": "سيتم تشفير هذه القيمة ولا يمكن عرضها مرة أخرى.",
|
||||
"secretValueHintEdit": "اترك الحقل فارغًا للاحتفاظ بالقيمة الحالية.",
|
||||
"secretValuePlaceholder": "أدخل مفتاح API الخاص بك",
|
||||
"secretValuePlaceholderEdit": "أدخل قيمة جديدة للتغيير",
|
||||
"title": "مفاتيح API والأسرار"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "تجاوز عقد المجموعة",
|
||||
"Set Group Nodes to Always": "تعيين عقد المجموعة إلى دائمًا",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "إعادة التوجيه",
|
||||
"RerouteBeta": "إعادة توجيه بيتا",
|
||||
"Scene": "المشهد",
|
||||
"Secrets": "الأسرار",
|
||||
"Server": "الخادم",
|
||||
"Server-Config": "إعدادات الخادم",
|
||||
"Settings": "الإعدادات",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "اسم المخطط الفرعي",
|
||||
"blueprintNamePrompt": "اسم المخطط الفرعي:",
|
||||
"cannotDeleteGlobal": "لا يمكن حذف المخططات المثبتة",
|
||||
"confirmDelete": "سيؤدي هذا الإجراء إلى إزالة المخطط نهائيًا من مكتبتك",
|
||||
"confirmDeleteTitle": "حذف المخطط؟",
|
||||
"enterDescription": "أدخل وصفًا",
|
||||
"enterSearchAliases": "أدخل الأسماء المستعارة للبحث (مفصولة بفواصل)",
|
||||
"hidden": "معاملات مخفية / متداخلة",
|
||||
"hideAll": "إخفاء الكل",
|
||||
"loadFailure": "فشل تحميل مخططات الرسم البياني الفرعي",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "تم الحفظ في مكتبة العقد",
|
||||
"publishSuccessMessage": "يمكنك العثور على مخطط الرسم البياني الفرعي الخاص بك في مكتبة العقد ضمن \"مخططات الرسم البياني الفرعي\"",
|
||||
"saveBlueprint": "احفظ المخطط الفرعي في المكتبة",
|
||||
"searchAliases": "بحث عن الأسماء المستعارة",
|
||||
"showAll": "إظهار الكل",
|
||||
"showRecommended": "إظهار العناصر الموصى بها",
|
||||
"shown": "معروض على العقدة"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "أدخل اسم الملف",
|
||||
"enterFilenamePrompt": "أدخل اسم الملف:",
|
||||
"exportWorkflow": "تصدير سير العمل",
|
||||
"saveWorkflow": "حفظ سير العمل"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "حجم الدفعة",
|
||||
"tooltip": "عدد صور latent في الدفعة."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "ثواني"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "خطوة الصوت الكامن الفارغ",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "تكبير الصور منخفضة الدقة إلى دقة فائقة، إزالة الشوائب والضوضاء. الحد الأقصى للإخراج: ٣٢ ميغابيكسل.",
|
||||
"display_name": "تحسين الصورة العام من HitPaw",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "تصغير تلقائي",
|
||||
"tooltip": "تصغير الصورة المدخلة تلقائياً إذا تجاوز الإخراج الحد المسموح."
|
||||
},
|
||||
"image": {
|
||||
"name": "الصورة"
|
||||
},
|
||||
"model": {
|
||||
"name": "النموذج"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "عامل التكبير"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "تكبير مقاطع الفيديو منخفضة الدقة إلى دقة عالية، إزالة الشوائب والضوضاء. الأسعار لكل ثانية من الفيديو.",
|
||||
"display_name": "تحسين الفيديو العام من HitPaw",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "النموذج"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "الدقة"
|
||||
},
|
||||
"video": {
|
||||
"name": "الفيديو"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2التكييف",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,7 @@
|
||||
"Load3D": {
|
||||
"display_name": "تحميل ثلاثي الأبعاد",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": "مسح",
|
||||
"height": {
|
||||
"name": "الارتفاع"
|
||||
},
|
||||
@@ -6367,8 +6428,8 @@
|
||||
"model_file": {
|
||||
"name": "ملف النموذج"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": "رفع نموذج ثلاثي الأبعاد",
|
||||
"upload extra resources": "رفع موارد إضافية",
|
||||
"width": {
|
||||
"name": "العرض"
|
||||
}
|
||||
@@ -7252,12 +7313,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: من صورة إلى نموذج",
|
||||
@@ -7303,16 +7369,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: من صور متعددة إلى نموذج",
|
||||
@@ -7358,16 +7426,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "تحسين نموذج أولي تم إنشاؤه مسبقًا.",
|
||||
@@ -7392,16 +7462,18 @@
|
||||
"tooltip": "أدخل نصًا لتوجيه عملية الإكساء. الحد الأقصى ٦٠٠ حرف. لا يمكن استخدامه مع 'texture_image' في نفس الوقت."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "يوفر شخصية مجهزة بالحركة بصيغ قياسية. التجهيز التلقائي غير مناسب حاليًا للنماذج غير المكسوة، أو الأصول غير البشرية، أو الأصول البشرية ذات البنية غير الواضحة للأطراف والجسم.",
|
||||
@@ -7419,16 +7491,18 @@
|
||||
"tooltip": "صورة الإكساء الأساسية (UV-unwrapped) للنموذج."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: تحويل النص إلى نموذج",
|
||||
@@ -7467,16 +7541,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: نموذج النسيج",
|
||||
@@ -7503,16 +7579,18 @@
|
||||
"tooltip": "صف نمط النسيج المطلوب للكائن باستخدام النص. الحد الأقصى ٦٠٠ حرف. لا يمكن استخدامه مع 'image_style' في نفس الوقت."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرّف مهمة Meshy",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "ينشئ مقاطع فيديو من المُوجِّه، مع إطار أول اختياري باستخدام نموذج MiniMax Hailuo-02 الجديد.",
|
||||
@@ -10709,11 +10787,9 @@
|
||||
"camera_info": {
|
||||
"name": "معلومات الكاميرا"
|
||||
},
|
||||
"image": {
|
||||
"name": "الصورة"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "ملف النموذج"
|
||||
"name": "ملف النموذج",
|
||||
"tooltip": "ملف النموذج ثلاثي الأبعاد أو مسار الملف"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11430,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "تحدد هذه العقدة الصوت المرجعي للـ timbre (لـ ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "تهيئة"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "استخراج التعبير النمطي",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11775,13 @@
|
||||
"name": "البذرة"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسار_النموذج_ثلاثي_الأبعاد",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "توليد أصول ثلاثية الأبعاد باستخدام واجهة برمجة تطبيقات رودين",
|
||||
@@ -11709,12 +11803,13 @@
|
||||
"name": "وضعية_TAP"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسار النموذج ثلاثي الأبعاد",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "توليد أصول ثلاثية الأبعاد باستخدام واجهة برمجة تطبيقات رودين",
|
||||
@@ -11733,12 +11828,13 @@
|
||||
"name": "البذرة"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسار النموذج ثلاثي الأبعاد",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "توليد أصول ثلاثية الأبعاد باستخدام واجهة برمجة تطبيقات رودين",
|
||||
@@ -11751,12 +11847,13 @@
|
||||
"name": "البذرة"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسار النموذج ثلاثي الأبعاد",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "توليد أصول ثلاثية الأبعاد باستخدام واجهة برمجة تطبيقات رودين",
|
||||
@@ -11775,12 +11872,13 @@
|
||||
"name": "البذرة"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسار النموذج ثلاثي الأبعاد",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "قم برفع الإطارات الرئيسية الأولى والأخيرة، واكتب موجهًا، وقم بتوليد فيديو. قد تستفيد التحولات الأكثر تعقيدًا، مثل الحالات التي يختلف فيها الإطار الأخير تمامًا عن الإطار الأول، من المدة الأطول البالغة 10 ثوانٍ. سيمنح هذا التوليد مزيدًا من الوقت للانتقال بسلاسة بين المدخلين. قبل البدء، راجع أفضل الممارسات هذه لضمان أن اختياراتك للمدخلات ستؤدي إلى نجاح التوليد: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12605,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "بادئة اسم الملف"
|
||||
},
|
||||
"image": {
|
||||
"name": "الصورة"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "الشبكة"
|
||||
"name": "الشبكة",
|
||||
"tooltip": "شبكة أو ملف GLB للحفظ"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13860,17 @@
|
||||
"tooltip": "البذرة تتحكم فيما إذا كان يجب إعادة تشغيل العقدة؛ النتائج غير حتمية بغض النظر عن البذرة."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: من نص إلى نموذج (احترافي)",
|
||||
@@ -13799,12 +13900,17 @@
|
||||
"tooltip": "البذرة تتحكم فيما إذا كان يجب إعادة تشغيل العقدة؛ النتائج غير حتمية بغض النظر عن البذرة."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13934,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "الإيقاع (BPM)"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "التحكم بعد التوليد"
|
||||
},
|
||||
"duration": {
|
||||
"name": "المدة"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "المقام الموسيقي"
|
||||
},
|
||||
"language": {
|
||||
"name": "اللغة"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "كلمات الأغنية"
|
||||
},
|
||||
"seed": {
|
||||
"name": "البذرة"
|
||||
},
|
||||
"tags": {
|
||||
"name": "الوسوم"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "توقيع الإيقاع"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "ترميز النص لفيديو Hunyuan - من صورة إلى فيديو",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14529,14 @@
|
||||
"name": "بذرة النسيج"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: متعدد المناظر إلى نموذج",
|
||||
@@ -14444,16 +14588,14 @@
|
||||
"name": "بذرة_الملمس"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "تحسين نموذج مسود تم إنشاؤه بواسطة نماذج Tripo الإصدار 1.4 فقط.",
|
||||
@@ -14464,16 +14606,14 @@
|
||||
"tooltip": "يجب أن يكون نموذج Tripo الإصدار 1.4"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: إعادة توجيه النموذج المجهز",
|
||||
@@ -14485,16 +14625,14 @@
|
||||
"name": "معرف_مهمة_النموذج_الأصلي"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_إعادة_التوجيه",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: تجهيز النموذج",
|
||||
@@ -14503,16 +14641,14 @@
|
||||
"name": "معرف_مهمة_النموذج_الأصلي"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_التجهيز",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: النص إلى نموذج",
|
||||
@@ -14557,16 +14693,14 @@
|
||||
"name": "بذرة_الملمس"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: نموذج الملمس",
|
||||
@@ -14590,16 +14724,14 @@
|
||||
"name": "بذرة_الملمس"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "ملف_النموذج",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "معرف_مهمة_النموذج",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "اقتطاع النص",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "يتحكم في مظهر ووضوح الروابط بين العقد على اللوحة."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "تمكين عارض ثلاثي الأبعاد (تجريبي)",
|
||||
"tooltip": "تمكين عارض ثلاثي الأبعاد (تجريبي) للعقد المحددة. تتيح هذه الميزة عرض النماذج ثلاثية الأبعاد والتفاعل معها مباشرة داخل العارض ثلاثي الأبعاد بحجمه الكامل."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "لون الخلفية الابتدائي",
|
||||
"tooltip": "يحدد لون الخلفية الافتراضي للمشهد ثلاثي الأبعاد. يمكن تعديل هذا اللون لكل عنصر ثلاثي الأبعاد بعد الإنشاء."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "نوع الكاميرا الابتدائي",
|
||||
"options": {
|
||||
"orthographic": "متعامد",
|
||||
"perspective": "منظور"
|
||||
},
|
||||
"tooltip": "يحدد ما إذا كانت الكاميرا منظور أو متعامدة بشكل افتراضي عند إنشاء عنصر ثلاثي الأبعاد جديد. يمكن تعديل هذا الإعداد لكل عنصر بعد الإنشاء."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "زيادة تعديل الضوء",
|
||||
"tooltip": "يتحكم في حجم الخطوة عند تعديل شدة الإضاءة في المشاهد ثلاثية الأبعاد. قيمة أصغر تسمح بتحكم أدق، وأكبر قيمة تعطي تغييرات أكثر وضوحًا."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "شدة الإضاءة الابتدائية",
|
||||
"tooltip": "يحدد مستوى سطوع الإضاءة الافتراضي في المشهد ثلاثي الأبعاد. يمكن تعديله لكل عنصر بعد الإنشاء."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "أقصى شدة إضاءة",
|
||||
"tooltip": "يحدد الحد الأقصى المسموح به لشدة الإضاءة في المشاهد ثلاثية الأبعاد."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "أدنى شدة إضاءة",
|
||||
"tooltip": "يحدد الحد الأدنى المسموح به لشدة الإضاءة في المشاهد ثلاثية الأبعاد."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "محرك PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "اختر المحرك لتحميل ملفات PLY. \"threejs\" يستخدم PLYLoader الأصلي من Three.js (الأفضل لملفات PLY الشبكية). \"fastply\" يستخدم محمل محسن لملفات PLY السحابية النقطية بنسق ASCII. \"sparkjs\" يستخدم Spark.js لملفات PLY الخاصة بتوزيع Gaussian ثلاثي الأبعاد."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "رؤية الشبكة الابتدائية",
|
||||
"tooltip": "يتحكم في ظهور الشبكة بشكل افتراضي عند إنشاء عنصر ثلاثي الأبعاد جديد."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "اللغة"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "عرض شارة تسعير عقدة API"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "تفعيل الاستبدال التلقائي للعقد",
|
||||
"tooltip": "عند التفعيل، يمكن استبدال العقد المفقودة تلقائيًا بنظيراتها الأحدث إذا كان هناك مخطط استبدال متوفر."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "تنفيذ مربع بحث العقدة",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Restart"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Open 3D Viewer (Beta) for Selected Node"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Experimental: Browse Model Assets"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Show Settings Dialog"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Set Subgraph Description"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Set Subgraph Search Aliases"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Experimental: Enable AssetAPI"
|
||||
},
|
||||
@@ -314,12 +317,6 @@
|
||||
"Workspace_ToggleBottomPanel_Shortcuts": {
|
||||
"label": "Show Keybindings Dialog"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Toggle Terminal Bottom Panel"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Toggle Logs Bottom Panel"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Toggle Essential Bottom Panel"
|
||||
},
|
||||
|
||||
@@ -1030,7 +1030,10 @@
|
||||
"hidden": "Hidden / nested parameters",
|
||||
"hideAll": "Hide all",
|
||||
"showRecommended": "Show recommended widgets",
|
||||
"cannotDeleteGlobal": "Cannot delete installed blueprints"
|
||||
"cannotDeleteGlobal": "Cannot delete installed blueprints",
|
||||
"enterDescription": "Enter a description",
|
||||
"searchAliases": "Search Aliases",
|
||||
"enterSearchAliases": "Enter search aliases (comma separated)"
|
||||
},
|
||||
"electronFileDownload": {
|
||||
"inProgress": "In Progress",
|
||||
@@ -1171,7 +1174,6 @@
|
||||
"Quit": "Quit",
|
||||
"Reinstall": "Reinstall",
|
||||
"Restart": "Restart",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Open 3D Viewer (Beta) for Selected Node",
|
||||
"Experimental: Browse Model Assets": "Experimental: Browse Model Assets",
|
||||
"Browse Templates": "Browse Templates",
|
||||
"Delete Selected Items": "Delete Selected Items",
|
||||
@@ -1248,6 +1250,8 @@
|
||||
"Save": "Save",
|
||||
"Save As": "Save As",
|
||||
"Show Settings Dialog": "Show Settings Dialog",
|
||||
"Set Subgraph Description": "Set Subgraph Description",
|
||||
"Set Subgraph Search Aliases": "Set Subgraph Search Aliases",
|
||||
"Experimental: Enable AssetAPI": "Experimental: Enable AssetAPI",
|
||||
"Canvas Performance": "Canvas Performance",
|
||||
"Help Center": "Help Center",
|
||||
@@ -1264,8 +1268,6 @@
|
||||
"Toggle Search Box": "Toggle Search Box",
|
||||
"Bottom Panel": "Bottom Panel",
|
||||
"Show Keybindings Dialog": "Show Keybindings Dialog",
|
||||
"Toggle Terminal Bottom Panel": "Toggle Terminal Bottom Panel",
|
||||
"Toggle Logs Bottom Panel": "Toggle Logs Bottom Panel",
|
||||
"Toggle Essential Bottom Panel": "Toggle Essential Bottom Panel",
|
||||
"Toggle View Controls Bottom Panel": "Toggle View Controls Bottom Panel",
|
||||
"Focus Mode": "Focus Mode",
|
||||
@@ -1529,6 +1531,7 @@
|
||||
"video_models": "video_models",
|
||||
"gligen": "gligen",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"sd": "sd",
|
||||
"Ideogram": "Ideogram",
|
||||
"postprocessing": "postprocessing",
|
||||
@@ -1597,6 +1600,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "CONDITIONING",
|
||||
"CONTROL_NET": "CONTROL_NET",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "FLOAT",
|
||||
"FLOATS": "FLOATS",
|
||||
"GEMINI_INPUT_FILES": "GEMINI_INPUT_FILES",
|
||||
@@ -2796,6 +2806,14 @@
|
||||
"replacementInstruction": "Install these nodes to run this workflow, or replace them with installed alternatives. Missing nodes are highlighted in red on the canvas."
|
||||
}
|
||||
},
|
||||
"nodeReplacement": {
|
||||
"replaceable": "Replaceable",
|
||||
"replace": "Replace",
|
||||
"replaceAll": "Replace All",
|
||||
"replacedNode": "Replaced node: {nodeType}",
|
||||
"replacedAllNodes": "Replaced {count} node type(s)",
|
||||
"replaceFailed": "Failed to replace nodes"
|
||||
},
|
||||
"rightSidePanel": {
|
||||
"togglePanel": "Toggle properties panel",
|
||||
"noSelection": "Select a node to see its properties and info.",
|
||||
|
||||
@@ -2209,8 +2209,25 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"seconds": {
|
||||
"name": "seconds"
|
||||
},
|
||||
"batch_size": {
|
||||
"name": "batch_size",
|
||||
"tooltip": "The number of latent images in the batch."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"display_name": "Empty Ace Step 1.0 Latent Audio",
|
||||
"inputs": {
|
||||
"seconds": {
|
||||
"name": "seconds"
|
||||
@@ -3561,6 +3578,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"display_name": "HitPaw General Image Enhance",
|
||||
"description": "Upscale low-resolution images to super-resolution, eliminate artifacts and noise. Maximum output: 32 megapixels.",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "model"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "upscale_factor"
|
||||
},
|
||||
"auto_downscale": {
|
||||
"name": "auto_downscale",
|
||||
"tooltip": "Automatically downscale input image if output would exceed the limit."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"display_name": "HitPaw Video Enhance",
|
||||
"description": "Upscale low-resolution videos to high resolution, eliminate artifacts and noise. Prices shown are per second of video.",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "model"
|
||||
},
|
||||
"video": {
|
||||
"name": "video"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "resolution"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6043,6 +6104,10 @@
|
||||
"5": {
|
||||
"name": "recording_video",
|
||||
"tooltip": null
|
||||
},
|
||||
"6": {
|
||||
"name": "model_3d",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7274,6 +7339,14 @@
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7329,6 +7402,14 @@
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7384,6 +7465,14 @@
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7418,6 +7507,14 @@
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7445,6 +7542,14 @@
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7493,6 +7598,14 @@
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7529,6 +7642,14 @@
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10722,16 +10843,14 @@
|
||||
"display_name": "Preview 3D & Animation",
|
||||
"inputs": {
|
||||
"model_file": {
|
||||
"name": "model_file"
|
||||
"name": "model_file",
|
||||
"tooltip": "3D model file or path string"
|
||||
},
|
||||
"camera_info": {
|
||||
"name": "camera_info"
|
||||
},
|
||||
"bg_image": {
|
||||
"name": "bg_image"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11372,6 +11491,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"description": "This node sets the reference audio for timbre (for ace step 1.5)",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "conditioning"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Regex Extract",
|
||||
"inputs": {
|
||||
@@ -11704,6 +11840,10 @@
|
||||
"0": {
|
||||
"name": "3D Model Path",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11731,6 +11871,10 @@
|
||||
"0": {
|
||||
"name": "3D Model Path",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11755,6 +11899,10 @@
|
||||
"0": {
|
||||
"name": "3D Model Path",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11773,6 +11921,10 @@
|
||||
"0": {
|
||||
"name": "3D Model Path",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11797,6 +11949,10 @@
|
||||
"0": {
|
||||
"name": "3D Model Path",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12389,16 +12545,14 @@
|
||||
}
|
||||
},
|
||||
"SaveGLB": {
|
||||
"display_name": "SaveGLB",
|
||||
"display_name": "Save 3D Model",
|
||||
"inputs": {
|
||||
"mesh": {
|
||||
"name": "mesh"
|
||||
"name": "mesh",
|
||||
"tooltip": "Mesh or 3D file to save"
|
||||
},
|
||||
"filename_prefix": {
|
||||
"name": "filename_prefix"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13797,6 +13951,14 @@
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13832,6 +13994,14 @@
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13857,6 +14027,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"tags": {
|
||||
"name": "tags"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "lyrics"
|
||||
},
|
||||
"seed": {
|
||||
"name": "seed"
|
||||
},
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"duration": {
|
||||
"name": "duration"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "timesignature"
|
||||
},
|
||||
"language": {
|
||||
"name": "language"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "keyscale"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "control after generate"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14420,6 +14630,10 @@
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14481,6 +14695,10 @@
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14501,6 +14719,10 @@
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14522,6 +14744,10 @@
|
||||
"1": {
|
||||
"name": "retarget task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14540,6 +14766,10 @@
|
||||
"1": {
|
||||
"name": "rig task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14594,6 +14824,10 @@
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14627,6 +14861,10 @@
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
"Hidden": "Hidden"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "Enable 3D Viewer (Beta)",
|
||||
"tooltip": "Enables the 3D Viewer (Beta) for selected nodes. This feature allows you to visualize and interact with 3D models directly within the full size 3d viewer."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Initial Background Color",
|
||||
"tooltip": "Controls the default background color of the 3D scene. This setting determines the background appearance when a new 3D widget is created, but can be adjusted individually for each widget after creation."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Initial Camera Type",
|
||||
"tooltip": "Controls whether the camera is perspective or orthographic by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation.",
|
||||
"options": {
|
||||
"perspective": "perspective",
|
||||
"orthographic": "orthographic"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Light Adjustment Increment",
|
||||
"tooltip": "Controls the increment size when adjusting light intensity in 3D scenes. A smaller step value allows for finer control over lighting adjustments, while a larger value results in more noticeable changes per adjustment."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Initial Light Intensity",
|
||||
"tooltip": "Sets the default brightness level of lighting in the 3D scene. This value determines how intensely lights illuminate objects when a new 3D widget is created, but can be adjusted individually for each widget after creation."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Light Intensity Maximum",
|
||||
"tooltip": "Sets the maximum allowable light intensity value for 3D scenes. This defines the upper brightness limit that can be set when adjusting lighting in any 3D widget."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Light Intensity Minimum",
|
||||
"tooltip": "Sets the minimum allowable light intensity value for 3D scenes. This defines the lower brightness limit that can be set when adjusting lighting in any 3D widget."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLY Engine",
|
||||
"tooltip": "Select the engine for loading PLY files. \"threejs\" uses the native Three.js PLYLoader (best for mesh PLY files). \"fastply\" uses an optimized loader for ASCII point cloud PLY files. \"sparkjs\" uses Spark.js for 3D Gaussian Splatting PLY files.",
|
||||
"options": {
|
||||
"threejs": "threejs",
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs"
|
||||
}
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Initial Grid Visibility",
|
||||
"tooltip": "Controls whether the grid is visible by default when a new 3D widget is created. This default can still be toggled individually for each widget after creation."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Language"
|
||||
},
|
||||
@@ -280,6 +235,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "Show API node pricing badge"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Enable automatic node replacement",
|
||||
"tooltip": "When enabled, missing nodes can be automatically replaced with their newer equivalents if a replacement mapping exists."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Node search box implementation",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Reiniciar"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Abrir visor 3D (Beta) para el nodo seleccionado"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Experimental: Explorar recursos de modelos"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Mostrar Diálogo de Configuraciones"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Establecer descripción del subgrafo"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Establecer alias de búsqueda del subgrafo"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Experimental: Habilitar AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "Alternar Panel Inferior"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Alternar Panel Inferior de Terminal"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Alternar Panel Inferior de Registros"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Alternar panel inferior esencial"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "Todo {category}",
|
||||
"allModels": "Todos los modelos",
|
||||
"apiKeyHint": "¿Importas modelos privados o restringidos? {link}.",
|
||||
"apiKeyHintLink": "Agrega tus claves de API en Configuración",
|
||||
"ariaLabel": {
|
||||
"assetCard": "Recurso {name} - {type}",
|
||||
"loadingAsset": "Cargando recurso"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "Aún no hay modelos importados. Haz clic en \"Importar modelo\" para añadir el tuyo.",
|
||||
"restricted": "Los modelos personales solo están disponibles en el nivel Creador o superior."
|
||||
},
|
||||
"errorAccessForbidden": "Acceso prohibido a este recurso.",
|
||||
"errorConnectionRefused": "No se puede conectar a la fuente. Por favor, inténtalo de nuevo más tarde.",
|
||||
"errorDownloadCancelled": "La descarga fue cancelada.",
|
||||
"errorFileTooLarge": "El archivo excede el tamaño máximo permitido",
|
||||
"errorFormatNotAllowed": "Solo se permite el formato SafeTensor",
|
||||
"errorHttpError": "Ocurrió un error al obtener los metadatos.",
|
||||
"errorInternalError": "Ocurrió un error inesperado. Por favor, inténtalo de nuevo.",
|
||||
"errorInvalidHost": "No se pudo resolver el nombre de host de la URL de origen.",
|
||||
"errorInvalidUrl": "Por favor, proporciona una URL.",
|
||||
"errorInvalidUrlFormat": "El formato de la URL no es válido. Por favor, revisa e inténtalo de nuevo.",
|
||||
"errorMetadataFetchFailed": "No se pudo obtener la información del archivo desde la fuente.",
|
||||
"errorModelTypeNotSupported": "Este tipo de modelo no es compatible",
|
||||
"errorNetworkError": "Ocurrió un error de red. Por favor, revisa tu conexión e inténtalo de nuevo.",
|
||||
"errorNetworkTimeout": "La solicitud ha expirado. Por favor, inténtalo de nuevo.",
|
||||
"errorRateLimited": "Demasiadas solicitudes. Por favor, inténtalo de nuevo en unos minutos.",
|
||||
"errorRequestCancelled": "La solicitud fue cancelada.",
|
||||
"errorResourceNotFound": "No se encontró el archivo. Por favor, revisa la URL e inténtalo de nuevo.",
|
||||
"errorServiceUnavailable": "Servicio temporalmente no disponible. Por favor, inténtalo de nuevo más tarde.",
|
||||
"errorSourceServerError": "El servidor de origen está experimentando problemas. Por favor, inténtalo de nuevo más tarde.",
|
||||
"errorUnauthorized": "Por favor, inicia sesión para continuar.",
|
||||
"errorUnauthorizedSource": "Este recurso requiere autenticación. Añade tu token de API en la configuración.",
|
||||
"errorUnknown": "Ocurrió un error inesperado",
|
||||
"errorUnsafePickleScan": "CivitAI detectó código potencialmente inseguro en este archivo",
|
||||
"errorUnsafeVirusScan": "CivitAI detectó malware o contenido sospechoso en este archivo",
|
||||
"errorUnsupportedSource": "Esta URL no es compatible. Solo se permiten URLs de Hugging Face y Civitai.",
|
||||
"errorUploadFailed": "No se pudo importar el activo. Por favor, inténtalo de nuevo.",
|
||||
"errorUserTokenAccessDenied": "Tu token de API no tiene acceso a este recurso. Por favor, revisa los permisos de tu token.",
|
||||
"errorUserTokenInvalid": "Tu token de API almacenado no es válido o ha expirado. Por favor, actualiza tu token en la configuración.",
|
||||
"failedToCreateNode": "No se pudo crear el nodo. Inténtalo de nuevo o revisa la consola para más detalles.",
|
||||
"fileFormats": "Formatos de archivo",
|
||||
"fileName": "Nombre del archivo",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "ACONDICIONAMIENTO",
|
||||
"CONTROL_NET": "RED_DE_CONTROL",
|
||||
"FILE_3D": "ARCHIVO_3D",
|
||||
"FILE_3D_FBX": "ARCHIVO_3D_FBX",
|
||||
"FILE_3D_GLB": "ARCHIVO_3D_GLB",
|
||||
"FILE_3D_GLTF": "ARCHIVO_3D_GLTF",
|
||||
"FILE_3D_OBJ": "ARCHIVO_3D_OBJ",
|
||||
"FILE_3D_STL": "ARCHIVO_3D_STL",
|
||||
"FILE_3D_USDZ": "ARCHIVO_3D_USDZ",
|
||||
"FLOAT": "FLOTANTE",
|
||||
"FLOATS": "FLOTANTES",
|
||||
"GEMINI_INPUT_FILES": "ARCHIVOS_ENTRADA_GEMINI",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "El comando {command} está prohibido. Contacta a un administrador para más información.",
|
||||
"community": "Comunidad",
|
||||
"completed": "Completado",
|
||||
"completedWithCheckmark": "Completado ✓",
|
||||
"confirm": "Confirmar",
|
||||
"confirmed": "Confirmado",
|
||||
"content": "contenido",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "Descargar",
|
||||
"downloadImage": "Descargar imagen",
|
||||
"downloadVideo": "Descargar video",
|
||||
"downloadWithSize": "Descargar ({size})",
|
||||
"downloading": "Descargando",
|
||||
"dropYourFileOr": "Suelta tu archivo o",
|
||||
"duplicate": "Duplicar",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "Habilitando",
|
||||
"enterBaseName": "Introduce el nombre base",
|
||||
"enterNewName": "Introduce el nuevo nombre",
|
||||
"enterNewNamePrompt": "Introduce un nuevo nombre:",
|
||||
"error": "Error",
|
||||
"errorLoadingImage": "Error al cargar imagen",
|
||||
"errorLoadingVideo": "Error al cargar video",
|
||||
"experimental": "BETA",
|
||||
"export": "Exportar",
|
||||
"extensionName": "Nombre de la extensión",
|
||||
"extensions": "Extensiones",
|
||||
"failed": "Fallido",
|
||||
"failedToCopyJobId": "Error al copiar el ID de trabajo",
|
||||
"failedToDownloadImage": "Falló la descarga de imagen",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "ID de trabajo copiado al portapapeles",
|
||||
"keybinding": "Combinación de teclas",
|
||||
"keybindingAlreadyExists": "La combinación de teclas ya existe en",
|
||||
"keybindings": "Atajos de teclado",
|
||||
"learnMore": "Aprende más",
|
||||
"listening": "Escuchando...",
|
||||
"liveSamplingPreview": "Vista previa de muestreo en vivo",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "Archivo seleccionado",
|
||||
"setAsBackground": "Establecer como fondo",
|
||||
"settings": "Configuraciones",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "Mostrar panel izquierdo",
|
||||
"showReport": "Mostrar informe",
|
||||
"showRightPanel": "Mostrar panel derecho",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "Vista previa del recorte",
|
||||
"custom": "Personalizado",
|
||||
"loading": "Cargando...",
|
||||
"noInputImage": "No hay imagen de entrada conectada"
|
||||
"lockRatio": "Bloquear relación de aspecto",
|
||||
"noInputImage": "No hay imagen de entrada conectada",
|
||||
"ratio": "Relación",
|
||||
"unlockRatio": "Desbloquear relación de aspecto"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "Error al copiar",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "Modo App",
|
||||
"rerun": "Volver a ejecutar",
|
||||
"reuseParameters": "Reutilizar parámetros",
|
||||
"runCount": "Número de ejecuciones:"
|
||||
"runCount": "Número de ejecuciones:",
|
||||
"welcome": {
|
||||
"intro": "Una vista simplificada que oculta el grafo de nodos para que puedas concentrarte en crear.",
|
||||
"layout": "A la izquierda, verás tus imágenes, videos y resultados generados. A la derecha, solo los controles necesarios. Todo lo complejo queda fuera de la vista.",
|
||||
"sharing": "Compartir es fácil: crea tu flujo de trabajo, abre el Modo App, haz clic derecho en la pestaña y exporta. Cuando otros abran tu archivo, se lanzará directamente en esta vista limpia. Puedes compartir flujos de trabajo potentes como herramientas simples sin que nadie tenga que entender grafos de nodos.",
|
||||
"title": "Bienvenido al Modo App",
|
||||
"widget": "Si quieres controlar qué ajustes aparecen, convierte tus nodos principales en un subgrafo y luego usa la promoción de widgets en la barra de herramientas sobre él para elegir qué se expone."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "Aplicando textura...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "Biblioteca de Nodos",
|
||||
"Node Links": "Enlaces de nodos",
|
||||
"Open": "Abrir",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Abrir Visor 3D (Beta) para Nodo Seleccionado",
|
||||
"Open Color Picker in MaskEditor": "Abrir selector de color en MaskEditor",
|
||||
"Open Custom Nodes Folder": "Abrir carpeta de nodos personalizados",
|
||||
"Open DevTools": "Abrir herramientas de desarrollo",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "Girar a la derecha en el editor de máscaras",
|
||||
"Save": "Guardar",
|
||||
"Save As": "Guardar como",
|
||||
"Set Subgraph Description": "Establecer descripción del subgrafo",
|
||||
"Set Subgraph Search Aliases": "Establecer alias de búsqueda del subgrafo",
|
||||
"Show Keybindings Dialog": "Mostrar diálogo de combinaciones de teclas",
|
||||
"Show Model Selector (Dev)": "Mostrar selector de modelo (Desarrollo)",
|
||||
"Show Settings Dialog": "Mostrar diálogo de configuración",
|
||||
"Sign Out": "Cerrar sesión",
|
||||
"Toggle App Mode": "Alternar modo App",
|
||||
"Toggle Essential Bottom Panel": "Alternar panel inferior esencial",
|
||||
"Toggle Logs Bottom Panel": "Alternar panel inferior de registros",
|
||||
"Toggle Queue Panel V2": "Alternar panel de cola V2",
|
||||
"Toggle Search Box": "Alternar caja de búsqueda",
|
||||
"Toggle App Mode": "Alternar modo App",
|
||||
"Toggle Terminal Bottom Panel": "Alternar panel inferior de terminal",
|
||||
"Toggle Theme (Dark/Light)": "Alternar tema (Oscuro/Claro)",
|
||||
"Toggle View Controls Bottom Panel": "Alternar panel inferior de controles de vista",
|
||||
"Toggle promotion of hovered widget": "Alternar promoción del widget sobre el que se pasa el cursor",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "ENTRADAS FAVORITAS",
|
||||
"favoritesNone": "SIN ENTRADAS FAVORITAS",
|
||||
"favoritesNoneDesc": "Las entradas que marques como favoritas aparecerán aquí",
|
||||
"favoritesNoneHint": "En la pestaña Parámetros, haz clic en {moreIcon} en cualquier entrada para añadirla aquí",
|
||||
"favoritesNoneTooltip": "Marca widgets con estrella para acceder rápidamente sin seleccionar nodos",
|
||||
"globalSettings": {
|
||||
"canvas": "LIENZO",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "Mostrar/ocultar panel de propiedades",
|
||||
"workflowOverview": "Resumen del flujo de trabajo"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "Agregar secreto",
|
||||
"createdAt": "Creado el {date}",
|
||||
"deleteConfirmMessage": "¿Estás seguro de que deseas eliminar \"{name}\"? Esta acción no se puede deshacer.",
|
||||
"deleteConfirmTitle": "Eliminar secreto",
|
||||
"description": "Los secretos están cifrados y se utilizan para datos sensibles como claves API.",
|
||||
"descriptionUsage": "Guarda tus tokens aquí para habilitar la descarga de modelos privados y restringidos de proveedores compatibles.",
|
||||
"editSecret": "Editar secreto",
|
||||
"errors": {
|
||||
"duplicateName": "Ya existe un secreto con este nombre",
|
||||
"duplicateProvider": "Ya existe un secreto para este proveedor",
|
||||
"nameRequired": "El nombre es obligatorio",
|
||||
"nameTooLong": "El nombre debe tener 255 caracteres o menos",
|
||||
"providerRequired": "El proveedor es obligatorio",
|
||||
"secretValueRequired": "El valor secreto es obligatorio"
|
||||
},
|
||||
"lastUsed": "Último uso el {date}",
|
||||
"modelProviders": "Proveedores de modelos",
|
||||
"name": "Nombre",
|
||||
"namePlaceholder": "p. ej., Mi clave API",
|
||||
"noSecrets": "No hay secretos guardados. Agrega tu primera clave API para comenzar.",
|
||||
"provider": "Proveedor",
|
||||
"providerHint": "Opcional. Seleccionar un proveedor habilita el uso automático del token.",
|
||||
"secretValue": "Valor secreto",
|
||||
"secretValueHint": "Este valor será cifrado y no podrá ser visto nuevamente.",
|
||||
"secretValueHintEdit": "Déjalo en blanco para mantener el valor actual.",
|
||||
"secretValuePlaceholder": "Introduce tu clave API",
|
||||
"secretValuePlaceholderEdit": "Introduce un nuevo valor para cambiarlo",
|
||||
"title": "Claves API y Secretos"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "Omitir nodos de grupo",
|
||||
"Set Group Nodes to Always": "Establecer nodos de grupo en Siempre",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "Reenrutar",
|
||||
"RerouteBeta": "Reroute Beta",
|
||||
"Scene": "Escena",
|
||||
"Secrets": "Credenciales",
|
||||
"Server": "Servidor",
|
||||
"Server-Config": "Configuración del Servidor",
|
||||
"Settings": "Configuraciones",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "Nombre del subgrafo",
|
||||
"blueprintNamePrompt": "Nombre del subgrafo:",
|
||||
"cannotDeleteGlobal": "No se pueden eliminar los blueprints instalados",
|
||||
"confirmDelete": "Esta acción eliminará permanentemente el subgrafo de tu biblioteca",
|
||||
"confirmDeleteTitle": "¿Eliminar subgrafo?",
|
||||
"enterDescription": "Introduce una descripción",
|
||||
"enterSearchAliases": "Introduce alias de búsqueda (separados por comas)",
|
||||
"hidden": "Parámetros ocultos/anidados",
|
||||
"hideAll": "Ocultar todo",
|
||||
"loadFailure": "No se pudieron cargar los subgrafos",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "Guardado en la biblioteca de nodos",
|
||||
"publishSuccessMessage": "Puedes encontrar tu subgrafo en la biblioteca de nodos bajo \"Subgraph Blueprints\"",
|
||||
"saveBlueprint": "Guardar subgrafo en la biblioteca",
|
||||
"searchAliases": "Buscar alias",
|
||||
"showAll": "Mostrar todo",
|
||||
"showRecommended": "Mostrar widgets recomendados",
|
||||
"shown": "Mostrado en el nodo"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "Introduzca el nombre del archivo",
|
||||
"enterFilenamePrompt": "Introduce el nombre del archivo:",
|
||||
"exportWorkflow": "Exportar flujo de trabajo",
|
||||
"saveWorkflow": "Guardar flujo de trabajo"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "tamaño de lote",
|
||||
"tooltip": "El número de imágenes latentes en el lote."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "segundos"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "Aumenta la resolución de imágenes de baja calidad a superresolución, elimina artefactos y ruido. Salida máxima: 32 megapíxeles.",
|
||||
"display_name": "HitPaw General Image Enhance",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "reducción automática",
|
||||
"tooltip": "Reduce automáticamente la imagen de entrada si la salida supera el límite."
|
||||
},
|
||||
"image": {
|
||||
"name": "imagen"
|
||||
},
|
||||
"model": {
|
||||
"name": "modelo"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "factor de escalado"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "Aumenta la resolución de videos de baja calidad a alta resolución, elimina artefactos y ruido. Los precios mostrados son por segundo de video.",
|
||||
"display_name": "HitPaw Video Enhance",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "modelo"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "resolución"
|
||||
},
|
||||
"video": {
|
||||
"name": "video"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,9 @@
|
||||
"Load3D": {
|
||||
"display_name": "Cargar 3D",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": {
|
||||
"": "limpiar"
|
||||
},
|
||||
"height": {
|
||||
"name": "alto"
|
||||
},
|
||||
@@ -6367,8 +6430,12 @@
|
||||
"model_file": {
|
||||
"name": "archivo_modelo"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"": "subir modelo 3D"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"": "subir recursos adicionales"
|
||||
},
|
||||
"width": {
|
||||
"name": "ancho"
|
||||
}
|
||||
@@ -7252,12 +7319,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: Imagen a Modelo",
|
||||
@@ -7303,16 +7375,18 @@
|
||||
"name": "modo de simetría"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: Multi-Imagen a Modelo",
|
||||
@@ -7358,16 +7432,18 @@
|
||||
"name": "modo de simetría"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "Refina un modelo borrador previamente creado.",
|
||||
@@ -7392,16 +7468,18 @@
|
||||
"tooltip": "Proporcione un texto para guiar el proceso de texturizado. Máximo 600 caracteres. No se puede usar al mismo tiempo que 'texture_image'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "Proporciona un personaje riggeado en formatos estándar. El auto-rigging actualmente no es adecuado para mallas sin textura, activos no humanoides o activos humanoides con estructura de extremidades y cuerpo poco clara.",
|
||||
@@ -7419,16 +7497,18 @@
|
||||
"tooltip": "Imagen de textura de color base UV-desplegada del modelo."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: Texto a Modelo",
|
||||
@@ -7467,16 +7547,18 @@
|
||||
"name": "modo_simetría"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: Modelo de Textura",
|
||||
@@ -7503,16 +7585,18 @@
|
||||
"tooltip": "Describe el estilo de textura deseado para el objeto usando texto. Máximo 600 caracteres. No se puede usar al mismo tiempo que 'image_style'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "Genera videos a partir de un prompt, con opción de usar un fotograma inicial utilizando el nuevo modelo MiniMax Hailuo-02.",
|
||||
@@ -10709,11 +10793,9 @@
|
||||
"camera_info": {
|
||||
"name": "camera_info"
|
||||
},
|
||||
"image": {
|
||||
"name": "imagen"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "archivo_modelo"
|
||||
"name": "archivo_modelo",
|
||||
"tooltip": "Archivo de modelo 3D o ruta del archivo"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11436,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "Este nodo establece el audio de referencia para el timbre (para ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "condicionamiento"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Extracción Regex",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11781,13 @@
|
||||
"name": "Semilla"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Ruta Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Generar activos 3D usando la API de Rodin",
|
||||
@@ -11709,12 +11809,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Ruta Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Generar activos 3D usando la API de Rodin",
|
||||
@@ -11733,12 +11834,13 @@
|
||||
"name": "Semilla"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Ruta Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Generar activos 3D usando la API de Rodin",
|
||||
@@ -11751,12 +11853,13 @@
|
||||
"name": "Semilla"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Ruta del modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Generar activos 3D usando la API de Rodin",
|
||||
@@ -11775,12 +11878,13 @@
|
||||
"name": "Semilla"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Ruta del modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "Sube los primeros y últimos fotogramas clave, redacta un prompt y genera un video. Las transiciones más complejas, como casos donde el último fotograma es completamente diferente del primero, pueden beneficiarse de la duración más larga de 10s. Esto le daría a la generación más tiempo para transicionar suavemente entre las dos entradas. Antes de comenzar, revisa estas mejores prácticas para asegurar que tus selecciones de entrada preparen tu generación para el éxito: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12611,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "prefijo_nombre_archivo"
|
||||
},
|
||||
"image": {
|
||||
"name": "imagen"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "malla"
|
||||
"name": "malla",
|
||||
"tooltip": "Malla o archivo GLB para guardar"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13866,17 @@
|
||||
"tooltip": "La semilla controla si el nodo debe volver a ejecutarse; los resultados son no deterministas independientemente de la semilla."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: Texto a Modelo (Pro)",
|
||||
@@ -13799,12 +13906,17 @@
|
||||
"tooltip": "La semilla controla si el nodo debe volver a ejecutarse; los resultados son no deterministas independientemente de la semilla."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13940,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "controlar después de generar"
|
||||
},
|
||||
"duration": {
|
||||
"name": "duración"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "escala tonal"
|
||||
},
|
||||
"language": {
|
||||
"name": "idioma"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "letra"
|
||||
},
|
||||
"seed": {
|
||||
"name": "semilla"
|
||||
},
|
||||
"tags": {
|
||||
"name": "etiquetas"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "compás"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImagenAVideo",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14535,14 @@
|
||||
"name": "semilla_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_de_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_de_tarea_del_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: Multivista a Modelo",
|
||||
@@ -14444,16 +14594,14 @@
|
||||
"name": "semilla_de_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_de_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_de_tarea_del_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "Refina un modelo borrador creado únicamente por modelos Tripo v1.4.",
|
||||
@@ -14464,16 +14612,14 @@
|
||||
"tooltip": "Debe ser un modelo Tripo v1.4"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_de_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_de_tarea_del_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: Redireccionar modelo con rig",
|
||||
@@ -14485,16 +14631,14 @@
|
||||
"name": "ID_de_tarea_del_modelo_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_de_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_de_tarea_de_redireccionamiento",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: Modelo con rig",
|
||||
@@ -14503,16 +14647,14 @@
|
||||
"name": "ID_de_tarea_del_modelo_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_de_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_de_tarea_de_rig",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: Texto a Modelo",
|
||||
@@ -14557,16 +14699,14 @@
|
||||
"name": "semilla_de_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_del_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "tarea_del_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: Modelo de textura",
|
||||
@@ -14590,16 +14730,14 @@
|
||||
"name": "semilla_de_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "archivo_del_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "tarea_del_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "Truncar texto",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "Controla la apariencia y visibilidad de los enlaces de conexión entre nodos en el lienzo."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "Habilitar visor 3D (Beta)",
|
||||
"tooltip": "Activa el visor 3D (Beta) para los nodos seleccionados. Esta función te permite visualizar e interactuar con modelos 3D directamente dentro del visor 3D a tamaño completo."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Color de fondo inicial",
|
||||
"tooltip": "Controla el color de fondo predeterminado de la escena 3D. Esta configuración determina la apariencia del fondo cuando se crea un nuevo widget 3D, pero puede ajustarse individualmente para cada widget después de su creación."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Tipo de Cámara",
|
||||
"options": {
|
||||
"orthographic": "ortográfica",
|
||||
"perspective": "perspectiva"
|
||||
},
|
||||
"tooltip": "Controla si la cámara es perspectiva u ortográfica por defecto cuando se crea un nuevo widget 3D. Este valor predeterminado aún puede ser alternado individualmente para cada widget después de su creación."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Incremento de ajuste de luz",
|
||||
"tooltip": "Controla el tamaño del incremento al ajustar la intensidad de la luz en escenas 3D. Un valor de paso más pequeño permite un control más preciso sobre los ajustes de iluminación, mientras que un valor más grande resulta en cambios más notorios por cada ajuste."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Intensidad Inicial de la Luz",
|
||||
"tooltip": "Establece el nivel de brillo predeterminado de la iluminación en la escena 3D. Este valor determina cuán intensamente las luces iluminan los objetos cuando se crea un nuevo widget 3D, pero puede ajustarse individualmente para cada widget después de la creación."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Intensidad Máxima de Luz",
|
||||
"tooltip": "Establece el valor máximo permitido de intensidad de luz para escenas 3D. Esto define el límite superior de brillo que se puede ajustar al modificar la iluminación en cualquier widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Intensidad de luz mínima",
|
||||
"tooltip": "Establece el valor mínimo permitido de intensidad de luz para escenas 3D. Esto define el límite inferior de brillo que se puede ajustar al modificar la iluminación en cualquier widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "Motor PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "Selecciona el motor para cargar archivos PLY. \"threejs\" utiliza el cargador nativo Three.js PLYLoader (mejor para archivos PLY de malla). \"fastply\" utiliza un cargador optimizado para archivos PLY de nube de puntos ASCII. \"sparkjs\" utiliza Spark.js para archivos PLY de Gaussian Splatting 3D."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Mostrar Cuadrícula",
|
||||
"tooltip": "Cambiar para mostrar cuadrícula por defecto"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Idioma"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "Mostrar insignia de precios de nodo API"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Habilitar reemplazo automático de nodos",
|
||||
"tooltip": "Cuando está habilitado, los nodos faltantes pueden ser reemplazados automáticamente por sus equivalentes más nuevos si existe un mapeo de reemplazo."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Implementación de la caja de búsqueda de nodos",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "راهاندازی مجدد"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "باز کردن ۳D Viewer (بتا) برای node انتخابشده"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "آزمایشی: مرور Model Assets"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "نمایش پنجره تنظیمات"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "تنظیم توضیحات زیرگراف"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "تنظیم نامهای جایگزین جستجوی زیرگراف"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "آزمایشی: فعالسازی AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "تغییر پنل پایین"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "تغییر پنل ترمینال پایین"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "تغییر پنل گزارشها پایین"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "تغییر پنل ضروریات پایین"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "همه {category}",
|
||||
"allModels": "همه مدلها",
|
||||
"apiKeyHint": "مدلهای خصوصی یا محدود وارد میکنید؟ {link}.",
|
||||
"apiKeyHintLink": "کلیدهای API خود را در تنظیمات اضافه کنید",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - دارایی {type}",
|
||||
"loadingAsset": "در حال بارگذاری دارایی"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "هنوز مدلی وارد نشده است. برای افزودن مدل خود، روی «وارد کردن مدل» کلیک کنید.",
|
||||
"restricted": "مدلهای شخصی فقط برای سطح Creator و بالاتر در دسترس هستند."
|
||||
},
|
||||
"errorAccessForbidden": "دسترسی به این منبع مجاز نیست.",
|
||||
"errorConnectionRefused": "اتصال به منبع برقرار نشد. لطفاً بعداً دوباره تلاش کنید.",
|
||||
"errorDownloadCancelled": "دانلود لغو شد.",
|
||||
"errorFileTooLarge": "فایل از حداکثر اندازه مجاز بزرگتر است",
|
||||
"errorFormatNotAllowed": "فقط فرمت SafeTensor مجاز است",
|
||||
"errorHttpError": "هنگام دریافت اطلاعات خطایی رخ داد.",
|
||||
"errorInternalError": "یک خطای غیرمنتظره رخ داد. لطفاً دوباره تلاش کنید.",
|
||||
"errorInvalidHost": "نام میزبان URL منبع قابل شناسایی نیست.",
|
||||
"errorInvalidUrl": "لطفاً یک URL وارد کنید.",
|
||||
"errorInvalidUrlFormat": "فرمت URL نامعتبر است. لطفاً بررسی و دوباره تلاش کنید.",
|
||||
"errorMetadataFetchFailed": "دریافت اطلاعات فایل از منبع با شکست مواجه شد.",
|
||||
"errorModelTypeNotSupported": "این نوع مدل پشتیبانی نمیشود",
|
||||
"errorNetworkError": "یک خطای شبکه رخ داد. لطفاً اتصال خود را بررسی و دوباره تلاش کنید.",
|
||||
"errorNetworkTimeout": "درخواست زمانبر شد. لطفاً دوباره تلاش کنید.",
|
||||
"errorRateLimited": "درخواستهای بیش از حد. لطفاً چند دقیقه دیگر دوباره تلاش کنید.",
|
||||
"errorRequestCancelled": "درخواست لغو شد.",
|
||||
"errorResourceNotFound": "فایل پیدا نشد. لطفاً URL را بررسی و دوباره تلاش کنید.",
|
||||
"errorServiceUnavailable": "سرویس موقتاً در دسترس نیست. لطفاً بعداً دوباره تلاش کنید.",
|
||||
"errorSourceServerError": "سرور منبع با مشکل مواجه است. لطفاً بعداً دوباره تلاش کنید.",
|
||||
"errorUnauthorized": "لطفاً برای ادامه وارد شوید.",
|
||||
"errorUnauthorizedSource": "این منبع نیاز به احراز هویت دارد. لطفاً توکن API خود را در تنظیمات وارد کنید.",
|
||||
"errorUnknown": "خطای غیرمنتظرهای رخ داد",
|
||||
"errorUnsafePickleScan": "CivitAI کد بالقوه ناامن را در این فایل شناسایی کرد",
|
||||
"errorUnsafeVirusScan": "CivitAI بدافزار یا محتوای مشکوک را در این فایل شناسایی کرد",
|
||||
"errorUnsupportedSource": "این URL پشتیبانی نمیشود. فقط URLهای Hugging Face و Civitai مجاز هستند.",
|
||||
"errorUploadFailed": "وارد کردن دارایی ناموفق بود. لطفاً دوباره تلاش کنید.",
|
||||
"errorUserTokenAccessDenied": "توکن API شما به این منبع دسترسی ندارد. لطفاً مجوزهای توکن خود را بررسی کنید.",
|
||||
"errorUserTokenInvalid": "توکن API ذخیرهشده شما نامعتبر یا منقضی شده است. لطفاً توکن خود را در تنظیمات بهروزرسانی کنید.",
|
||||
"failedToCreateNode": "ایجاد node ناموفق بود. لطفاً دوباره تلاش کنید یا کنسول را بررسی کنید.",
|
||||
"fileFormats": "فرمتهای فایل",
|
||||
"fileName": "نام فایل",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "Comfy MatchType V3",
|
||||
"CONDITIONING": "شرطگذاری",
|
||||
"CONTROL_NET": "controlnet",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "عدد اعشاری",
|
||||
"FLOATS": "اعداد اعشاری",
|
||||
"GEMINI_INPUT_FILES": "فایلهای ورودی Gemini",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "دستور {command} مجاز نیست. برای اطلاعات بیشتر با مدیر تماس بگیرید.",
|
||||
"community": "انجمن",
|
||||
"completed": "تکمیل شده",
|
||||
"completedWithCheckmark": "تکمیل شد ✓",
|
||||
"confirm": "تأیید",
|
||||
"confirmed": "تأیید شد",
|
||||
"content": "محتوا",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "دانلود",
|
||||
"downloadImage": "دانلود تصویر",
|
||||
"downloadVideo": "دانلود ویدیو",
|
||||
"downloadWithSize": "دانلود ({size})",
|
||||
"downloading": "در حال دانلود",
|
||||
"dropYourFileOr": "فایل خود را رها کنید یا",
|
||||
"duplicate": "تکراری",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "در حال فعالسازی {id}",
|
||||
"enterBaseName": "نام پایه را وارد کنید",
|
||||
"enterNewName": "نام جدید را وارد کنید",
|
||||
"enterNewNamePrompt": "نام جدید را وارد کنید:",
|
||||
"error": "خطا",
|
||||
"errorLoadingImage": "خطا در بارگذاری تصویر",
|
||||
"errorLoadingVideo": "خطا در بارگذاری ویدیو",
|
||||
"experimental": "آزمایشی",
|
||||
"export": "خروجی گرفتن",
|
||||
"extensionName": "نام افزونه",
|
||||
"extensions": "افزونهها",
|
||||
"failed": "ناموفق",
|
||||
"failedToCopyJobId": "کپی شناسه وظیفه ناموفق بود",
|
||||
"failedToDownloadImage": "دانلود تصویر ناموفق بود",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "شناسه وظیفه در کلیپبورد کپی شد",
|
||||
"keybinding": "کلید میانبر",
|
||||
"keybindingAlreadyExists": "کلید میانبر قبلاً وجود دارد در",
|
||||
"keybindings": "کلیدهای میانبر",
|
||||
"learnMore": "اطلاعات بیشتر",
|
||||
"listening": "در حال گوش دادن...",
|
||||
"liveSamplingPreview": "پیشنمایش زنده نمونهگیری",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "فایل انتخابشده",
|
||||
"setAsBackground": "تنظیم به عنوان پسزمینه",
|
||||
"settings": "تنظیمات",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "نمایش پنل چپ",
|
||||
"showReport": "نمایش گزارش",
|
||||
"showRightPanel": "نمایش پنل راست",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "پیشنمایش برش",
|
||||
"custom": "سفارشی",
|
||||
"loading": "در حال بارگذاری...",
|
||||
"noInputImage": "هیچ تصویر ورودی متصل نیست"
|
||||
"lockRatio": "قفل نسبت تصویر",
|
||||
"noInputImage": "هیچ تصویر ورودی متصل نیست",
|
||||
"ratio": "نسبت",
|
||||
"unlockRatio": "باز کردن قفل نسبت تصویر"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "خطا در کپی",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "حالت برنامه",
|
||||
"rerun": "اجرای مجدد",
|
||||
"reuseParameters": "استفاده مجدد از پارامترها",
|
||||
"runCount": "تعداد اجرا: "
|
||||
"runCount": "تعداد اجرا: ",
|
||||
"welcome": {
|
||||
"intro": "نمایی سادهشده که گراف node را پنهان میکند تا بتوانید بر خلق تمرکز کنید.",
|
||||
"layout": "در سمت چپ، تصاویر، ویدیوها و خروجیهای تولیدشده خود را میبینید. در سمت راست، فقط کنترلهای مورد نیاز شما قرار دارند. همه چیزهای پیچیده از دید پنهان میمانند.",
|
||||
"sharing": "اشتراکگذاری آسان است: workflow خود را بسازید، حالت App را باز کنید، روی تب راستکلیک کنید و خروجی بگیرید. وقتی دیگران فایل شما را باز میکنند، مستقیماً وارد این نمای ساده میشوند. میتوانید workflowهای قدرتمند را به ابزارهای ساده تبدیل و به اشتراک بگذارید بدون اینکه کسی نیاز به درک گراف node داشته باشد.",
|
||||
"title": "به حالت App خوش آمدید",
|
||||
"widget": "اگر میخواهید کنترل کنید کدام تنظیمات نمایش داده شوند، nodeهای سطح بالای خود را به یک subgraph تبدیل کنید، سپس با استفاده از ابزارک promotion در جعبهابزار بالای آن، موارد قابل نمایش را انتخاب کنید."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "در حال اعمال تکسچر...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "کتابخانه Node",
|
||||
"Node Links": "پیوندهای Node",
|
||||
"Open": "باز کردن",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "باز کردن نمایشگر سهبعدی (بتا) برای Node انتخابشده",
|
||||
"Open Color Picker in MaskEditor": "باز کردن انتخابگر رنگ در MaskEditor",
|
||||
"Open Custom Nodes Folder": "باز کردن پوشه Custom Nodes",
|
||||
"Open DevTools": "باز کردن DevTools",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "چرخش به راست در MaskEditor",
|
||||
"Save": "ذخیره",
|
||||
"Save As": "ذخیره به عنوان",
|
||||
"Set Subgraph Description": "تنظیم توضیح زیرگراف",
|
||||
"Set Subgraph Search Aliases": "تنظیم نامهای مستعار جستجوی زیرگراف",
|
||||
"Show Keybindings Dialog": "نمایش پنجره کلیدهای میانبر",
|
||||
"Show Model Selector (Dev)": "نمایش انتخابگر مدل (توسعهدهنده)",
|
||||
"Show Settings Dialog": "نمایش پنجره تنظیمات",
|
||||
"Sign Out": "خروج از حساب",
|
||||
"Toggle App Mode": "تغییر حالت برنامه",
|
||||
"Toggle Essential Bottom Panel": "تغییر وضعیت پنل ضروری پایین",
|
||||
"Toggle Logs Bottom Panel": "تغییر وضعیت پنل لاگ پایین",
|
||||
"Toggle Queue Panel V2": "تغییر وضعیت پنل صف V2",
|
||||
"Toggle Search Box": "تغییر وضعیت جعبه جستجو",
|
||||
"Toggle App Mode": "تغییر حالت برنامه",
|
||||
"Toggle Terminal Bottom Panel": "تغییر وضعیت پنل ترمینال پایین",
|
||||
"Toggle Theme (Dark/Light)": "تغییر وضعیت تم (تاریک/روشن)",
|
||||
"Toggle View Controls Bottom Panel": "تغییر وضعیت کنترلهای نمای پایین",
|
||||
"Toggle promotion of hovered widget": "تغییر وضعیت ارتقاء ابزارک زیر نشانگر",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "ورودیهای علاقهمندی",
|
||||
"favoritesNone": "هیچ ورودی علاقهمندی وجود ندارد",
|
||||
"favoritesNoneDesc": "ورودیهایی که به علاقهمندیها اضافه کنید اینجا نمایش داده میشوند",
|
||||
"favoritesNoneHint": "در تب پارامترها، روی {moreIcon} هر ورودی کلیک کنید تا اینجا اضافه شود",
|
||||
"favoritesNoneTooltip": "برای دسترسی سریع، ویجتها را ستارهدار کنید تا بدون انتخاب nodeها به آنها دسترسی داشته باشید",
|
||||
"globalSettings": {
|
||||
"canvas": "canvas",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "نمایش/پنهان کردن پنل ویژگیها",
|
||||
"workflowOverview": "نمای کلی workflow"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "افزودن کلید محرمانه",
|
||||
"createdAt": "ایجاد شده در {date}",
|
||||
"deleteConfirmMessage": "آیا مطمئن هستید که میخواهید «{name}» را حذف کنید؟ این عملیات قابل بازگشت نیست.",
|
||||
"deleteConfirmTitle": "حذف کلید محرمانه",
|
||||
"description": "اسرار به صورت رمزگذاریشده ذخیره میشوند و برای دادههای حساس مانند کلیدهای API استفاده میشوند.",
|
||||
"descriptionUsage": "توکنهای خود را اینجا ذخیره کنید تا دانلود مدلهای خصوصی و محدود از ارائهدهندگان پشتیبانیشده فعال شود.",
|
||||
"editSecret": "ویرایش کلید محرمانه",
|
||||
"errors": {
|
||||
"duplicateName": "کلیدی با این نام قبلاً وجود دارد",
|
||||
"duplicateProvider": "کلیدی برای این ارائهدهنده قبلاً وجود دارد",
|
||||
"nameRequired": "وارد کردن نام الزامی است",
|
||||
"nameTooLong": "نام باید حداکثر ۲۵۵ کاراکتر باشد",
|
||||
"providerRequired": "وارد کردن ارائهدهنده الزامی است",
|
||||
"secretValueRequired": "وارد کردن مقدار کلید محرمانه الزامی است"
|
||||
},
|
||||
"lastUsed": "آخرین استفاده {date}",
|
||||
"modelProviders": "ارائهدهندگان مدل",
|
||||
"name": "نام",
|
||||
"namePlaceholder": "مثلاً، کلید API من",
|
||||
"noSecrets": "هیچ کلید محرمانهای ذخیره نشده است. اولین کلید API خود را برای شروع اضافه کنید.",
|
||||
"provider": "ارائهدهنده",
|
||||
"providerHint": "اختیاری. انتخاب ارائهدهنده باعث فعالسازی استفاده خودکار از توکن میشود.",
|
||||
"secretValue": "مقدار کلید محرمانه",
|
||||
"secretValueHint": "این مقدار رمزگذاری میشود و دیگر قابل مشاهده نخواهد بود.",
|
||||
"secretValueHintEdit": "برای حفظ مقدار فعلی، این قسمت را خالی بگذارید.",
|
||||
"secretValuePlaceholder": "کلید API خود را وارد کنید",
|
||||
"secretValuePlaceholderEdit": "برای تغییر مقدار جدید را وارد کنید",
|
||||
"title": "کلیدها و اسرار API"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "عبور از نودهای گروه",
|
||||
"Set Group Nodes to Always": "تنظیم نودهای گروه روی همیشه",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "مسیر مجدد",
|
||||
"RerouteBeta": "مسیر مجدد (بتا)",
|
||||
"Scene": "صحنه",
|
||||
"Secrets": "اسرار",
|
||||
"Server": "سرور",
|
||||
"Server-Config": "پیکربندی سرور",
|
||||
"Settings": "تنظیمات",
|
||||
@@ -2354,9 +2433,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "نام زیرگراف",
|
||||
"blueprintNamePrompt": "نام Subgraph:",
|
||||
"cannotDeleteGlobal": "امکان حذف blueprints نصبشده وجود ندارد",
|
||||
"confirmDelete": "این عمل باعث حذف دائمی بلوپرینت از کتابخانه شما میشود",
|
||||
"confirmDeleteTitle": "حذف بلوپرینت؟",
|
||||
"enterDescription": "توضیحی وارد کنید",
|
||||
"enterSearchAliases": "نامهای مستعار جستجو را وارد کنید (با ویرگول جدا کنید)",
|
||||
"hidden": "پارامترهای مخفی / تو در تو",
|
||||
"hideAll": "مخفیسازی همه",
|
||||
"loadFailure": "بارگذاری بلوپرینتهای زیرگراف ناموفق بود",
|
||||
@@ -2367,6 +2449,7 @@
|
||||
"publishSuccess": "در کتابخانه گرهها ذخیره شد",
|
||||
"publishSuccessMessage": "میتوانید بلوپرینت زیرگراف خود را در کتابخانه گرهها در بخش \"بلوپرینتهای زیرگراف\" پیدا کنید",
|
||||
"saveBlueprint": "ذخیره زیرگراف در کتابخانه",
|
||||
"searchAliases": "جستجوی نامهای مستعار",
|
||||
"showAll": "نمایش همه",
|
||||
"showRecommended": "نمایش ویجتهای پیشنهادی",
|
||||
"shown": "نمایش روی گره"
|
||||
@@ -2713,6 +2796,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "نام فایل را وارد کنید",
|
||||
"enterFilenamePrompt": "نام فایل را وارد کنید:",
|
||||
"exportWorkflow": "خروجی گرفتن از workflow",
|
||||
"saveWorkflow": "ذخیره workflow"
|
||||
},
|
||||
|
||||
@@ -2207,6 +2207,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "اندازه دسته",
|
||||
"tooltip": "تعداد تصاویر latent در هر دسته."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "ثانیه"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3559,6 +3576,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "ارتقاء تصاویر با وضوح پایین به وضوح بسیار بالا، حذف نویز و آرتیفکتها. حداکثر خروجی: ۳۲ مگاپیکسل.",
|
||||
"display_name": "افزایش کیفیت تصویر عمومی HitPaw",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "کاهش خودکار مقیاس",
|
||||
"tooltip": "در صورت تجاوز خروجی از حد مجاز، تصویر ورودی به طور خودکار کوچک میشود."
|
||||
},
|
||||
"image": {
|
||||
"name": "تصویر"
|
||||
},
|
||||
"model": {
|
||||
"name": "مدل"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "ضریب بزرگنمایی"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "ارتقاء ویدیوهای با وضوح پایین به وضوح بالا، حذف نویز و آرتیفکتها. قیمتها به ازای هر ثانیه ویدیو محاسبه میشود.",
|
||||
"display_name": "افزایش کیفیت ویدیو HitPaw",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "مدل"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "وضوح"
|
||||
},
|
||||
"video": {
|
||||
"name": "ویدیو"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6382,32 +6443,18 @@
|
||||
"name": "عرض"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "تصویر",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ماسک",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "مسیر مش",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "نرمال",
|
||||
"tooltip": null
|
||||
},
|
||||
"4": {
|
||||
"name": "اطلاعات دوربین",
|
||||
"tooltip": null
|
||||
},
|
||||
"5": {
|
||||
"name": "ویدئوی ضبطشده",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "مدل_۳بعدی",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LoadAudio": {
|
||||
"display_name": "بارگذاری صوت",
|
||||
@@ -7268,12 +7315,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: تصویر به مدل",
|
||||
@@ -7319,16 +7371,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: چند تصویر به مدل",
|
||||
@@ -7374,16 +7428,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "یک مدل پیشنویس ایجادشده قبلی را بهبود دهید.",
|
||||
@@ -7408,16 +7464,18 @@
|
||||
"tooltip": "یک متن راهنما برای هدایت فرایند بافتدهی وارد کنید. حداکثر ۶۰۰ کاراکتر. نمیتوان همزمان با 'texture_image' استفاده کرد."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "یک کاراکتر ریگشده در فرمتهای استاندارد ارائه میدهد. ریگ خودکار در حال حاضر برای مشهای بدون بافت، داراییهای غیرانساننما یا داراییهای انساننمایی که ساختار اندام و بدن آنها نامشخص است، مناسب نیست.",
|
||||
@@ -7435,16 +7493,18 @@
|
||||
"tooltip": "تصویر بافت رنگ پایه مدل با UV باز شده."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: متن به مدل",
|
||||
@@ -7483,16 +7543,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: مدل بافت",
|
||||
@@ -7519,16 +7581,18 @@
|
||||
"tooltip": "سبک بافت مورد نظر شیء را با استفاده از متن توصیف کنید. حداکثر ۶۰۰ کاراکتر. نمیتوان همزمان با 'image_style' استفاده کرد."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "تولید ویدئو از طریق پرامپت، با امکان استفاده از فریم ابتدایی با مدل جدید MiniMax Hailuo-02.",
|
||||
@@ -10725,11 +10789,9 @@
|
||||
"camera_info": {
|
||||
"name": "اطلاعات دوربین"
|
||||
},
|
||||
"image": {
|
||||
"name": "تصویر"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "فایل مدل"
|
||||
"name": "فایل مدل",
|
||||
"tooltip": "فایل مدل سهبعدی یا مسیر فایل"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11370,6 +11432,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "این نود صدای مرجع برای timbre را تنظیم میکند (برای ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "شرایطدهی"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "استخراج با Regex",
|
||||
"inputs": {
|
||||
@@ -11698,12 +11777,13 @@
|
||||
"name": "Seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسیر مدل سهبعدی",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "تولید داراییهای سهبعدی با استفاده از Rodin API",
|
||||
@@ -11725,12 +11805,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسیر مدل سهبعدی",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "تولید داراییهای سهبعدی با استفاده از Rodin API",
|
||||
@@ -11749,12 +11830,13 @@
|
||||
"name": "Seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسیر مدل سهبعدی",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "تولید داراییهای سهبعدی با استفاده از Rodin API",
|
||||
@@ -11767,12 +11849,13 @@
|
||||
"name": "Seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسیر مدل سهبعدی",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "تولید داراییهای سهبعدی با استفاده از Rodin API",
|
||||
@@ -11791,12 +11874,13 @@
|
||||
"name": "Seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "مسیر مدل سهبعدی",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "اولین و آخرین فریم کلیدی را بارگذاری کنید، یک پرامپت بنویسید و ویدیو تولید کنید. انتقالهای پیچیدهتر، مانند زمانی که فریم آخر کاملاً با فریم اول متفاوت است، ممکن است از مدت زمان طولانیتر ۱۰ ثانیهای بهرهمند شوند. این کار به تولید اجازه میدهد تا زمان بیشتری برای انتقال روان بین دو ورودی داشته باشد. پیش از شروع، این نکات کلیدی را مرور کنید تا مطمئن شوید انتخابهای ورودی شما باعث موفقیت تولید خواهد شد: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12528,11 +12612,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "filename_prefix"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "mesh"
|
||||
"name": "mesh",
|
||||
"tooltip": "مش یا فایل GLB برای ذخیره"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13791,12 +13873,17 @@
|
||||
"tooltip": "seed تعیین میکند که node باید دوباره اجرا شود یا خیر؛ نتایج صرفنظر از seed غیرقطعی هستند."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: تبدیل متن به مدل (پیشرفته)",
|
||||
@@ -13826,12 +13913,17 @@
|
||||
"tooltip": "seed تعیین میکند که node باید دوباره اجرا شود یا خیر؛ نتایج صرفنظر از seed غیرقطعی هستند."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13855,6 +13947,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "ضرب در دقیقه (BPM)"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "کنترل پس از تولید"
|
||||
},
|
||||
"duration": {
|
||||
"name": "مدت زمان"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "گام"
|
||||
},
|
||||
"language": {
|
||||
"name": "زبان"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "متن ترانه"
|
||||
},
|
||||
"seed": {
|
||||
"name": "بذر"
|
||||
},
|
||||
"tags": {
|
||||
"name": "برچسبها"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "امضای زمانی"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14410,16 +14542,14 @@
|
||||
"name": "بذر تکسچر"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: چندنما به مدل",
|
||||
@@ -14471,16 +14601,14 @@
|
||||
"name": "بذر تکسچر"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "بهبود یک مدل پیشنویس که فقط توسط مدلهای Tripo نسخه ۱.۴ ایجاد شده است.",
|
||||
@@ -14491,16 +14619,14 @@
|
||||
"tooltip": "باید یک مدل Tripo نسخه ۱.۴ باشد"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: هدفگذاری مجدد مدل ریگشده",
|
||||
@@ -14512,16 +14638,14 @@
|
||||
"name": "شناسه وظیفه مدل اصلی"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه هدفگذاری مجدد",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: ریگ مدل",
|
||||
@@ -14530,16 +14654,14 @@
|
||||
"name": "شناسه وظیفه مدل اصلی"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه ریگ",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: متن به مدل",
|
||||
@@ -14584,16 +14706,14 @@
|
||||
"name": "بذر تکسچر"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: مدل بافت",
|
||||
@@ -14617,16 +14737,14 @@
|
||||
"name": "بذر بافت"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "فایل مدل",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "شناسه وظیفه مدل",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "کوتاهسازی متن",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "ظاهر و نمایش پیوندهای ارتباطی بین nodeها روی canvas را کنترل میکند."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "فعالسازی نمایشگر سهبعدی (بتا)",
|
||||
"tooltip": "نمایشگر سهبعدی (بتا) را برای nodeهای انتخابشده فعال میکند. این قابلیت به شما امکان میدهد مدلهای سهبعدی را مستقیماً در نمایشگر سهبعدی با اندازه کامل مشاهده و تعامل کنید."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "رنگ پسزمینه اولیه",
|
||||
"tooltip": "رنگ پیشفرض پسزمینه صحنه سهبعدی را کنترل میکند. این تنظیم ظاهر پسزمینه را هنگام ایجاد یک ابزارک سهبعدی جدید تعیین میکند، اما پس از ایجاد برای هر ابزارک به صورت جداگانه قابل تغییر است."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "نوع دوربین اولیه",
|
||||
"options": {
|
||||
"orthographic": "اورتوگرافیک",
|
||||
"perspective": "پرسپکتیو"
|
||||
},
|
||||
"tooltip": "تعیین میکند که دوربین به طور پیشفرض پرسپکتیو باشد یا اورتوگرافیک هنگام ایجاد یک ابزارک سهبعدی جدید. این پیشفرض برای هر ابزارک به صورت جداگانه قابل تغییر است."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "گام تنظیم شدت نور",
|
||||
"tooltip": "اندازه گام هنگام تنظیم شدت نور در صحنههای سهبعدی را کنترل میکند. مقدار گام کوچکتر امکان کنترل دقیقتر نور را فراهم میکند، در حالی که مقدار بزرگتر تغییرات محسوستری ایجاد میکند."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "شدت نور اولیه",
|
||||
"tooltip": "سطح روشنایی پیشفرض نور در صحنه سهبعدی را تعیین میکند. این مقدار مشخص میکند که نورها هنگام ایجاد یک ابزارک سهبعدی جدید با چه شدتی به اشیاء تابیده شوند، اما برای هر ابزارک به صورت جداگانه قابل تغییر است."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "حداکثر شدت نور",
|
||||
"tooltip": "حداکثر مقدار مجاز شدت نور برای صحنههای سهبعدی را تعیین میکند. این مقدار، حد بالای روشنایی قابل تنظیم در هر ابزارک سهبعدی را مشخص میکند."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "حداقل شدت نور",
|
||||
"tooltip": "حداقل مقدار مجاز شدت نور برای صحنههای سهبعدی را تعیین میکند. این مقدار، حد پایین روشنایی قابل تنظیم در هر ابزارک سهبعدی را مشخص میکند."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "موتور PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "موتور بارگذاری فایلهای PLY را انتخاب کنید. \"threejs\" از PLYLoader بومی Three.js (مناسب برای فایلهای مش PLY) استفاده میکند. \"fastply\" برای فایلهای point cloud PLY به صورت ASCII بهینه شده است. \"sparkjs\" از Spark.js برای فایلهای ۳بعدی Gaussian Splatting PLY استفاده میکند."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "نمایش اولیه شبکه",
|
||||
"tooltip": "تعیین میکند که شبکه (Grid) به طور پیشفرض هنگام ایجاد یک ابزارک سهبعدی جدید قابل مشاهده باشد یا خیر. این پیشفرض برای هر ابزارک به صورت جداگانه قابل تغییر است."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "زبان"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "نمایش نشان قیمتگذاری API نود"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "فعالسازی جایگزینی خودکار node",
|
||||
"tooltip": "در صورت فعال بودن، nodeهای مفقود میتوانند بهطور خودکار با معادلهای جدیدتر خود جایگزین شوند اگر نگاشت جایگزینی وجود داشته باشد."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "پیادهسازی جعبه جستجوی نود",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Redémarrer"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Ouvrir le visualiseur 3D (bêta) pour le nœud sélectionné"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Expérimental : Parcourir les ressources de modèles"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Afficher la boîte de dialogue des paramètres"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Définir la description du sous-graphe"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Définir les alias de recherche du sous-graphe"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Expérimental : Activer AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "Basculer le panneau inférieur"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Basculer le panneau inférieur du terminal"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Basculer le panneau inférieur des journaux"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Afficher/Masquer le panneau inférieur essentiel"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "Tous les {category}",
|
||||
"allModels": "Tous les modèles",
|
||||
"apiKeyHint": "Vous importez des modèles privés ou restreints ? {link}.",
|
||||
"apiKeyHintLink": "Ajoutez vos clés API dans les Paramètres",
|
||||
"ariaLabel": {
|
||||
"assetCard": "Ressource {name} - {type}",
|
||||
"loadingAsset": "Chargement de la ressource"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "Aucun modèle importé pour le moment. Cliquez sur « Importer un modèle » pour ajouter le vôtre.",
|
||||
"restricted": "Les modèles personnels sont disponibles uniquement à partir du niveau Creator."
|
||||
},
|
||||
"errorAccessForbidden": "L'accès à cette ressource est interdit.",
|
||||
"errorConnectionRefused": "Impossible de se connecter à la source. Veuillez réessayer plus tard.",
|
||||
"errorDownloadCancelled": "Le téléchargement a été annulé.",
|
||||
"errorFileTooLarge": "Le fichier dépasse la taille maximale autorisée",
|
||||
"errorFormatNotAllowed": "Seul le format SafeTensor est autorisé",
|
||||
"errorHttpError": "Une erreur est survenue lors de la récupération des métadonnées.",
|
||||
"errorInternalError": "Une erreur inattendue est survenue. Veuillez réessayer.",
|
||||
"errorInvalidHost": "Le nom d’hôte de l’URL source n’a pas pu être résolu.",
|
||||
"errorInvalidUrl": "Veuillez fournir une URL.",
|
||||
"errorInvalidUrlFormat": "Le format de l’URL est invalide. Veuillez vérifier et réessayer.",
|
||||
"errorMetadataFetchFailed": "Impossible de récupérer les informations du fichier depuis la source.",
|
||||
"errorModelTypeNotSupported": "Ce type de modèle n'est pas pris en charge",
|
||||
"errorNetworkError": "Une erreur réseau est survenue. Veuillez vérifier votre connexion et réessayer.",
|
||||
"errorNetworkTimeout": "La requête a expiré. Veuillez réessayer.",
|
||||
"errorRateLimited": "Trop de requêtes. Veuillez réessayer dans quelques minutes.",
|
||||
"errorRequestCancelled": "La requête a été annulée.",
|
||||
"errorResourceNotFound": "Le fichier est introuvable. Veuillez vérifier l’URL et réessayer.",
|
||||
"errorServiceUnavailable": "Service temporairement indisponible. Veuillez réessayer plus tard.",
|
||||
"errorSourceServerError": "Le serveur source rencontre des problèmes. Veuillez réessayer plus tard.",
|
||||
"errorUnauthorized": "Veuillez vous connecter pour continuer.",
|
||||
"errorUnauthorizedSource": "Cette ressource nécessite une authentification. Veuillez ajouter votre jeton API dans les paramètres.",
|
||||
"errorUnknown": "Une erreur inattendue s'est produite",
|
||||
"errorUnsafePickleScan": "CivitAI a détecté un code potentiellement dangereux dans ce fichier",
|
||||
"errorUnsafeVirusScan": "CivitAI a détecté un logiciel malveillant ou un contenu suspect dans ce fichier",
|
||||
"errorUnsupportedSource": "Cette URL n’est pas prise en charge. Seules les URLs Hugging Face et Civitai sont autorisées.",
|
||||
"errorUploadFailed": "Échec de l'importation de l'actif. Veuillez réessayer.",
|
||||
"errorUserTokenAccessDenied": "Votre jeton API n’a pas accès à cette ressource. Veuillez vérifier les autorisations de votre jeton.",
|
||||
"errorUserTokenInvalid": "Votre jeton API enregistré est invalide ou expiré. Veuillez le mettre à jour dans les paramètres.",
|
||||
"failedToCreateNode": "Échec de la création du nœud. Veuillez réessayer ou consulter la console pour plus de détails.",
|
||||
"fileFormats": "Formats de fichier",
|
||||
"fileName": "Nom du fichier",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "CONDITIONNEMENT",
|
||||
"CONTROL_NET": "RESEAU_DE_CONTROLE",
|
||||
"FILE_3D": "FICHIER_3D",
|
||||
"FILE_3D_FBX": "FICHIER_3D_FBX",
|
||||
"FILE_3D_GLB": "FICHIER_3D_GLB",
|
||||
"FILE_3D_GLTF": "FICHIER_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FICHIER_3D_OBJ",
|
||||
"FILE_3D_STL": "FICHIER_3D_STL",
|
||||
"FILE_3D_USDZ": "FICHIER_3D_USDZ",
|
||||
"FLOAT": "FLOTTANT",
|
||||
"FLOATS": "FLOTTANTS",
|
||||
"GEMINI_INPUT_FILES": "FICHIERS_ENTRÉE_GEMINI",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "La commande {command} est interdite. Contactez un administrateur pour plus d'informations.",
|
||||
"community": "Communauté",
|
||||
"completed": "Terminé",
|
||||
"completedWithCheckmark": "Terminé ✓",
|
||||
"confirm": "Confirmer",
|
||||
"confirmed": "Confirmé",
|
||||
"content": "contenu",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "Télécharger",
|
||||
"downloadImage": "Télécharger l'image",
|
||||
"downloadVideo": "Télécharger la vidéo",
|
||||
"downloadWithSize": "Télécharger ({size})",
|
||||
"downloading": "Téléchargement",
|
||||
"dropYourFileOr": "Déposez votre fichier ou",
|
||||
"duplicate": "Dupliquer",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "Activation",
|
||||
"enterBaseName": "Entrez le nom de base",
|
||||
"enterNewName": "Entrez le nouveau nom",
|
||||
"enterNewNamePrompt": "Entrez le nouveau nom :",
|
||||
"error": "Erreur",
|
||||
"errorLoadingImage": "Erreur lors du chargement de l'image",
|
||||
"errorLoadingVideo": "Erreur lors du chargement de la vidéo",
|
||||
"experimental": "BETA",
|
||||
"export": "Exportation",
|
||||
"extensionName": "Nom de l'extension",
|
||||
"extensions": "Extensions",
|
||||
"failed": "Échec",
|
||||
"failedToCopyJobId": "Échec de la copie de l'ID du travail",
|
||||
"failedToDownloadImage": "Échec du téléchargement de l'image",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "ID du travail copié dans le presse-papiers",
|
||||
"keybinding": "Raccourci clavier",
|
||||
"keybindingAlreadyExists": "Le raccourci clavier existe déjà",
|
||||
"keybindings": "Raccourcis clavier",
|
||||
"learnMore": "En savoir plus",
|
||||
"listening": "Écoute en cours...",
|
||||
"liveSamplingPreview": "Aperçu en temps réel",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "Fichier sélectionné",
|
||||
"setAsBackground": "Définir comme arrière-plan",
|
||||
"settings": "Paramètres",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "Afficher le panneau de gauche",
|
||||
"showReport": "Afficher le rapport",
|
||||
"showRightPanel": "Afficher le panneau de droite",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "Aperçu du recadrage",
|
||||
"custom": "Personnalisé",
|
||||
"loading": "Chargement...",
|
||||
"noInputImage": "Aucune image d'entrée connectée"
|
||||
"lockRatio": "Verrouiller le ratio",
|
||||
"noInputImage": "Aucune image d'entrée connectée",
|
||||
"ratio": "Ratio",
|
||||
"unlockRatio": "Déverrouiller le ratio"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "Erreur de copie",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "Mode App",
|
||||
"rerun": "Relancer",
|
||||
"reuseParameters": "Réutiliser les paramètres",
|
||||
"runCount": "Nombre d’exécutions :"
|
||||
"runCount": "Nombre d’exécutions :",
|
||||
"welcome": {
|
||||
"intro": "Une vue simplifiée qui masque le graphe de nœuds pour vous permettre de vous concentrer sur la création.",
|
||||
"layout": "À gauche, vous verrez vos images, vidéos et sorties générées. À droite, seulement les contrôles nécessaires. Tout ce qui est complexe reste caché.",
|
||||
"sharing": "Le partage est facile : créez votre workflow, ouvrez le mode App, faites un clic droit sur l’onglet et exportez. Quand d’autres ouvrent votre fichier, il s’ouvre directement dans cette vue épurée. Vous pouvez partager des workflows puissants comme des outils simples, sans que personne n’ait besoin de comprendre les graphes de nœuds.",
|
||||
"title": "Bienvenue en mode App",
|
||||
"widget": "Si vous souhaitez contrôler quels paramètres apparaissent, convertissez vos nœuds principaux en sous-graphe, puis utilisez la promotion de widget dans la boîte à outils au-dessus pour choisir ce qui est exposé."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "Application de la texture...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "Bibliothèque de nœuds",
|
||||
"Node Links": "Liens de nœuds",
|
||||
"Open": "Ouvrir",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Ouvrir le visualiseur 3D (Bêta) pour le nœud sélectionné",
|
||||
"Open Color Picker in MaskEditor": "Ouvrir le sélecteur de couleur dans MaskEditor",
|
||||
"Open Custom Nodes Folder": "Ouvrir le dossier des nœuds personnalisés",
|
||||
"Open DevTools": "Ouvrir les outils de développement",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "Tourner à droite dans l'éditeur de masque",
|
||||
"Save": "Enregistrer",
|
||||
"Save As": "Enregistrer sous",
|
||||
"Set Subgraph Description": "Définir la description du sous-graphe",
|
||||
"Set Subgraph Search Aliases": "Définir les alias de recherche du sous-graphe",
|
||||
"Show Keybindings Dialog": "Afficher la boîte de dialogue des raccourcis clavier",
|
||||
"Show Model Selector (Dev)": "Afficher le sélecteur de modèle (Dev)",
|
||||
"Show Settings Dialog": "Afficher la boîte de dialogue des paramètres",
|
||||
"Sign Out": "Se déconnecter",
|
||||
"Toggle App Mode": "Basculer en mode App",
|
||||
"Toggle Essential Bottom Panel": "Basculer le panneau inférieur essentiel",
|
||||
"Toggle Logs Bottom Panel": "Basculer le panneau inférieur des journaux",
|
||||
"Toggle Queue Panel V2": "Basculer le panneau de file d’attente V2",
|
||||
"Toggle Search Box": "Basculer la boîte de recherche",
|
||||
"Toggle App Mode": "Basculer en mode App",
|
||||
"Toggle Terminal Bottom Panel": "Basculer le panneau inférieur du terminal",
|
||||
"Toggle Theme (Dark/Light)": "Basculer le thème (Sombre/Clair)",
|
||||
"Toggle View Controls Bottom Panel": "Basculer le panneau inférieur des contrôles d’affichage",
|
||||
"Toggle promotion of hovered widget": "Basculer la promotion du widget survolé",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "ENTRÉES FAVORITES",
|
||||
"favoritesNone": "AUCUNE ENTRÉE FAVORITE",
|
||||
"favoritesNoneDesc": "Les entrées que vous ajoutez en favori apparaîtront ici",
|
||||
"favoritesNoneHint": "Dans l’onglet Paramètres, cliquez sur {moreIcon} à côté de n’importe quelle entrée pour l’ajouter ici",
|
||||
"favoritesNoneTooltip": "Étoilez les widgets pour y accéder rapidement sans sélectionner de nœud",
|
||||
"globalSettings": {
|
||||
"canvas": "CANEVA",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "Afficher/masquer le panneau des propriétés",
|
||||
"workflowOverview": "Aperçu du workflow"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "Ajouter un secret",
|
||||
"createdAt": "Créé le {date}",
|
||||
"deleteConfirmMessage": "Êtes-vous sûr de vouloir supprimer « {name} » ? Cette action est irréversible.",
|
||||
"deleteConfirmTitle": "Supprimer le secret",
|
||||
"description": "Les secrets sont chiffrés et utilisés pour les données sensibles comme les clés API.",
|
||||
"descriptionUsage": "Stockez vos jetons ici pour permettre le téléchargement de modèles privés et restreints depuis les fournisseurs pris en charge.",
|
||||
"editSecret": "Modifier le secret",
|
||||
"errors": {
|
||||
"duplicateName": "Un secret avec ce nom existe déjà",
|
||||
"duplicateProvider": "Un secret pour ce fournisseur existe déjà",
|
||||
"nameRequired": "Le nom est requis",
|
||||
"nameTooLong": "Le nom doit comporter 255 caractères ou moins",
|
||||
"providerRequired": "Le fournisseur est requis",
|
||||
"secretValueRequired": "La valeur du secret est requise"
|
||||
},
|
||||
"lastUsed": "Dernière utilisation le {date}",
|
||||
"modelProviders": "Fournisseurs de modèles",
|
||||
"name": "Nom",
|
||||
"namePlaceholder": "ex. : Ma clé API",
|
||||
"noSecrets": "Aucun secret enregistré. Ajoutez votre première clé API pour commencer.",
|
||||
"provider": "Fournisseur",
|
||||
"providerHint": "Optionnel. Sélectionner un fournisseur permet l’utilisation automatique du jeton.",
|
||||
"secretValue": "Valeur du secret",
|
||||
"secretValueHint": "Cette valeur sera chiffrée et ne pourra plus être consultée.",
|
||||
"secretValueHintEdit": "Laissez vide pour conserver la valeur actuelle.",
|
||||
"secretValuePlaceholder": "Saisissez votre clé API",
|
||||
"secretValuePlaceholderEdit": "Saisissez une nouvelle valeur pour modifier",
|
||||
"title": "Clés API et secrets"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "Contourner les nœuds de groupe",
|
||||
"Set Group Nodes to Always": "Définir les nœuds de groupe sur Toujours",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "Réacheminement",
|
||||
"RerouteBeta": "Reroute Beta",
|
||||
"Scene": "Scène",
|
||||
"Secrets": "Secrets",
|
||||
"Server": "Serveur",
|
||||
"Server-Config": "Config-Serveur",
|
||||
"Settings": "Paramètres",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "Nom du sous-graphe",
|
||||
"blueprintNamePrompt": "Nom du sous-graphe :",
|
||||
"cannotDeleteGlobal": "Impossible de supprimer les blueprints installés",
|
||||
"confirmDelete": "Cette action supprimera définitivement le plan de votre bibliothèque",
|
||||
"confirmDeleteTitle": "Supprimer le plan ?",
|
||||
"enterDescription": "Saisissez une description",
|
||||
"enterSearchAliases": "Saisissez des alias de recherche (séparés par des virgules)",
|
||||
"hidden": "Paramètres cachés / imbriqués",
|
||||
"hideAll": "Tout masquer",
|
||||
"loadFailure": "Échec du chargement des plans de sous-graphes",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "Enregistré dans la bibliothèque de nœuds",
|
||||
"publishSuccessMessage": "Vous pouvez trouver votre plan de sous-graphe dans la bibliothèque de nœuds sous \"Plans de sous-graphes\"",
|
||||
"saveBlueprint": "Enregistrer le sous-graphe dans la bibliothèque",
|
||||
"searchAliases": "Rechercher des alias",
|
||||
"showAll": "Tout afficher",
|
||||
"showRecommended": "Afficher les widgets recommandés",
|
||||
"shown": "Affiché sur le nœud"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "Entrez le nom du fichier",
|
||||
"enterFilenamePrompt": "Entrez le nom du fichier :",
|
||||
"exportWorkflow": "Exporter le flux de travail",
|
||||
"saveWorkflow": "Enregistrer le flux de travail"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "taille_du_lot",
|
||||
"tooltip": "Le nombre d’images latentes dans le lot."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "secondes"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "Agrandissez les images basse résolution en super-résolution, éliminez les artefacts et le bruit. Sortie maximale : 32 mégapixels.",
|
||||
"display_name": "HitPaw Amélioration Générale d’Image",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "réduction_automatique",
|
||||
"tooltip": "Réduit automatiquement l’image d’entrée si la sortie dépasse la limite."
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"model": {
|
||||
"name": "modèle"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "facteur_d’agrandissement"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "Agrandissez les vidéos basse résolution en haute résolution, éliminez les artefacts et le bruit. Les prix affichés sont par seconde de vidéo.",
|
||||
"display_name": "HitPaw Amélioration Vidéo",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "modèle"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "résolution"
|
||||
},
|
||||
"video": {
|
||||
"name": "vidéo"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,9 @@
|
||||
"Load3D": {
|
||||
"display_name": "Charger 3D",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": {
|
||||
"": "effacer"
|
||||
},
|
||||
"height": {
|
||||
"name": "hauteur"
|
||||
},
|
||||
@@ -6367,8 +6430,12 @@
|
||||
"model_file": {
|
||||
"name": "fichier_modèle"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"": "téléverser un modèle 3D"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"": "téléverser des ressources supplémentaires"
|
||||
},
|
||||
"width": {
|
||||
"name": "largeur"
|
||||
}
|
||||
@@ -7252,12 +7319,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy : Image vers modèle",
|
||||
@@ -7303,16 +7375,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy : Multi-image vers modèle",
|
||||
@@ -7358,16 +7432,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "Affinez un modèle brouillon précédemment créé.",
|
||||
@@ -7392,16 +7468,18 @@
|
||||
"tooltip": "Fournissez une invite textuelle pour guider le processus de texturage. Maximum 600 caractères. Ne peut pas être utilisé en même temps que 'texture_image'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "Fournit un personnage riggé dans des formats standards. L’auto-rigging n’est actuellement pas adapté aux maillages non texturés, aux assets non humanoïdes ou aux assets humanoïdes avec une structure de membres et de corps peu claire.",
|
||||
@@ -7419,16 +7497,18 @@
|
||||
"tooltip": "L’image de texture couleur de base UV-dépliée du modèle."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy : Texte vers modèle",
|
||||
@@ -7467,16 +7547,18 @@
|
||||
"name": "mode_symétrie"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy : Modèle de texture",
|
||||
@@ -7503,16 +7585,18 @@
|
||||
"tooltip": "Décrivez le style de texture souhaité pour l’objet en utilisant du texte. 600 caractères maximum. Ne peut pas être utilisé en même temps que « image_style »."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "Génère des vidéos à partir d'un prompt, avec option d'image de départ utilisant le nouveau modèle MiniMax Hailuo-02.",
|
||||
@@ -10709,11 +10793,9 @@
|
||||
"camera_info": {
|
||||
"name": "informations_de_camera"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "fichier_modèle"
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": "Fichier modèle 3D ou chemin d’accès"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11436,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "Ce nœud définit l’audio de référence pour le timbre (pour ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "conditionnement"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Extraire par Regex",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11781,13 @@
|
||||
"name": "Graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Chemin Modèle 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Générer des actifs 3D en utilisant l'API Rodin",
|
||||
@@ -11709,12 +11809,13 @@
|
||||
"name": "PoseTAP"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Chemin Modèle 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Générer des actifs 3D en utilisant l'API Rodin",
|
||||
@@ -11733,12 +11834,13 @@
|
||||
"name": "Graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Chemin Modèle 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Générer des actifs 3D en utilisant l'API Rodin",
|
||||
@@ -11751,12 +11853,13 @@
|
||||
"name": "Graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Chemin Modèle 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Générer des ressources 3D avec l'API Rodin",
|
||||
@@ -11775,12 +11878,13 @@
|
||||
"name": "Graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Chemin du modèle 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "Téléchargez les premières et dernières images clés, rédigez un prompt et générez une vidéo. Les transitions plus complexes, comme lorsque la dernière image est complètement différente de la première, peuvent bénéficier de la durée plus longue de 10s. Cela donnerait à la génération plus de temps pour effectuer une transition fluide entre les deux entrées. Avant de commencer, consultez ces bonnes pratiques pour vous assurer que vos sélections d'entrée permettront à votre génération de réussir : https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12611,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "préfixe_du_nom_de_fichier"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "maillage"
|
||||
"name": "maillage",
|
||||
"tooltip": "Maillage ou fichier GLB à enregistrer"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13866,17 @@
|
||||
"tooltip": "La graine contrôle si le nœud doit être relancé ; les résultats restent non déterministes quelle que soit la graine."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D : Texte vers Modèle (Pro)",
|
||||
@@ -13799,12 +13906,17 @@
|
||||
"tooltip": "La graine contrôle si le nœud doit être relancé ; les résultats restent non déterministes quelle que soit la graine."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13940,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "contrôle après génération"
|
||||
},
|
||||
"duration": {
|
||||
"name": "durée"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "tonalité"
|
||||
},
|
||||
"language": {
|
||||
"name": "langue"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "paroles"
|
||||
},
|
||||
"seed": {
|
||||
"name": "graine"
|
||||
},
|
||||
"tags": {
|
||||
"name": "tags"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "signature rythmique"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14535,14 @@
|
||||
"name": "graine_texture"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_tâche_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo : Multivue vers Modèle",
|
||||
@@ -14444,16 +14594,14 @@
|
||||
"name": "graine_texture"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_tâche_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "Affinez un modèle d'ébauche créé uniquement par les modèles Tripo v1.4.",
|
||||
@@ -14464,16 +14612,14 @@
|
||||
"tooltip": "Doit être un modèle Tripo v1.4"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_tâche_modèle",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo : Modèle squeletté redirigé",
|
||||
@@ -14485,16 +14631,14 @@
|
||||
"name": "ID_tâche_modèle_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_tâche_redirection",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo : Modèle squeletté",
|
||||
@@ -14503,16 +14647,14 @@
|
||||
"name": "ID_tâche_modèle_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "ID_tâche_squelettage",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo : Texte vers Modèle",
|
||||
@@ -14557,16 +14699,14 @@
|
||||
"name": "texture_graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "modèle id_tâche",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo : Modèle de texture",
|
||||
@@ -14590,16 +14730,14 @@
|
||||
"name": "texture_graine"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "fichier_modèle",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "modèle id_tâche",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "Tronquer le texte",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "Contrôle l’apparence et la visibilité des liens de connexion entre les nœuds sur le canevas."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "Activer le visualiseur 3D (Bêta)",
|
||||
"tooltip": "Active le visualiseur 3D (Bêta) pour les nœuds sélectionnés. Cette fonctionnalité vous permet de visualiser et d’interagir avec des modèles 3D directement dans le visualiseur 3D en taille réelle."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Couleur de fond initiale",
|
||||
"tooltip": "Contrôle la couleur de fond par défaut de la scène 3D. Ce paramètre détermine l'apparence du fond lors de la création d'un nouveau widget 3D, mais peut être ajusté individuellement pour chaque widget après la création."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Type de Caméra",
|
||||
"options": {
|
||||
"orthographic": "orthographique",
|
||||
"perspective": "perspective"
|
||||
},
|
||||
"tooltip": "Contrôle si la caméra est en perspective ou orthographique par défaut lorsqu'un nouveau widget 3D est créé. Ce défaut peut toujours être basculé individuellement pour chaque widget après sa création."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Incrément d'ajustement de la lumière",
|
||||
"tooltip": "Contrôle la taille de l'incrément lors de l'ajustement de l'intensité lumineuse dans les scènes 3D. Une valeur de pas plus petite permet un contrôle plus précis des ajustements de lumière, tandis qu'une valeur plus grande entraîne des changements plus visibles à chaque ajustement."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Intensité lumineuse initiale",
|
||||
"tooltip": "Définit le niveau de luminosité par défaut de l’éclairage dans la scène 3D. Cette valeur détermine l’intensité avec laquelle les lumières illuminent les objets lors de la création d’un nouveau widget 3D, mais peut être ajustée individuellement pour chaque widget après la création."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Intensité lumineuse maximale",
|
||||
"tooltip": "Définit la valeur maximale autorisée pour l’intensité lumineuse dans les scènes 3D. Cela fixe la limite supérieure de luminosité pouvant être réglée lors de l’ajustement de l’éclairage dans tout widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Intensité lumineuse minimale",
|
||||
"tooltip": "Définit la valeur minimale autorisée de l’intensité lumineuse pour les scènes 3D. Cela définit la limite inférieure de luminosité pouvant être réglée lors de l’ajustement de l’éclairage dans tout widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "Moteur PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "Sélectionnez le moteur pour charger les fichiers PLY. « threejs » utilise le PLYLoader natif de Three.js (idéal pour les fichiers PLY de maillage). « fastply » utilise un chargeur optimisé pour les fichiers PLY de nuages de points ASCII. « sparkjs » utilise Spark.js pour les fichiers PLY de Gaussian Splatting 3D."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Afficher la Grille",
|
||||
"tooltip": "Basculer pour afficher la grille par défaut"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Langue"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "Afficher l’insigne de tarification API du nœud"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Activer le remplacement automatique des nœuds",
|
||||
"tooltip": "Lorsqu'activé, les nœuds manquants peuvent être automatiquement remplacés par leurs équivalents plus récents si une correspondance de remplacement existe."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Implémentation de la boîte de recherche de nœud",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "再起動"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "選択したノードの3Dビューアー(ベータ)を開く"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "実験的: モデルアセットを参照"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "設定ダイアログを表示"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "サブグラフの説明を設定"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "サブグラフの検索エイリアスを設定"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "実験的: AssetAPIを有効化"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "パネル下部の切り替え"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "ターミナルパネル下部の切り替え"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "ログパネル下部の切り替え"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "必須な下部パネルを切り替え"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "すべての{category}",
|
||||
"allModels": "すべてのモデル",
|
||||
"apiKeyHint": "プライベートまたは制限付きモデルをインポートしますか?{link}。",
|
||||
"apiKeyHintLink": "設定でAPIキーを追加",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - {type} アセット",
|
||||
"loadingAsset": "アセットを読み込み中"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "まだインポートされたモデルはありません。「モデルをインポート」をクリックして追加してください。",
|
||||
"restricted": "パーソナルモデルはCreator以上のプランでのみ利用可能です。"
|
||||
},
|
||||
"errorAccessForbidden": "このリソースへのアクセスは許可されていません。",
|
||||
"errorConnectionRefused": "ソースに接続できません。後でもう一度お試しください。",
|
||||
"errorDownloadCancelled": "ダウンロードがキャンセルされました。",
|
||||
"errorFileTooLarge": "ファイルが許可された最大サイズを超えています",
|
||||
"errorFormatNotAllowed": "SafeTensor形式のみ許可されています",
|
||||
"errorHttpError": "メタデータの取得中にエラーが発生しました。",
|
||||
"errorInternalError": "予期しないエラーが発生しました。もう一度お試しください。",
|
||||
"errorInvalidHost": "ソースURLのホスト名を解決できませんでした。",
|
||||
"errorInvalidUrl": "URLを入力してください。",
|
||||
"errorInvalidUrlFormat": "URLの形式が無効です。ご確認の上、再度お試しください。",
|
||||
"errorMetadataFetchFailed": "ソースからファイル情報の取得に失敗しました。",
|
||||
"errorModelTypeNotSupported": "このモデルタイプはサポートされていません",
|
||||
"errorNetworkError": "ネットワークエラーが発生しました。接続を確認して再度お試しください。",
|
||||
"errorNetworkTimeout": "リクエストがタイムアウトしました。もう一度お試しください。",
|
||||
"errorRateLimited": "リクエストが多すぎます。数分後に再度お試しください。",
|
||||
"errorRequestCancelled": "リクエストがキャンセルされました。",
|
||||
"errorResourceNotFound": "ファイルが見つかりません。URLを確認して再度お試しください。",
|
||||
"errorServiceUnavailable": "サービスは一時的に利用できません。後でもう一度お試しください。",
|
||||
"errorSourceServerError": "ソースサーバーに問題が発生しています。後でもう一度お試しください。",
|
||||
"errorUnauthorized": "続行するにはサインインしてください。",
|
||||
"errorUnauthorizedSource": "このリソースには認証が必要です。設定でAPIトークンを追加してください。",
|
||||
"errorUnknown": "予期しないエラーが発生しました",
|
||||
"errorUnsafePickleScan": "CivitAIがこのファイルに潜在的な危険なコードを検出しました",
|
||||
"errorUnsafeVirusScan": "CivitAIがこのファイルにマルウェアまたは疑わしい内容を検出しました",
|
||||
"errorUnsupportedSource": "このURLはサポートされていません。Hugging FaceとCivitaiのURLのみ使用できます。",
|
||||
"errorUploadFailed": "アセットのインポートに失敗しました。もう一度お試しください。",
|
||||
"errorUserTokenAccessDenied": "お使いのAPIトークンにはこのリソースへのアクセス権がありません。トークンの権限を確認してください。",
|
||||
"errorUserTokenInvalid": "保存されているAPIトークンが無効または期限切れです。設定でトークンを更新してください。",
|
||||
"failedToCreateNode": "ノードの作成に失敗しました。再試行するか、詳細はコンソールをご確認ください。",
|
||||
"fileFormats": "ファイル形式",
|
||||
"fileName": "ファイル名",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "条件付け",
|
||||
"CONTROL_NET": "コントロールネット",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "浮動小数点",
|
||||
"FLOATS": "浮動小数点数",
|
||||
"GEMINI_INPUT_FILES": "GEMINI入力ファイル",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "コマンド {command} は禁止されています。詳細は管理者にお問い合わせください。",
|
||||
"community": "コミュニティ",
|
||||
"completed": "完了",
|
||||
"completedWithCheckmark": "完了 ✓",
|
||||
"confirm": "確認",
|
||||
"confirmed": "確認済み",
|
||||
"content": "コンテンツ",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "ダウンロード",
|
||||
"downloadImage": "画像をダウンロード",
|
||||
"downloadVideo": "ビデオをダウンロード",
|
||||
"downloadWithSize": "ダウンロード({size})",
|
||||
"downloading": "ダウンロード中",
|
||||
"dropYourFileOr": "ファイルをドロップするか",
|
||||
"duplicate": "複製",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "有効化",
|
||||
"enterBaseName": "ベース名を入力",
|
||||
"enterNewName": "新しい名前を入力",
|
||||
"enterNewNamePrompt": "新しい名前を入力してください:",
|
||||
"error": "エラー",
|
||||
"errorLoadingImage": "画像の読み込みエラー",
|
||||
"errorLoadingVideo": "ビデオの読み込みエラー",
|
||||
"experimental": "ベータ",
|
||||
"export": "エクスポート",
|
||||
"extensionName": "拡張機能名",
|
||||
"extensions": "拡張機能",
|
||||
"failed": "失敗",
|
||||
"failedToCopyJobId": "ジョブIDのコピーに失敗しました",
|
||||
"failedToDownloadImage": "画像のダウンロードに失敗しました",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "ジョブIDがクリップボードにコピーされました",
|
||||
"keybinding": "キーバインディング",
|
||||
"keybindingAlreadyExists": "このキー割り当てはすでに存在します",
|
||||
"keybindings": "キーバインド",
|
||||
"learnMore": "詳細を学ぶ",
|
||||
"listening": "リスニング中...",
|
||||
"liveSamplingPreview": "ライブサンプリングプレビュー",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "選択されたファイル",
|
||||
"setAsBackground": "背景として設定",
|
||||
"settings": "設定",
|
||||
"shortcutSuffix": "({shortcut})",
|
||||
"showLeftPanel": "左パネルを表示",
|
||||
"showReport": "レポートを表示",
|
||||
"showRightPanel": "右パネルを表示",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "切り抜きプレビュー",
|
||||
"custom": "カスタム",
|
||||
"loading": "読み込み中...",
|
||||
"noInputImage": "入力画像が接続されていません"
|
||||
"lockRatio": "アスペクト比を固定",
|
||||
"noInputImage": "入力画像が接続されていません",
|
||||
"ratio": "比率",
|
||||
"unlockRatio": "アスペクト比を解除"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "コピーエラー",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "アプリモード",
|
||||
"rerun": "再実行",
|
||||
"reuseParameters": "パラメータを再利用",
|
||||
"runCount": "実行回数:"
|
||||
"runCount": "実行回数:",
|
||||
"welcome": {
|
||||
"intro": "ノードグラフを非表示にして、作成に集中できるシンプルなビューです。",
|
||||
"layout": "左側には生成した画像、動画、出力が表示されます。右側には必要なコントロールだけが表示されます。複雑なものはすべて見えません。",
|
||||
"sharing": "共有も簡単です:ワークフローを作成し、アプリモードを開き、タブを右クリックしてエクスポートします。他の人がファイルを開くと、このクリーンなビューで直接起動します。ノードグラフを理解しなくても、強力なワークフローをシンプルなツールとして共有できます。",
|
||||
"title": "アプリモードへようこそ",
|
||||
"widget": "表示する設定を制御したい場合は、トップレベルのノードをサブグラフに変換し、その上のツールボックスでウィジェットプロモーションを使って公開する項目を選択してください。"
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "テクスチャを適用中...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "ノードライブラリ",
|
||||
"Node Links": "ノードリンク",
|
||||
"Open": "開く",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "選択したノードの3Dビューア(ベータ版)を開く",
|
||||
"Open Color Picker in MaskEditor": "MaskEditorでカラーピッカーを開く",
|
||||
"Open Custom Nodes Folder": "カスタムノードフォルダーを開く",
|
||||
"Open DevTools": "開発者ツールを開く",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "マスクエディタで右に回転",
|
||||
"Save": "保存",
|
||||
"Save As": "名前を付けて保存",
|
||||
"Set Subgraph Description": "サブグラフの説明を設定",
|
||||
"Set Subgraph Search Aliases": "サブグラフの検索エイリアスを設定",
|
||||
"Show Keybindings Dialog": "キーバインドダイアログを表示",
|
||||
"Show Model Selector (Dev)": "モデルセレクターを表示(開発用)",
|
||||
"Show Settings Dialog": "設定ダイアログを表示",
|
||||
"Sign Out": "サインアウト",
|
||||
"Toggle App Mode": "アプリモードを切り替え",
|
||||
"Toggle Essential Bottom Panel": "エッセンシャル下部パネルの切り替え",
|
||||
"Toggle Logs Bottom Panel": "ログ下部パネルの切り替え",
|
||||
"Toggle Queue Panel V2": "キューパネルV2を切り替え",
|
||||
"Toggle Search Box": "検索ボックスの切り替え",
|
||||
"Toggle App Mode": "アプリモードを切り替え",
|
||||
"Toggle Terminal Bottom Panel": "ターミナル下部パネルの切り替え",
|
||||
"Toggle Theme (Dark/Light)": "テーマを切り替え(ダーク/ライト)",
|
||||
"Toggle View Controls Bottom Panel": "ビューコントロール下部パネルの切り替え",
|
||||
"Toggle promotion of hovered widget": "ホバー中のウィジェットの昇格を切り替え",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "お気に入り入力",
|
||||
"favoritesNone": "お気に入り入力なし",
|
||||
"favoritesNoneDesc": "お気に入りに追加した入力がここに表示されます",
|
||||
"favoritesNoneHint": "パラメータタブで、任意の入力の{moreIcon}をクリックするとここに追加できます",
|
||||
"favoritesNoneTooltip": "ウィジェットにスターを付けると、ノードを選択せずにすぐアクセスできます",
|
||||
"globalSettings": {
|
||||
"canvas": "キャンバス",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "プロパティパネルの切り替え",
|
||||
"workflowOverview": "ワークフロー概要"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "シークレットを追加",
|
||||
"createdAt": "{date} に作成",
|
||||
"deleteConfirmMessage": "「{name}」を削除してもよろしいですか?この操作は元に戻せません。",
|
||||
"deleteConfirmTitle": "シークレットの削除",
|
||||
"description": "シークレットは暗号化され、APIキーなどの機密データに使用されます。",
|
||||
"descriptionUsage": "ここにトークンを保存すると、対応プロバイダーからプライベートや制限付きモデルのダウンロードが有効になります。",
|
||||
"editSecret": "シークレットを編集",
|
||||
"errors": {
|
||||
"duplicateName": "この名前のシークレットはすでに存在します",
|
||||
"duplicateProvider": "このプロバイダーのシークレットはすでに存在します",
|
||||
"nameRequired": "名前は必須です",
|
||||
"nameTooLong": "名前は255文字以内で入力してください",
|
||||
"providerRequired": "プロバイダーは必須です",
|
||||
"secretValueRequired": "シークレット値は必須です"
|
||||
},
|
||||
"lastUsed": "最終使用日:{date}",
|
||||
"modelProviders": "モデルプロバイダー",
|
||||
"name": "名前",
|
||||
"namePlaceholder": "例:My API Key",
|
||||
"noSecrets": "シークレットが保存されていません。最初のAPIキーを追加して始めましょう。",
|
||||
"provider": "プロバイダー",
|
||||
"providerHint": "任意。プロバイダーを選択するとトークンの自動利用が有効になります。",
|
||||
"secretValue": "シークレット値",
|
||||
"secretValueHint": "この値は暗号化され、再度表示することはできません。",
|
||||
"secretValueHintEdit": "現在の値を保持する場合は空欄のままにしてください。",
|
||||
"secretValuePlaceholder": "APIキーを入力してください",
|
||||
"secretValuePlaceholderEdit": "変更する場合は新しい値を入力",
|
||||
"title": "APIキーとシークレット"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "グループノードをバイパス",
|
||||
"Set Group Nodes to Always": "グループノードを常に有効にする",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "リルート",
|
||||
"RerouteBeta": "ルート変更ベータ",
|
||||
"Scene": "シーン",
|
||||
"Secrets": "シークレット",
|
||||
"Server": "サーバー",
|
||||
"Server-Config": "サーバー設定",
|
||||
"Settings": "設定",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "サブグラフ名",
|
||||
"blueprintNamePrompt": "サブグラフ名:",
|
||||
"cannotDeleteGlobal": "インストール済みのブループリントは削除できません",
|
||||
"confirmDelete": "この操作により、ライブラリからサブグラフが完全に削除されます",
|
||||
"confirmDeleteTitle": "サブグラフを削除しますか?",
|
||||
"enterDescription": "説明を入力してください",
|
||||
"enterSearchAliases": "検索用エイリアスを入力(カンマ区切り)",
|
||||
"hidden": "非表示/ネストされたパラメータ",
|
||||
"hideAll": "すべて非表示",
|
||||
"loadFailure": "サブグラフの読み込みに失敗しました",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "ノードライブラリに保存されました",
|
||||
"publishSuccessMessage": "サブグラフはノードライブラリの「サブグラフブループリント」で見つけることができます",
|
||||
"saveBlueprint": "サブグラフをライブラリに保存",
|
||||
"searchAliases": "エイリアスを検索",
|
||||
"showAll": "すべて表示",
|
||||
"showRecommended": "おすすめウィジェットを表示",
|
||||
"shown": "ノード上で表示"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "ファイル名を入力",
|
||||
"enterFilenamePrompt": "ファイル名を入力してください:",
|
||||
"exportWorkflow": "ワークフローをエクスポート",
|
||||
"saveWorkflow": "ワークフローを保存"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "バッチサイズ",
|
||||
"tooltip": "バッチ内のlatent画像の数。"
|
||||
},
|
||||
"seconds": {
|
||||
"name": "秒数"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "低解像度画像を超解像度にアップスケールし、アーティファクトやノイズを除去します。最大出力:32メガピクセル。",
|
||||
"display_name": "HitPaw 一般画像強化",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "自動ダウンスケール",
|
||||
"tooltip": "出力が制限を超える場合、入力画像を自動的にダウンスケールします。"
|
||||
},
|
||||
"image": {
|
||||
"name": "画像"
|
||||
},
|
||||
"model": {
|
||||
"name": "モデル"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "アップスケール倍率"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "低解像度動画を高解像度にアップスケールし、アーティファクトやノイズを除去します。表示価格は動画1秒あたりです。",
|
||||
"display_name": "HitPaw 動画強化",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "モデル"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "解像度"
|
||||
},
|
||||
"video": {
|
||||
"name": "動画"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,9 @@
|
||||
"Load3D": {
|
||||
"display_name": "3Dを読み込む",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": {
|
||||
"": "クリア"
|
||||
},
|
||||
"height": {
|
||||
"name": "高さ"
|
||||
},
|
||||
@@ -6367,8 +6430,12 @@
|
||||
"model_file": {
|
||||
"name": "モデルファイル"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"": "3Dモデルをアップロード"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"": "追加リソースをアップロード"
|
||||
},
|
||||
"width": {
|
||||
"name": "幅"
|
||||
}
|
||||
@@ -7252,12 +7319,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy:画像からモデルへ",
|
||||
@@ -7303,16 +7375,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy:複数画像からモデルへ",
|
||||
@@ -7358,16 +7432,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "以前に作成したドラフトモデルをリファインします。",
|
||||
@@ -7392,16 +7468,18 @@
|
||||
"tooltip": "テクスチャリングプロセスをガイドするテキストプロンプトを入力してください。最大600文字。「texture_image」と同時に使用することはできません。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "標準フォーマットでリギング済みキャラクターを提供します。自動リギングは、テクスチャのないメッシュ、非ヒューマノイドアセット、または手足や体の構造が不明瞭なヒューマノイドアセットには適していません。",
|
||||
@@ -7419,16 +7497,18 @@
|
||||
"tooltip": "モデルのUV展開されたベースカラーテクスチャ画像です。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy:テキストからモデル生成",
|
||||
@@ -7467,16 +7547,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy:テクスチャモデル",
|
||||
@@ -7503,16 +7585,18 @@
|
||||
"tooltip": "オブジェクトの希望するテクスチャスタイルをテキストで説明してください。最大600文字。'image_style'と同時に使用することはできません。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "モデルファイル",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "新しいMiniMax Hailuo-02モデルを使用して、プロンプトから動画を生成します(開始フレームはオプション)。",
|
||||
@@ -10709,11 +10793,9 @@
|
||||
"camera_info": {
|
||||
"name": "カメラ情報"
|
||||
},
|
||||
"image": {
|
||||
"name": "画像"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "モデルファイル"
|
||||
"name": "モデルファイル",
|
||||
"tooltip": "3Dモデルファイルまたはパス文字列"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11436,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "このノードは音色のリファレンスオーディオを設定します(ace step 1.5用)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "コンディショニング"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "正規表現抽出",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11781,13 @@
|
||||
"name": "シード"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3Dモデルパス",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Rodin APIを使用して3Dアセットを生成",
|
||||
@@ -11709,12 +11809,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3Dモデルパス",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Rodin APIを使用して3Dアセットを生成",
|
||||
@@ -11733,12 +11834,13 @@
|
||||
"name": "シード"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3Dモデルパス",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Rodin APIを使用して3Dアセットを生成",
|
||||
@@ -11751,12 +11853,13 @@
|
||||
"name": "シード"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3Dモデルパス",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Rodin APIを使用して3Dアセットを生成",
|
||||
@@ -11775,12 +11878,13 @@
|
||||
"name": "シード"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3Dモデルパス",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "最初と最後のキーフレームをアップロードし、プロンプトを作成して動画を生成します。最後のフレームが最初のフレームと完全に異なる場合など、より複雑な遷移では、長い10秒の期間が効果的です。これにより、2つの入力間を滑らかに遷移するための時間がより多く確保されます。始める前に、これらのベストプラクティスを確認して、入力選択が生成を成功に導くようにしてください: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12611,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "ファイル名のプレフィックス"
|
||||
},
|
||||
"image": {
|
||||
"name": "画像"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "メッシュ"
|
||||
"name": "メッシュ",
|
||||
"tooltip": "保存するメッシュまたはGLBファイル"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13866,17 @@
|
||||
"tooltip": "シードはノードの再実行を制御しますが、シードに関わらず結果は非決定的です。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "モデルファイル",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: テキストからモデルへ (Pro)",
|
||||
@@ -13799,12 +13906,17 @@
|
||||
"tooltip": "シードはノードの再実行を制御しますが、シードに関わらず結果は非決定的です。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "モデルファイル",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13940,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "BPM"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "生成後のコントロール"
|
||||
},
|
||||
"duration": {
|
||||
"name": "長さ"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "キー"
|
||||
},
|
||||
"language": {
|
||||
"name": "言語"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "歌詞"
|
||||
},
|
||||
"seed": {
|
||||
"name": "シード"
|
||||
},
|
||||
"tags": {
|
||||
"name": "タグ"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "拍子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14535,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: マルチビューからモデル",
|
||||
@@ -14444,16 +14594,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "v1.4 Tripoモデルでのみ作成されたドラフトモデルをリファインします。",
|
||||
@@ -14464,16 +14612,14 @@
|
||||
"tooltip": "v1.4 Tripoモデルである必要があります"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: リグ付きモデルのリターゲット",
|
||||
@@ -14485,16 +14631,14 @@
|
||||
"name": "original_model_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "retarget task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: モデルのリグ設定",
|
||||
@@ -14503,16 +14647,14 @@
|
||||
"name": "original_model_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: テキストからモデル生成",
|
||||
@@ -14557,16 +14699,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: モデルのテクスチャリング",
|
||||
@@ -14590,16 +14730,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "モデルファイル",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "モデル タスクID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "テキストを切り詰める",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "キャンバス上のノード間の接続リンクの外観と表示を制御します。"
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "3Dビューアーを有効化(ベータ)",
|
||||
"tooltip": "選択したノードで3Dビューアー(ベータ)を有効にします。この機能により、フルサイズの3Dビューアー内で3Dモデルを直接可視化し、操作できます。"
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "初期背景色",
|
||||
"tooltip": "3Dシーンのデフォルト背景色を設定します。この設定は新しい3Dウィジェット作成時の背景の見た目を決定しますが、作成後に各ウィジェットごとに個別に調整できます。"
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "カメラタイプ",
|
||||
"options": {
|
||||
"orthographic": "オルソグラフィック",
|
||||
"perspective": "パースペクティブ"
|
||||
},
|
||||
"tooltip": "新しい3Dウィジェットが作成されたときに、デフォルトでカメラが透視投影か平行投影かを制御します。このデフォルトは、作成後に各ウィジェットごとに個別に切り替えることができます。"
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "ライト調整増分",
|
||||
"tooltip": "3Dシーンでライトの強度を調整する際の増分サイズを制御します。ステップ値が小さいほど、照明調整をより細かく制御でき、大きい値では1回の調整ごとにより顕著な変化が得られます。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "初期ライト強度",
|
||||
"tooltip": "3Dシーン内の照明のデフォルトの明るさレベルを設定します。この値は新しい3Dウィジェット作成時にライトがオブジェクトをどれだけ強く照らすかを決定しますが、作成後に各ウィジェットごとに個別に調整できます。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "最大光度",
|
||||
"tooltip": "3Dシーンで許可される最大光度値を設定します。これは、3Dウィジェットで照明を調整する際に設定できる明るさの上限を定義します。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "光の強度の最小値",
|
||||
"tooltip": "3Dシーンで許可される光の強度の最小値を設定します。これは、3Dウィジェットで照明を調整する際に設定できる明るさの下限を定義します。"
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLYエンジン",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "PLYファイルを読み込むエンジンを選択します。「threejs」はネイティブのThree.js PLYLoaderを使用します(メッシュPLYファイルに最適)。「fastply」はASCIIポイントクラウドPLYファイル用の最適化されたローダーです。「sparkjs」は3D Gaussian Splatting PLYファイル用のSpark.jsを使用します。"
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "グリッドを表示",
|
||||
"tooltip": "デフォルトでグリッドを表示するには切り替えます"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "言語"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "APIノードの料金バッジを表示"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "自動ノード置換を有効にする",
|
||||
"tooltip": "有効にすると、置換マッピングが存在する場合、欠落しているノードが自動的に新しい同等ノードに置き換えられます。"
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "ノード検索ボックスの実装",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "재시작"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "선택한 노드에 대해 3D 뷰어(베타) 열기"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "실험적: 모델 에셋 탐색"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "설정 대화상자 보기"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "서브그래프 설명 설정"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "서브그래프 검색 별칭 설정"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "실험적: AssetAPI 활성화"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "하단 패널 토글"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "터미널 하단 패널 토글"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "로그 하단 패널 토글"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "필수 하단 패널 전환"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "모든 {category}",
|
||||
"allModels": "모든 모델",
|
||||
"apiKeyHint": "비공개 또는 제한된 모델을 가져오시나요? {link}.",
|
||||
"apiKeyHintLink": "설정에서 API 키를 추가하세요",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - {type} 에셋",
|
||||
"loadingAsset": "에셋 로드 중"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "아직 가져온 모델이 없습니다. \"모델 가져오기\"를 클릭하여 직접 추가하세요.",
|
||||
"restricted": "개인 모델은 Creator 등급 이상에서만 사용할 수 있습니다."
|
||||
},
|
||||
"errorAccessForbidden": "이 리소스에 대한 접근이 금지되었습니다.",
|
||||
"errorConnectionRefused": "소스에 연결할 수 없습니다. 나중에 다시 시도하세요.",
|
||||
"errorDownloadCancelled": "다운로드가 취소되었습니다.",
|
||||
"errorFileTooLarge": "파일이 허용된 최대 크기 제한을 초과했습니다",
|
||||
"errorFormatNotAllowed": "SafeTensor 형식만 허용됩니다",
|
||||
"errorHttpError": "메타데이터를 가져오는 중 오류가 발생했습니다.",
|
||||
"errorInternalError": "예상치 못한 오류가 발생했습니다. 다시 시도해 주세요.",
|
||||
"errorInvalidHost": "소스 URL의 호스트 이름을 확인할 수 없습니다.",
|
||||
"errorInvalidUrl": "URL을 입력해 주세요.",
|
||||
"errorInvalidUrlFormat": "URL 형식이 올바르지 않습니다. 확인 후 다시 시도해 주세요.",
|
||||
"errorMetadataFetchFailed": "소스에서 파일 정보를 가져오지 못했습니다.",
|
||||
"errorModelTypeNotSupported": "이 모델 유형은 지원되지 않습니다",
|
||||
"errorNetworkError": "네트워크 오류가 발생했습니다. 연결을 확인하고 다시 시도해 주세요.",
|
||||
"errorNetworkTimeout": "요청 시간이 초과되었습니다. 다시 시도해 주세요.",
|
||||
"errorRateLimited": "요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.",
|
||||
"errorRequestCancelled": "요청이 취소되었습니다.",
|
||||
"errorResourceNotFound": "파일을 찾을 수 없습니다. URL을 확인하고 다시 시도해 주세요.",
|
||||
"errorServiceUnavailable": "서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도해 주세요.",
|
||||
"errorSourceServerError": "소스 서버에 문제가 발생했습니다. 나중에 다시 시도해 주세요.",
|
||||
"errorUnauthorized": "계속하려면 로그인해 주세요.",
|
||||
"errorUnauthorizedSource": "이 리소스는 인증이 필요합니다. 설정에서 API 토큰을 추가해 주세요.",
|
||||
"errorUnknown": "예기치 않은 오류가 발생했습니다",
|
||||
"errorUnsafePickleScan": "CivitAI에서 이 파일에 잠재적으로 안전하지 않은 코드를 감지했습니다",
|
||||
"errorUnsafeVirusScan": "CivitAI에서 이 파일에 악성코드 또는 의심스러운 내용을 감지했습니다",
|
||||
"errorUnsupportedSource": "이 URL은 지원되지 않습니다. Hugging Face와 Civitai URL만 허용됩니다.",
|
||||
"errorUploadFailed": "에셋 가져오기에 실패했습니다. 다시 시도해 주세요.",
|
||||
"errorUserTokenAccessDenied": "API 토큰에 이 리소스에 대한 접근 권한이 없습니다. 토큰 권한을 확인해 주세요.",
|
||||
"errorUserTokenInvalid": "저장된 API 토큰이 유효하지 않거나 만료되었습니다. 설정에서 토큰을 업데이트해 주세요.",
|
||||
"failedToCreateNode": "노드 생성에 실패했습니다. 다시 시도하거나 콘솔에서 세부 정보를 확인하세요.",
|
||||
"fileFormats": "파일 형식",
|
||||
"fileName": "파일 이름",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "조건",
|
||||
"CONTROL_NET": "컨트롤넷",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "실수",
|
||||
"FLOATS": "실수 배열",
|
||||
"GEMINI_INPUT_FILES": "GEMINI_INPUT_FILES",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "{command}는 금지된 명령입니다. 자세한 정보는 관리자에게 문의하십시오.",
|
||||
"community": "커뮤니티",
|
||||
"completed": "완료됨",
|
||||
"completedWithCheckmark": "완료됨 ✓",
|
||||
"confirm": "확인",
|
||||
"confirmed": "확인됨",
|
||||
"content": "콘텐츠",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "다운로드",
|
||||
"downloadImage": "이미지 다운로드",
|
||||
"downloadVideo": "비디오 다운로드",
|
||||
"downloadWithSize": "다운로드 ({size})",
|
||||
"downloading": "다운로드 중",
|
||||
"dropYourFileOr": "파일을 드롭하거나",
|
||||
"duplicate": "복제",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "활성화 중",
|
||||
"enterBaseName": "기본 이름 입력",
|
||||
"enterNewName": "새 이름 입력",
|
||||
"enterNewNamePrompt": "새 이름을 입력하세요:",
|
||||
"error": "오류",
|
||||
"errorLoadingImage": "이미지 로드 오류",
|
||||
"errorLoadingVideo": "비디오 로드 오류",
|
||||
"experimental": "베타",
|
||||
"export": "내보내기",
|
||||
"extensionName": "확장 이름",
|
||||
"extensions": "확장 프로그램",
|
||||
"failed": "실패",
|
||||
"failedToCopyJobId": "작업 ID 복사 실패",
|
||||
"failedToDownloadImage": "이미지 다운로드 실패",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "작업 ID가 클립보드에 복사됨",
|
||||
"keybinding": "키 바인딩",
|
||||
"keybindingAlreadyExists": "단축키가 이미 존재합니다",
|
||||
"keybindings": "단축키",
|
||||
"learnMore": "더 알아보기",
|
||||
"listening": "듣는 중...",
|
||||
"liveSamplingPreview": "라이브 샘플링 미리보기",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "선택된 파일",
|
||||
"setAsBackground": "배경으로 설정",
|
||||
"settings": "설정",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "왼쪽 패널 표시",
|
||||
"showReport": "보고서 보기",
|
||||
"showRightPanel": "오른쪽 패널 표시",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "자르기 미리보기",
|
||||
"custom": "사용자 지정",
|
||||
"loading": "로딩 중...",
|
||||
"noInputImage": "입력 이미지가 연결되지 않았습니다"
|
||||
"lockRatio": "비율 고정",
|
||||
"noInputImage": "입력 이미지가 연결되지 않았습니다",
|
||||
"ratio": "비율",
|
||||
"unlockRatio": "비율 해제"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "복사 오류",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "앱 모드",
|
||||
"rerun": "다시 실행",
|
||||
"reuseParameters": "파라미터 재사용",
|
||||
"runCount": "실행 횟수:"
|
||||
"runCount": "실행 횟수:",
|
||||
"welcome": {
|
||||
"intro": "노드 그래프를 숨겨 창작에 집중할 수 있는 간소화된 보기입니다.",
|
||||
"layout": "왼쪽에는 생성된 이미지, 비디오, 출력물이 표시됩니다. 오른쪽에는 필요한 컨트롤만 있습니다. 복잡한 모든 것은 보이지 않습니다.",
|
||||
"sharing": "공유는 간단합니다: 워크플로우를 만들고, 앱 모드를 열고, 탭을 우클릭한 후 내보내기를 선택하세요. 다른 사람이 파일을 열면 이 깔끔한 뷰로 바로 시작됩니다. 복잡한 노드 그래프를 몰라도 강력한 워크플로우를 간단한 도구로 공유할 수 있습니다.",
|
||||
"title": "앱 모드에 오신 것을 환영합니다",
|
||||
"widget": "어떤 설정이 표시될지 제어하려면, 최상위 노드를 서브그래프로 변환한 후 위의 툴박스에서 위젯 프로모션을 사용해 노출할 항목을 선택하세요."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "텍스처 적용 중...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "노드 라이브러리",
|
||||
"Node Links": "노드 링크",
|
||||
"Open": "열기",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "선택한 노드에 대한 3D 뷰어 (베타) 열기",
|
||||
"Open Color Picker in MaskEditor": "MaskEditor에서 색상 선택기 열기",
|
||||
"Open Custom Nodes Folder": "커스텀 노드 폴더 열기",
|
||||
"Open DevTools": "개발자 도구 열기",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "마스크 편집기에서 오른쪽으로 회전",
|
||||
"Save": "저장",
|
||||
"Save As": "다른 이름으로 저장",
|
||||
"Set Subgraph Description": "서브그래프 설명 설정",
|
||||
"Set Subgraph Search Aliases": "서브그래프 검색 별칭 설정",
|
||||
"Show Keybindings Dialog": "단축키 대화상자 표시",
|
||||
"Show Model Selector (Dev)": "모델 선택기 표시 (개발자용)",
|
||||
"Show Settings Dialog": "설정 대화상자 표시",
|
||||
"Sign Out": "로그아웃",
|
||||
"Toggle App Mode": "앱 모드 전환",
|
||||
"Toggle Essential Bottom Panel": "필수 하단 패널 전환",
|
||||
"Toggle Logs Bottom Panel": "로그 하단 패널 전환",
|
||||
"Toggle Queue Panel V2": "대기열 패널 V2 전환",
|
||||
"Toggle Search Box": "검색 상자 전환",
|
||||
"Toggle App Mode": "앱 모드 전환",
|
||||
"Toggle Terminal Bottom Panel": "터미널 하단 패널 전환",
|
||||
"Toggle Theme (Dark/Light)": "테마 전환 (어두운/밝은)",
|
||||
"Toggle View Controls Bottom Panel": "뷰 컨트롤 하단 패널 전환",
|
||||
"Toggle promotion of hovered widget": "호버된 위젯 승격 전환",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "즐겨찾는 입력",
|
||||
"favoritesNone": "즐겨찾는 입력 없음",
|
||||
"favoritesNoneDesc": "즐겨찾기한 입력이 여기에 표시됩니다",
|
||||
"favoritesNoneHint": "파라미터 탭에서 원하는 입력의 {moreIcon}을 클릭해 여기에 추가하세요",
|
||||
"favoritesNoneTooltip": "노드를 선택하지 않고도 빠르게 접근하려면 위젯에 별표를 표시하세요",
|
||||
"globalSettings": {
|
||||
"canvas": "캔버스",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "속성 패널 전환",
|
||||
"workflowOverview": "워크플로우 개요"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "시크릿 추가",
|
||||
"createdAt": "{date}에 생성됨",
|
||||
"deleteConfirmMessage": "\"{name}\"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||||
"deleteConfirmTitle": "시크릿 삭제",
|
||||
"description": "시크릿은 암호화되어 API 키와 같은 민감한 데이터에 사용됩니다.",
|
||||
"descriptionUsage": "여기에 토큰을 저장하여 지원되는 공급자에서 비공개 및 제한 모델을 다운로드할 수 있습니다.",
|
||||
"editSecret": "시크릿 편집",
|
||||
"errors": {
|
||||
"duplicateName": "이 이름의 시크릿이 이미 존재합니다",
|
||||
"duplicateProvider": "이 공급자의 시크릿이 이미 존재합니다",
|
||||
"nameRequired": "이름은 필수 항목입니다",
|
||||
"nameTooLong": "이름은 255자 이하여야 합니다",
|
||||
"providerRequired": "공급자는 필수 항목입니다",
|
||||
"secretValueRequired": "시크릿 값은 필수 항목입니다"
|
||||
},
|
||||
"lastUsed": "마지막 사용: {date}",
|
||||
"modelProviders": "모델 공급자",
|
||||
"name": "이름",
|
||||
"namePlaceholder": "예: My API Key",
|
||||
"noSecrets": "저장된 시크릿이 없습니다. 첫 번째 API 키를 추가하여 시작하세요.",
|
||||
"provider": "공급자",
|
||||
"providerHint": "선택 사항입니다. 공급자를 선택하면 토큰이 자동으로 사용됩니다.",
|
||||
"secretValue": "시크릿 값",
|
||||
"secretValueHint": "이 값은 암호화되며 다시 볼 수 없습니다.",
|
||||
"secretValueHintEdit": "현재 값을 유지하려면 비워 두세요.",
|
||||
"secretValuePlaceholder": "API 키를 입력하세요",
|
||||
"secretValuePlaceholderEdit": "변경하려면 새 값을 입력하세요",
|
||||
"title": "API 키 및 시크릿"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "그룹 노드 우회",
|
||||
"Set Group Nodes to Always": "그룹 노드를 항상 실행으로 설정",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "경유점",
|
||||
"RerouteBeta": "경유점 (베타)",
|
||||
"Scene": "장면",
|
||||
"Secrets": "시크릿",
|
||||
"Server": "서버",
|
||||
"Server-Config": "서버 구성",
|
||||
"Settings": "설정",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "서브그래프 이름",
|
||||
"blueprintNamePrompt": "서브그래프 이름:",
|
||||
"cannotDeleteGlobal": "설치된 블루프린트는 삭제할 수 없습니다",
|
||||
"confirmDelete": "이 작업은 라이브러리에서 블루프린트를 영구적으로 제거합니다",
|
||||
"confirmDeleteTitle": "블루프린트를 삭제하시겠습니까?",
|
||||
"enterDescription": "설명을 입력하세요",
|
||||
"enterSearchAliases": "검색 별칭을 입력하세요 (쉼표로 구분)",
|
||||
"hidden": "숨김 / 중첩 매개변수",
|
||||
"hideAll": "모두 숨김",
|
||||
"loadFailure": "서브그래프 블루프린트 로드 실패",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "노드 라이브러리에 저장됨",
|
||||
"publishSuccessMessage": "노드 라이브러리의 \"서브그래프 블루프린트\" 아래에서 서브그래프 블루프린트를 찾을 수 있습니다",
|
||||
"saveBlueprint": "서브그래프를 라이브러리에 저장",
|
||||
"searchAliases": "별칭 검색",
|
||||
"showAll": "모두 표시",
|
||||
"showRecommended": "권장 위젯 표시",
|
||||
"shown": "노드에 표시됨"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "파일 이름 입력",
|
||||
"enterFilenamePrompt": "파일 이름을 입력하세요:",
|
||||
"exportWorkflow": "워크플로 내보내기",
|
||||
"saveWorkflow": "워크플로 저장"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "배치 크기",
|
||||
"tooltip": "배치 내 latent 이미지의 수입니다."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "초"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "저해상도 이미지를 초고해상도로 업스케일하고, 아티팩트와 노이즈를 제거합니다. 최대 출력: 32 메가픽셀.",
|
||||
"display_name": "HitPaw 일반 이미지 향상",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "자동 다운스케일",
|
||||
"tooltip": "출력 이미지가 제한을 초과할 경우 입력 이미지를 자동으로 다운스케일합니다."
|
||||
},
|
||||
"image": {
|
||||
"name": "이미지"
|
||||
},
|
||||
"model": {
|
||||
"name": "모델"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "업스케일 배수"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "저해상도 비디오를 고해상도로 업스케일하고, 아티팩트와 노이즈를 제거합니다. 가격은 비디오 1초당 기준입니다.",
|
||||
"display_name": "HitPaw 비디오 향상",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "모델"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "해상도"
|
||||
},
|
||||
"video": {
|
||||
"name": "비디오"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6367,8 +6428,12 @@
|
||||
"model_file": {
|
||||
"name": "모델 파일"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"ko": "3D 모델 업로드"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"ko": "추가 리소스 업로드"
|
||||
},
|
||||
"width": {
|
||||
"name": "너비"
|
||||
}
|
||||
@@ -7252,12 +7317,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: 이미지 → 모델",
|
||||
@@ -7303,16 +7373,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: 다중 이미지 → 모델",
|
||||
@@ -7358,16 +7430,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "이전에 생성된 초안 모델을 다듬습니다.",
|
||||
@@ -7392,16 +7466,18 @@
|
||||
"tooltip": "텍스처링 과정을 안내할 텍스트 프롬프트를 입력하세요. 최대 600자. 'texture_image'와 동시에 사용할 수 없습니다."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "표준 포맷으로 리깅된 캐릭터를 제공합니다. 자동 리깅은 텍스처가 없는 메시, 비휴머노이드 자산, 또는 팔다리와 신체 구조가 불분명한 휴머노이드 자산에는 적합하지 않습니다.",
|
||||
@@ -7419,16 +7495,18 @@
|
||||
"tooltip": "모델의 UV 언랩된 기본 색상 텍스처 이미지입니다."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: 텍스트 → 모델",
|
||||
@@ -7467,16 +7545,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: 텍스처 모델",
|
||||
@@ -7503,16 +7583,18 @@
|
||||
"tooltip": "오브젝트의 원하는 텍스처 스타일을 텍스트로 설명하세요. 최대 600자까지 입력할 수 있습니다. 'image_style'과 동시에 사용할 수 없습니다."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "새로운 MiniMax Hailuo-02 모델을 사용하여 프롬프트로 비디오를 생성하며, 선택적으로 시작 프레임을 사용할 수 있습니다.",
|
||||
@@ -10709,11 +10791,9 @@
|
||||
"camera_info": {
|
||||
"name": "카메라 정보"
|
||||
},
|
||||
"image": {
|
||||
"name": "이미지"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "모델 파일"
|
||||
"name": "모델 파일",
|
||||
"tooltip": "3D 모델 파일 또는 경로 문자열"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11434,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "이 노드는 timbre(ace step 1.5용) 기준 오디오를 설정합니다.",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "컨디셔닝"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "정규식 추출",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11779,13 @@
|
||||
"name": "시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 모델 경로",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Rodin API를 사용하여 3D 에셋 생성",
|
||||
@@ -11709,12 +11807,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 모델 경로",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Rodin API를 사용하여 3D 에셋 생성",
|
||||
@@ -11733,12 +11832,13 @@
|
||||
"name": "시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 모델 경로",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Rodin API를 사용하여 3D 에셋 생성",
|
||||
@@ -11751,12 +11851,13 @@
|
||||
"name": "시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 모델 경로",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Rodin API를 사용하여 3D 에셋 생성",
|
||||
@@ -11775,12 +11876,13 @@
|
||||
"name": "시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 모델 경로",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "첫 번째와 마지막 키프레임을 업로드하고 프롬프트를 작성하여 비디오를 생성합니다. 마지막 프레임이 첫 번째 프레임과 완전히 다른 경우와 같은 복잡한 전환은 10초의 긴 지속 시간을 사용하는 것이 좋습니다. 이렇게 하면 두 입력 사이를 부드럽게 전환할 수 있는 시간이 더 주어집니다. 시작하기 전에 입력 선택이 생성 성공을 보장할 수 있도록 다음 모범 사례를 검토하세요: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12609,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "파일명 접두사"
|
||||
},
|
||||
"image": {
|
||||
"name": "이미지"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "메시"
|
||||
"name": "메시",
|
||||
"tooltip": "저장할 메시 또는 GLB 파일"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13864,17 @@
|
||||
"tooltip": "시드는 노드가 다시 실행될지 여부를 제어합니다. 시드와 관계없이 결과는 비결정적입니다."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: 텍스트 → 모델 (Pro)",
|
||||
@@ -13799,12 +13904,17 @@
|
||||
"tooltip": "시드는 노드가 다시 실행될지 여부를 제어합니다. 시드와 관계없이 결과는 비결정적입니다."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13938,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "BPM"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "생성 후 제어"
|
||||
},
|
||||
"duration": {
|
||||
"name": "길이"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "조성"
|
||||
},
|
||||
"language": {
|
||||
"name": "언어"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "가사"
|
||||
},
|
||||
"seed": {
|
||||
"name": "시드"
|
||||
},
|
||||
"tags": {
|
||||
"name": "태그"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "박자"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "HunyuanVideo 텍스트 인코딩 (이미지 → 비디오)",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14533,14 @@
|
||||
"name": "텍스처 시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "모델 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: 다중 뷰에서 모델 생성",
|
||||
@@ -14444,16 +14592,14 @@
|
||||
"name": "텍스처 시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "모델 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "v1.4 Tripo 모델로 생성된 드래프트 모델만 정제합니다.",
|
||||
@@ -14464,16 +14610,14 @@
|
||||
"tooltip": "v1.4 Tripo 모델이어야 합니다"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "모델 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: 리깅된 모델 리타겟",
|
||||
@@ -14485,16 +14629,14 @@
|
||||
"name": "원본 모델 작업 ID"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "리타겟 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: 모델 리깅",
|
||||
@@ -14503,16 +14645,14 @@
|
||||
"name": "원본 모델 작업 ID"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "리깅 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: 텍스트에서 모델 생성",
|
||||
@@ -14557,16 +14697,14 @@
|
||||
"name": "텍스처 시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "모델 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: 텍스처 모델",
|
||||
@@ -14590,16 +14728,14 @@
|
||||
"name": "텍스처 시드"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "모델 파일",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "모델 작업 ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "텍스트 자르기",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "캔버스에서 노드 간 연결 링크의 모양과 표시 여부를 제어합니다."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "3D 뷰어 활성화 (베타)",
|
||||
"tooltip": "선택한 노드에 대해 3D 뷰어(베타)를 활성화합니다. 이 기능을 통해 전체 크기의 3D 뷰어에서 3D 모델을 직접 시각화하고 상호작용할 수 있습니다."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "초기 배경색",
|
||||
"tooltip": "3D 장면의 기본 배경색을 설정합니다. 이 설정은 새 3D 위젯이 생성될 때 배경의 모양을 결정하지만, 생성 후 각 위젯별로 개별적으로 조정할 수 있습니다."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "카메라 유형",
|
||||
"options": {
|
||||
"orthographic": "직교법",
|
||||
"perspective": "원근법"
|
||||
},
|
||||
"tooltip": "새로운 3D 위젯이 생성될 때 카메라가 기본적으로 원근법 또는 직교법을 사용하는지를 제어합니다. 이 기본값은 생성 후 각 위젯별로 개별적으로 전환할 수 있습니다."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "조명 조정 증가량",
|
||||
"tooltip": "3D 장면에서 조명 강도를 조정할 때 증가하는 크기를 제어합니다. 값이 작을수록 조명을 더 세밀하게 조정할 수 있고, 값이 클수록 한 번에 더 눈에 띄는 변화가 발생합니다."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "초기 조명 강도",
|
||||
"tooltip": "3D 장면에서 조명의 기본 밝기 수준을 설정합니다. 이 값은 새 3D 위젯이 생성될 때 조명이 오브젝트를 얼마나 강하게 비추는지 결정하지만, 생성 후 각 위젯별로 개별적으로 조정할 수 있습니다."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "최대 조명 강도",
|
||||
"tooltip": "3D 장면에서 허용되는 최대 조명 강도 값을 설정합니다. 이는 모든 3D 위젯에서 조명을 조정할 때 설정할 수 있는 밝기의 상한선을 정의합니다."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "최소 광원 세기",
|
||||
"tooltip": "3D 장면에서 허용되는 최소 광원 세기 값을 설정합니다. 이는 모든 3D 위젯에서 조명을 조정할 때 설정할 수 있는 밝기의 하한을 정의합니다."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLY 엔진",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "PLY 파일을 불러올 엔진을 선택하세요. \"threejs\"는 Three.js의 기본 PLYLoader를 사용합니다(메시 PLY 파일에 적합). \"fastply\"는 ASCII 포인트 클라우드 PLY 파일에 최적화된 로더를 사용합니다. \"sparkjs\"는 3D Gaussian Splatting PLY 파일에 Spark.js를 사용합니다."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "그리드 표시",
|
||||
"tooltip": "기본적으로 그리드를 표시하도록 전환"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "언어"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "API 노드 가격 배지 표시"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "자동 노드 교체 활성화",
|
||||
"tooltip": "활성화하면, 누락된 노드를 교체 매핑이 존재할 경우 최신 버전의 노드로 자동 교체할 수 있습니다."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "노드 검색 상자 구현",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Reiniciar"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Abrir visualizador 3D (Beta) para o nó selecionado"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Experimental: Navegar pelos ativos de modelo"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Mostrar Diálogo de Configurações"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Definir descrição do subgrafo"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Definir aliases de pesquisa do subgrafo"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Experimental: Ativar AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "Alternar painel inferior"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Alternar painel inferior do terminal"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Alternar painel inferior de logs"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Alternar painel inferior essencial"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "Todas as {category}",
|
||||
"allModels": "Todos os Modelos",
|
||||
"apiKeyHint": "Importando modelos privados ou restritos? {link}.",
|
||||
"apiKeyHintLink": "Adicione suas chaves de API em Configurações",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - ativo do tipo {type}",
|
||||
"loadingAsset": "Carregando ativo"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "Nenhum modelo importado ainda. Clique em \"Importar Modelo\" para adicionar o seu.",
|
||||
"restricted": "Modelos pessoais estão disponíveis apenas no nível Creator ou superior."
|
||||
},
|
||||
"errorAccessForbidden": "Acesso a este recurso proibido.",
|
||||
"errorConnectionRefused": "Não foi possível conectar à fonte. Tente novamente mais tarde.",
|
||||
"errorDownloadCancelled": "O download foi cancelado.",
|
||||
"errorFileTooLarge": "O arquivo excede o limite máximo de tamanho permitido",
|
||||
"errorFormatNotAllowed": "Apenas o formato SafeTensor é permitido",
|
||||
"errorHttpError": "Ocorreu um erro ao buscar os metadados.",
|
||||
"errorInternalError": "Ocorreu um erro inesperado. Por favor, tente novamente.",
|
||||
"errorInvalidHost": "O nome do host da URL de origem não pôde ser resolvido.",
|
||||
"errorInvalidUrl": "Por favor, forneça uma URL.",
|
||||
"errorInvalidUrlFormat": "O formato da URL é inválido. Verifique e tente novamente.",
|
||||
"errorMetadataFetchFailed": "Falha ao buscar informações do arquivo da fonte.",
|
||||
"errorModelTypeNotSupported": "Este tipo de modelo não é suportado",
|
||||
"errorNetworkError": "Ocorreu um erro de rede. Verifique sua conexão e tente novamente.",
|
||||
"errorNetworkTimeout": "Tempo de solicitação esgotado. Por favor, tente novamente.",
|
||||
"errorRateLimited": "Muitas solicitações. Tente novamente em alguns minutos.",
|
||||
"errorRequestCancelled": "Solicitação cancelada.",
|
||||
"errorResourceNotFound": "Arquivo não encontrado. Verifique a URL e tente novamente.",
|
||||
"errorServiceUnavailable": "Serviço temporariamente indisponível. Tente novamente mais tarde.",
|
||||
"errorSourceServerError": "O servidor de origem está com problemas. Tente novamente mais tarde.",
|
||||
"errorUnauthorized": "Por favor, faça login para continuar.",
|
||||
"errorUnauthorizedSource": "Este recurso requer autenticação. Adicione seu token de API nas configurações.",
|
||||
"errorUnknown": "Ocorreu um erro inesperado",
|
||||
"errorUnsafePickleScan": "O CivitAI detectou código potencialmente inseguro neste arquivo",
|
||||
"errorUnsafeVirusScan": "O CivitAI detectou malware ou conteúdo suspeito neste arquivo",
|
||||
"errorUnsupportedSource": "Esta URL não é suportada. Apenas URLs do Hugging Face e Civitai são permitidas.",
|
||||
"errorUploadFailed": "Falha ao importar o ativo. Por favor, tente novamente.",
|
||||
"errorUserTokenAccessDenied": "Seu token de API não tem acesso a este recurso. Verifique as permissões do seu token.",
|
||||
"errorUserTokenInvalid": "Seu token de API armazenado é inválido ou expirou. Atualize seu token nas configurações.",
|
||||
"failedToCreateNode": "Falha ao criar o nó. Por favor, tente novamente ou verifique o console para mais detalhes.",
|
||||
"fileFormats": "Formatos de arquivo",
|
||||
"fileName": "Nome do arquivo",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "CONDICIONAMENTO",
|
||||
"CONTROL_NET": "controlnet",
|
||||
"FILE_3D": "ARQUIVO_3D",
|
||||
"FILE_3D_FBX": "ARQUIVO_3D_FBX",
|
||||
"FILE_3D_GLB": "ARQUIVO_3D_GLB",
|
||||
"FILE_3D_GLTF": "ARQUIVO_3D_GLTF",
|
||||
"FILE_3D_OBJ": "ARQUIVO_3D_OBJ",
|
||||
"FILE_3D_STL": "ARQUIVO_3D_STL",
|
||||
"FILE_3D_USDZ": "ARQUIVO_3D_USDZ",
|
||||
"FLOAT": "PONTO FLUTUANTE",
|
||||
"FLOATS": "PONTOS FLUTUANTES",
|
||||
"GEMINI_INPUT_FILES": "ARQUIVOS DE ENTRADA GEMINI",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "O comando {command} é proibido. Entre em contato com um administrador para mais informações.",
|
||||
"community": "Comunidade",
|
||||
"completed": "Concluído",
|
||||
"completedWithCheckmark": "Concluído ✓",
|
||||
"confirm": "Confirmar",
|
||||
"confirmed": "Confirmado",
|
||||
"content": "conteúdo",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "Baixar",
|
||||
"downloadImage": "Baixar imagem",
|
||||
"downloadVideo": "Baixar vídeo",
|
||||
"downloadWithSize": "Baixar ({size})",
|
||||
"downloading": "Baixando",
|
||||
"dropYourFileOr": "Solte seu arquivo ou",
|
||||
"duplicate": "Duplicar",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "Ativando {id}",
|
||||
"enterBaseName": "Digite o nome base",
|
||||
"enterNewName": "Digite o novo nome",
|
||||
"enterNewNamePrompt": "Digite o novo nome:",
|
||||
"error": "Erro",
|
||||
"errorLoadingImage": "Erro ao carregar imagem",
|
||||
"errorLoadingVideo": "Erro ao carregar vídeo",
|
||||
"experimental": "BETA",
|
||||
"export": "Exportar",
|
||||
"extensionName": "Nome da extensão",
|
||||
"extensions": "Extensões",
|
||||
"failed": "Falhou",
|
||||
"failedToCopyJobId": "Falha ao copiar o ID da tarefa",
|
||||
"failedToDownloadImage": "Falha ao baixar imagem",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "ID da tarefa copiado para a área de transferência",
|
||||
"keybinding": "Atalho",
|
||||
"keybindingAlreadyExists": "Atalho já existe em",
|
||||
"keybindings": "Atalhos de teclado",
|
||||
"learnMore": "Saiba mais",
|
||||
"listening": "Ouvindo...",
|
||||
"liveSamplingPreview": "Pré-visualização de amostragem ao vivo",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "Arquivo selecionado",
|
||||
"setAsBackground": "Definir como plano de fundo",
|
||||
"settings": "Configurações",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "Mostrar painel esquerdo",
|
||||
"showReport": "Mostrar relatório",
|
||||
"showRightPanel": "Mostrar painel direito",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "Pré-visualização do recorte",
|
||||
"custom": "Personalizado",
|
||||
"loading": "Carregando...",
|
||||
"noInputImage": "Nenhuma imagem de entrada conectada"
|
||||
"lockRatio": "Bloquear proporção",
|
||||
"noInputImage": "Nenhuma imagem de entrada conectada",
|
||||
"ratio": "Proporção",
|
||||
"unlockRatio": "Desbloquear proporção"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "Erro ao Copiar",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "Modo App",
|
||||
"rerun": "Executar novamente",
|
||||
"reuseParameters": "Reutilizar parâmetros",
|
||||
"runCount": "Número de execuções:"
|
||||
"runCount": "Número de execuções:",
|
||||
"welcome": {
|
||||
"intro": "Uma visualização simplificada que oculta o grafo de nós para você focar na criação.",
|
||||
"layout": "À esquerda, você verá suas imagens, vídeos e saídas geradas. À direita, apenas os controles necessários. Tudo que é complexo fica fora de vista.",
|
||||
"sharing": "Compartilhar é fácil: crie seu fluxo de trabalho, abra o Modo App, clique com o botão direito na aba e exporte. Quando outros abrirem seu arquivo, ele será iniciado diretamente nesta visualização limpa. Você pode compartilhar fluxos de trabalho poderosos como ferramentas simples, sem que ninguém precise entender grafos de nós.",
|
||||
"title": "Bem-vindo ao Modo App",
|
||||
"widget": "Se quiser controlar quais configurações aparecem, converta seus nós de nível superior em um subgrafo e use a promoção de widgets na caixa de ferramentas acima dele para escolher o que será exposto."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "Aplicando Textura...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "Biblioteca de nós",
|
||||
"Node Links": "Ligações de nós",
|
||||
"Open": "Abrir",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Abrir visualizador 3D (Beta) para o nó selecionado",
|
||||
"Open Color Picker in MaskEditor": "Abrir seletor de cores no MaskEditor",
|
||||
"Open Custom Nodes Folder": "Abrir pasta de nós personalizados",
|
||||
"Open DevTools": "Abrir DevTools",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "Girar para a direita no MaskEditor",
|
||||
"Save": "Salvar",
|
||||
"Save As": "Salvar como",
|
||||
"Set Subgraph Description": "Definir Descrição do Subgrafo",
|
||||
"Set Subgraph Search Aliases": "Definir Apelidos de Busca do Subgrafo",
|
||||
"Show Keybindings Dialog": "Mostrar diálogo de atalhos",
|
||||
"Show Model Selector (Dev)": "Mostrar seletor de modelo (Dev)",
|
||||
"Show Settings Dialog": "Mostrar diálogo de configurações",
|
||||
"Sign Out": "Sair",
|
||||
"Toggle App Mode": "Alternar Modo App",
|
||||
"Toggle Essential Bottom Panel": "Alternar painel inferior essencial",
|
||||
"Toggle Logs Bottom Panel": "Alternar painel inferior de logs",
|
||||
"Toggle Queue Panel V2": "Alternar painel de fila V2",
|
||||
"Toggle Search Box": "Alternar caixa de pesquisa",
|
||||
"Toggle App Mode": "Alternar Modo App",
|
||||
"Toggle Terminal Bottom Panel": "Alternar painel inferior do terminal",
|
||||
"Toggle Theme (Dark/Light)": "Alternar tema (Escuro/Claro)",
|
||||
"Toggle View Controls Bottom Panel": "Alternar painel inferior de controles de visualização",
|
||||
"Toggle promotion of hovered widget": "Alternar promoção do widget destacado",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "ENTRADAS FAVORITAS",
|
||||
"favoritesNone": "NENHUMA ENTRADA FAVORITA",
|
||||
"favoritesNoneDesc": "Entradas que você favoritar aparecerão aqui",
|
||||
"favoritesNoneHint": "Na aba Parâmetros, clique em {moreIcon} em qualquer entrada para adicioná-la aqui",
|
||||
"favoritesNoneTooltip": "Marque widgets com estrela para acessá-los rapidamente sem selecionar nós",
|
||||
"globalSettings": {
|
||||
"canvas": "CANVAS",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "Alternar painel de propriedades",
|
||||
"workflowOverview": "Visão geral do fluxo de trabalho"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "Adicionar Segredo",
|
||||
"createdAt": "Criado em {date}",
|
||||
"deleteConfirmMessage": "Tem certeza de que deseja excluir \"{name}\"? Esta ação não pode ser desfeita.",
|
||||
"deleteConfirmTitle": "Excluir Segredo",
|
||||
"description": "Os segredos são criptografados e usados para dados sensíveis como chaves de API.",
|
||||
"descriptionUsage": "Armazene seus tokens aqui para permitir o download de modelos privados e restritos de provedores compatíveis.",
|
||||
"editSecret": "Editar Segredo",
|
||||
"errors": {
|
||||
"duplicateName": "Já existe um segredo com este nome",
|
||||
"duplicateProvider": "Já existe um segredo para este provedor",
|
||||
"nameRequired": "O nome é obrigatório",
|
||||
"nameTooLong": "O nome deve ter no máximo 255 caracteres",
|
||||
"providerRequired": "O provedor é obrigatório",
|
||||
"secretValueRequired": "O valor do segredo é obrigatório"
|
||||
},
|
||||
"lastUsed": "Último uso em {date}",
|
||||
"modelProviders": "Provedores de Modelos",
|
||||
"name": "Nome",
|
||||
"namePlaceholder": "ex.: Minha Chave de API",
|
||||
"noSecrets": "Nenhum segredo armazenado. Adicione sua primeira chave de API para começar.",
|
||||
"provider": "Provedor",
|
||||
"providerHint": "Opcional. Selecionar um provedor permite o uso automático do token.",
|
||||
"secretValue": "Valor do Segredo",
|
||||
"secretValueHint": "Este valor será criptografado e não poderá ser visualizado novamente.",
|
||||
"secretValueHintEdit": "Deixe em branco para manter o valor atual.",
|
||||
"secretValuePlaceholder": "Digite sua chave de API",
|
||||
"secretValuePlaceholderEdit": "Digite um novo valor para alterar",
|
||||
"title": "Chaves de API & Segredos"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "Ignorar Nós de Grupo",
|
||||
"Set Group Nodes to Always": "Definir Nós de Grupo para Sempre",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "Redirecionar",
|
||||
"RerouteBeta": "Redirecionar Beta",
|
||||
"Scene": "Cena",
|
||||
"Secrets": "Segredos",
|
||||
"Server": "Servidor",
|
||||
"Server-Config": "Configuração do Servidor",
|
||||
"Settings": "Configurações",
|
||||
@@ -2354,9 +2433,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "Nome do subgrafo",
|
||||
"blueprintNamePrompt": "Nome do subgrafo:",
|
||||
"cannotDeleteGlobal": "Não é possível excluir blueprints instalados",
|
||||
"confirmDelete": "Esta ação removerá permanentemente o blueprint da sua biblioteca",
|
||||
"confirmDeleteTitle": "Excluir blueprint?",
|
||||
"enterDescription": "Insira uma descrição",
|
||||
"enterSearchAliases": "Insira apelidos de busca (separados por vírgula)",
|
||||
"hidden": "Parâmetros ocultos/aninhados",
|
||||
"hideAll": "Ocultar tudo",
|
||||
"loadFailure": "Falha ao carregar blueprints de subgrafo",
|
||||
@@ -2367,6 +2449,7 @@
|
||||
"publishSuccess": "Salvo na Biblioteca de Nós",
|
||||
"publishSuccessMessage": "Você pode encontrar seu blueprint de subgrafo na biblioteca de nós em \"Blueprints de Subgrafo\"",
|
||||
"saveBlueprint": "Salvar Subgrafo na Biblioteca",
|
||||
"searchAliases": "Buscar Apelidos",
|
||||
"showAll": "Mostrar tudo",
|
||||
"showRecommended": "Mostrar widgets recomendados",
|
||||
"shown": "Exibido no nó"
|
||||
@@ -2713,6 +2796,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "Digite o nome do arquivo",
|
||||
"enterFilenamePrompt": "Digite o nome do arquivo:",
|
||||
"exportWorkflow": "Exportar Fluxo de Trabalho",
|
||||
"saveWorkflow": "Salvar fluxo de trabalho"
|
||||
},
|
||||
|
||||
@@ -2207,6 +2207,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "tamanho_do_lote",
|
||||
"tooltip": "O número de imagens latentes no lote."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "segundos"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "Áudio Latente AceStep Vazio",
|
||||
"inputs": {
|
||||
@@ -3559,6 +3576,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "Aumente imagens de baixa resolução para super-resolução, eliminando artefatos e ruídos. Saída máxima: 32 megapixels.",
|
||||
"display_name": "HitPaw General Image Enhance",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "auto_redimensionar",
|
||||
"tooltip": "Redimensiona automaticamente a imagem de entrada se a saída exceder o limite."
|
||||
},
|
||||
"image": {
|
||||
"name": "imagem"
|
||||
},
|
||||
"model": {
|
||||
"name": "modelo"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "fator_de_upscale"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "Aumente vídeos de baixa resolução para alta resolução, eliminando artefatos e ruídos. Os preços exibidos são por segundo de vídeo.",
|
||||
"display_name": "HitPaw Video Enhance",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "modelo"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "resolução"
|
||||
},
|
||||
"video": {
|
||||
"name": "vídeo"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6382,32 +6443,18 @@
|
||||
"name": "largura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "imagem",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "mask",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "caminho_malha",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "normal",
|
||||
"tooltip": null
|
||||
},
|
||||
"4": {
|
||||
"name": "info_câmera",
|
||||
"tooltip": null
|
||||
},
|
||||
"5": {
|
||||
"name": "vídeo_gravado",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "model_3d",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LoadAudio": {
|
||||
"display_name": "Carregar Áudio",
|
||||
@@ -7268,12 +7315,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: Imagem para Modelo",
|
||||
@@ -7319,16 +7371,18 @@
|
||||
"name": "modo_de_simetria"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: Múltiplas Imagens para Modelo",
|
||||
@@ -7374,16 +7428,18 @@
|
||||
"name": "modo_de_simetria"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "Refine um modelo rascunho criado anteriormente.",
|
||||
@@ -7408,16 +7464,18 @@
|
||||
"tooltip": "Forneça um prompt de texto para orientar o processo de texturização. Máximo de 600 caracteres. Não pode ser usado ao mesmo tempo que 'texture_image'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "Fornece um personagem com rig em formatos padrão. O auto-rigging atualmente não é adequado para malhas sem textura, ativos não humanóides ou ativos humanóides com estrutura de membros e corpo indefinida.",
|
||||
@@ -7435,16 +7493,18 @@
|
||||
"tooltip": "Imagem de textura de cor base UV-desdobrada do modelo."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: Texto para Modelo",
|
||||
@@ -7483,16 +7543,18 @@
|
||||
"name": "modo_de_simetria"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: Modelo de Textura",
|
||||
@@ -7519,16 +7581,18 @@
|
||||
"tooltip": "Descreva o estilo de textura desejado para o objeto usando texto. Máximo de 600 caracteres. Não pode ser usado ao mesmo tempo que 'image_style'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "Gera vídeos a partir do prompt, com quadro inicial opcional usando o novo modelo MiniMax Hailuo-02.",
|
||||
@@ -10725,11 +10789,9 @@
|
||||
"camera_info": {
|
||||
"name": "camera_info"
|
||||
},
|
||||
"image": {
|
||||
"name": "image"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "model_file"
|
||||
"name": "model_file",
|
||||
"tooltip": "Arquivo de modelo 3D ou caminho do arquivo"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11370,6 +11432,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "Este nó define o áudio de referência para timbre (para ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "condicionamento"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Extração por Regex",
|
||||
"inputs": {
|
||||
@@ -11698,12 +11777,13 @@
|
||||
"name": "Semente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Caminho do Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Gerar ativos 3D usando a API Rodin",
|
||||
@@ -11725,12 +11805,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Caminho do Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Gerar ativos 3D usando a API Rodin",
|
||||
@@ -11749,12 +11830,13 @@
|
||||
"name": "Semente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Caminho do Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Gerar ativos 3D usando a API Rodin",
|
||||
@@ -11767,12 +11849,13 @@
|
||||
"name": "Semente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Caminho do Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Gerar ativos 3D usando a API Rodin",
|
||||
@@ -11791,12 +11874,13 @@
|
||||
"name": "Semente"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Caminho do Modelo 3D",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "Envie os quadros-chave inicial e final, escreva um prompt e gere um vídeo. Transições mais complexas, como casos em que o quadro final é completamente diferente do inicial, podem se beneficiar da duração mais longa de 10s. Isso dará mais tempo para a geração fazer uma transição suave entre as duas entradas. Antes de começar, revise estas melhores práticas para garantir que suas seleções de entrada ajudarão no sucesso da geração: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12528,11 +12612,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "prefixo_do_arquivo"
|
||||
},
|
||||
"image": {
|
||||
"name": "imagem"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "malha"
|
||||
"name": "malha",
|
||||
"tooltip": "Malha ou arquivo GLB para salvar"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13791,12 +13873,17 @@
|
||||
"tooltip": "A semente controla se o nó deve ser executado novamente; os resultados são não determinísticos independentemente da semente."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: Texto para Modelo (Pro)",
|
||||
@@ -13826,12 +13913,17 @@
|
||||
"tooltip": "A semente controla se o nó deve ser executado novamente; os resultados são não determinísticos independentemente da semente."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13855,6 +13947,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "controle após gerar"
|
||||
},
|
||||
"duration": {
|
||||
"name": "duração"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "escala tonal"
|
||||
},
|
||||
"language": {
|
||||
"name": "idioma"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "letra"
|
||||
},
|
||||
"seed": {
|
||||
"name": "semente"
|
||||
},
|
||||
"tags": {
|
||||
"name": "tags"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "fórmula de compasso"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14410,16 +14542,14 @@
|
||||
"name": "semente_da_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "task_id do modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: Multiview para Modelo",
|
||||
@@ -14471,16 +14601,14 @@
|
||||
"name": "semente_da_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_da_tarefa_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "Refine um modelo rascunho criado apenas por modelos Tripo v1.4.",
|
||||
@@ -14491,16 +14619,14 @@
|
||||
"tooltip": "Deve ser um modelo Tripo v1.4"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_da_tarefa_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: Retarget para modelo com rig",
|
||||
@@ -14512,16 +14638,14 @@
|
||||
"name": "id_da_tarefa_do_modelo_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_da_tarefa_de_retarget",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: Rig no modelo",
|
||||
@@ -14530,16 +14654,14 @@
|
||||
"name": "id_da_tarefa_do_modelo_original"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_da_tarefa_de_rig",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: Texto para Modelo",
|
||||
@@ -14584,16 +14706,14 @@
|
||||
"name": "semente_da_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_do_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "id_da_tarefa_do_modelo",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: Modelo de Textura",
|
||||
@@ -14617,16 +14737,14 @@
|
||||
"name": "semente_textura"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "arquivo_modelo",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "Truncar Texto",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "Controla a aparência e a visibilidade dos links de conexão entre os nós no canvas."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "Ativar visualizador 3D (Beta)",
|
||||
"tooltip": "Ativa o visualizador 3D (Beta) para os nós selecionados. Este recurso permite visualizar e interagir com modelos 3D diretamente no visualizador 3D em tamanho completo."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Cor de fundo inicial",
|
||||
"tooltip": "Controla a cor de fundo padrão da cena 3D. Esta configuração determina a aparência do fundo ao criar um novo widget 3D, mas pode ser ajustada individualmente para cada widget após a criação."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Tipo de câmera inicial",
|
||||
"options": {
|
||||
"orthographic": "ortográfica",
|
||||
"perspective": "perspectiva"
|
||||
},
|
||||
"tooltip": "Controla se a câmera é perspectiva ou ortográfica por padrão ao criar um novo widget 3D. Este padrão ainda pode ser alternado individualmente para cada widget após a criação."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Incremento de ajuste de luz",
|
||||
"tooltip": "Controla o tamanho do incremento ao ajustar a intensidade da luz em cenas 3D. Um valor menor permite um controle mais preciso dos ajustes de iluminação, enquanto um valor maior resulta em mudanças mais perceptíveis por ajuste."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Intensidade de luz inicial",
|
||||
"tooltip": "Define o nível de brilho padrão da iluminação na cena 3D. Este valor determina o quão intensamente as luzes iluminam os objetos ao criar um novo widget 3D, mas pode ser ajustado individualmente para cada widget após a criação."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Intensidade máxima da luz",
|
||||
"tooltip": "Define o valor máximo permitido para a intensidade da luz em cenas 3D. Isso determina o limite superior de brilho que pode ser definido ao ajustar a iluminação em qualquer widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Intensidade mínima da luz",
|
||||
"tooltip": "Define o valor mínimo permitido para a intensidade da luz em cenas 3D. Isso determina o limite inferior de brilho que pode ser definido ao ajustar a iluminação em qualquer widget 3D."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "Engine PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "Selecione a engine para carregar arquivos PLY. \"threejs\" usa o PLYLoader nativo do Three.js (melhor para arquivos PLY de malha). \"fastply\" usa um carregador otimizado para arquivos PLY de nuvem de pontos ASCII. \"sparkjs\" usa Spark.js para arquivos PLY de Gaussian Splatting 3D."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Visibilidade inicial da grade",
|
||||
"tooltip": "Controla se a grade está visível por padrão ao criar um novo widget 3D. Este padrão ainda pode ser alternado individualmente para cada widget após a criação."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Idioma"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "Mostrar selo de preço do nó de API"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Ativar substituição automática de nós",
|
||||
"tooltip": "Quando ativado, nós ausentes podem ser substituídos automaticamente por seus equivalentes mais recentes, se existir um mapeamento de substituição."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Implementação da caixa de busca de nós",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Перезапустить"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Открыть 3D-просмотрщик (бета) для выбранного узла"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Экспериментально: Просмотр ресурсов моделей"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Показать диалог настроек"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Установить описание подграфа"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Установить поисковые псевдонимы подграфа"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Экспериментально: Включить AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "Переключить нижнюю панель"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Переключить нижнюю панель терминала"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Переключить нижнюю панель логов"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Показать/скрыть основную нижнюю панель"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "Все {category}",
|
||||
"allModels": "Все модели",
|
||||
"apiKeyHint": "Импортируете приватные или ограниченные модели? {link}.",
|
||||
"apiKeyHintLink": "Добавьте свои API-ключи в Настройках",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - ресурс типа {type}",
|
||||
"loadingAsset": "Загрузка ресурса"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "Пока нет импортированных моделей. Нажмите «Импортировать модель», чтобы добавить свою.",
|
||||
"restricted": "Персональные модели доступны только на уровне Creator и выше."
|
||||
},
|
||||
"errorAccessForbidden": "Доступ к этому ресурсу запрещён.",
|
||||
"errorConnectionRefused": "Не удалось подключиться к источнику. Пожалуйста, попробуйте позже.",
|
||||
"errorDownloadCancelled": "Загрузка была отменена.",
|
||||
"errorFileTooLarge": "Файл превышает максимально допустимый размер",
|
||||
"errorFormatNotAllowed": "Разрешён только формат SafeTensor",
|
||||
"errorHttpError": "Произошла ошибка при получении метаданных.",
|
||||
"errorInternalError": "Произошла непредвиденная ошибка. Пожалуйста, попробуйте ещё раз.",
|
||||
"errorInvalidHost": "Имя хоста в URL источника не удалось разрешить.",
|
||||
"errorInvalidUrl": "Пожалуйста, укажите URL.",
|
||||
"errorInvalidUrlFormat": "Неверный формат URL. Пожалуйста, проверьте и попробуйте снова.",
|
||||
"errorMetadataFetchFailed": "Не удалось получить информацию о файле с источника.",
|
||||
"errorModelTypeNotSupported": "Этот тип модели не поддерживается",
|
||||
"errorNetworkError": "Произошла сетевая ошибка. Проверьте подключение и попробуйте снова.",
|
||||
"errorNetworkTimeout": "Время ожидания запроса истекло. Пожалуйста, попробуйте ещё раз.",
|
||||
"errorRateLimited": "Слишком много запросов. Пожалуйста, попробуйте через несколько минут.",
|
||||
"errorRequestCancelled": "Запрос был отменён.",
|
||||
"errorResourceNotFound": "Файл не найден. Проверьте URL и попробуйте снова.",
|
||||
"errorServiceUnavailable": "Сервис временно недоступен. Пожалуйста, попробуйте позже.",
|
||||
"errorSourceServerError": "На сервере источника возникли проблемы. Пожалуйста, попробуйте позже.",
|
||||
"errorUnauthorized": "Пожалуйста, войдите в систему, чтобы продолжить.",
|
||||
"errorUnauthorizedSource": "Для этого ресурса требуется аутентификация. Добавьте свой API-токен в настройках.",
|
||||
"errorUnknown": "Произошла непредвиденная ошибка",
|
||||
"errorUnsafePickleScan": "CivitAI обнаружил потенциально опасный код в этом файле",
|
||||
"errorUnsafeVirusScan": "CivitAI обнаружил вредоносное ПО или подозрительное содержимое в этом файле",
|
||||
"errorUnsupportedSource": "Этот URL не поддерживается. Разрешены только ссылки Hugging Face и Civitai.",
|
||||
"errorUploadFailed": "Не удалось импортировать ассет. Пожалуйста, попробуйте ещё раз.",
|
||||
"errorUserTokenAccessDenied": "Ваш API-токен не имеет доступа к этому ресурсу. Проверьте права доступа токена.",
|
||||
"errorUserTokenInvalid": "Ваш сохранённый API-токен недействителен или истёк. Обновите токен в настройках.",
|
||||
"failedToCreateNode": "Не удалось создать узел. Попробуйте ещё раз или проверьте консоль для подробностей.",
|
||||
"fileFormats": "Форматы файлов",
|
||||
"fileName": "Имя файла",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "КОНДИЦИОНИРОВАНИЕ",
|
||||
"CONTROL_NET": "CONTROL_NET",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "ПЛАВАЮЩИЙ",
|
||||
"FLOATS": "ПЛАВАЮЩИЕ",
|
||||
"GEMINI_INPUT_FILES": "ВХОДНЫЕ_ФАЙЛЫ_GEMINI",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "Команда {command} запрещена. Свяжитесь с администратором для получения дополнительной информации.",
|
||||
"community": "Сообщество",
|
||||
"completed": "Завершено",
|
||||
"completedWithCheckmark": "Завершено ✓",
|
||||
"confirm": "Подтвердить",
|
||||
"confirmed": "Подтверждено",
|
||||
"content": "содержимое",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "Скачать",
|
||||
"downloadImage": "Скачать изображение",
|
||||
"downloadVideo": "Скачать видео",
|
||||
"downloadWithSize": "Скачать ({size})",
|
||||
"downloading": "Загрузка",
|
||||
"dropYourFileOr": "Перетащите ваш файл или",
|
||||
"duplicate": "Дублировать",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "Включение",
|
||||
"enterBaseName": "Введите базовое имя",
|
||||
"enterNewName": "Введите новое имя",
|
||||
"enterNewNamePrompt": "Введите новое имя:",
|
||||
"error": "Ошибка",
|
||||
"errorLoadingImage": "Ошибка загрузки изображения",
|
||||
"errorLoadingVideo": "Ошибка загрузки видео",
|
||||
"experimental": "БЕТА",
|
||||
"export": "Экспорт",
|
||||
"extensionName": "Название расширения",
|
||||
"extensions": "Расширения",
|
||||
"failed": "Ошибка",
|
||||
"failedToCopyJobId": "Не удалось скопировать ID задания",
|
||||
"failedToDownloadImage": "Не удалось скачать изображение",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "ID задания скопирован в буфер обмена",
|
||||
"keybinding": "Привязка клавиш",
|
||||
"keybindingAlreadyExists": "Горячая клавиша уже существует",
|
||||
"keybindings": "Горячие клавиши",
|
||||
"learnMore": "Узнать больше",
|
||||
"listening": "Слушаем...",
|
||||
"liveSamplingPreview": "Предпросмотр сэмплирования в реальном времени",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "Выбранный файл",
|
||||
"setAsBackground": "Установить как фон",
|
||||
"settings": "Настройки",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "Показать левую панель",
|
||||
"showReport": "Показать отчёт",
|
||||
"showRightPanel": "Показать правую панель",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "Предпросмотр обрезки",
|
||||
"custom": "Пользовательское",
|
||||
"loading": "Загрузка...",
|
||||
"noInputImage": "Входное изображение не подключено"
|
||||
"lockRatio": "Зафиксировать соотношение сторон",
|
||||
"noInputImage": "Входное изображение не подключено",
|
||||
"ratio": "Соотношение",
|
||||
"unlockRatio": "Снять фиксацию соотношения сторон"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "Ошибка копирования",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "Режим приложения",
|
||||
"rerun": "Перезапустить",
|
||||
"reuseParameters": "Повторно использовать параметры",
|
||||
"runCount": "Количество запусков:"
|
||||
"runCount": "Количество запусков:",
|
||||
"welcome": {
|
||||
"intro": "Упрощённый вид, скрывающий граф узлов, чтобы вы могли сосредоточиться на создании.",
|
||||
"layout": "Слева вы увидите сгенерированные изображения, видео и результаты. Справа — только необходимые элементы управления. Всё сложное скрыто.",
|
||||
"sharing": "Делиться просто: создайте рабочий процесс, откройте режим приложения, кликните правой кнопкой по вкладке и экспортируйте. Когда другие откроют ваш файл, он сразу запустится в этом чистом виде. Вы можете делиться мощными рабочими процессами как простыми инструментами, без необходимости разбираться в графах узлов.",
|
||||
"title": "Добро пожаловать в режим приложения",
|
||||
"widget": "Если хотите контролировать, какие настройки отображаются, преобразуйте верхнеуровневые узлы в подграф, затем используйте продвижение виджетов в панели инструментов над ним, чтобы выбрать, что будет доступно."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "Применение текстуры...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "Библиотека узлов",
|
||||
"Node Links": "Связи узлов",
|
||||
"Open": "Открыть",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Открыть 3D просмотрщик (Бета) для выбранного узла",
|
||||
"Open Color Picker in MaskEditor": "Открыть палитру цветов в MaskEditor",
|
||||
"Open Custom Nodes Folder": "Открыть папку пользовательских узлов",
|
||||
"Open DevTools": "Открыть инструменты разработчика",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "Повернуть вправо в MaskEditor",
|
||||
"Save": "Сохранить",
|
||||
"Save As": "Сохранить как",
|
||||
"Set Subgraph Description": "Установить описание подграфа",
|
||||
"Set Subgraph Search Aliases": "Установить псевдонимы поиска подграфа",
|
||||
"Show Keybindings Dialog": "Показать диалог клавиш быстрого доступа",
|
||||
"Show Model Selector (Dev)": "Показать выбор модели (Dev)",
|
||||
"Show Settings Dialog": "Показать диалог настроек",
|
||||
"Sign Out": "Выйти",
|
||||
"Toggle App Mode": "Переключить режим приложения",
|
||||
"Toggle Essential Bottom Panel": "Показать/скрыть нижнюю панель основных элементов",
|
||||
"Toggle Logs Bottom Panel": "Показать/скрыть нижнюю панель логов",
|
||||
"Toggle Queue Panel V2": "Переключить панель очереди V2",
|
||||
"Toggle Search Box": "Переключить поисковую панель",
|
||||
"Toggle App Mode": "Переключить режим приложения",
|
||||
"Toggle Terminal Bottom Panel": "Показать/скрыть нижнюю панель терминала",
|
||||
"Toggle Theme (Dark/Light)": "Переключение темы (Тёмная/Светлая)",
|
||||
"Toggle View Controls Bottom Panel": "Показать/скрыть нижнюю панель элементов управления",
|
||||
"Toggle promotion of hovered widget": "Переключить повышение выделенного виджета",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "ИЗБРАННЫЕ ВХОДЫ",
|
||||
"favoritesNone": "НЕТ ИЗБРАННЫХ ВХОДОВ",
|
||||
"favoritesNoneDesc": "Здесь будут отображаться ваши избранные входы",
|
||||
"favoritesNoneHint": "Во вкладке Параметры нажмите {moreIcon} на любом входе, чтобы добавить его сюда",
|
||||
"favoritesNoneTooltip": "Отметьте виджеты звёздочкой для быстрого доступа без выбора узлов",
|
||||
"globalSettings": {
|
||||
"canvas": "ХОЛСТ",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "Показать/скрыть панель свойств",
|
||||
"workflowOverview": "Обзор рабочего процесса"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "Добавить секрет",
|
||||
"createdAt": "Создано {date}",
|
||||
"deleteConfirmMessage": "Вы уверены, что хотите удалить «{name}»? Это действие необратимо.",
|
||||
"deleteConfirmTitle": "Удалить секрет",
|
||||
"description": "Секреты шифруются и используются для хранения конфиденциальных данных, таких как API-ключи.",
|
||||
"descriptionUsage": "Храните здесь свои токены, чтобы скачивать приватные и ограниченные модели от поддерживаемых провайдеров.",
|
||||
"editSecret": "Редактировать секрет",
|
||||
"errors": {
|
||||
"duplicateName": "Секрет с таким именем уже существует",
|
||||
"duplicateProvider": "Секрет для этого провайдера уже существует",
|
||||
"nameRequired": "Имя обязательно",
|
||||
"nameTooLong": "Имя должно содержать не более 255 символов",
|
||||
"providerRequired": "Провайдер обязателен",
|
||||
"secretValueRequired": "Значение секрета обязательно"
|
||||
},
|
||||
"lastUsed": "Последнее использование {date}",
|
||||
"modelProviders": "Провайдеры моделей",
|
||||
"name": "Имя",
|
||||
"namePlaceholder": "например, Мой API-ключ",
|
||||
"noSecrets": "Секреты не сохранены. Добавьте свой первый API-ключ, чтобы начать.",
|
||||
"provider": "Провайдер",
|
||||
"providerHint": "Необязательно. Выбор провайдера позволяет использовать токен автоматически.",
|
||||
"secretValue": "Значение секрета",
|
||||
"secretValueHint": "Это значение будет зашифровано и не может быть просмотрено повторно.",
|
||||
"secretValueHintEdit": "Оставьте пустым, чтобы сохранить текущее значение.",
|
||||
"secretValuePlaceholder": "Введите ваш API-ключ",
|
||||
"secretValuePlaceholderEdit": "Введите новое значение для изменения",
|
||||
"title": "API-ключи и секреты"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "Обойти групповые узлы",
|
||||
"Set Group Nodes to Always": "Всегда использовать групповые узлы",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "Перенаправление",
|
||||
"RerouteBeta": "Бета-версия перенаправления",
|
||||
"Scene": "Сцена",
|
||||
"Secrets": "Секреты",
|
||||
"Server": "Сервер",
|
||||
"Server-Config": "Настройки сервера",
|
||||
"Settings": "Настройки",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "Имя подграфа",
|
||||
"blueprintNamePrompt": "Имя подграфа:",
|
||||
"cannotDeleteGlobal": "Невозможно удалить установленные blueprints",
|
||||
"confirmDelete": "Это действие навсегда удалит подграф из вашей библиотеки",
|
||||
"confirmDeleteTitle": "Удалить подграф?",
|
||||
"enterDescription": "Введите описание",
|
||||
"enterSearchAliases": "Введите псевдонимы для поиска (через запятую)",
|
||||
"hidden": "Скрытые / вложенные параметры",
|
||||
"hideAll": "Скрыть всё",
|
||||
"loadFailure": "Не удалось загрузить схемы подграфов",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "Сохранено в библиотеку узлов",
|
||||
"publishSuccessMessage": "Вы можете найти свой подграф в библиотеке узлов в разделе «Subgraph Blueprints»",
|
||||
"saveBlueprint": "Сохранить подграф в библиотеку",
|
||||
"searchAliases": "Поиск по псевдонимам",
|
||||
"showAll": "Показать всё",
|
||||
"showRecommended": "Показать рекомендуемые виджеты",
|
||||
"shown": "Показано на узле"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "Введите название файла",
|
||||
"enterFilenamePrompt": "Введите имя файла:",
|
||||
"exportWorkflow": "Экспорт рабочего процесса",
|
||||
"saveWorkflow": "Сохранить рабочий процесс"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "размер_пакета",
|
||||
"tooltip": "Количество латентных изображений в пакете."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "секунды"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "Увеличение разрешения низкокачественных изображений до сверхвысокого, устранение артефактов и шума. Максимальный выход: 32 мегапикселя.",
|
||||
"display_name": "HitPaw General Image Enhance",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "авто_понижение_разрешения",
|
||||
"tooltip": "Автоматически понижать разрешение входного изображения, если выход превышает лимит."
|
||||
},
|
||||
"image": {
|
||||
"name": "изображение"
|
||||
},
|
||||
"model": {
|
||||
"name": "модель"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "коэффициент_масштабирования"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "Увеличение разрешения низкокачественных видео до высокого, устранение артефактов и шума. Цена указана за секунду видео.",
|
||||
"display_name": "HitPaw Video Enhance",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "модель"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "разрешение"
|
||||
},
|
||||
"video": {
|
||||
"name": "видео"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,7 @@
|
||||
"Load3D": {
|
||||
"display_name": "Загрузить 3D",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": "Очистить",
|
||||
"height": {
|
||||
"name": "высота"
|
||||
},
|
||||
@@ -6367,8 +6428,8 @@
|
||||
"model_file": {
|
||||
"name": "файл модели"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": "Загрузить 3D-модель",
|
||||
"upload extra resources": "Загрузить дополнительные ресурсы",
|
||||
"width": {
|
||||
"name": "ширина"
|
||||
}
|
||||
@@ -7252,12 +7313,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: Изображение в модель",
|
||||
@@ -7303,16 +7369,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: Мульти-изображение в модель",
|
||||
@@ -7358,16 +7426,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "Улучшить ранее созданную черновую модель.",
|
||||
@@ -7392,16 +7462,18 @@
|
||||
"tooltip": "Введите текстовый запрос для управления процессом текстурирования. Максимум 600 символов. Не может использоваться одновременно с 'texture_image'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "Предоставляет персонажа с риггингом в стандартных форматах. Автоматический риггинг в настоящее время не подходит для моделей без текстур, не-гуманоидных объектов или гуманоидов с нечеткой структурой конечностей и тела.",
|
||||
@@ -7419,16 +7491,18 @@
|
||||
"tooltip": "UV-развернутая текстура базового цвета модели."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: Текст в Модель",
|
||||
@@ -7467,16 +7541,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: Модель текстуры",
|
||||
@@ -7503,16 +7579,18 @@
|
||||
"tooltip": "Опишите желаемый стиль текстуры объекта с помощью текста. Максимум 600 символов. Нельзя использовать одновременно с 'image_style'."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "Создает видео из промпта с возможностью использования начального кадра с помощью новой модели MiniMax Hailuo-02.",
|
||||
@@ -10709,11 +10787,9 @@
|
||||
"camera_info": {
|
||||
"name": "информация_камеры"
|
||||
},
|
||||
"image": {
|
||||
"name": "изображение"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "файл_модели"
|
||||
"name": "файл_модели",
|
||||
"tooltip": "Файл 3D-модели или строка пути"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11430,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "Этот узел задаёт эталонное аудио для тембра (для ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "conditioning"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Извлечение по регулярному выражению",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11775,13 @@
|
||||
"name": "Сид"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Путь к 3D-модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Создание 3D-объектов с помощью Rodin API",
|
||||
@@ -11709,12 +11803,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Путь к 3D-модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Создание 3D-объектов с помощью Rodin API",
|
||||
@@ -11733,12 +11828,13 @@
|
||||
"name": "Сид"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Путь к 3D-модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Создание 3D-объектов с помощью Rodin API",
|
||||
@@ -11751,12 +11847,13 @@
|
||||
"name": "Сид"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Путь к 3D-модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Создание 3D-объектов с помощью Rodin API",
|
||||
@@ -11775,12 +11872,13 @@
|
||||
"name": "Сид"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "Путь к 3D-модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "Загрузите первый и последний ключевые кадры, составьте промпт и создайте видео. Более сложные переходы, например, когда последний кадр полностью отличается от первого, могут выиграть от более длительной продолжительности в 10 секунд. Это даст генерации больше времени для плавного перехода между двумя входными данными. Прежде чем начать, ознакомьтесь с лучшими практиками, чтобы убедиться, что ваши входные данные обеспечат успешный результат: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12605,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "префикс_имени_файла"
|
||||
},
|
||||
"image": {
|
||||
"name": "изображение"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "сетка"
|
||||
"name": "сетка",
|
||||
"tooltip": "Меш или GLB-файл для сохранения"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13860,17 @@
|
||||
"tooltip": "Seed управляет тем, будет ли узел запускаться повторно; результаты всегда недетерминированы, независимо от seed."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: Текст в модель (Pro)",
|
||||
@@ -13799,12 +13900,17 @@
|
||||
"tooltip": "Seed управляет тем, будет ли узел запускаться повторно; результаты всегда недетерминированы, независимо от seed."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13934,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "контроль после генерации"
|
||||
},
|
||||
"duration": {
|
||||
"name": "длительность"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "тональность"
|
||||
},
|
||||
"language": {
|
||||
"name": "язык"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "текст песни"
|
||||
},
|
||||
"seed": {
|
||||
"name": "seed"
|
||||
},
|
||||
"tags": {
|
||||
"name": "теги"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "размер"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "TextEncodeHunyuanVideo_ImageToVideo",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14529,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: Мультивью в модель",
|
||||
@@ -14444,16 +14588,14 @@
|
||||
"name": "сид_текстуры"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "идентификатор_задачи_модели",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "Уточнение черновой модели, созданной только моделями Tripo v1.4.",
|
||||
@@ -14464,16 +14606,14 @@
|
||||
"tooltip": "Должна быть модель Tripo v1.4"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "идентификатор_задачи_модели",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: Перепривязка ригнутой модели",
|
||||
@@ -14485,16 +14625,14 @@
|
||||
"name": "идентификатор_задачи_исходной_модели"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "идентификатор_задачи_перепривязки",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: Риггинг модели",
|
||||
@@ -14503,16 +14641,14 @@
|
||||
"name": "идентификатор_задачи_исходной_модели"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "файл_модели",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "идентификатор_задачи_риггинга",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: Текст в модель",
|
||||
@@ -14557,16 +14693,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: Модель текстур",
|
||||
@@ -14590,16 +14724,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "Обрезать текст",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "Управляет внешним видом и видимостью соединительных линий между узлами на холсте."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "Включить 3D-просмотрщик (Бета)",
|
||||
"tooltip": "Включает 3D-просмотрщик (Бета) для выбранных узлов. Эта функция позволяет визуализировать и взаимодействовать с 3D-моделями прямо в полноразмерном 3D-просмотрщике."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Начальный цвет фона",
|
||||
"tooltip": "Управляет цветом фона по умолчанию для 3D-сцены. Этот параметр определяет внешний вид фона при создании нового 3D-виджета, но может быть изменён индивидуально для каждого виджета после создания."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Тип камеры",
|
||||
"options": {
|
||||
"orthographic": "ортографическая",
|
||||
"perspective": "перспективная"
|
||||
},
|
||||
"tooltip": "Управляет тем, является ли камера перспективной или ортографической по умолчанию при создании нового 3D-виджета. Это значение по умолчанию все еще может быть переключено индивидуально для каждого виджета после его создания."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Шаг регулировки освещения",
|
||||
"tooltip": "Определяет размер шага при регулировке интенсивности освещения в 3D-сценах. Меньшее значение шага позволяет более точно настраивать освещение, а большее значение приводит к более заметным изменениям при каждой регулировке."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Начальная интенсивность освещения",
|
||||
"tooltip": "Устанавливает уровень яркости освещения по умолчанию в 3D-сцене. Это значение определяет, насколько сильно источники света освещают объекты при создании нового 3D-виджета, но может быть изменено для каждого виджета отдельно после создания."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Максимальная интенсивность света",
|
||||
"tooltip": "Устанавливает максимальное допустимое значение интенсивности света для 3D-сцен. Определяет верхний предел яркости, который можно задать при настройке освещения в любом 3D-виджете."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Минимальная интенсивность света",
|
||||
"tooltip": "Устанавливает минимально допустимое значение интенсивности света для 3D-сцен. Определяет нижний предел яркости, который можно установить при настройке освещения в любом 3D-виджете."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "Движок PLY",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "Выберите движок для загрузки PLY-файлов. «threejs» использует встроенный PLYLoader Three.js (лучше всего подходит для файлов сетки PLY). «fastply» использует оптимизированный загрузчик для ASCII PLY-файлов облака точек. «sparkjs» использует Spark.js для PLY-файлов 3D Gaussian Splatting."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Показать сетку",
|
||||
"tooltip": "Переключиться, чтобы показывать сетку по умолчанию"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Язык"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "Показать значок стоимости узла API"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Включить автоматическую замену узлов",
|
||||
"tooltip": "Если включено, отсутствующие узлы могут быть автоматически заменены их новыми эквивалентами, если существует соответствие для замены."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Реализация поискового поля нод",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "Yeniden Başlat"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "Seçili Düğüm için 3D Görüntüleyiciyi (Beta) Aç"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "Deneysel: Model Varlıklarını Gözat"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "Ayarlar İletişim Kutusunu Göster"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "Alt Grafik Açıklamasını Ayarla"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "Alt Grafik Arama Takma Adlarını Ayarla"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "Deneysel: AssetAPI'yi Etkinleştir"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "Alt Paneli Aç/Kapat"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "Terminal Alt Panelini Aç/Kapat"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "Kayıtlar Alt Panelini Aç/Kapat"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "Temel Alt Paneli Aç/Kapat"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "Tüm {category}",
|
||||
"allModels": "Tüm Modeller",
|
||||
"apiKeyHint": "Özel veya kısıtlı modeller mi içe aktarılıyor? {link}.",
|
||||
"apiKeyHintLink": "API anahtarlarınızı Ayarlar bölümüne ekleyin",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - {type} varlık",
|
||||
"loadingAsset": "Varlık yükleniyor"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "Henüz içe aktarılmış model yok. Kendi modelinizi eklemek için \"Model İçe Aktar\"a tıklayın.",
|
||||
"restricted": "Kişisel modeller yalnızca Creator ve üzeri seviyelerde kullanılabilir."
|
||||
},
|
||||
"errorAccessForbidden": "Bu kaynağa erişim yasak.",
|
||||
"errorConnectionRefused": "Kaynağa bağlanılamıyor. Lütfen daha sonra tekrar deneyin.",
|
||||
"errorDownloadCancelled": "İndirme iptal edildi.",
|
||||
"errorFileTooLarge": "Dosya izin verilen maksimum boyut sınırını aşıyor",
|
||||
"errorFormatNotAllowed": "Yalnızca SafeTensor formatı destekleniyor",
|
||||
"errorHttpError": "Meta veriler alınırken bir hata oluştu.",
|
||||
"errorInternalError": "Beklenmeyen bir hata oluştu. Lütfen tekrar deneyin.",
|
||||
"errorInvalidHost": "Kaynak URL ana bilgisayarı çözümlenemedi.",
|
||||
"errorInvalidUrl": "Lütfen bir URL girin.",
|
||||
"errorInvalidUrlFormat": "URL formatı geçersiz. Lütfen kontrol edip tekrar deneyin.",
|
||||
"errorMetadataFetchFailed": "Kaynaktan dosya bilgisi alınamadı.",
|
||||
"errorModelTypeNotSupported": "Bu model türü desteklenmiyor",
|
||||
"errorNetworkError": "Bir ağ hatası oluştu. Lütfen bağlantınızı kontrol edip tekrar deneyin.",
|
||||
"errorNetworkTimeout": "İstek zaman aşımına uğradı. Lütfen tekrar deneyin.",
|
||||
"errorRateLimited": "Çok fazla istek yapıldı. Lütfen birkaç dakika sonra tekrar deneyin.",
|
||||
"errorRequestCancelled": "İstek iptal edildi.",
|
||||
"errorResourceNotFound": "Dosya bulunamadı. Lütfen URL'yi kontrol edip tekrar deneyin.",
|
||||
"errorServiceUnavailable": "Hizmet geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin.",
|
||||
"errorSourceServerError": "Kaynak sunucusunda bir sorun var. Lütfen daha sonra tekrar deneyin.",
|
||||
"errorUnauthorized": "Devam etmek için lütfen giriş yapın.",
|
||||
"errorUnauthorizedSource": "Bu kaynak kimlik doğrulaması gerektiriyor. Lütfen ayarlardan API anahtarınızı ekleyin.",
|
||||
"errorUnknown": "Beklenmeyen bir hata oluştu",
|
||||
"errorUnsafePickleScan": "CivitAI bu dosyada potansiyel olarak güvensiz kod tespit etti",
|
||||
"errorUnsafeVirusScan": "CivitAI bu dosyada kötü amaçlı yazılım veya şüpheli içerik tespit etti",
|
||||
"errorUnsupportedSource": "Bu URL desteklenmiyor. Sadece Hugging Face ve Civitai URL'leri kabul edilir.",
|
||||
"errorUploadFailed": "Varlık içe aktarılamadı. Lütfen tekrar deneyin.",
|
||||
"errorUserTokenAccessDenied": "API anahtarınızın bu kaynağa erişimi yok. Lütfen anahtar izinlerinizi kontrol edin.",
|
||||
"errorUserTokenInvalid": "Kayıtlı API anahtarınız geçersiz veya süresi dolmuş. Lütfen ayarlardan anahtarınızı güncelleyin.",
|
||||
"failedToCreateNode": "Düğüm oluşturulamadı. Lütfen tekrar deneyin veya ayrıntılar için konsolu kontrol edin.",
|
||||
"fileFormats": "Dosya formatları",
|
||||
"fileName": "Dosya Adı",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "KOŞULLANDIRMA",
|
||||
"CONTROL_NET": "KONTROL_AĞI",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "FLOAT",
|
||||
"FLOATS": "FLOATS",
|
||||
"GEMINI_INPUT_FILES": "GEMINI_GİRİŞ_DOSYALARI",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "{command} komutu yasak. Daha fazla bilgi için bir yöneticiyle iletişime geçin.",
|
||||
"community": "Topluluk",
|
||||
"completed": "Tamamlandı",
|
||||
"completedWithCheckmark": "Tamamlandı ✓",
|
||||
"confirm": "Onayla",
|
||||
"confirmed": "Onaylandı",
|
||||
"content": "içerik",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "İndir",
|
||||
"downloadImage": "Görüntüyü indir",
|
||||
"downloadVideo": "Videoyu indir",
|
||||
"downloadWithSize": "İndir ({size})",
|
||||
"downloading": "İndiriliyor",
|
||||
"dropYourFileOr": "Dosyanızı buraya sürükleyin veya",
|
||||
"duplicate": "Çoğalt",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "{id} etkinleştiriliyor",
|
||||
"enterBaseName": "Temel adı girin",
|
||||
"enterNewName": "Yeni adı girin",
|
||||
"enterNewNamePrompt": "Yeni adı girin:",
|
||||
"error": "Hata",
|
||||
"errorLoadingImage": "Görüntü yüklenirken hata",
|
||||
"errorLoadingVideo": "Video yüklenirken hata",
|
||||
"experimental": "BETA",
|
||||
"export": "Dışa Aktar",
|
||||
"extensionName": "Uzantı Adı",
|
||||
"extensions": "Eklentiler",
|
||||
"failed": "Başarısız",
|
||||
"failedToCopyJobId": "İş kimliği kopyalanamadı",
|
||||
"failedToDownloadImage": "Görüntü indirilemedi",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "İş kimliği panoya kopyalandı",
|
||||
"keybinding": "Tuş Ataması",
|
||||
"keybindingAlreadyExists": "Tuş ataması zaten mevcut:",
|
||||
"keybindings": "Kısayol Tuşları",
|
||||
"learnMore": "Daha fazla bilgi edinin",
|
||||
"listening": "Dinleniyor...",
|
||||
"liveSamplingPreview": "Canlı örnekleme önizlemesi",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "Seçilen dosya",
|
||||
"setAsBackground": "Arka Plan Olarak Ayarla",
|
||||
"settings": "Ayarlar",
|
||||
"shortcutSuffix": " ({shortcut})",
|
||||
"showLeftPanel": "Sol paneli göster",
|
||||
"showReport": "Raporu Göster",
|
||||
"showRightPanel": "Sağ paneli göster",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "Kırpma önizlemesi",
|
||||
"custom": "Özel",
|
||||
"loading": "Yükleniyor...",
|
||||
"noInputImage": "Bağlı giriş görseli yok"
|
||||
"lockRatio": "En-boy oranını kilitle",
|
||||
"noInputImage": "Bağlı giriş görseli yok",
|
||||
"ratio": "Oran",
|
||||
"unlockRatio": "En-boy oranı kilidini aç"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "Kopyalama Hatası",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "Uygulama Modu",
|
||||
"rerun": "Tekrar Çalıştır",
|
||||
"reuseParameters": "Parametreleri Yeniden Kullan",
|
||||
"runCount": "Çalıştırma sayısı:"
|
||||
"runCount": "Çalıştırma sayısı:",
|
||||
"welcome": {
|
||||
"intro": "Düğüm grafiğini gizleyerek odaklanmanızı sağlayan basitleştirilmiş bir görünüm.",
|
||||
"layout": "Solda oluşturulan görsellerinizi, videolarınızı ve çıktılarınızı göreceksiniz. Sağda ise sadece ihtiyacınız olan kontroller var. Karmaşık her şey gözden uzak.",
|
||||
"sharing": "Paylaşmak çok kolay: iş akışınızı oluşturun, Uygulama Modunu açın, sekmeye sağ tıklayın ve dışa aktarın. Başkaları dosyanızı açtığında, doğrudan bu sade görünüme geçer. Güçlü iş akışlarını, kimsenin düğüm grafiğini anlamasına gerek kalmadan basit araçlar olarak paylaşabilirsiniz.",
|
||||
"title": "Uygulama Moduna Hoş Geldiniz",
|
||||
"widget": "Hangi ayarların görüneceğini kontrol etmek istiyorsanız, üst düzey düğümlerinizi bir alt grafiğe dönüştürün, ardından üstündeki araç kutusunda widget tanıtımını kullanarak nelerin görüneceğini seçin."
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "Doku uygulanıyor...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "Düğüm Kütüphanesi",
|
||||
"Node Links": "Düğüm Bağlantıları",
|
||||
"Open": "Aç",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "Seçili Düğüm için 3D Görüntüleyiciyi (Beta) Aç",
|
||||
"Open Color Picker in MaskEditor": "MaskEditor'da Renk Seçiciyi Aç",
|
||||
"Open Custom Nodes Folder": "Özel Düğüm Klasörünü Aç",
|
||||
"Open DevTools": "Geliştirici Araçlarını Aç",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "MaskEditor'da sağa döndür",
|
||||
"Save": "Kaydet",
|
||||
"Save As": "Farklı Kaydet",
|
||||
"Set Subgraph Description": "Alt Grafik Açıklamasını Ayarla",
|
||||
"Set Subgraph Search Aliases": "Alt Grafik Arama Takma Adlarını Ayarla",
|
||||
"Show Keybindings Dialog": "Tuş Atamaları İletişim Kutusunu Göster",
|
||||
"Show Model Selector (Dev)": "Model Seçiciyi Göster (Geliştirici)",
|
||||
"Show Settings Dialog": "Ayarlar İletişim Kutusunu Göster",
|
||||
"Sign Out": "Çıkış Yap",
|
||||
"Toggle App Mode": "Uygulama Modunu Aç/Kapat",
|
||||
"Toggle Essential Bottom Panel": "Temel Alt Paneli Aç/Kapat",
|
||||
"Toggle Logs Bottom Panel": "Kayıtlar Alt Panelini Aç/Kapat",
|
||||
"Toggle Queue Panel V2": "Kuyruk Paneli V2'yi Aç/Kapat",
|
||||
"Toggle Search Box": "Arama Kutusunu Aç/Kapat",
|
||||
"Toggle App Mode": "Uygulama Modunu Aç/Kapat",
|
||||
"Toggle Terminal Bottom Panel": "Terminal Alt Panelini Aç/Kapat",
|
||||
"Toggle Theme (Dark/Light)": "Temayı Değiştir (Karanlık/Açık)",
|
||||
"Toggle View Controls Bottom Panel": "Görünüm Kontrolleri Alt Panelini Aç/Kapat",
|
||||
"Toggle promotion of hovered widget": "Üzerine gelinen widget'ı yükseltmeyi aç/kapat",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "ByteDance",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "FAVORİ GİRDİLER",
|
||||
"favoritesNone": "FAVORİ GİRDİ YOK",
|
||||
"favoritesNoneDesc": "Favorilere eklediğiniz girdiler burada görünecek",
|
||||
"favoritesNoneHint": "Parametreler sekmesinde, herhangi bir girdinin yanındaki {moreIcon} simgesine tıklayarak buraya ekleyebilirsiniz",
|
||||
"favoritesNoneTooltip": "Düğüm seçmeden hızlı erişim için widget'ları yıldızlayın",
|
||||
"globalSettings": {
|
||||
"canvas": "TUVAL",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "Özellikler panelini aç/kapat",
|
||||
"workflowOverview": "Çalışma Akışı Genel Bakış"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "Gizli Bilgi Ekle",
|
||||
"createdAt": "{date} tarihinde oluşturuldu",
|
||||
"deleteConfirmMessage": "\"{name}\" adlı gizli bilgiyi silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
|
||||
"deleteConfirmTitle": "Gizli Bilgiyi Sil",
|
||||
"description": "Gizli bilgiler şifrelenir ve API anahtarları gibi hassas veriler için kullanılır.",
|
||||
"descriptionUsage": "Desteklenen sağlayıcılardan özel ve kısıtlı modelleri indirmek için anahtarlarınızı burada saklayın.",
|
||||
"editSecret": "Gizli Bilgiyi Düzenle",
|
||||
"errors": {
|
||||
"duplicateName": "Bu adla zaten bir gizli bilgi mevcut",
|
||||
"duplicateProvider": "Bu sağlayıcı için zaten bir gizli bilgi mevcut",
|
||||
"nameRequired": "Ad zorunludur",
|
||||
"nameTooLong": "Ad 255 karakter veya daha kısa olmalıdır",
|
||||
"providerRequired": "Sağlayıcı zorunludur",
|
||||
"secretValueRequired": "Gizli değer zorunludur"
|
||||
},
|
||||
"lastUsed": "Son kullanım {date}",
|
||||
"modelProviders": "Model Sağlayıcıları",
|
||||
"name": "Ad",
|
||||
"namePlaceholder": "örn. API Anahtarım",
|
||||
"noSecrets": "Henüz gizli bilgi yok. Başlamak için ilk API anahtarınızı ekleyin.",
|
||||
"provider": "Sağlayıcı",
|
||||
"providerHint": "İsteğe bağlı. Bir sağlayıcı seçmek otomatik anahtar kullanımını etkinleştirir.",
|
||||
"secretValue": "Gizli Değer",
|
||||
"secretValueHint": "Bu değer şifrelenecek ve tekrar görüntülenemeyecek.",
|
||||
"secretValueHintEdit": "Mevcut değeri korumak için boş bırakın.",
|
||||
"secretValuePlaceholder": "API anahtarınızı girin",
|
||||
"secretValuePlaceholderEdit": "Değiştirmek için yeni değeri girin",
|
||||
"title": "API Anahtarları & Gizli Bilgiler"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "Bypass Group Nodes",
|
||||
"Set Group Nodes to Always": "Set Group Nodes to Always",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "Yeniden Yönlendir",
|
||||
"RerouteBeta": "Yeniden Yönlendirme Beta",
|
||||
"Scene": "Sahne",
|
||||
"Secrets": "Gizli Anahtarlar",
|
||||
"Server": "Sunucu",
|
||||
"Server-Config": "Sunucu-Yapılandırma",
|
||||
"Settings": "Ayarlar",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "Alt Grafik adı",
|
||||
"blueprintNamePrompt": "Alt grafik adı:",
|
||||
"cannotDeleteGlobal": "Yüklü şablonlar silinemez",
|
||||
"confirmDelete": "Bu işlem taslağı kütüphanenizden kalıcı olarak kaldıracaktır",
|
||||
"confirmDeleteTitle": "Taslak silinsin mi?",
|
||||
"enterDescription": "Bir açıklama girin",
|
||||
"enterSearchAliases": "Arama takma adlarını girin (virgülle ayrılmış)",
|
||||
"hidden": "Gizli / iç içe parametreler",
|
||||
"hideAll": "Tümünü gizle",
|
||||
"loadFailure": "Alt grafik taslakları yüklenemedi",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "Düğüm Kütüphanesine Kaydedildi",
|
||||
"publishSuccessMessage": "Alt grafik taslağınızı düğüm kütüphanesinde \"Alt Grafik Taslakları\" altında bulabilirsiniz",
|
||||
"saveBlueprint": "Alt Grafiği Kütüphaneye Kaydet",
|
||||
"searchAliases": "Takma Adlarda Ara",
|
||||
"showAll": "Tümünü göster",
|
||||
"showRecommended": "Önerilen widget'ları göster",
|
||||
"shown": "Düğümde gösterilen"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "Dosya adını girin",
|
||||
"enterFilenamePrompt": "Dosya adını girin:",
|
||||
"exportWorkflow": "İş Akışını Dışa Aktar",
|
||||
"saveWorkflow": "İş akışını kaydet"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "toplu_boyutu",
|
||||
"tooltip": "Toplu işteki latent görüntü sayısı."
|
||||
},
|
||||
"seconds": {
|
||||
"name": "saniye"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "BoşAceAdımGizliSes",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "Düşük çözünürlüklü görüntüleri süper çözünürlüğe yükseltin, bozulmaları ve gürültüyü ortadan kaldırın. Maksimum çıktı: 32 megapiksel.",
|
||||
"display_name": "HitPaw Genel Görüntü İyileştirme",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "otomatik_küçültme",
|
||||
"tooltip": "Çıktı sınırı aşarsa giriş görüntüsünü otomatik olarak küçült."
|
||||
},
|
||||
"image": {
|
||||
"name": "görüntü"
|
||||
},
|
||||
"model": {
|
||||
"name": "model"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "büyütme_oranı"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "Düşük çözünürlüklü videoları yüksek çözünürlüğe yükseltin, bozulmaları ve gürültüyü ortadan kaldırın. Fiyatlar video saniyesi başınadır.",
|
||||
"display_name": "HitPaw Video İyileştirme",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "model"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "çözünürlük"
|
||||
},
|
||||
"video": {
|
||||
"name": "video"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Koşullandırma",
|
||||
"inputs": {
|
||||
@@ -6357,7 +6418,9 @@
|
||||
"Load3D": {
|
||||
"display_name": "3D Yükle",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": {
|
||||
"": "Temizle"
|
||||
},
|
||||
"height": {
|
||||
"name": "yükseklik"
|
||||
},
|
||||
@@ -6367,8 +6430,12 @@
|
||||
"model_file": {
|
||||
"name": "model_dosyası"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"": "3D modeli yükle"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"": "Ek kaynakları yükle"
|
||||
},
|
||||
"width": {
|
||||
"name": "genişlik"
|
||||
}
|
||||
@@ -7252,12 +7319,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy: Görüntüden Modele",
|
||||
@@ -7303,16 +7375,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy: Çoklu Görüntüden Modele",
|
||||
@@ -7358,16 +7432,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "Önceden oluşturulmuş bir taslak modeli iyileştirir.",
|
||||
@@ -7392,16 +7468,18 @@
|
||||
"tooltip": "Kaplama sürecini yönlendirmek için bir metin istemi girin. Maksimum 600 karakter. 'texture_image' ile aynı anda kullanılamaz."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "Standart formatlarda riglenmiş bir karakter sağlar. Otomatik rigleme, şu anda dokusuz meshler, insan olmayan varlıklar veya uzuv ve vücut yapısı belirsiz olan insan benzeri varlıklar için uygun değildir.",
|
||||
@@ -7419,16 +7497,18 @@
|
||||
"tooltip": "Modelin UV-unwrap edilmiş temel renk doku görseli."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy: Metinden Modele",
|
||||
@@ -7467,16 +7547,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy: Doku Modeli",
|
||||
@@ -7503,16 +7585,18 @@
|
||||
"tooltip": "Nesnenin istediğiniz doku stilini metinle tanımlayın. En fazla 600 karakter. 'image_style' ile aynı anda kullanılamaz."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "Yeni MiniMax Hailuo-02 modelini kullanarak prompt'tan video oluşturur, isteğe bağlı başlangıç karesi ile.",
|
||||
@@ -10709,11 +10793,9 @@
|
||||
"camera_info": {
|
||||
"name": "kamera_bilgisi"
|
||||
},
|
||||
"image": {
|
||||
"name": "görüntü"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "model_dosyası"
|
||||
"name": "model_dosyası",
|
||||
"tooltip": "3D model dosyası veya yol dizgesi"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11436,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "Bu düğüm, tını için referans sesi ayarlar (ace step 1.5 için)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "koşullandırma"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "Regex Çıkar",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11781,13 @@
|
||||
"name": "Tohum"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D Model Yolu",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "Rodin API kullanarak 3D Varlıklar Oluştur",
|
||||
@@ -11709,12 +11809,13 @@
|
||||
"name": "TAPoz"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D Model Yolu",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "Rodin API kullanarak 3D Varlıklar Oluştur",
|
||||
@@ -11733,12 +11834,13 @@
|
||||
"name": "Tohum"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D Model Yolu",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "Rodin API kullanarak 3D Varlıklar Oluştur",
|
||||
@@ -11751,12 +11853,13 @@
|
||||
"name": "Tohum"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D Model Yolu",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "Rodin API kullanarak 3D Varlıklar Oluştur",
|
||||
@@ -11775,12 +11878,13 @@
|
||||
"name": "Tohum"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D Model Yolu",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "İlk ve son anahtar kareleri yükleyin, bir prompt taslağı oluşturun ve video üretin. Son karenin İlk kareden tamamen farklı olduğu durumlar gibi daha karmaşık geçişler, daha uzun 10 saniyelik süreden faydalanabilir. Bu, üretimin iki girdi arasında daha pürüzsüz geçiş yapması için daha fazla zaman tanır. Başlamadan önce, girdi seçimlerinizin üretiminizi başarıya ulaştıracağından emin olmak için bu en iyi uygulamaları gözden geçirin: https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3.",
|
||||
@@ -12507,11 +12611,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "dosyaadı_öneki"
|
||||
},
|
||||
"image": {
|
||||
"name": "görüntü"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "ağ"
|
||||
"name": "ağ",
|
||||
"tooltip": "Kaydedilecek Mesh veya GLB dosyası"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13866,17 @@
|
||||
"tooltip": "Tohum, düğümün tekrar çalıştırılıp çalıştırılmayacağını kontrol eder; sonuçlar tohumdan bağımsız olarak deterministik değildir."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D: Metinden Modele (Pro)",
|
||||
@@ -13799,12 +13906,17 @@
|
||||
"tooltip": "Tohum, düğümün tekrar çalıştırılıp çalıştırılmayacağını kontrol eder; sonuçlar tohumdan bağımsız olarak deterministik değildir."
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13940,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "bpm"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "oluşturduktan sonra kontrol"
|
||||
},
|
||||
"duration": {
|
||||
"name": "süre"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "ton anahtarı"
|
||||
},
|
||||
"language": {
|
||||
"name": "dil"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "şarkı sözleri"
|
||||
},
|
||||
"seed": {
|
||||
"name": "tohum"
|
||||
},
|
||||
"tags": {
|
||||
"name": "etiketler"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "zaman imzası"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "MetinKodlamaHunyuanVideo_GörüntüdenVideoya",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14535,14 @@
|
||||
"name": "doku_tohumu"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo: Çok Bakışlıdan Modele",
|
||||
@@ -14444,16 +14594,14 @@
|
||||
"name": "doku_tohumu"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "Sadece v1.4 Tripo modelleri tarafından oluşturulan taslak bir modeli iyileştirir.",
|
||||
@@ -14464,16 +14612,14 @@
|
||||
"tooltip": "Bir v1.4 Tripo modeli olmalı"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: Riglenmiş Modeli Yeniden Hedefle",
|
||||
@@ -14485,16 +14631,14 @@
|
||||
"name": "orijinal_model_görev_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "yeniden_hedefleme görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: Modeli Rigle",
|
||||
@@ -14503,16 +14647,14 @@
|
||||
"name": "orijinal_model_görev_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rigleme görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: Metinden Modele",
|
||||
@@ -14557,16 +14699,14 @@
|
||||
"name": "doku_tohumu"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: Doku modeli",
|
||||
@@ -14590,16 +14730,14 @@
|
||||
"name": "doku_tohumu"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_dosyası",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model görev_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "Metni Kısalt",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "Tuvaldeki düğümler arasındaki bağlantı çizgilerinin görünümünü ve görünürlüğünü kontrol eder."
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "3D Görüntüleyiciyi Etkinleştir (Beta)",
|
||||
"tooltip": "Seçili düğümler için 3D Görüntüleyiciyi (Beta) etkinleştirir. Bu özellik, 3D modelleri doğrudan tam boyutlu 3D görüntüleyici içinde görselleştirmenize ve etkileşimde bulunmanıza olanak tanır."
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "Başlangıç Arka Plan Rengi",
|
||||
"tooltip": "3D sahnenin varsayılan arka plan rengini kontrol eder. Bu ayar, yeni bir 3D widget oluşturulduğunda arka plan görünümünü belirler, ancak oluşturulduktan sonra her widget için ayrı ayrı ayarlanabilir."
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "Başlangıç Kamera Tipi",
|
||||
"options": {
|
||||
"orthographic": "ortografik",
|
||||
"perspective": "perspektif"
|
||||
},
|
||||
"tooltip": "Yeni bir 3D widget oluşturulduğunda kameranın varsayılan olarak perspektif mi yoksa ortografik mi olacağını kontrol eder. Bu varsayılan, oluşturulduktan sonra her widget için ayrı ayrı değiştirilebilir."
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "Işık Ayarlama Artışı",
|
||||
"tooltip": "3D sahnelerde ışık yoğunluğunu ayarlarken artış boyutunu kontrol eder. Daha küçük bir adım değeri, aydınlatma ayarlamaları üzerinde daha ince kontrol sağlarken, daha büyük bir değer ayarlama başına daha belirgin değişikliklere neden olur."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "Başlangıç Işık Yoğunluğu",
|
||||
"tooltip": "3D sahnedeki aydınlatmanın varsayılan parlaklık seviyesini ayarlar. Bu değer, yeni bir 3D widget oluşturulduğunda ışıkların nesneleri ne kadar yoğun aydınlatacağını belirler, ancak oluşturulduktan sonra her widget için ayrı ayrı ayarlanabilir."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "Maksimum Işık Yoğunluğu",
|
||||
"tooltip": "3D sahneler için izin verilen maksimum ışık yoğunluğu değerini ayarlar. Bu, herhangi bir 3D widget'ta aydınlatma ayarlanırken ayarlanabilecek üst parlaklık sınırını tanımlar."
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "Minimum Işık Yoğunluğu",
|
||||
"tooltip": "3D sahneler için izin verilen minimum ışık yoğunluğu değerini ayarlar. Bu, herhangi bir 3D widget'ta aydınlatma ayarlanırken ayarlanabilecek alt parlaklık sınırını tanımlar."
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLY Motoru",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "PLY dosyalarını yüklemek için motoru seçin. \"threejs\" yerel Three.js PLYLoader'ı kullanır (mesh PLY dosyaları için en iyisi). \"fastply\" ASCII nokta bulutu PLY dosyaları için optimize edilmiş bir yükleyici kullanır. \"sparkjs\" ise 3D Gaussian Splatting PLY dosyaları için Spark.js kullanır."
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "Başlangıç Izgara Görünürlüğü",
|
||||
"tooltip": "Yeni bir 3D widget oluşturulduğunda ızgaranın varsayılan olarak görünür olup olmadığını kontrol eder. Bu varsayılan, oluşturulduktan sonra her widget için ayrı ayrı değiştirilebilir."
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "Dil"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "API düğüm fiyatlandırma rozetini göster"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "Otomatik düğüm değiştirmeyi etkinleştir",
|
||||
"tooltip": "Etkinleştirildiğinde, eksik düğümler için bir değiştirme eşlemesi varsa otomatik olarak daha yeni karşılıklarıyla değiştirilebilir."
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "Düğüm arama kutusu uygulaması",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "重新啟動"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "為選取的節點開啟 3D 檢視器(Beta)"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "實驗性:瀏覽模型資源"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "顯示設定對話框"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "設定子圖描述"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "設定子圖搜尋別名"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "實驗性:啟用 AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "切換下方面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "切換終端機底部面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "切換日誌底部面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "切換基本下方面板"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "所有 {category}",
|
||||
"allModels": "所有模型",
|
||||
"apiKeyHint": "要匯入私人或受限模型嗎?{link}。",
|
||||
"apiKeyHintLink": "請在設定中新增您的 API 金鑰",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - {type} 資源",
|
||||
"loadingAsset": "載入資源中"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "尚未匯入模型。點擊「匯入模型」以新增您的模型。",
|
||||
"restricted": "個人模型僅限 Creator 方案及以上等級使用。"
|
||||
},
|
||||
"errorAccessForbidden": "無法存取此資源。",
|
||||
"errorConnectionRefused": "無法連接來源,請稍後再試。",
|
||||
"errorDownloadCancelled": "下載已取消。",
|
||||
"errorFileTooLarge": "檔案超過允許的最大大小限制",
|
||||
"errorFormatNotAllowed": "僅允許 SafeTensor 格式",
|
||||
"errorHttpError": "擷取中繼資料時發生錯誤。",
|
||||
"errorInternalError": "發生非預期錯誤,請再試一次。",
|
||||
"errorInvalidHost": "無法解析來源網址的主機名稱。",
|
||||
"errorInvalidUrl": "請提供一個網址。",
|
||||
"errorInvalidUrlFormat": "網址格式無效,請檢查後再試。",
|
||||
"errorMetadataFetchFailed": "無法從來源取得檔案資訊。",
|
||||
"errorModelTypeNotSupported": "不支援此模型類型",
|
||||
"errorNetworkError": "網路錯誤,請檢查連線後再試。",
|
||||
"errorNetworkTimeout": "請求逾時,請再試一次。",
|
||||
"errorRateLimited": "請求過多,請幾分鐘後再試。",
|
||||
"errorRequestCancelled": "請求已取消。",
|
||||
"errorResourceNotFound": "找不到檔案,請檢查網址後再試。",
|
||||
"errorServiceUnavailable": "服務暫時無法使用,請稍後再試。",
|
||||
"errorSourceServerError": "來源伺服器發生問題,請稍後再試。",
|
||||
"errorUnauthorized": "請登入以繼續。",
|
||||
"errorUnauthorizedSource": "此資源需要驗證,請在設定中新增 API 金鑰。",
|
||||
"errorUnknown": "發生未預期的錯誤",
|
||||
"errorUnsafePickleScan": "CivitAI 偵測到此檔案中可能存在不安全的程式碼",
|
||||
"errorUnsafeVirusScan": "CivitAI 偵測到此檔案中有惡意軟體或可疑內容",
|
||||
"errorUnsupportedSource": "此網址不支援。僅支援 Hugging Face 與 Civitai 網址。",
|
||||
"errorUploadFailed": "匯入資產失敗,請再試一次。",
|
||||
"errorUserTokenAccessDenied": "您的 API 金鑰無法存取此資源,請檢查權限。",
|
||||
"errorUserTokenInvalid": "儲存的 API 金鑰無效或已過期,請在設定中更新。",
|
||||
"failedToCreateNode": "無法建立節點。請重試或查看主控台以取得詳細資訊。",
|
||||
"fileFormats": "檔案格式",
|
||||
"fileName": "檔案名稱",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "條件設定",
|
||||
"CONTROL_NET": "ControlNet",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "浮點數",
|
||||
"FLOATS": "浮點數組",
|
||||
"GEMINI_INPUT_FILES": "Gemini輸入檔案",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "指令 {command} 已被禁止。如需更多資訊,請聯絡管理員。",
|
||||
"community": "社群",
|
||||
"completed": "已完成",
|
||||
"completedWithCheckmark": "已完成 ✓",
|
||||
"confirm": "確認",
|
||||
"confirmed": "已確認",
|
||||
"content": "內容",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "下載",
|
||||
"downloadImage": "下載圖片",
|
||||
"downloadVideo": "下載影片",
|
||||
"downloadWithSize": "下載({size})",
|
||||
"downloading": "下載中",
|
||||
"dropYourFileOr": "拖放您的檔案或",
|
||||
"duplicate": "複製",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "啟用中",
|
||||
"enterBaseName": "輸入基礎名稱",
|
||||
"enterNewName": "輸入新名稱",
|
||||
"enterNewNamePrompt": "輸入新名稱:",
|
||||
"error": "錯誤",
|
||||
"errorLoadingImage": "載入圖片時發生錯誤",
|
||||
"errorLoadingVideo": "載入影片時發生錯誤",
|
||||
"experimental": "實驗性",
|
||||
"export": "匯出",
|
||||
"extensionName": "擴充套件名稱",
|
||||
"extensions": "擴充功能",
|
||||
"failed": "失敗",
|
||||
"failedToCopyJobId": "複製工作 ID 失敗",
|
||||
"failedToDownloadImage": "下載圖片失敗",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "工作 ID 已複製到剪貼簿",
|
||||
"keybinding": "快捷鍵",
|
||||
"keybindingAlreadyExists": "快捷鍵已存在於",
|
||||
"keybindings": "快捷鍵",
|
||||
"learnMore": "了解更多",
|
||||
"listening": "聆聽中...",
|
||||
"liveSamplingPreview": "即時取樣預覽",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "已選取的檔案",
|
||||
"setAsBackground": "設為背景",
|
||||
"settings": "設定",
|
||||
"shortcutSuffix": "({shortcut})",
|
||||
"showLeftPanel": "顯示左側面板",
|
||||
"showReport": "顯示報告",
|
||||
"showRightPanel": "顯示右側面板",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "裁切預覽",
|
||||
"custom": "自訂",
|
||||
"loading": "載入中...",
|
||||
"noInputImage": "未連接輸入影像"
|
||||
"lockRatio": "鎖定長寬比",
|
||||
"noInputImage": "未連接輸入影像",
|
||||
"ratio": "比例",
|
||||
"unlockRatio": "解除鎖定長寬比"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "複製錯誤",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "App 模式",
|
||||
"rerun": "重新執行",
|
||||
"reuseParameters": "重用參數",
|
||||
"runCount": "執行次數:"
|
||||
"runCount": "執行次數:",
|
||||
"welcome": {
|
||||
"intro": "這是一個簡化視圖,隱藏節點圖,讓你專注於創作。",
|
||||
"layout": "左側顯示你產生的圖片、影片和輸出,右側只保留必要的控制項。所有複雜內容都被隱藏。",
|
||||
"sharing": "分享很簡單:建立工作流程,開啟 App 模式,右鍵分頁並匯出。其他人開啟你的檔案時,會直接進入這個乾淨的視圖。你可以將強大的工作流程分享成簡單工具,無需理解節點圖。",
|
||||
"title": "歡迎使用 App 模式",
|
||||
"widget": "如果想控制哪些設定顯示,請將頂層節點轉為子圖,然後在上方工具箱使用元件推廣,選擇要公開的項目。"
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "正在套用材質貼圖...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "節點庫",
|
||||
"Node Links": "節點連結",
|
||||
"Open": "開啟",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "為選取節點開啟 3D 檢視器(測試版)",
|
||||
"Open Color Picker in MaskEditor": "在 MaskEditor 中開啟顏色選擇器",
|
||||
"Open Custom Nodes Folder": "開啟自訂節點資料夾",
|
||||
"Open DevTools": "開啟開發者工具",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "在遮罩編輯器中向右旋轉",
|
||||
"Save": "儲存",
|
||||
"Save As": "另存新檔",
|
||||
"Set Subgraph Description": "設定子圖描述",
|
||||
"Set Subgraph Search Aliases": "設定子圖搜尋別名",
|
||||
"Show Keybindings Dialog": "顯示快捷鍵對話框",
|
||||
"Show Model Selector (Dev)": "顯示模型選擇器(開發用)",
|
||||
"Show Settings Dialog": "顯示設定對話框",
|
||||
"Sign Out": "登出",
|
||||
"Toggle App Mode": "切換 App 模式",
|
||||
"Toggle Essential Bottom Panel": "切換基本底部面板",
|
||||
"Toggle Logs Bottom Panel": "切換日誌底部面板",
|
||||
"Toggle Queue Panel V2": "切換佇列面板 V2",
|
||||
"Toggle Search Box": "切換搜尋框",
|
||||
"Toggle App Mode": "切換 App 模式",
|
||||
"Toggle Terminal Bottom Panel": "切換終端機底部面板",
|
||||
"Toggle Theme (Dark/Light)": "切換主題(深色/淺色)",
|
||||
"Toggle View Controls Bottom Panel": "切換檢視控制底部面板",
|
||||
"Toggle promotion of hovered widget": "切換懸停小工具提升狀態",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "字節跳動",
|
||||
"Gemini": "雙子星",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "已收藏輸入",
|
||||
"favoritesNone": "尚無已收藏輸入",
|
||||
"favoritesNoneDesc": "你收藏的輸入會顯示在這裡",
|
||||
"favoritesNoneHint": "在參數分頁,點擊任一輸入的 {moreIcon} 可加入這裡",
|
||||
"favoritesNoneTooltip": "將元件加星標,快速存取無需選擇節點",
|
||||
"globalSettings": {
|
||||
"canvas": "畫布",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "切換屬性面板",
|
||||
"workflowOverview": "工作流程總覽"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "新增機密",
|
||||
"createdAt": "建立於 {date}",
|
||||
"deleteConfirmMessage": "您確定要刪除「{name}」嗎?此操作無法復原。",
|
||||
"deleteConfirmTitle": "刪除機密",
|
||||
"description": "機密會被加密,用於儲存像 API 金鑰這類敏感資料。",
|
||||
"descriptionUsage": "在這裡儲存您的權杖,以啟用從支援的供應商下載私人與受限模型。",
|
||||
"editSecret": "編輯機密",
|
||||
"errors": {
|
||||
"duplicateName": "已存在同名的機密",
|
||||
"duplicateProvider": "此供應商已存在機密",
|
||||
"nameRequired": "名稱為必填項目",
|
||||
"nameTooLong": "名稱長度必須在 255 個字元以內",
|
||||
"providerRequired": "供應商為必填項目",
|
||||
"secretValueRequired": "機密值為必填項目"
|
||||
},
|
||||
"lastUsed": "上次使用 {date}",
|
||||
"modelProviders": "模型供應商",
|
||||
"name": "名稱",
|
||||
"namePlaceholder": "例如:我的 API 金鑰",
|
||||
"noSecrets": "尚未儲存任何機密。新增您的第一個 API 金鑰以開始使用。",
|
||||
"provider": "供應商",
|
||||
"providerHint": "選填。選擇供應商可自動啟用權杖使用。",
|
||||
"secretValue": "機密值",
|
||||
"secretValueHint": "此值將被加密,且無法再次查看。",
|
||||
"secretValueHintEdit": "若要保留目前的值,請留空。",
|
||||
"secretValuePlaceholder": "請輸入您的 API 金鑰",
|
||||
"secretValuePlaceholderEdit": "輸入新值以變更",
|
||||
"title": "API 金鑰與機密"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "繞過群組節點",
|
||||
"Set Group Nodes to Always": "將群組節點設為總是",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "重新導向",
|
||||
"RerouteBeta": "重新導向 Beta",
|
||||
"Scene": "場景",
|
||||
"Secrets": "機密資訊",
|
||||
"Server": "伺服器",
|
||||
"Server-Config": "伺服器設定",
|
||||
"Settings": "設定",
|
||||
@@ -2343,9 +2422,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "子圖名稱",
|
||||
"blueprintNamePrompt": "子圖名稱:",
|
||||
"cannotDeleteGlobal": "無法刪除已安裝的藍圖",
|
||||
"confirmDelete": "此操作將永久從您的程式庫中移除藍圖",
|
||||
"confirmDeleteTitle": "刪除藍圖?",
|
||||
"enterDescription": "輸入描述",
|
||||
"enterSearchAliases": "輸入搜尋別名(以逗號分隔)",
|
||||
"hidden": "隱藏 / 巢狀參數",
|
||||
"hideAll": "全部隱藏",
|
||||
"loadFailure": "載入子圖藍圖失敗",
|
||||
@@ -2356,6 +2438,7 @@
|
||||
"publishSuccess": "已儲存至節點庫",
|
||||
"publishSuccessMessage": "您可以在節點庫的「子圖藍圖」中找到您的子圖藍圖",
|
||||
"saveBlueprint": "將子圖儲存到資料庫",
|
||||
"searchAliases": "搜尋別名",
|
||||
"showAll": "顯示全部",
|
||||
"showRecommended": "顯示建議的小工具",
|
||||
"shown": "在節點上顯示"
|
||||
@@ -2702,6 +2785,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "輸入檔案名稱",
|
||||
"enterFilenamePrompt": "請輸入檔案名稱:",
|
||||
"exportWorkflow": "匯出工作流程",
|
||||
"saveWorkflow": "儲存工作流程"
|
||||
},
|
||||
|
||||
@@ -2205,6 +2205,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 Latent Audio",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "批次大小",
|
||||
"tooltip": "批次中 latent 圖像的數量。"
|
||||
},
|
||||
"seconds": {
|
||||
"name": "秒數"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "EmptyAceStepLatentAudio",
|
||||
"inputs": {
|
||||
@@ -3554,6 +3571,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "將低解析度影像升級為超高解析度,消除雜訊與失真。最大輸出:32 百萬像素。",
|
||||
"display_name": "HitPaw 通用影像增強",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "自動縮小",
|
||||
"tooltip": "若輸出超過限制,將自動縮小輸入影像。"
|
||||
},
|
||||
"image": {
|
||||
"name": "影像"
|
||||
},
|
||||
"model": {
|
||||
"name": "模型"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "放大倍率"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "將低解析度影片升級為高解析度,消除雜訊與失真。價格以每秒影片計算。",
|
||||
"display_name": "HitPaw 影片增強",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "模型"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "解析度"
|
||||
},
|
||||
"video": {
|
||||
"name": "影片"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2Conditioning",
|
||||
"inputs": {
|
||||
@@ -6367,8 +6428,12 @@
|
||||
"model_file": {
|
||||
"name": "模型檔案"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": {
|
||||
"zh-TW": "上傳 3D 模型"
|
||||
},
|
||||
"upload extra resources": {
|
||||
"zh-TW": "上傳額外資源"
|
||||
},
|
||||
"width": {
|
||||
"name": "寬度"
|
||||
}
|
||||
@@ -7252,12 +7317,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy:圖片轉模型",
|
||||
@@ -7303,16 +7373,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy:多圖轉模型",
|
||||
@@ -7358,16 +7430,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "精修先前建立的草稿模型。",
|
||||
@@ -7392,16 +7466,18 @@
|
||||
"tooltip": "提供文字提示以引導材質製作。最多 600 字元。不可與「texture_image」同時使用。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "提供標準格式的骨架綁定角色。目前自動綁定不適用於無材質網格、非人形資產,或肢體結構不明確的人形資產。",
|
||||
@@ -7419,16 +7495,18 @@
|
||||
"tooltip": "模型 UV 展開後的基礎色彩貼圖。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy:文字生成模型",
|
||||
@@ -7467,16 +7545,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy:材質模型",
|
||||
@@ -7503,16 +7583,18 @@
|
||||
"tooltip": "用文字描述你想要的物件材質風格。最多600字。不能與「image_style」同時使用。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "使用新的 MiniMax 海螺-02 模型,從提示詞生成影片,可選起始幀。",
|
||||
@@ -10709,11 +10791,9 @@
|
||||
"camera_info": {
|
||||
"name": "camera_info"
|
||||
},
|
||||
"image": {
|
||||
"name": "影像"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "model_file"
|
||||
"name": "model_file",
|
||||
"tooltip": "3D 模型檔案或路徑字串"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11354,6 +11434,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "此節點設定 timbre 的參考音訊(適用於 ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "條件"
|
||||
},
|
||||
"latent": {
|
||||
"name": "latent"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "正則表達式提取",
|
||||
"inputs": {
|
||||
@@ -11682,12 +11779,13 @@
|
||||
"name": "種子值"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 模型路徑",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "使用 Rodin API 生成 3D 資源",
|
||||
@@ -11709,12 +11807,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 模型路徑",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "使用 Rodin API 生成 3D 資源",
|
||||
@@ -11733,12 +11832,13 @@
|
||||
"name": "種子值"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 模型路徑",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "使用 Rodin API 生成 3D 資源",
|
||||
@@ -11751,12 +11851,13 @@
|
||||
"name": "種子值"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 模型路徑",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "使用 Rodin API 生成 3D 資源",
|
||||
@@ -11775,12 +11876,13 @@
|
||||
"name": "種子值"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D 模型路徑",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "上傳首尾關鍵幀,草擬提示詞,並生成影片。對於較複雜的轉場(例如最後一幀與第一幀完全不同的情況),較長的 10 秒持續時間可能更有利,這能讓生成過程有更多時間在兩個輸入之間平滑過渡。開始前,請先閱讀這些最佳實踐指南,確保您的輸入選擇能為生成成功奠定基礎:https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3。",
|
||||
@@ -12507,11 +12609,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "檔名前綴"
|
||||
},
|
||||
"image": {
|
||||
"name": "影像"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "mesh"
|
||||
"name": "mesh",
|
||||
"tooltip": "要儲存的 Mesh 或 GLB 檔案"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13764,12 +13864,17 @@
|
||||
"tooltip": "種子控制節點是否重新執行;無論種子如何,結果皆為非確定性。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D:文字轉模型(專業版)",
|
||||
@@ -13799,12 +13904,17 @@
|
||||
"tooltip": "種子控制節點是否重新執行;無論種子如何,結果皆為非確定性。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "TextEncodeAceStepAudio",
|
||||
@@ -13828,6 +13938,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "每分鐘節拍數"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "生成後控制"
|
||||
},
|
||||
"duration": {
|
||||
"name": "時長"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "調性"
|
||||
},
|
||||
"language": {
|
||||
"name": "語言"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "歌詞"
|
||||
},
|
||||
"seed": {
|
||||
"name": "種子"
|
||||
},
|
||||
"tags": {
|
||||
"name": "標籤"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "拍號"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "文字編碼 HunyuanVideo 影像轉影片",
|
||||
"inputs": {
|
||||
@@ -14383,16 +14533,14 @@
|
||||
"name": "紋理種子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任務ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo:多視角轉模型",
|
||||
@@ -14444,16 +14592,14 @@
|
||||
"name": "texture_seed"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "僅精修由 v1.4 Tripo 模型建立的草稿模型。",
|
||||
@@ -14464,16 +14610,14 @@
|
||||
"tooltip": "必須是 v1.4 Tripo 模型"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "model task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: 重新定位骨架模型",
|
||||
@@ -14485,16 +14629,14 @@
|
||||
"name": "original_model_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "retarget task_id",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: 骨架模型",
|
||||
@@ -14503,16 +14645,14 @@
|
||||
"name": "原始模型任務ID"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "綁定任務ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo:文字轉模型",
|
||||
@@ -14557,16 +14697,14 @@
|
||||
"name": "紋理種子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任務ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo:紋理模型",
|
||||
@@ -14590,16 +14728,14 @@
|
||||
"name": "紋理種子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型檔案",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任務ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "截斷文字",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "控制畫布上節點連接線的外觀與可見性。"
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "啟用 3D 檢視器(測試版)",
|
||||
"tooltip": "為所選節點啟用 3D 檢視器(測試版)。此功能可讓您在全尺寸 3D 檢視器中直接瀏覽與互動 3D 模型。"
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "初始背景顏色",
|
||||
"tooltip": "控制 3D 場景的預設背景顏色。此設定決定新建立 3D 元件時的背景外觀,但每個元件在建立後都可單獨調整。"
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "初始相機類型",
|
||||
"options": {
|
||||
"orthographic": "正交",
|
||||
"perspective": "透視"
|
||||
},
|
||||
"tooltip": "控制新建 3D 元件時,相機預設為透視或正交。此預設值在建立後仍可針對每個元件單獨切換。"
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "燈光調整增量",
|
||||
"tooltip": "控制在 3D 場景中調整燈光強度時的增量大小。較小的步進值可讓您更細緻地調整燈光,較大的值則每次調整會有更明顯的變化。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "初始光源強度",
|
||||
"tooltip": "設定 3D 場景中燈光的預設亮度等級。此數值決定新建立 3D 元件時燈光照亮物體的強度,但每個元件在建立後都可以個別調整。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "最大光照強度",
|
||||
"tooltip": "設定 3D 場景中允許的最大光照強度值。這會定義在調整任何 3D 小工具照明時可設定的最高亮度上限。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "光源強度下限",
|
||||
"tooltip": "設定 3D 場景中允許的最小光源強度值。這會定義在調整任何 3D 控制元件照明時可設定的最低亮度限制。"
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLY 引擎",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "選擇用於載入 PLY 檔案的引擎。「threejs」使用原生 Three.js PLYLoader(最適合網格 PLY 檔案)。「fastply」使用針對 ASCII 點雲 PLY 檔案優化的載入器。「sparkjs」則用於 3D Gaussian Splatting PLY 檔案。"
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "初始網格可見性",
|
||||
"tooltip": "控制在建立新的 3D 元件時,網格是否預設可見。此預設值在建立後仍可針對每個元件單獨切換。"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "語言"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "顯示 API 節點價格標籤"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "啟用自動節點替換",
|
||||
"tooltip": "啟用後,若有替換對應關係,遺失的節點可自動以其較新的對應節點替換。"
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "節點搜尋框實作",
|
||||
"options": {
|
||||
|
||||
@@ -35,9 +35,6 @@
|
||||
"Comfy-Desktop_Restart": {
|
||||
"label": "重启"
|
||||
},
|
||||
"Comfy_3DViewer_Open3DViewer": {
|
||||
"label": "为所选节点开启 3D 浏览器(Beta 版)"
|
||||
},
|
||||
"Comfy_BrowseModelAssets": {
|
||||
"label": "实验性:浏览模型资源"
|
||||
},
|
||||
@@ -266,6 +263,12 @@
|
||||
"Comfy_ShowSettingsDialog": {
|
||||
"label": "显示设置对话框"
|
||||
},
|
||||
"Comfy_Subgraph_SetDescription": {
|
||||
"label": "设置子图描述"
|
||||
},
|
||||
"Comfy_Subgraph_SetSearchAliases": {
|
||||
"label": "设置子图搜索别名"
|
||||
},
|
||||
"Comfy_ToggleAssetAPI": {
|
||||
"label": "实验性:启用 AssetAPI"
|
||||
},
|
||||
@@ -311,12 +314,6 @@
|
||||
"Workspace_ToggleBottomPanel": {
|
||||
"label": "切换底部面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_command-terminal": {
|
||||
"label": "切换终端底部面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_logs-terminal": {
|
||||
"label": "切换日志底部面板"
|
||||
},
|
||||
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
|
||||
"label": "切换基本下方面板"
|
||||
},
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
"assetBrowser": {
|
||||
"allCategory": "全部{category}",
|
||||
"allModels": "全部模型",
|
||||
"apiKeyHint": "导入私有或受限模型?{link}。",
|
||||
"apiKeyHintLink": "在设置中添加您的 API 密钥",
|
||||
"ariaLabel": {
|
||||
"assetCard": "{name} - {type}资产",
|
||||
"loadingAsset": "正在加载资产"
|
||||
@@ -51,13 +53,34 @@
|
||||
"canImport": "尚未导入模型。点击“导入模型”添加您的模型。",
|
||||
"restricted": "个人模型仅限创作者及以上等级使用。"
|
||||
},
|
||||
"errorAccessForbidden": "无法访问此资源。",
|
||||
"errorConnectionRefused": "无法连接到来源。请稍后再试。",
|
||||
"errorDownloadCancelled": "下载已取消。",
|
||||
"errorFileTooLarge": "允许执行文件的文件大小限制",
|
||||
"errorFormatNotAllowed": "仅允许 SafeTensor 格式",
|
||||
"errorHttpError": "获取元数据时发生错误。",
|
||||
"errorInternalError": "发生意外错误。请重试。",
|
||||
"errorInvalidHost": "无法解析来源 URL 的主机名。",
|
||||
"errorInvalidUrl": "请输入一个 URL。",
|
||||
"errorInvalidUrlFormat": "URL 格式无效。请检查后重试。",
|
||||
"errorMetadataFetchFailed": "从来源获取文件信息失败。",
|
||||
"errorModelTypeNotSupported": "不支持该类型的模型",
|
||||
"errorNetworkError": "发生网络错误。请检查您的连接并重试。",
|
||||
"errorNetworkTimeout": "请求超时。请重试。",
|
||||
"errorRateLimited": "请求过多。请几分钟后再试。",
|
||||
"errorRequestCancelled": "请求已取消。",
|
||||
"errorResourceNotFound": "未找到文件。请检查 URL 并重试。",
|
||||
"errorServiceUnavailable": "服务暂时不可用。请稍后再试。",
|
||||
"errorSourceServerError": "来源服务器出现问题。请稍后再试。",
|
||||
"errorUnauthorized": "请登录以继续。",
|
||||
"errorUnauthorizedSource": "此资源需要身份验证。请在设置中添加您的 API 密钥。",
|
||||
"errorUnknown": "发生了意外错误",
|
||||
"errorUnsafePickleScan": "CivitAI 在该文件中检测到不安全代码",
|
||||
"errorUnsafeVirusScan": "CivitAI 在该文件中检测到木马或可疑文件",
|
||||
"errorUnsupportedSource": "此 URL 不受支持。仅允许 Hugging Face 和 Civitai 的链接。",
|
||||
"errorUploadFailed": "导入资产失败,请重试。",
|
||||
"errorUserTokenAccessDenied": "您的 API 密钥无权访问此资源。请检查密钥权限。",
|
||||
"errorUserTokenInvalid": "您保存的 API 密钥无效或已过期。请在设置中更新密钥。",
|
||||
"failedToCreateNode": "创建节点失败。请重试或查看控制台获取详细信息。",
|
||||
"fileFormats": "文件格式",
|
||||
"fileName": "文件名",
|
||||
@@ -581,6 +604,13 @@
|
||||
"COMFY_MATCHTYPE_V3": "COMFY_MATCHTYPE_V3",
|
||||
"CONDITIONING": "条件",
|
||||
"CONTROL_NET": "ControlNet",
|
||||
"FILE_3D": "FILE_3D",
|
||||
"FILE_3D_FBX": "FILE_3D_FBX",
|
||||
"FILE_3D_GLB": "FILE_3D_GLB",
|
||||
"FILE_3D_GLTF": "FILE_3D_GLTF",
|
||||
"FILE_3D_OBJ": "FILE_3D_OBJ",
|
||||
"FILE_3D_STL": "FILE_3D_STL",
|
||||
"FILE_3D_USDZ": "FILE_3D_USDZ",
|
||||
"FLOAT": "浮点",
|
||||
"FLOATS": "浮点组",
|
||||
"GEMINI_INPUT_FILES": "GEMINI 输入文件",
|
||||
@@ -721,6 +751,7 @@
|
||||
"commandProhibited": "命令 {command} 被禁止。请联系管理员了解更多信息。",
|
||||
"community": "社区",
|
||||
"completed": "已完成",
|
||||
"completedWithCheckmark": "已完成 ✓",
|
||||
"confirm": "确认",
|
||||
"confirmed": "已确认",
|
||||
"content": "内容",
|
||||
@@ -756,6 +787,7 @@
|
||||
"download": "下载",
|
||||
"downloadImage": "下载图片",
|
||||
"downloadVideo": "下载视频",
|
||||
"downloadWithSize": "下载({size})",
|
||||
"downloading": "正在下载",
|
||||
"dropYourFileOr": "拖放您的文件或",
|
||||
"duplicate": "复制",
|
||||
@@ -771,12 +803,14 @@
|
||||
"enabling": "启用中",
|
||||
"enterBaseName": "输入基础名称",
|
||||
"enterNewName": "输入新名称",
|
||||
"enterNewNamePrompt": "输入新名称:",
|
||||
"error": "错误",
|
||||
"errorLoadingImage": "图片加载出错",
|
||||
"errorLoadingVideo": "视频加载出错",
|
||||
"experimental": "测试版",
|
||||
"export": "导出",
|
||||
"extensionName": "扩展名称",
|
||||
"extensions": "扩展",
|
||||
"failed": "失败",
|
||||
"failedToCopyJobId": "未能复制队列 ID",
|
||||
"failedToDownloadImage": "图片下载失败",
|
||||
@@ -815,6 +849,7 @@
|
||||
"jobIdCopied": "队列 ID 已复制到剪贴板",
|
||||
"keybinding": "按键绑定",
|
||||
"keybindingAlreadyExists": "快捷键已存在",
|
||||
"keybindings": "快捷键",
|
||||
"learnMore": "了解更多",
|
||||
"listening": "正在监听...",
|
||||
"liveSamplingPreview": "实时采样预览",
|
||||
@@ -926,6 +961,7 @@
|
||||
"selectedFile": "已选文件",
|
||||
"setAsBackground": "设为背景",
|
||||
"settings": "设置",
|
||||
"shortcutSuffix": "({shortcut})",
|
||||
"showLeftPanel": "显示左侧面板",
|
||||
"showReport": "显示报告",
|
||||
"showRightPanel": "显示右侧面板",
|
||||
@@ -1027,8 +1063,12 @@
|
||||
},
|
||||
"imageCrop": {
|
||||
"cropPreviewAlt": "裁剪预览",
|
||||
"custom": "自定义",
|
||||
"loading": "加载中...",
|
||||
"noInputImage": "未连接输入图像"
|
||||
"lockRatio": "锁定宽高比",
|
||||
"noInputImage": "未连接输入图像",
|
||||
"ratio": "比例",
|
||||
"unlockRatio": "解锁宽高比"
|
||||
},
|
||||
"importFailed": {
|
||||
"copyError": "复制错误",
|
||||
@@ -1159,7 +1199,14 @@
|
||||
"linearMode": "App 模式",
|
||||
"rerun": "重新运行",
|
||||
"reuseParameters": "复用参数",
|
||||
"runCount": "运行次数:"
|
||||
"runCount": "运行次数:",
|
||||
"welcome": {
|
||||
"intro": "简化视图,隐藏节点图,让你专注于创作。",
|
||||
"layout": "左侧显示你生成的图像、视频和输出。右侧只保留所需的控制项。所有复杂内容都被隐藏。",
|
||||
"sharing": "分享很简单:创建工作流,打开应用模式,右键点击标签页并导出。当他人打开你的文件时,会直接进入这个简洁视图。你可以将强大的工作流作为简单工具分享,无需理解节点图。",
|
||||
"title": "欢迎使用应用模式",
|
||||
"widget": "如果你想控制显示哪些设置,将顶层节点转换为子图,然后在上方工具箱中使用控件提升,选择要暴露的内容。"
|
||||
}
|
||||
},
|
||||
"load3d": {
|
||||
"applyingTexture": "应用纹理中...",
|
||||
@@ -1610,7 +1657,6 @@
|
||||
"Node Library": "节点库",
|
||||
"Node Links": "节点连接",
|
||||
"Open": "打开",
|
||||
"Open 3D Viewer (Beta) for Selected Node": "为选中节点打开3D查看器(测试版)",
|
||||
"Open Color Picker in MaskEditor": "在 MaskEditor 中打开取色器",
|
||||
"Open Custom Nodes Folder": "打开自定义节点文件夹",
|
||||
"Open DevTools": "打开开发者工具",
|
||||
@@ -1640,16 +1686,16 @@
|
||||
"Rotate Right in MaskEditor": "在蒙版编辑器中向右旋转",
|
||||
"Save": "保存",
|
||||
"Save As": "另存为",
|
||||
"Set Subgraph Description": "设置子图描述",
|
||||
"Set Subgraph Search Aliases": "设置子图搜索别名",
|
||||
"Show Keybindings Dialog": "显示快捷键对话框",
|
||||
"Show Model Selector (Dev)": "显示模型选择器(开发用)",
|
||||
"Show Settings Dialog": "显示设置对话框",
|
||||
"Sign Out": "退出登录",
|
||||
"Toggle App Mode": "切换 App 模式",
|
||||
"Toggle Essential Bottom Panel": "切换基础底部面板",
|
||||
"Toggle Logs Bottom Panel": "切换日志底部面板",
|
||||
"Toggle Queue Panel V2": "切换队列面板 V2",
|
||||
"Toggle Search Box": "切换搜索框",
|
||||
"Toggle App Mode": "切换 App 模式",
|
||||
"Toggle Terminal Bottom Panel": "切换终端底部面板",
|
||||
"Toggle Theme (Dark/Light)": "切换主题(暗/亮)",
|
||||
"Toggle View Controls Bottom Panel": "切换视图控制底部面板",
|
||||
"Toggle promotion of hovered widget": "切换悬停小部件的提升",
|
||||
@@ -1707,6 +1753,7 @@
|
||||
"ByteDance": "字节跳动",
|
||||
"Gemini": "Gemini",
|
||||
"Grok": "Grok",
|
||||
"HitPaw": "HitPaw",
|
||||
"Ideogram": "Ideogram",
|
||||
"Kling": "Kling",
|
||||
"LTXV": "LTXV",
|
||||
@@ -1928,6 +1975,7 @@
|
||||
"favorites": "已收藏输入",
|
||||
"favoritesNone": "暂无已收藏输入",
|
||||
"favoritesNoneDesc": "你收藏的输入会显示在这里",
|
||||
"favoritesNoneHint": "在参数标签页,点击任意输入项的 {moreIcon} 可将其添加到这里",
|
||||
"favoritesNoneTooltip": "星标组件后可快速访问,无需选择节点",
|
||||
"globalSettings": {
|
||||
"canvas": "画布",
|
||||
@@ -1973,6 +2021,36 @@
|
||||
"togglePanel": "开关属性面板",
|
||||
"workflowOverview": "工作流总览"
|
||||
},
|
||||
"secrets": {
|
||||
"addSecret": "添加机密",
|
||||
"createdAt": "创建于 {date}",
|
||||
"deleteConfirmMessage": "确定要删除“{name}”吗?此操作无法撤销。",
|
||||
"deleteConfirmTitle": "删除机密",
|
||||
"description": "机密信息会被加密,用于存储诸如 API 密钥等敏感数据。",
|
||||
"descriptionUsage": "在此处存储您的令牌,以便从支持的提供商下载私有和受限模型。",
|
||||
"editSecret": "编辑机密",
|
||||
"errors": {
|
||||
"duplicateName": "已存在同名机密",
|
||||
"duplicateProvider": "该提供商的机密已存在",
|
||||
"nameRequired": "名称为必填项",
|
||||
"nameTooLong": "名称长度不能超过 255 个字符",
|
||||
"providerRequired": "提供商为必填项",
|
||||
"secretValueRequired": "机密值为必填项"
|
||||
},
|
||||
"lastUsed": "上次使用 {date}",
|
||||
"modelProviders": "模型提供商",
|
||||
"name": "名称",
|
||||
"namePlaceholder": "例如:我的 API 密钥",
|
||||
"noSecrets": "尚未存储任何机密。添加您的第一个 API 密钥以开始使用。",
|
||||
"provider": "提供商",
|
||||
"providerHint": "可选。选择提供商可自动使用令牌。",
|
||||
"secretValue": "机密值",
|
||||
"secretValueHint": "该值将被加密,之后无法再次查看。",
|
||||
"secretValueHintEdit": "如需保留当前值,请留空。",
|
||||
"secretValuePlaceholder": "请输入您的 API 密钥",
|
||||
"secretValuePlaceholderEdit": "输入新值以更改",
|
||||
"title": "API 密钥与机密"
|
||||
},
|
||||
"selectionToolbox": {
|
||||
"Bypass Group Nodes": "绕过分组节点",
|
||||
"Set Group Nodes to Always": "将分组节点设置为始终",
|
||||
@@ -2190,6 +2268,7 @@
|
||||
"Reroute": "重新路由",
|
||||
"RerouteBeta": "转接点 Beta",
|
||||
"Scene": "场景",
|
||||
"Secrets": "密钥",
|
||||
"Server": "服务器",
|
||||
"Server-Config": "服务器配置",
|
||||
"Settings": "设置",
|
||||
@@ -2354,9 +2433,12 @@
|
||||
},
|
||||
"subgraphStore": {
|
||||
"blueprintName": "子工作流名称",
|
||||
"blueprintNamePrompt": "子图名称:",
|
||||
"cannotDeleteGlobal": "无法删除已安装的蓝图",
|
||||
"confirmDelete": "此操作将永久从您的库中移除该子工作流",
|
||||
"confirmDeleteTitle": "删除子工作流?",
|
||||
"enterDescription": "输入描述",
|
||||
"enterSearchAliases": "输入搜索别名(用逗号分隔)",
|
||||
"hidden": "隐藏/嵌套参数",
|
||||
"hideAll": "全部隐藏",
|
||||
"loadFailure": "加载子工作流蓝图失败",
|
||||
@@ -2367,6 +2449,7 @@
|
||||
"publishSuccess": "已保存到节点库",
|
||||
"publishSuccessMessage": "您可以在节点库的“子工作流蓝图”下找到您的子工作流蓝图",
|
||||
"saveBlueprint": "保存子工作流到节点库",
|
||||
"searchAliases": "搜索别名",
|
||||
"showAll": "全部显示",
|
||||
"showRecommended": "显示推荐控件",
|
||||
"shown": "节点上显示"
|
||||
@@ -2713,6 +2796,7 @@
|
||||
},
|
||||
"workflowService": {
|
||||
"enterFilename": "输入文件名",
|
||||
"enterFilenamePrompt": "输入文件名:",
|
||||
"exportWorkflow": "导出工作流",
|
||||
"saveWorkflow": "保存工作流"
|
||||
},
|
||||
|
||||
@@ -2207,6 +2207,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStep1_5LatentAudio": {
|
||||
"display_name": "Empty Ace Step 1.5 潜空间音频",
|
||||
"inputs": {
|
||||
"batch_size": {
|
||||
"name": "批量大小",
|
||||
"tooltip": "批次中的潜空间图像数量。"
|
||||
},
|
||||
"seconds": {
|
||||
"name": "秒数"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"EmptyAceStepLatentAudio": {
|
||||
"display_name": "空Latent音频(AceStep)",
|
||||
"inputs": {
|
||||
@@ -3559,6 +3576,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawGeneralImageEnhance": {
|
||||
"description": "将低分辨率图像放大至超分辨率,消除伪影和噪点。最大输出:3200万像素。",
|
||||
"display_name": "HitPaw 通用图像增强",
|
||||
"inputs": {
|
||||
"auto_downscale": {
|
||||
"name": "自动缩小",
|
||||
"tooltip": "如果输出超出限制,自动缩小输入图像。"
|
||||
},
|
||||
"image": {
|
||||
"name": "图像"
|
||||
},
|
||||
"model": {
|
||||
"name": "模型"
|
||||
},
|
||||
"upscale_factor": {
|
||||
"name": "放大倍数"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"HitPawVideoEnhance": {
|
||||
"description": "将低分辨率视频放大至高分辨率,消除伪影和噪点。价格按视频每秒计费。",
|
||||
"display_name": "HitPaw 视频增强",
|
||||
"inputs": {
|
||||
"model": {
|
||||
"name": "模型"
|
||||
},
|
||||
"model_resolution": {
|
||||
"name": "分辨率"
|
||||
},
|
||||
"video": {
|
||||
"name": "视频"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"Hunyuan3Dv2Conditioning": {
|
||||
"display_name": "Hunyuan3Dv2条件",
|
||||
"inputs": {
|
||||
@@ -6366,7 +6427,7 @@
|
||||
"Load3D": {
|
||||
"display_name": "加载3D",
|
||||
"inputs": {
|
||||
"clear": {},
|
||||
"clear": "清除",
|
||||
"height": {
|
||||
"name": "高度"
|
||||
},
|
||||
@@ -6376,38 +6437,24 @@
|
||||
"model_file": {
|
||||
"name": "模型文件"
|
||||
},
|
||||
"upload 3d model": {},
|
||||
"upload extra resources": {},
|
||||
"upload 3d model": "上传3D模型",
|
||||
"upload extra resources": "上传额外资源",
|
||||
"width": {
|
||||
"name": "宽度"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "图像",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "遮罩",
|
||||
"tooltip": null
|
||||
},
|
||||
"2": {
|
||||
"name": "网格路径",
|
||||
"tooltip": null
|
||||
},
|
||||
"3": {
|
||||
"name": "法向",
|
||||
"tooltip": null
|
||||
},
|
||||
"4": {
|
||||
"name": "线条",
|
||||
"tooltip": null
|
||||
},
|
||||
"5": {
|
||||
"name": "相机信息",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "model_3d",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"LoadAudio": {
|
||||
"display_name": "加载音频",
|
||||
@@ -7268,12 +7315,17 @@
|
||||
"name": "rig_task_id"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyImageToModelNode": {
|
||||
"display_name": "Meshy:图像转模型",
|
||||
@@ -7319,16 +7371,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyMultiImageToModelNode": {
|
||||
"display_name": "Meshy:多图像转模型",
|
||||
@@ -7374,16 +7428,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRefineNode": {
|
||||
"description": "对先前创建的草稿模型进行精细化处理。",
|
||||
@@ -7408,16 +7464,18 @@
|
||||
"tooltip": "提供文本提示以引导材质生成。最多600个字符。不能与'texture_image'同时使用。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyRigModelNode": {
|
||||
"description": "以标准格式提供带骨骼的角色模型。自动骨骼绑定目前不适用于无贴图网格、非类人资产或肢体结构不清晰的类人资产。",
|
||||
@@ -7435,16 +7493,18 @@
|
||||
"tooltip": "模型的UV展开基础色贴图。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "rig_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextToModelNode": {
|
||||
"display_name": "Meshy:文本生成模型",
|
||||
@@ -7483,16 +7543,18 @@
|
||||
"name": "symmetry_mode"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "model_file",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MeshyTextureNode": {
|
||||
"display_name": "Meshy:纹理模型",
|
||||
@@ -7519,16 +7581,18 @@
|
||||
"tooltip": "用文本描述你想要的物体纹理风格。最多600个字符。不能与“image_style”同时使用。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "meshy_task_id",
|
||||
{
|
||||
"name": "FBX",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"MinimaxHailuoVideoNode": {
|
||||
"description": "使用新的 MiniMax Hailuo-02 模型从提示词生成视频,可选择起始帧。",
|
||||
@@ -10725,11 +10789,9 @@
|
||||
"camera_info": {
|
||||
"name": "相机信息"
|
||||
},
|
||||
"image": {
|
||||
"name": "图像"
|
||||
},
|
||||
"model_file": {
|
||||
"name": "模型文件"
|
||||
"name": "模型文件",
|
||||
"tooltip": "3D模型文件或路径字符串"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11370,6 +11432,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ReferenceTimbreAudio": {
|
||||
"description": "此节点设置音色参考音频(用于 ace step 1.5)",
|
||||
"display_name": "ReferenceTimbreAudio",
|
||||
"inputs": {
|
||||
"conditioning": {
|
||||
"name": "条件"
|
||||
},
|
||||
"latent": {
|
||||
"name": "潜空间"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"RegexExtract": {
|
||||
"display_name": "正则表达式提取",
|
||||
"inputs": {
|
||||
@@ -11698,12 +11777,13 @@
|
||||
"name": "种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D模型路径",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Gen2": {
|
||||
"description": "使用Rodin API生成3D资源",
|
||||
@@ -11725,12 +11805,13 @@
|
||||
"name": "TAPose"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D模型路径",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Regular": {
|
||||
"description": "使用Rodin API生成3D资源",
|
||||
@@ -11749,12 +11830,13 @@
|
||||
"name": "种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D模型路径",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Sketch": {
|
||||
"description": "使用Rodin API生成3D资源",
|
||||
@@ -11767,12 +11849,13 @@
|
||||
"name": "种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D模型路径",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"Rodin3D_Smooth": {
|
||||
"description": "使用Rodin API生成3D资源",
|
||||
@@ -11791,12 +11874,13 @@
|
||||
"name": "种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "3D模型路径",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"RunwayFirstLastFrameNode": {
|
||||
"description": "上传首尾关键帧,草拟提示词,生成视频。对于更复杂的过渡(例如尾帧与首帧完全不同的情况),较长的10秒时长可能更有利,这能为生成过程提供更多时间在两个输入之间平滑过渡。开始前,请查看这些最佳实践以确保您的输入选择能为生成成功奠定基础:https://help.runwayml.com/hc/en-us/articles/34170748696595-Creating-with-Keyframes-on-Gen-3。",
|
||||
@@ -12528,11 +12612,9 @@
|
||||
"filename_prefix": {
|
||||
"name": "文件名前缀"
|
||||
},
|
||||
"image": {
|
||||
"name": "图像"
|
||||
},
|
||||
"mesh": {
|
||||
"name": "网格"
|
||||
"name": "网格",
|
||||
"tooltip": "要保存的网格或GLB文件"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13791,12 +13873,17 @@
|
||||
"tooltip": "种子控制节点是否重新运行;无论种子如何,结果都是非确定性的。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TencentTextToModelNode": {
|
||||
"display_name": "Hunyuan3D:文本转模型(专业版)",
|
||||
@@ -13826,12 +13913,17 @@
|
||||
"tooltip": "种子控制节点是否重新运行;无论种子如何,结果都是非确定性的。"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"outputs": [
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
},
|
||||
{
|
||||
"name": "OBJ",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TextEncodeAceStepAudio": {
|
||||
"display_name": "文本音频编码(AceStep)",
|
||||
@@ -13855,6 +13947,46 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeAceStepAudio1_5": {
|
||||
"display_name": "TextEncodeAceStepAudio1.5",
|
||||
"inputs": {
|
||||
"bpm": {
|
||||
"name": "每分钟节拍数"
|
||||
},
|
||||
"clip": {
|
||||
"name": "clip"
|
||||
},
|
||||
"control_after_generate": {
|
||||
"name": "生成后控制"
|
||||
},
|
||||
"duration": {
|
||||
"name": "时长"
|
||||
},
|
||||
"keyscale": {
|
||||
"name": "调式"
|
||||
},
|
||||
"language": {
|
||||
"name": "语言"
|
||||
},
|
||||
"lyrics": {
|
||||
"name": "歌词"
|
||||
},
|
||||
"seed": {
|
||||
"name": "种子"
|
||||
},
|
||||
"tags": {
|
||||
"name": "标签"
|
||||
},
|
||||
"timesignature": {
|
||||
"name": "拍号"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"TextEncodeHunyuanVideo_ImageToVideo": {
|
||||
"display_name": "文本编码(Hunyuan视频_图像到视频)",
|
||||
"inputs": {
|
||||
@@ -14410,16 +14542,14 @@
|
||||
"name": "纹理种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoMultiviewToModelNode": {
|
||||
"display_name": "Tripo:多视图转模型",
|
||||
@@ -14471,16 +14601,14 @@
|
||||
"name": "纹理种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRefineNode": {
|
||||
"description": "仅精修由v1.4 Tripo模型创建的草稿模型。",
|
||||
@@ -14491,16 +14619,14 @@
|
||||
"tooltip": "必须是v1.4 Tripo模型"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRetargetNode": {
|
||||
"display_name": "Tripo: 重定向绑定模型",
|
||||
@@ -14512,16 +14638,14 @@
|
||||
"name": "原始模型任务ID"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "重定向任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoRigNode": {
|
||||
"display_name": "Tripo: 绑定模型",
|
||||
@@ -14530,16 +14654,14 @@
|
||||
"name": "原始模型任务ID"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "绑定任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextToModelNode": {
|
||||
"display_name": "Tripo: 文本转模型",
|
||||
@@ -14584,16 +14706,14 @@
|
||||
"name": "纹理种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TripoTextureNode": {
|
||||
"display_name": "Tripo: 纹理化模型",
|
||||
@@ -14617,16 +14737,14 @@
|
||||
"name": "纹理种子"
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"0": {
|
||||
"name": "模型文件",
|
||||
"tooltip": null
|
||||
},
|
||||
"1": {
|
||||
"name": "模型任务ID",
|
||||
"outputs": [
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"name": "GLB",
|
||||
"tooltip": null
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"TruncateText": {
|
||||
"display_name": "截断文本",
|
||||
|
||||
@@ -151,51 +151,6 @@
|
||||
},
|
||||
"tooltip": "控制画布上节点之间连接线的外观和可见性。"
|
||||
},
|
||||
"Comfy_Load3D_3DViewerEnable": {
|
||||
"name": "启用3D查看器(测试版)",
|
||||
"tooltip": "为选定节点启用3D查看器(测试版)。此功能允许你在全尺寸3D查看器中直接可视化和交互3D模型。"
|
||||
},
|
||||
"Comfy_Load3D_BackgroundColor": {
|
||||
"name": "初始背景颜色",
|
||||
"tooltip": "控制3D场景的默认背景颜色。此设置决定新建3D组件时的背景外观,但每个组件在创建后都可以单独调整。"
|
||||
},
|
||||
"Comfy_Load3D_CameraType": {
|
||||
"name": "摄像机类型",
|
||||
"options": {
|
||||
"orthographic": "正交",
|
||||
"perspective": "透视"
|
||||
},
|
||||
"tooltip": "控制创建新的3D小部件时,默认的相机是透视还是正交。这个默认设置仍然可以在创建后为每个小部件单独切换。"
|
||||
},
|
||||
"Comfy_Load3D_LightAdjustmentIncrement": {
|
||||
"name": "光照调整步长",
|
||||
"tooltip": "控制在3D场景中调整光照强度时的步长。较小的步长值可以实现更精细的光照调整,较大的值则会使每次调整的变化更加明显。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensity": {
|
||||
"name": "初始光照强度",
|
||||
"tooltip": "设置3D场景中灯光的默认亮度级别。该数值决定新建3D控件时灯光照亮物体的强度,但每个控件在创建后都可以单独调整。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMaximum": {
|
||||
"name": "最大光照强度",
|
||||
"tooltip": "设置3D场景允许的最大光照强度值。此项定义了在调整任何3D控件照明时可设定的最高亮度上限。"
|
||||
},
|
||||
"Comfy_Load3D_LightIntensityMinimum": {
|
||||
"name": "光照强度下限",
|
||||
"tooltip": "设置3D场景允许的最小光照强度值。此项定义在调整任何3D控件照明时可设定的最低亮度。"
|
||||
},
|
||||
"Comfy_Load3D_PLYEngine": {
|
||||
"name": "PLY 引擎",
|
||||
"options": {
|
||||
"fastply": "fastply",
|
||||
"sparkjs": "sparkjs",
|
||||
"threejs": "threejs"
|
||||
},
|
||||
"tooltip": "选择加载 PLY 文件的引擎。 \"threejs\" 使用原生 Three.js PLY 加载器(最适合网格 PLY)。 \"fastply\" 使用专用于 ASCII 点云的 PLY 文件加载器。 \"sparkjs\" 使用 Spark.js 加载 3D 高斯泼溅 PLY 文件。"
|
||||
},
|
||||
"Comfy_Load3D_ShowGrid": {
|
||||
"name": "显示网格",
|
||||
"tooltip": "默认显示网格开关"
|
||||
},
|
||||
"Comfy_Locale": {
|
||||
"name": "语言"
|
||||
},
|
||||
@@ -244,6 +199,10 @@
|
||||
"Comfy_NodeBadge_ShowApiPricing": {
|
||||
"name": "显示 API 节点定价徽章"
|
||||
},
|
||||
"Comfy_NodeReplacement_Enabled": {
|
||||
"name": "启用自动节点替换",
|
||||
"tooltip": "启用后,如果存在替换映射,缺失的节点可以自动替换为其较新的等效节点。"
|
||||
},
|
||||
"Comfy_NodeSearchBoxImpl": {
|
||||
"name": "节点搜索框",
|
||||
"options": {
|
||||
|
||||
@@ -236,5 +236,15 @@ describe('useNodeReplacementStore', () => {
|
||||
|
||||
expect(fetchNodeReplacements).toHaveBeenCalledOnce()
|
||||
})
|
||||
|
||||
it('should not call API when setting is disabled', async () => {
|
||||
vi.mocked(fetchNodeReplacements).mockResolvedValue(mockReplacements)
|
||||
store = createStore(false)
|
||||
|
||||
await store.load()
|
||||
|
||||
expect(fetchNodeReplacements).not.toHaveBeenCalled()
|
||||
expect(store.isLoaded).toBe(false)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -15,7 +15,7 @@ export const useNodeReplacementStore = defineStore('nodeReplacement', () => {
|
||||
)
|
||||
|
||||
async function load() {
|
||||
if (isLoaded.value) return
|
||||
if (!isEnabled.value || isLoaded.value) return
|
||||
|
||||
try {
|
||||
replacements.value = await fetchNodeReplacements()
|
||||
|
||||
195
src/platform/nodeReplacement/useNodeReplacement.ts
Normal file
195
src/platform/nodeReplacement/useNodeReplacement.ts
Normal file
@@ -0,0 +1,195 @@
|
||||
import { clone } from 'es-toolkit/compat'
|
||||
|
||||
import { t } from '@/i18n'
|
||||
import { useToastStore } from '@/platform/updates/common/toastStore'
|
||||
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
||||
import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore'
|
||||
import { app } from '@/scripts/app'
|
||||
import type { MissingNodeType } from '@/types/comfy'
|
||||
|
||||
import { useNodeReplacementStore } from './nodeReplacementStore'
|
||||
|
||||
/**
|
||||
* Modify workflow data to replace missing node types with their replacements
|
||||
* @param graphData The workflow JSON data
|
||||
* @param replacements Map of old node type to new node type
|
||||
* @returns Modified workflow data with node types replaced
|
||||
*/
|
||||
function applyNodeReplacements(
|
||||
graphData: ComfyWorkflowJSON,
|
||||
replacements: Map<string, string>
|
||||
): ComfyWorkflowJSON {
|
||||
const modifiedData = clone(graphData)
|
||||
|
||||
// Helper function to process nodes array
|
||||
function processNodes(nodes: ComfyWorkflowJSON['nodes']) {
|
||||
if (!Array.isArray(nodes)) return
|
||||
|
||||
for (const node of nodes) {
|
||||
const replacement = replacements.get(node.type)
|
||||
if (replacement) {
|
||||
node.type = replacement
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process top-level nodes
|
||||
processNodes(modifiedData.nodes)
|
||||
|
||||
// Process nodes in subgraphs
|
||||
if (modifiedData.definitions?.subgraphs) {
|
||||
for (const subgraph of modifiedData.definitions.subgraphs) {
|
||||
if (subgraph && 'nodes' in subgraph) {
|
||||
processNodes(subgraph.nodes as ComfyWorkflowJSON['nodes'])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return modifiedData
|
||||
}
|
||||
|
||||
export function useNodeReplacement() {
|
||||
const nodeReplacementStore = useNodeReplacementStore()
|
||||
const workflowStore = useWorkflowStore()
|
||||
const toastStore = useToastStore()
|
||||
|
||||
/**
|
||||
* Build a map of replacements from missing node types
|
||||
*/
|
||||
function buildReplacementMap(
|
||||
missingNodeTypes: MissingNodeType[]
|
||||
): Map<string, string> {
|
||||
const replacements = new Map<string, string>()
|
||||
|
||||
for (const nodeType of missingNodeTypes) {
|
||||
if (typeof nodeType === 'object' && nodeType.isReplaceable) {
|
||||
const replacement = nodeType.replacement
|
||||
if (replacement) {
|
||||
replacements.set(nodeType.type, replacement.new_node_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return replacements
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace a single node type with its replacement
|
||||
* This reloads the entire workflow with the replacement applied
|
||||
* @param nodeType The type of the missing node to replace
|
||||
* @returns true if replacement was successful
|
||||
*/
|
||||
async function replaceNode(nodeType: string): Promise<boolean> {
|
||||
const replacement = nodeReplacementStore.getReplacementFor(nodeType)
|
||||
if (!replacement) {
|
||||
console.warn(`No replacement found for node type: ${nodeType}`)
|
||||
return false
|
||||
}
|
||||
|
||||
const activeWorkflow = workflowStore.activeWorkflow
|
||||
if (!activeWorkflow?.isLoaded) {
|
||||
console.error('No active workflow or workflow not loaded')
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
// Use current graph state, not originalContent, to preserve prior replacements
|
||||
const currentData =
|
||||
app.rootGraph.serialize() as unknown as ComfyWorkflowJSON
|
||||
|
||||
// Create replacement map for single node
|
||||
const replacements = new Map<string, string>()
|
||||
replacements.set(nodeType, replacement.new_node_id)
|
||||
|
||||
// Apply replacements
|
||||
const modifiedData = applyNodeReplacements(currentData, replacements)
|
||||
|
||||
// Reload the workflow with modified data
|
||||
await app.loadGraphData(modifiedData, true, false, activeWorkflow, {
|
||||
showMissingNodesDialog: true,
|
||||
showMissingModelsDialog: true
|
||||
})
|
||||
|
||||
toastStore.add({
|
||||
severity: 'success',
|
||||
summary: t('g.success'),
|
||||
detail: t('nodeReplacement.replacedNode', { nodeType }),
|
||||
life: 3000
|
||||
})
|
||||
|
||||
return true
|
||||
} catch (error) {
|
||||
console.error('Failed to replace node:', error)
|
||||
toastStore.add({
|
||||
severity: 'error',
|
||||
summary: t('g.error'),
|
||||
detail: t('nodeReplacement.replaceFailed'),
|
||||
life: 5000
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace all replaceable missing nodes
|
||||
* This reloads the entire workflow with all replacements applied
|
||||
* @param missingNodeTypes Array of missing node types (from dialog props)
|
||||
* @returns Number of node types that were replaced
|
||||
*/
|
||||
async function replaceAllNodes(
|
||||
missingNodeTypes: MissingNodeType[]
|
||||
): Promise<number> {
|
||||
const replacements = buildReplacementMap(missingNodeTypes)
|
||||
|
||||
if (replacements.size === 0) {
|
||||
console.warn('No replaceable nodes found')
|
||||
return 0
|
||||
}
|
||||
|
||||
const activeWorkflow = workflowStore.activeWorkflow
|
||||
if (!activeWorkflow?.isLoaded) {
|
||||
console.error('No active workflow or workflow not loaded')
|
||||
return 0
|
||||
}
|
||||
|
||||
try {
|
||||
// Use current graph state, not originalContent, to preserve any prior changes
|
||||
const currentData =
|
||||
app.rootGraph.serialize() as unknown as ComfyWorkflowJSON
|
||||
|
||||
// Apply all replacements
|
||||
const modifiedData = applyNodeReplacements(currentData, replacements)
|
||||
|
||||
// Reload the workflow with modified data
|
||||
await app.loadGraphData(modifiedData, true, false, activeWorkflow, {
|
||||
showMissingNodesDialog: true,
|
||||
showMissingModelsDialog: true
|
||||
})
|
||||
|
||||
toastStore.add({
|
||||
severity: 'success',
|
||||
summary: t('g.success'),
|
||||
detail: t('nodeReplacement.replacedAllNodes', {
|
||||
count: replacements.size
|
||||
}),
|
||||
life: 3000
|
||||
})
|
||||
|
||||
return replacements.size
|
||||
} catch (error) {
|
||||
console.error('Failed to replace nodes:', error)
|
||||
toastStore.add({
|
||||
severity: 'error',
|
||||
summary: t('g.error'),
|
||||
detail: t('nodeReplacement.replaceFailed'),
|
||||
life: 5000
|
||||
})
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
replaceNode,
|
||||
replaceAllNodes
|
||||
}
|
||||
}
|
||||
@@ -13,10 +13,10 @@
|
||||
{{ $t('secrets.provider') }}
|
||||
</label>
|
||||
<Select v-model="form.provider" :disabled="mode === 'edit'">
|
||||
<SelectTrigger id="secret-provider" class="w-full">
|
||||
<SelectTrigger id="secret-provider" class="w-full" autofocus>
|
||||
<SelectValue :placeholder="$t('g.none')" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent disable-portal>
|
||||
<SelectItem
|
||||
v-for="option in providerOptions"
|
||||
:key="option.value || 'none'"
|
||||
@@ -79,10 +79,15 @@
|
||||
</span>
|
||||
|
||||
<div class="flex justify-end gap-2 pt-2">
|
||||
<Button variant="secondary" type="button" @click="visible = false">
|
||||
<Button
|
||||
variant="secondary"
|
||||
type="button"
|
||||
tabindex="0"
|
||||
@click="visible = false"
|
||||
>
|
||||
{{ $t('g.cancel') }}
|
||||
</Button>
|
||||
<Button type="submit" :loading="loading">
|
||||
<Button type="submit" tabindex="0" :loading="loading">
|
||||
{{ $t('g.save') }}
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
@@ -275,7 +275,9 @@ const zExtra = z
|
||||
frontendVersion: z.string().optional(),
|
||||
linkExtensions: z.array(zComfyLinkExtension).optional(),
|
||||
reroutes: z.array(zReroute).optional(),
|
||||
workflowRendererVersion: zRendererType.optional()
|
||||
workflowRendererVersion: zRendererType.optional(),
|
||||
BlueprintDescription: z.string().optional(),
|
||||
BlueprintSearchAliases: z.array(z.string()).optional()
|
||||
})
|
||||
.passthrough()
|
||||
|
||||
@@ -395,6 +397,10 @@ interface SubgraphDefinitionBase<
|
||||
revision: number
|
||||
name: string
|
||||
category?: string
|
||||
/** Custom metadata for the subgraph (description, searchAliases, etc.) */
|
||||
extra?: T extends ComfyWorkflow1BaseInput
|
||||
? z.input<typeof zExtra> | null
|
||||
: z.output<typeof zExtra> | null
|
||||
|
||||
inputNode: T extends ComfyWorkflow1BaseInput
|
||||
? z.input<typeof zExportedSubgraphIONode>
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
import { WidgetInputBaseClass } from './layout'
|
||||
import WidgetLayoutField from './layout/WidgetLayoutField.vue'
|
||||
|
||||
const { n } = useI18n()
|
||||
const { locale } = useI18n()
|
||||
|
||||
const props = defineProps<{
|
||||
widget: SimplifiedWidget<number>
|
||||
@@ -30,8 +30,16 @@ onClickOutside(widgetContainer, () => {
|
||||
}
|
||||
})
|
||||
|
||||
const decimalSeparator = computed(() => n(1.1).replace(/\p{Number}/gu, ''))
|
||||
const groupSeparator = computed(() => n(11111).replace(/\p{Number}/gu, ''))
|
||||
function formatNumber(value: number, options?: Intl.NumberFormatOptions) {
|
||||
return new Intl.NumberFormat(locale.value, options).format(value)
|
||||
}
|
||||
|
||||
const decimalSeparator = computed(() =>
|
||||
formatNumber(1.1).replace(/\p{Number}/gu, '')
|
||||
)
|
||||
const groupSeparator = computed(() =>
|
||||
formatNumber(11111).replace(/\p{Number}/gu, '')
|
||||
)
|
||||
function unformatValue(value: string) {
|
||||
return value
|
||||
.replaceAll(groupSeparator.value, '')
|
||||
@@ -45,11 +53,14 @@ const formattedValue = computed(() => {
|
||||
if ((unformattedValue as unknown) === '' || !isFinite(unformattedValue))
|
||||
return `${unformattedValue}`
|
||||
|
||||
return n(unformattedValue, {
|
||||
useGrouping: useGrouping.value,
|
||||
minimumFractionDigits: precision.value,
|
||||
maximumFractionDigits: precision.value
|
||||
})
|
||||
const options: Intl.NumberFormatOptions = {
|
||||
useGrouping: useGrouping.value
|
||||
}
|
||||
if (precision.value !== undefined) {
|
||||
options.minimumFractionDigits = precision.value
|
||||
options.maximumFractionDigits = precision.value
|
||||
}
|
||||
return formatNumber(unformattedValue, options)
|
||||
})
|
||||
|
||||
function updateValue(e: UIEvent) {
|
||||
|
||||
@@ -234,6 +234,7 @@ export type GlobalSubgraphData = {
|
||||
info: {
|
||||
node_pack: string
|
||||
category?: string
|
||||
search_aliases?: string[]
|
||||
}
|
||||
data: string | Promise<string>
|
||||
}
|
||||
|
||||
@@ -1137,25 +1137,25 @@ export class ComfyApp {
|
||||
return
|
||||
}
|
||||
for (let n of nodes) {
|
||||
// Patch T2IAdapterLoader to ControlNetLoader since they are the same node now
|
||||
if (n.type == 'T2IAdapterLoader') n.type = 'ControlNetLoader'
|
||||
if (n.type == 'ConditioningAverage ') n.type = 'ConditioningAverage' //typo fix
|
||||
if (n.type == 'SDV_img2vid_Conditioning')
|
||||
n.type = 'SVD_img2vid_Conditioning' //typo fix
|
||||
if (n.type == 'Load3DAnimation') n.type = 'Load3D' // Animation node merged into Load3D
|
||||
if (n.type == 'Preview3DAnimation') n.type = 'Preview3D' // Animation node merged into Load3D
|
||||
|
||||
// Find missing node types
|
||||
if (!(n.type in LiteGraph.registered_node_types)) {
|
||||
// Include context about subgraph location if applicable
|
||||
if (path) {
|
||||
missingNodeTypes.push({
|
||||
type: n.type,
|
||||
hint: `in subgraph '${path}'`
|
||||
})
|
||||
} else {
|
||||
missingNodeTypes.push(n.type)
|
||||
}
|
||||
const nodeReplacementStore = useNodeReplacementStore()
|
||||
const replacement = nodeReplacementStore.getReplacementFor(n.type)
|
||||
|
||||
// TODO: Remove debug log
|
||||
console.log('[MissingNode]', n.type, {
|
||||
isReplaceable: replacement !== null,
|
||||
replacement,
|
||||
allReplacements: nodeReplacementStore.replacements
|
||||
})
|
||||
|
||||
missingNodeTypes.push({
|
||||
type: n.type,
|
||||
...(path && { hint: `in subgraph '${path}'` }),
|
||||
isReplaceable: replacement !== null,
|
||||
replacement: replacement ?? undefined
|
||||
})
|
||||
|
||||
n.type = sanitizeNodeName(n.type)
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import PromptDialogContent from '@/components/dialog/content/PromptDialogContent
|
||||
import { t } from '@/i18n'
|
||||
import { useTelemetry } from '@/platform/telemetry'
|
||||
import { isCloud } from '@/platform/distribution/types'
|
||||
import { useNodeReplacement } from '@/platform/nodeReplacement/useNodeReplacement'
|
||||
import { useSubscription } from '@/platform/cloud/subscription/composables/useSubscription'
|
||||
import { useDialogStore } from '@/stores/dialogStore'
|
||||
import type {
|
||||
@@ -14,6 +15,7 @@ import type {
|
||||
ShowDialogOptions
|
||||
} from '@/stores/dialogStore'
|
||||
|
||||
import type { MissingNodeType } from '@/types/comfy'
|
||||
import type { ConflictDetectionResult } from '@/workbench/extensions/manager/types/conflictDetectionTypes'
|
||||
import type { ComponentAttrs } from 'vue-component-type-helpers'
|
||||
|
||||
@@ -94,6 +96,17 @@ export const useDialogService = () => {
|
||||
lazyMissingNodesFooter()
|
||||
])
|
||||
|
||||
const { replaceNode, replaceAllNodes } = useNodeReplacement()
|
||||
|
||||
const handleReplace = async (nodeType: string) => {
|
||||
await replaceNode(nodeType)
|
||||
}
|
||||
|
||||
const handleReplaceAll = async () => {
|
||||
await replaceAllNodes(props.missingNodeTypes as MissingNodeType[])
|
||||
dialogStore.closeDialog({ key: 'global-missing-nodes' })
|
||||
}
|
||||
|
||||
dialogStore.showDialog({
|
||||
key: 'global-missing-nodes',
|
||||
headerComponent: MissingNodesHeader,
|
||||
@@ -113,7 +126,14 @@ export const useDialogService = () => {
|
||||
}
|
||||
}
|
||||
},
|
||||
props
|
||||
props: {
|
||||
...props,
|
||||
onReplace: handleReplace
|
||||
},
|
||||
footerProps: {
|
||||
missingNodeTypes: props.missingNodeTypes,
|
||||
onReplaceAll: handleReplaceAll
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,54 @@ const EXAMPLE_NODE_DEFS: ComfyNodeDefImpl[] = (
|
||||
return def
|
||||
})
|
||||
|
||||
const NODE_DEFS_WITH_SEARCH_ALIASES: ComfyNodeDefImpl[] = (
|
||||
[
|
||||
{
|
||||
input: { required: {} },
|
||||
output: ['MODEL'],
|
||||
output_is_list: [false],
|
||||
output_name: ['MODEL'],
|
||||
name: 'CheckpointLoaderSimple',
|
||||
display_name: 'Load Checkpoint',
|
||||
description: '',
|
||||
python_module: 'nodes',
|
||||
category: 'loaders',
|
||||
output_node: false,
|
||||
search_aliases: ['ckpt', 'model loader', 'checkpoint']
|
||||
},
|
||||
{
|
||||
input: { required: {} },
|
||||
output: ['IMAGE'],
|
||||
output_is_list: [false],
|
||||
output_name: ['IMAGE'],
|
||||
name: 'LoadImage',
|
||||
display_name: 'Load Image',
|
||||
description: '',
|
||||
python_module: 'nodes',
|
||||
category: 'loaders',
|
||||
output_node: false,
|
||||
search_aliases: ['img', 'picture']
|
||||
},
|
||||
{
|
||||
input: { required: {} },
|
||||
output: ['LATENT'],
|
||||
output_is_list: [false],
|
||||
output_name: ['LATENT'],
|
||||
name: 'VAEEncode',
|
||||
display_name: 'VAE Encode',
|
||||
description: '',
|
||||
python_module: 'nodes',
|
||||
category: 'latent',
|
||||
output_node: false
|
||||
// No search_aliases
|
||||
}
|
||||
] as ComfyNodeDef[]
|
||||
).map((nodeDef: ComfyNodeDef) => {
|
||||
const def = new ComfyNodeDefImpl(nodeDef)
|
||||
def['postProcessSearchScores'] = (s) => s
|
||||
return def
|
||||
})
|
||||
|
||||
describe('nodeSearchService', () => {
|
||||
it('searches with input filter', () => {
|
||||
const service = new NodeSearchService(EXAMPLE_NODE_DEFS)
|
||||
@@ -74,4 +122,52 @@ describe('nodeSearchService', () => {
|
||||
).toHaveLength(2)
|
||||
expect(service.searchNode('L')).toHaveLength(2)
|
||||
})
|
||||
|
||||
describe('search_aliases', () => {
|
||||
it('finds nodes by search_aliases', () => {
|
||||
const service = new NodeSearchService(NODE_DEFS_WITH_SEARCH_ALIASES)
|
||||
// Search by alias
|
||||
const ckptResults = service.searchNode('ckpt')
|
||||
expect(ckptResults).toHaveLength(1)
|
||||
expect(ckptResults[0].name).toBe('CheckpointLoaderSimple')
|
||||
})
|
||||
|
||||
it('finds nodes by partial alias match', () => {
|
||||
const service = new NodeSearchService(NODE_DEFS_WITH_SEARCH_ALIASES)
|
||||
// Search by partial alias "model" should match "model loader" alias
|
||||
const modelResults = service.searchNode('model')
|
||||
expect(modelResults.length).toBeGreaterThanOrEqual(1)
|
||||
expect(
|
||||
modelResults.some((r) => r.name === 'CheckpointLoaderSimple')
|
||||
).toBe(true)
|
||||
})
|
||||
|
||||
it('finds nodes by display_name when no alias matches', () => {
|
||||
const service = new NodeSearchService(NODE_DEFS_WITH_SEARCH_ALIASES)
|
||||
// "VAE" should match by display_name since there are no aliases
|
||||
const vaeResults = service.searchNode('VAE')
|
||||
expect(vaeResults).toHaveLength(1)
|
||||
expect(vaeResults[0].name).toBe('VAEEncode')
|
||||
})
|
||||
|
||||
it('finds nodes by both alias and display_name', () => {
|
||||
const service = new NodeSearchService(NODE_DEFS_WITH_SEARCH_ALIASES)
|
||||
// "img" should match LoadImage by alias
|
||||
const imgResults = service.searchNode('img')
|
||||
expect(imgResults).toHaveLength(1)
|
||||
expect(imgResults[0].name).toBe('LoadImage')
|
||||
|
||||
// "Load" should match both checkpoint and image loaders by display_name
|
||||
const loadResults = service.searchNode('Load')
|
||||
expect(loadResults.length).toBeGreaterThanOrEqual(2)
|
||||
})
|
||||
|
||||
it('handles nodes without search_aliases', () => {
|
||||
const service = new NodeSearchService(NODE_DEFS_WITH_SEARCH_ALIASES)
|
||||
// Ensure nodes without aliases are still searchable by name/display_name
|
||||
const encodeResults = service.searchNode('Encode')
|
||||
expect(encodeResults).toHaveLength(1)
|
||||
expect(encodeResults[0].name).toBe('VAEEncode')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -77,6 +77,11 @@ export class ComfyNodeDefImpl
|
||||
* and input connectivity.
|
||||
*/
|
||||
readonly price_badge?: PriceBadge
|
||||
/**
|
||||
* Alternative names for search. Useful for synonyms, abbreviations,
|
||||
* or old names after renaming a node.
|
||||
*/
|
||||
readonly search_aliases?: string[]
|
||||
|
||||
// V2 fields
|
||||
readonly inputs: Record<string, InputSpecV2>
|
||||
|
||||
@@ -167,4 +167,142 @@ describe('useSubgraphStore', () => {
|
||||
await mockFetch({ 'test.json': mockGraph })
|
||||
expect(store.isGlobalBlueprint('nonexistent')).toBe(false)
|
||||
})
|
||||
|
||||
describe('search_aliases support', () => {
|
||||
it('should include search_aliases from workflow extra', async () => {
|
||||
const mockGraphWithAliases = {
|
||||
nodes: [{ type: '123' }],
|
||||
definitions: {
|
||||
subgraphs: [{ id: '123' }]
|
||||
},
|
||||
extra: {
|
||||
BlueprintSearchAliases: ['alias1', 'alias2', 'my workflow']
|
||||
}
|
||||
}
|
||||
await mockFetch({ 'test-with-aliases.json': mockGraphWithAliases })
|
||||
|
||||
const nodeDef = useNodeDefStore().nodeDefs.find(
|
||||
(d) => d.name === 'SubgraphBlueprint.test-with-aliases'
|
||||
)
|
||||
expect(nodeDef).toBeDefined()
|
||||
expect(nodeDef?.search_aliases).toEqual([
|
||||
'alias1',
|
||||
'alias2',
|
||||
'my workflow'
|
||||
])
|
||||
})
|
||||
|
||||
it('should include search_aliases from global blueprint info', async () => {
|
||||
await mockFetch(
|
||||
{},
|
||||
{
|
||||
global_with_aliases: {
|
||||
name: 'Global With Aliases',
|
||||
info: {
|
||||
node_pack: 'comfy_essentials',
|
||||
search_aliases: ['global alias', 'test alias']
|
||||
},
|
||||
data: JSON.stringify(mockGraph)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const nodeDef = useNodeDefStore().nodeDefs.find(
|
||||
(d) => d.name === 'SubgraphBlueprint.global_with_aliases'
|
||||
)
|
||||
expect(nodeDef).toBeDefined()
|
||||
expect(nodeDef?.search_aliases).toEqual(['global alias', 'test alias'])
|
||||
})
|
||||
|
||||
it('should not have search_aliases if not provided', async () => {
|
||||
await mockFetch({ 'test.json': mockGraph })
|
||||
|
||||
const nodeDef = useNodeDefStore().nodeDefs.find(
|
||||
(d) => d.name === 'SubgraphBlueprint.test'
|
||||
)
|
||||
expect(nodeDef).toBeDefined()
|
||||
expect(nodeDef?.search_aliases).toBeUndefined()
|
||||
})
|
||||
|
||||
it('should include description from workflow extra', async () => {
|
||||
const mockGraphWithDescription = {
|
||||
nodes: [{ type: '123' }],
|
||||
definitions: {
|
||||
subgraphs: [{ id: '123' }]
|
||||
},
|
||||
extra: {
|
||||
BlueprintDescription: 'This is a test blueprint'
|
||||
}
|
||||
}
|
||||
await mockFetch({
|
||||
'test-with-description.json': mockGraphWithDescription
|
||||
})
|
||||
|
||||
const nodeDef = useNodeDefStore().nodeDefs.find(
|
||||
(d) => d.name === 'SubgraphBlueprint.test-with-description'
|
||||
)
|
||||
expect(nodeDef).toBeDefined()
|
||||
expect(nodeDef?.description).toBe('This is a test blueprint')
|
||||
})
|
||||
|
||||
it('should not duplicate metadata in both workflow extra and subgraph extra when publishing', async () => {
|
||||
const subgraph = createTestSubgraph()
|
||||
const subgraphNode = createTestSubgraphNode(subgraph)
|
||||
const graph = subgraphNode.graph!
|
||||
graph.add(subgraphNode)
|
||||
|
||||
// Set metadata on the subgraph's extra (as the commands do)
|
||||
subgraph.extra = {
|
||||
BlueprintDescription: 'Test description',
|
||||
BlueprintSearchAliases: ['alias1', 'alias2']
|
||||
}
|
||||
|
||||
vi.mocked(comfyApp.canvas).selectedItems = new Set([subgraphNode])
|
||||
vi.mocked(comfyApp.canvas)._serializeItems = vi.fn(() => {
|
||||
const serializedSubgraph = {
|
||||
...subgraph.serialize(),
|
||||
links: [],
|
||||
groups: [],
|
||||
version: 1
|
||||
} as Partial<ExportedSubgraph> as ExportedSubgraph
|
||||
return {
|
||||
nodes: [subgraphNode.serialize()],
|
||||
subgraphs: [serializedSubgraph]
|
||||
}
|
||||
})
|
||||
|
||||
let savedWorkflowData: Record<string, unknown> | null = null
|
||||
vi.mocked(api.storeUserData).mockImplementation(async (_path, data) => {
|
||||
savedWorkflowData = JSON.parse(data as string)
|
||||
return {
|
||||
status: 200,
|
||||
json: () =>
|
||||
Promise.resolve({
|
||||
path: 'subgraphs/testname.json',
|
||||
modified: Date.now(),
|
||||
size: 2
|
||||
})
|
||||
} as Response
|
||||
})
|
||||
|
||||
await mockFetch({ 'testname.json': mockGraph })
|
||||
await store.publishSubgraph()
|
||||
|
||||
expect(savedWorkflowData).not.toBeNull()
|
||||
|
||||
// Metadata should be in top-level extra
|
||||
expect(savedWorkflowData!.extra).toEqual({
|
||||
BlueprintDescription: 'Test description',
|
||||
BlueprintSearchAliases: ['alias1', 'alias2']
|
||||
})
|
||||
|
||||
// Metadata should NOT be in subgraph's extra
|
||||
const definitions = savedWorkflowData!.definitions as {
|
||||
subgraphs: Array<{ extra?: Record<string, unknown> }>
|
||||
}
|
||||
const subgraphExtra = definitions.subgraphs[0]?.extra
|
||||
expect(subgraphExtra?.BlueprintDescription).toBeUndefined()
|
||||
expect(subgraphExtra?.BlueprintSearchAliases).toBeUndefined()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -95,18 +95,46 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
if (!(await confirmOverwrite(this.filename))) return this
|
||||
this.hasPromptedSave = true
|
||||
}
|
||||
// Extract metadata from subgraph.extra to workflow.extra before saving
|
||||
this.extractMetadataToWorkflowExtra()
|
||||
const ret = await super.save()
|
||||
registerNodeDef(await this.load(), {
|
||||
// Force reload to update initialState with saved metadata
|
||||
registerNodeDef(await this.load({ force: true }), {
|
||||
category: 'Subgraph Blueprints/User'
|
||||
})
|
||||
return ret
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves all properties (except workflowRendererVersion) from subgraph.extra
|
||||
* to workflow.extra, then removes from subgraph.extra to avoid duplication.
|
||||
*/
|
||||
private extractMetadataToWorkflowExtra(): void {
|
||||
if (!this.activeState) return
|
||||
const subgraph = this.activeState.definitions?.subgraphs?.[0]
|
||||
if (!subgraph?.extra) return
|
||||
|
||||
const sgExtra = subgraph.extra as Record<string, unknown>
|
||||
const workflowExtra = (this.activeState.extra ??= {}) as Record<
|
||||
string,
|
||||
unknown
|
||||
>
|
||||
|
||||
for (const key of Object.keys(sgExtra)) {
|
||||
if (key === 'workflowRendererVersion') continue
|
||||
workflowExtra[key] = sgExtra[key]
|
||||
delete sgExtra[key]
|
||||
}
|
||||
}
|
||||
|
||||
override async saveAs(path: string) {
|
||||
this.validateSubgraph()
|
||||
this.hasPromptedSave = true
|
||||
// Extract metadata from subgraph.extra to workflow.extra before saving
|
||||
this.extractMetadataToWorkflowExtra()
|
||||
const ret = await super.saveAs(path)
|
||||
registerNodeDef(await this.load(), {
|
||||
// Force reload to update initialState with saved metadata
|
||||
registerNodeDef(await this.load({ force: true }), {
|
||||
category: 'Subgraph Blueprints/User'
|
||||
})
|
||||
return ret
|
||||
@@ -125,6 +153,17 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
'Loaded subgraph blueprint does not contain valid subgraph'
|
||||
)
|
||||
sg.name = st.nodes[0].title = this.filename
|
||||
|
||||
// Copy blueprint metadata from workflow extra to subgraph extra
|
||||
// so it's available when editing via canvas.subgraph.extra
|
||||
if (st.extra) {
|
||||
const sgExtra = (sg.extra ??= {}) as Record<string, unknown>
|
||||
for (const [key, value] of Object.entries(st.extra)) {
|
||||
if (key === 'workflowRendererVersion') continue
|
||||
sgExtra[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
return loaded
|
||||
}
|
||||
override async promptSave(): Promise<string | null> {
|
||||
@@ -177,7 +216,8 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
{
|
||||
python_module: v.info.node_pack,
|
||||
display_name: v.name,
|
||||
category
|
||||
category,
|
||||
search_aliases: v.info.search_aliases
|
||||
},
|
||||
k
|
||||
)
|
||||
@@ -223,9 +263,10 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
[`${i.type}`, undefined] satisfies InputSpec
|
||||
])
|
||||
)
|
||||
let description = 'User generated subgraph blueprint'
|
||||
if (workflow.initialState.extra?.BlueprintDescription)
|
||||
description = `${workflow.initialState.extra.BlueprintDescription}`
|
||||
const workflowExtra = workflow.initialState.extra
|
||||
const description =
|
||||
workflowExtra?.BlueprintDescription ?? 'User generated subgraph blueprint'
|
||||
const search_aliases = workflowExtra?.BlueprintSearchAliases
|
||||
const nodedefv1: ComfyNodeDefV1 = {
|
||||
input: { required: inputs },
|
||||
output: subgraphNode.outputs.map((o) => `${o.type}`),
|
||||
@@ -236,13 +277,14 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
category: 'Subgraph Blueprints',
|
||||
output_node: false,
|
||||
python_module: 'blueprint',
|
||||
search_aliases,
|
||||
...overrides
|
||||
}
|
||||
const nodeDefImpl = new ComfyNodeDefImpl(nodedefv1)
|
||||
subgraphDefCache.value.set(name, nodeDefImpl)
|
||||
subgraphCache[name] = workflow
|
||||
}
|
||||
async function publishSubgraph() {
|
||||
async function publishSubgraph(providedName?: string) {
|
||||
const canvas = canvasStore.getCanvas()
|
||||
const subgraphNode = [...canvas.selectedItems][0]
|
||||
if (
|
||||
@@ -257,22 +299,25 @@ export const useSubgraphStore = defineStore('subgraph', () => {
|
||||
if (nodes.length != 1) {
|
||||
throw new TypeError('Must have single SubgraphNode selected to publish')
|
||||
}
|
||||
|
||||
//create minimal workflow
|
||||
const workflowData = {
|
||||
revision: 0,
|
||||
last_node_id: subgraphNode.id,
|
||||
last_link_id: 0,
|
||||
nodes,
|
||||
links: [],
|
||||
links: [] as never[],
|
||||
version: 0.4,
|
||||
definitions: { subgraphs }
|
||||
}
|
||||
//prompt name
|
||||
const name = await useDialogService().prompt({
|
||||
title: t('subgraphStore.saveBlueprint'),
|
||||
message: t('subgraphStore.blueprintNamePrompt'),
|
||||
defaultValue: subgraphNode.title
|
||||
})
|
||||
const name =
|
||||
providedName ??
|
||||
(await useDialogService().prompt({
|
||||
title: t('subgraphStore.saveBlueprint'),
|
||||
message: t('subgraphStore.blueprintNamePrompt'),
|
||||
defaultValue: subgraphNode.title
|
||||
}))
|
||||
if (!name) return
|
||||
if (subgraphDefCache.value.has(name) && !(await confirmOverwrite(name)))
|
||||
//User has chosen not to overwrite.
|
||||
|
||||
@@ -3,6 +3,7 @@ import type {
|
||||
Positionable
|
||||
} from '@/lib/litegraph/src/interfaces'
|
||||
import type { LGraphCanvas, LGraphNode } from '@/lib/litegraph/src/litegraph'
|
||||
import type { NodeReplacement } from '@/platform/nodeReplacement/types'
|
||||
import type { SettingParams } from '@/platform/settings/types'
|
||||
import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema'
|
||||
import type { Keybinding } from '@/platform/keybindings/types'
|
||||
@@ -93,6 +94,8 @@ export type MissingNodeType =
|
||||
text: string
|
||||
callback: () => void
|
||||
}
|
||||
isReplaceable?: boolean
|
||||
replacement?: NodeReplacement
|
||||
}
|
||||
|
||||
export interface ComfyExtension {
|
||||
|
||||
Reference in New Issue
Block a user