From 3772623297ad315635cea98f1e15845b79fd30ca Mon Sep 17 00:00:00 2001 From: Maanil Verma Date: Fri, 17 Jul 2026 17:22:03 +0530 Subject: [PATCH] test(onboarding): drop vendored template fixtures from resolver unit test The 5 committed template JSONs (~340KB) were hand-vendored copies of upstream Comfy-Org/workflow_templates consumed only by roleResolver.test.ts. They drift silently from what the backend serves and bloat the repo, while production fetches templates live. Delete the JSONs, their fs-based loader, and the linguist-generated entries. Prune roleResolver.test.ts to its fixture-free coverage: the synthetic-graph logic and security tests (prompt selection, subgraph traversal, prototype- pollution guards, malformed-link resilience, registry sink fallback) stay as fast offline unit tests; the three cases that read a fixture are rebuilt on synthetic graphs. The curated-template pins move to an e2e that verifies the resolver against the live templates (next commit). --- .gitattributes | 3 - .../__fixtures__/loadTemplateWorkflow.ts | 27 - .../templates/flux_kontext_dev_basic.json | 1378 ----- .../templates/image_krea2_turbo_t2i.json | 2066 ------- .../templates/image_z_image_turbo.json | 1064 ---- .../templates/video_ltx2_3_i2v.json | 5061 ----------------- .../templates/video_wan2_2_14B_i2v.json | 3154 ---------- .../firstRunTour/roleResolver.test.ts | 230 +- 8 files changed, 92 insertions(+), 12891 deletions(-) delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/loadTemplateWorkflow.ts delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/templates/flux_kontext_dev_basic.json delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/templates/image_krea2_turbo_t2i.json delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/templates/image_z_image_turbo.json delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/templates/video_ltx2_3_i2v.json delete mode 100644 src/renderer/extensions/firstRunTour/__fixtures__/templates/video_wan2_2_14B_i2v.json diff --git a/.gitattributes b/.gitattributes index 1735223efc..722d05e446 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,6 +6,3 @@ packages/registry-types/src/comfyRegistryTypes.ts linguist-generated=true packages/ingest-types/src/types.gen.ts linguist-generated=true packages/ingest-types/src/zod.gen.ts linguist-generated=true src/workbench/extensions/manager/types/generatedManagerTypes.ts linguist-generated=true - -# Vendored upstream workflow templates used as resolver test fixtures -src/renderer/extensions/firstRunTour/__fixtures__/templates/*.json linguist-generated=true diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/loadTemplateWorkflow.ts b/src/renderer/extensions/firstRunTour/__fixtures__/loadTemplateWorkflow.ts deleted file mode 100644 index 11b1eff054..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/loadTemplateWorkflow.ts +++ /dev/null @@ -1,27 +0,0 @@ -import fs from 'node:fs' -import path from 'node:path' - -import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' -import { - zComfyWorkflow, - zComfyWorkflow1 -} from '@/platform/workflow/validation/schemas/workflowSchema' - -import type { CuratedTemplateId } from '../roleResolver' - -const TEMPLATES_DIR = path.join(import.meta.dirname, 'templates') - -/** Loads a curated template's real workflow, validated so a bad fixture fails loudly. */ -export function loadTemplateWorkflow(id: CuratedTemplateId): ComfyWorkflowJSON { - const file = path.join(TEMPLATES_DIR, `${id}.json`) - const data: unknown = JSON.parse(fs.readFileSync(file, 'utf-8')) - const schema = - (data as { version?: number }).version === 1 - ? zComfyWorkflow1 - : zComfyWorkflow - const result = schema.safeParse(data) - if (!result.success) { - throw new Error(`Invalid template fixture "${id}": ${result.error.message}`) - } - return result.data -} diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/templates/flux_kontext_dev_basic.json b/src/renderer/extensions/firstRunTour/__fixtures__/templates/flux_kontext_dev_basic.json deleted file mode 100644 index e7c35dd074..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/templates/flux_kontext_dev_basic.json +++ /dev/null @@ -1,1378 +0,0 @@ -{ - "id": "7cbcec68-7fa6-47bb-a38a-da689949a001", - "revision": 0, - "last_node_id": 192, - "last_link_id": 305, - "nodes": [ - { - "id": 184, - "type": "MarkdownNote", - "pos": [ - -959.9999638913625, - 39.99998792240308 - ], - "size": [ - 510, - 600 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model links", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "[tutorial](https://docs.comfy.org/tutorials/flux/flux-1-kontext-dev)\n\n**diffusion model**\n\n- [flux1-dev-kontext_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors)\n\n**vae**\n\n- [ae.safetensors](https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/blob/main/split_files/vae/ae.safetensors)\n\n**text encoder**\n\n- [clip_l.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/blob/main/clip_l.safetensors)\n- [t5xxl_fp16.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors) or [t5xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors)\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ └── flux1-dev-kontext_fp8_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── ae.safetensor\n│ └── šŸ“‚ text_encoders/\n│ ā”œā”€ā”€ clip_l.safetensors\n│ └── t5xxl_fp16.safetensors ꈖ者 t5xxl_fp8_e4m3fn_scaled.safetensors\n```\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 186, - "type": "MarkdownNote", - "pos": [ - -959.9999638913625, - 749.9999752850742 - ], - "size": [ - 510, - 1940 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Flux Kontext Prompt Techniques", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "\n## Flux Kontext Prompt Techniques\n\n### 1. Basic Modifications\n- Simple and direct: `\"Change the car color to red\"`\n- Maintain style: `\"Change to daytime while maintaining the same style of the painting\"`\n\n### 2. Style Transfer\n**Principles:**\n- Clearly name style: `\"Transform to Bauhaus art style\"`\n- Describe characteristics: `\"Transform to oil painting with visible brushstrokes, thick paint texture\"`\n- Preserve composition: `\"Change to Bauhaus style while maintaining the original composition\"`\n\n### 3. Character Consistency\n**Framework:**\n- Specific description: `\"The woman with short black hair\"` instead of \"she\"\n- Preserve features: `\"while maintaining the same facial features, hairstyle, and expression\"`\n- Step-by-step modifications: Change background first, then actions\n\n### 4. Text Editing\n- Use quotes: `\"Replace 'joy' with 'BFL'\"`\n- Maintain format: `\"Replace text while maintaining the same font style\"`\n\n## Common Problem Solutions\n\n### Character Changes Too Much\nāŒ Wrong: `\"Transform the person into a Viking\"`\nāœ… Correct: `\"Change the clothes to be a viking warrior while preserving facial features\"`\n\n### Composition Position Changes\nāŒ Wrong: `\"Put him on a beach\"`\nāœ… Correct: `\"Change the background to a beach while keeping the person in the exact same position, scale, and pose\"`\n\n### Style Application Inaccuracy\nāŒ Wrong: `\"Make it a sketch\"`\nāœ… Correct: `\"Convert to pencil sketch with natural graphite lines, cross-hatching, and visible paper texture\"`\n\n## Core Principles\n\n1. **Be Specific and Clear** - Use precise descriptions, avoid vague terms\n2. **Step-by-step Editing** - Break complex modifications into multiple simple steps\n3. **Explicit Preservation** - State what should remain unchanged\n4. **Verb Selection** - Use \"change\", \"replace\" rather than \"transform\"\n\n## Best Practice Templates\n\n**Object Modification:**\n`\"Change [object] to [new state], keep [content to preserve] unchanged\"`\n\n**Style Transfer:**\n`\"Transform to [specific style], while maintaining [composition/character/other] unchanged\"`\n\n**Background Replacement:**\n`\"Change the background to [new background], keep the subject in the exact same position and pose\"`\n\n**Text Editing:**\n`\"Replace '[original text]' with '[new text]', maintain the same font style\"`\n\n> **Remember:** The more specific, the better. Kontext excels at understanding detailed instructions and maintaining consistency. " - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 136, - "type": "SaveImage", - "pos": [ - 429.9999012392533, - 49.99999466678776 - ], - "size": [ - 640, - 620 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 301 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.39", - "Node name for S&R": "SaveImage", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "flux.1_kontext_dev" - ] - }, - { - "id": 190, - "type": "LoadImage", - "pos": [ - -380.0000195249073, - 49.99999466678787 - ], - "size": [ - 280, - 370 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 299 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "flux_kontext_dev_basic_input_image.jpg", - "image" - ] - }, - { - "id": 191, - "type": "LoadImage", - "pos": [ - -380.0000195249073, - 479.9999719098299 - ], - "size": [ - 280, - 370 - ], - "flags": {}, - "order": 3, - "mode": 4, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 300 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "Node name for S&R": "LoadImage", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "flux_kontext_dev_basic_input_image.jpg", - "image" - ] - }, - { - "id": 192, - "type": "654c828f-2572-47e8-ba85-8a832c89b30c", - "pos": [ - -20.000044811772227, - 49.9999723263947 - ], - "size": [ - 400, - 585.328125 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "image1", - "type": "IMAGE", - "link": 299 - }, - { - "name": "image2", - "type": "IMAGE", - "link": 300 - }, - { - "label": "prompt", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 301 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "6", - "text" - ], - [ - "37", - "unet_name" - ], - [ - "38", - "clip_name1" - ], - [ - "38", - "clip_name2" - ], - [ - "39", - "vae_name" - ], - [ - "31", - "seed" - ], - [ - "31", - "control_after_generate" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.18.1", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - } - ], - "links": [ - [ - 299, - 190, - 0, - 192, - 0, - "IMAGE" - ], - [ - 300, - 191, - 0, - 192, - 1, - "IMAGE" - ], - [ - 301, - 192, - 0, - 136, - 0, - "IMAGE" - ] - ], - "groups": [], - "definitions": { - "subgraphs": [ - { - "id": "654c828f-2572-47e8-ba85-8a832c89b30c", - "version": 1, - "state": { - "lastGroupId": 6, - "lastNodeId": 192, - "lastLinkId": 305, - "lastRerouteId": 0 - }, - "revision": 0, - "config": {}, - "name": "Image Edit (Flux.1 Kontext Dev)", - "inputNode": { - "id": -10, - "bounding": [ - -180, - 410, - 120, - 180 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 2570, - 160, - 120, - 60 - ] - }, - "inputs": [ - { - "id": "2ecac158-b1ad-405b-a7d1-819093266237", - "name": "image1", - "type": "IMAGE", - "linkIds": [ - 297 - ], - "localized_name": "image1", - "pos": [ - -80, - 430 - ] - }, - { - "id": "9ae2e5aa-011a-487b-a7fb-d1783c3e5e3d", - "name": "image2", - "type": "IMAGE", - "linkIds": [ - 298 - ], - "localized_name": "image2", - "shape": 7, - "pos": [ - -80, - 450 - ] - }, - { - "id": "3ec56922-7974-45cb-86b8-a59245486b0b", - "name": "text", - "type": "STRING", - "linkIds": [ - 300 - ], - "label": "prompt", - "pos": [ - -80, - 470 - ] - }, - { - "id": "5a88c7a1-edfa-429f-97fc-dd18d72295fe", - "name": "unet_name", - "type": "COMBO", - "linkIds": [ - 302 - ], - "pos": [ - -80, - 490 - ] - }, - { - "id": "171f122f-505b-4a59-a9f7-a7bc32d720a7", - "name": "clip_name1", - "type": "COMBO", - "linkIds": [ - 303 - ], - "pos": [ - -80, - 510 - ] - }, - { - "id": "b7129abf-a9dd-45a5-baee-cd14f3757c71", - "name": "clip_name2", - "type": "COMBO", - "linkIds": [ - 304 - ], - "pos": [ - -80, - 530 - ] - }, - { - "id": "0074f62a-1ea9-4f4b-b12d-8219d2e91cd0", - "name": "vae_name", - "type": "COMBO", - "linkIds": [ - 305 - ], - "pos": [ - -80, - 550 - ] - } - ], - "outputs": [ - { - "id": "e940d353-8345-44cd-a2f1-676648b44d71", - "name": "IMAGE", - "type": "IMAGE", - "linkIds": [ - 240 - ], - "localized_name": "IMAGE", - "pos": [ - 2590, - 180 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 39, - "type": "VAELoader", - "pos": [ - 370, - 590 - ], - "size": [ - 340, - 110 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "vae_name", - "name": "vae_name", - "type": "COMBO", - "widget": { - "name": "vae_name" - }, - "link": 305 - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 61, - 223 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoader", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "models": [ - { - "name": "ae.safetensors", - "url": "https://huggingface.co/Comfy-Org/Lumina_Image_2.0_Repackaged/resolve/main/split_files/vae/ae.safetensors", - "directory": "vae" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "ae.safetensors" - ] - }, - { - "id": 38, - "type": "DualCLIPLoader", - "pos": [ - 370, - 320 - ], - "size": [ - 340, - 180 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name1", - "name": "clip_name1", - "type": "COMBO", - "widget": { - "name": "clip_name1" - }, - "link": 303 - }, - { - "localized_name": "clip_name2", - "name": "clip_name2", - "type": "COMBO", - "widget": { - "name": "clip_name2" - }, - "link": 304 - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [ - 59 - ] - } - ], - "properties": { - "Node name for S&R": "DualCLIPLoader", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "models": [ - { - "name": "clip_l.safetensors", - "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors", - "directory": "text_encoders" - }, - { - "name": "t5xxl_fp8_e4m3fn_scaled.safetensors", - "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors", - "directory": "text_encoders" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "clip_l.safetensors", - "t5xxl_fp8_e4m3fn_scaled.safetensors", - "flux", - "default" - ] - }, - { - "id": 135, - "type": "ConditioningZeroOut", - "pos": [ - 1080, - 610 - ], - "size": [ - 240, - 80 - ], - "flags": { - "collapsed": false - }, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "conditioning", - "name": "conditioning", - "type": "CONDITIONING", - "link": 237 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 238 - ] - } - ], - "properties": { - "Node name for S&R": "ConditioningZeroOut", - "cnr_id": "comfy-core", - "ver": "0.3.39", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 2070, - 160 - ], - "size": [ - 230, - 100 - ], - "flags": { - "collapsed": false - }, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 52 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 61 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 240 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 124, - "type": "VAEEncode", - "pos": [ - 1070, - 800 - ], - "size": [ - 240, - 100 - ], - "flags": { - "collapsed": true - }, - "order": 9, - "mode": 0, - "inputs": [ - { - "localized_name": "pixels", - "name": "pixels", - "type": "IMAGE", - "link": 222 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 223 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 291, - 293 - ] - } - ], - "properties": { - "Node name for S&R": "VAEEncode", - "cnr_id": "comfy-core", - "ver": "0.3.39", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 35, - "type": "FluxGuidance", - "pos": [ - 1420, - 300 - ], - "size": [ - 240, - 110 - ], - "flags": { - "collapsed": false - }, - "order": 4, - "mode": 0, - "inputs": [ - { - "localized_name": "conditioning", - "name": "conditioning", - "type": "CONDITIONING", - "link": 292 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 57 - ] - } - ], - "properties": { - "Node name for S&R": "FluxGuidance", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 2.5 - ] - }, - { - "id": 37, - "type": "UNETLoader", - "pos": [ - 370, - 110 - ], - "size": [ - 340, - 110 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "localized_name": "unet_name", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": 302 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 58 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoader", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "models": [ - { - "name": "flux1-dev-kontext_fp8_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/flux1-kontext-dev_ComfyUI/resolve/main/split_files/diffusion_models/flux1-dev-kontext_fp8_scaled.safetensors", - "directory": "diffusion_models" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "flux1-dev-kontext_fp8_scaled.safetensors", - "default" - ] - }, - { - "id": 177, - "type": "ReferenceLatent", - "pos": [ - 1420, - 160 - ], - "size": [ - 240, - 100 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "conditioning", - "name": "conditioning", - "type": "CONDITIONING", - "link": 294 - }, - { - "localized_name": "latent", - "name": "latent", - "shape": 7, - "type": "LATENT", - "link": 293 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 292 - ] - } - ], - "properties": { - "Node name for S&R": "ReferenceLatent", - "cnr_id": "comfy-core", - "ver": "0.3.41", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 146, - "type": "ImageStitch", - "pos": [ - 360, - 770 - ], - "size": [ - 270, - 160 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "localized_name": "image1", - "name": "image1", - "type": "IMAGE", - "link": 297 - }, - { - "localized_name": "image2", - "name": "image2", - "shape": 7, - "type": "IMAGE", - "link": 298 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 251 - ] - } - ], - "properties": { - "Node name for S&R": "ImageStitch", - "cnr_id": "comfy-core", - "ver": "0.3.40", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "right", - true, - 0, - "white" - ] - }, - { - "id": 42, - "type": "FluxKontextImageScale", - "pos": [ - 750, - 800 - ], - "size": [ - 270, - 80 - ], - "flags": { - "collapsed": true - }, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 251 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 222 - ] - } - ], - "properties": { - "Node name for S&R": "FluxKontextImageScale", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 178, - "type": "MarkdownNote", - "pos": [ - 1350, - -210 - ], - "size": [ - 330, - 260 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "About multiple images reference", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "[English] In addition to using **Image Stitch** to combine two images at a time, you can also encode individual images, then concatenate multiple latent conditions using the **ReferenceLatent** node, thus achieving the purpose of referencing multiple images. You can use the **EmptySD3LatentImage** node on the right to connect to **KSamper** and customize the size of the **latent_image**." - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 31, - "type": "KSampler", - "pos": [ - 1700, - 160 - ], - "size": [ - 330, - 560 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 58 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 57 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 238 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 291 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 52 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 169405236028824, - "randomize", - 20, - 1, - "euler", - "simple", - 1 - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 780, - 120 - ], - "size": [ - 520, - 440 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 59 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": 300 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 237, - 294 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.38", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "Using this elegant style, create a portrait of a swan wearing a pearl tiara and lace collar, maintaining the same refined quality and soft color tones." - ], - "color": "#232", - "bgcolor": "#353" - } - ], - "groups": [ - { - "id": 1, - "title": "Step 1- Load models", - "bounding": [ - 360, - 40, - 370, - 690 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 5, - "title": "Step 3 - Prompt", - "bounding": [ - 760, - 40, - 570, - 690 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], - "links": [ - { - "id": 237, - "origin_id": 6, - "origin_slot": 0, - "target_id": 135, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 52, - "origin_id": 31, - "origin_slot": 0, - "target_id": 8, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 61, - "origin_id": 39, - "origin_slot": 0, - "target_id": 8, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 222, - "origin_id": 42, - "origin_slot": 0, - "target_id": 124, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 223, - "origin_id": 39, - "origin_slot": 0, - "target_id": 124, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 292, - "origin_id": 177, - "origin_slot": 0, - "target_id": 35, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 294, - "origin_id": 6, - "origin_slot": 0, - "target_id": 177, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 293, - "origin_id": 124, - "origin_slot": 0, - "target_id": 177, - "target_slot": 1, - "type": "LATENT" - }, - { - "id": 59, - "origin_id": 38, - "origin_slot": 0, - "target_id": 6, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 58, - "origin_id": 37, - "origin_slot": 0, - "target_id": 31, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 57, - "origin_id": 35, - "origin_slot": 0, - "target_id": 31, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 238, - "origin_id": 135, - "origin_slot": 0, - "target_id": 31, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 291, - "origin_id": 124, - "origin_slot": 0, - "target_id": 31, - "target_slot": 3, - "type": "LATENT" - }, - { - "id": 251, - "origin_id": 146, - "origin_slot": 0, - "target_id": 42, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 297, - "origin_id": -10, - "origin_slot": 0, - "target_id": 146, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 298, - "origin_id": -10, - "origin_slot": 1, - "target_id": 146, - "target_slot": 1, - "type": "IMAGE" - }, - { - "id": 240, - "origin_id": 8, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 300, - "origin_id": -10, - "origin_slot": 2, - "target_id": 6, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 302, - "origin_id": -10, - "origin_slot": 3, - "target_id": 37, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 303, - "origin_id": -10, - "origin_slot": 4, - "target_id": 38, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 304, - "origin_id": -10, - "origin_slot": 5, - "target_id": 38, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 305, - "origin_id": -10, - "origin_slot": 6, - "target_id": 39, - "target_slot": 0, - "type": "COMBO" - } - ], - "extra": { - "workflowRendererVersion": "LG", - "ue_links": [] - } - } - ] - }, - "config": {}, - "extra": { - "ds": { - "scale": 0.6830134553650705, - "offset": [ - 925.8941368588916, - 323.577244337729 - ] - }, - "frontendVersion": "1.41.13", - "workflowRendererVersion": "LG", - "groupNodes": {}, - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "ue_links": [] - }, - "version": 0.4 -} diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_krea2_turbo_t2i.json b/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_krea2_turbo_t2i.json deleted file mode 100644 index 66b81368f3..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_krea2_turbo_t2i.json +++ /dev/null @@ -1,2066 +0,0 @@ -{ - "id": "08988737-a544-4ab1-99fb-22d67b7c36e3", - "revision": 0, - "last_node_id": 50, - "last_link_id": 72, - "nodes": [ - { - "id": 29, - "type": "SaveImage", - "pos": [ - 480, - -110 - ], - "size": [ - 880, - 1020 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 44 - } - ], - "outputs": [ - { - "name": "images", - "type": "IMAGE", - "links": null - } - ], - "properties": { - "Node name for S&R": "SaveImage", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "Krea2_turbo" - ] - }, - { - "id": 30, - "type": "b0e5ca93-2731-42b9-8e0a-d28ea851ff81", - "pos": [ - -140, - -110 - ], - "size": [ - 560, - 1010 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "label": "prompt_enhance", - "name": "value_1", - "type": "BOOLEAN", - "widget": { - "name": "value_1" - }, - "link": null - }, - { - "label": "LLM_max_token", - "name": "max_length", - "type": "INT", - "widget": { - "name": "max_length" - }, - "link": null - }, - { - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 69 - }, - { - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 71 - }, - { - "label": "enable_lora?", - "name": "value_2", - "type": "BOOLEAN", - "widget": { - "name": "value_2" - }, - "link": null - }, - { - "label": "lora_strength", - "name": "strength_model", - "type": "FLOAT", - "widget": { - "name": "strength_model" - }, - "link": null - }, - { - "label": "lora_trigger_word", - "name": "string_b", - "type": "STRING", - "widget": { - "name": "string_b" - }, - "link": null - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 44 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "19", - "value" - ], - [ - "24", - "value" - ], - [ - "16", - "max_length" - ], - [ - "5", - "width" - ], - [ - "5", - "height" - ], - [ - "3", - "seed" - ], - [ - "23", - "value" - ], - [ - "15", - "lora_name" - ], - [ - "15", - "strength_model" - ], - [ - "27", - "string_b" - ], - [ - "10", - "unet_name" - ], - [ - "11", - "clip_name" - ], - [ - "12", - "vae_name" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.25.0", - "previewExposures": [ - { - "name": "$$canvas-image-preview", - "sourceNodeId": "3", - "sourcePreviewName": "$$canvas-image-preview" - } - ] - }, - "widgets_values": [] - }, - { - "id": 47, - "type": "MarkdownNote", - "pos": [ - -1200, - 970 - ], - "size": [ - 690, - 510 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "LoRA Trigger Words and Settings", - "properties": {}, - "widgets_values": [ - "Download the style LoRAs used in this workflow from [Comfy-Org/Krea-2/loras](https://huggingface.co/Comfy-Org/Krea-2/tree/main/loras). Place the `.safetensors` files in `ComfyUI/models/loras/`.\n\n| LoRA | Trigger Words | Recommended Strength |\n|------------------------|--------------------------------------|-------|\n| `krea2_darkbrush` | `monochrome ink wash style` | `1.0` |\n| `krea2_dotmatrix` | `monochrome stippling style` | `1.0` |\n| `krea2_kidsdrawing` | `naive expressive sketch style` | `1.0` |\n| `krea2_neondrip` | `textured abstract style` | `1.0` |\n| `krea2_rainywindow` | `rainy window style` | `1.0` |\n| `krea2_retroanime` | `purple retro anime style` | `1.0` |\n| `krea2_softwatercolor` | `art deco watercolor style` | `1.0` |\n| `krea2_sunsetblur` | `ethereal motion blur style` | `1.0` |\n| `krea2_vintagetarot` | `vintage tarot style` | `1.0` |" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 48, - "type": "MarkdownNote", - "pos": [ - -1940, - -90 - ], - "size": [ - 700, - 990 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": {}, - "widgets_values": [ - "Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model Links (for Local Users)\n\nFor BF16 and NVFP4 variants, see [Comfy-Org/Krea-2](https://huggingface.co/Comfy-Org/Krea-2)\n\n**diffusion_models**\n\n- [krea2_turbo_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Krea-2/resolve/main/diffusion_models/krea2_turbo_fp8_scaled.safetensors)\n\n**text_encoders**\n\n- [qwen3vl_4b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Krea-2/resolve/main/text_encoders/qwen3vl_4b_fp8_scaled.safetensors)\n\n**vae**\n\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Krea-2/resolve/main/vae/qwen_image_vae.safetensors)\n\n**loras**\n\n- [krea2_darkbrush.safetensors](https://huggingface.co/Comfy-Org/Krea-2/resolve/main/loras/krea2_darkbrush.safetensors)\n\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ └── krea2_turbo_fp8_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ text_encoders/\n│ │ └── qwen3vl_4b_fp8_scaled.safetensors\n│ ā”œā”€ā”€ šŸ“‚ vae/\n│ │ └── qwen_image_vae.safetensors\n│ └── šŸ“‚ loras/\n│ └── krea2_darkbrush.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 50, - "type": "MarkdownNote", - "pos": [ - -1200, - -90 - ], - "size": [ - 700, - 990 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Note: Krea-2", - "properties": {}, - "widgets_values": [ - "Guide: [krea-2](https://docs.comfy.org/tutorials/image/krea/krea-2)\n\nThis workflow generates images with **Krea-2 Turbo**, a fast distilled text-to-image model. The workflow is organized into a few parts: each handles a different step so you can generate quickly without digging through every node.\n\n## Text to Image (Krea-2 Turbo) Subgraph\n\nDouble-click this node to open the full pipeline. Inside, the canvas is grouped into several areas:\n\n**Models**: Loads the diffusion model, text encoder, VAE, and optional style LoRA (`LoraLoaderModelOnly`).\n\n**Prompt**: Enter your image description in **Text String (User Prompt)**.\n\n**Prompt Enhancement**: Expands your prompt before generation. Enabled by default (`prompt_enhance`). You can turn it off to use your prompt as-is, or replace the built-in module with **OpenAI** or **Gemini** API nodes.\n\n**Feature Switch**: Quick toggles on the left side of the subgraph:\n- `prompt_enhance`: enable or disable prompt expansion\n- `enable_lora?`: enable or disable the style LoRA\n\n**Image Generation**: Handles latent sizing, sampling (8 steps), and VAE decode to produce the final image.\n\nWhen using a LoRA, set `enable_lora?` to true, select the matching file in **LoraLoaderModelOnly**, and adjust `lora_strength` as needed.\n\n## LoRA & Trigger Word (CustomCombo)\n\nOn the main canvas, the **CustomCombo** node is where you choose which style LoRA you are using (e.g. `krea2_coolblue`, `krea2_darkbrush`). The workflow uses your selection to automatically append the correct **trigger word** to your prompt.\n\n- Download LoRA files from [Comfy-Org/Krea-2/loras](https://huggingface.co/Comfy-Org/Krea-2/tree/main/loras) and place them in `ComfyUI/models/loras/`\n- Select the LoRA name that matches the file loaded inside the subgraph\n- The trigger word is applied for you: no need to type it manually\n- For trigger words and recommended strength values, see the **LoRA Trigger Words and Settings** note beside this workflow\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 49, - "type": "ResolutionSelector", - "pos": [ - -470, - 270 - ], - "size": [ - 270, - 190 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "width", - "type": "INT", - "links": [ - 69 - ] - }, - { - "name": "height", - "type": "INT", - "links": [ - 71 - ] - } - ], - "properties": { - "Node name for S&R": "ResolutionSelector", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "1:1 (Square)", - 1, - 8 - ] - } - ], - "links": [ - [ - 44, - 30, - 0, - 29, - 0, - "IMAGE" - ], - [ - 69, - 49, - 0, - 30, - 2, - "INT" - ], - [ - 71, - 49, - 1, - 30, - 3, - "INT" - ] - ], - "groups": [], - "definitions": { - "subgraphs": [ - { - "id": "b0e5ca93-2731-42b9-8e0a-d28ea851ff81", - "version": 1, - "state": { - "lastGroupId": 10, - "lastNodeId": 50, - "lastLinkId": 72, - "lastRerouteId": 0 - }, - "revision": 0, - "config": {}, - "name": "Text to Image (Krea-2 Turbo)", - "inputNode": { - "id": -10, - "bounding": [ - -1720, - 410, - 146.466796875, - 308 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 1560, - 496, - 128, - 68 - ] - }, - "inputs": [ - { - "id": "b0f5c754-5322-440c-8c1c-ba732e910d33", - "name": "value", - "type": "STRING", - "linkIds": [ - 45 - ], - "pos": [ - -1597.533203125, - 434 - ] - }, - { - "id": "47b0e74d-ef80-4423-a7a6-9bd1673092bb", - "name": "value_1", - "type": "BOOLEAN", - "linkIds": [ - 46 - ], - "label": "prompt_enhance", - "pos": [ - -1597.533203125, - 454 - ] - }, - { - "id": "5fc735ae-a50b-4363-bff9-850030ad5dd5", - "name": "max_length", - "type": "INT", - "linkIds": [ - 49 - ], - "label": "LLM_max_token", - "pos": [ - -1597.533203125, - 474 - ] - }, - { - "id": "2d1c0f16-25d7-46d1-b774-e6b5519810ae", - "name": "width", - "type": "INT", - "linkIds": [ - 50 - ], - "pos": [ - -1597.533203125, - 494 - ] - }, - { - "id": "8bb87b44-fecc-46d7-bdae-642002250a43", - "name": "height", - "type": "INT", - "linkIds": [ - 51 - ], - "pos": [ - -1597.533203125, - 514 - ] - }, - { - "id": "75652c4f-cde2-4ad7-b322-73d47b533ef8", - "name": "seed", - "type": "INT", - "linkIds": [ - 56 - ], - "pos": [ - -1597.533203125, - 534 - ] - }, - { - "id": "b0ca5f55-a223-40de-9e37-aaf2cf0904dd", - "name": "value_2", - "type": "BOOLEAN", - "linkIds": [ - 57 - ], - "label": "enable_lora?", - "pos": [ - -1597.533203125, - 554 - ] - }, - { - "id": "eb2e846b-2e6c-49a2-bc56-9c772c8a1862", - "name": "lora_name", - "type": "COMBO", - "linkIds": [ - 58 - ], - "pos": [ - -1597.533203125, - 574 - ] - }, - { - "id": "d2693bbb-bb95-4fb1-9a3d-27a1bb0b664b", - "name": "strength_model", - "type": "FLOAT", - "linkIds": [ - 59 - ], - "label": "lora_strength", - "pos": [ - -1597.533203125, - 594 - ] - }, - { - "id": "e2031135-b490-4909-b1ec-6b00aecf819e", - "name": "string_b", - "type": "STRING", - "linkIds": [ - 60 - ], - "label": "lora_trigger_word", - "pos": [ - -1597.533203125, - 614 - ] - }, - { - "id": "14e2eb6a-5fa1-40c9-81d1-a928360fcd80", - "name": "unet_name", - "type": "COMBO", - "linkIds": [ - 61 - ], - "pos": [ - -1597.533203125, - 634 - ] - }, - { - "id": "e27ba0c5-697f-44f4-b475-c2dcfa594724", - "name": "clip_name", - "type": "COMBO", - "linkIds": [ - 62 - ], - "pos": [ - -1597.533203125, - 654 - ] - }, - { - "id": "75c25d8e-b881-46e4-aca7-d2ada9e147d0", - "name": "vae_name", - "type": "COMBO", - "linkIds": [ - 63 - ], - "pos": [ - -1597.533203125, - 674 - ] - } - ], - "outputs": [ - { - "id": "e4073813-752d-4584-96b5-6e42eac355dd", - "name": "IMAGE", - "type": "IMAGE", - "linkIds": [ - 43 - ], - "localized_name": "IMAGE", - "pos": [ - 1584, - 520 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 100, - -250 - ], - "size": [ - 480, - 420 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 10 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": 72 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 4, - 13 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "A high-resolution, surreal digital illustration showing a human hand holding a martini glass. The image is overlaid with whimsical, expressive ink-style doodles, including a cartoon figure inside the glass, a drawn citrus wedge on the rim, and various abstract sketches and faces surrounding the glass against a clean, white background. The style seamlessly blends a realistic, lit photograph with loose, hand-drawn marker artistry, creating a playful and artistic juxtaposition." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 5, - "type": "EmptyLatentImage", - "pos": [ - 170, - 350 - ], - "size": [ - 320, - 170 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 50 - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 51 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 2 - ] - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - 1024, - 1024, - 1 - ] - }, - { - "id": 3, - "type": "KSampler", - "pos": [ - 640, - -100 - ], - "size": [ - 320, - 590 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 30 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 4 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 14 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 2 - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": 56 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 7 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - 735915477938686, - "randomize", - 8, - 1, - "euler", - "simple", - 1 - ] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 1010, - -270 - ], - "size": [ - 230, - 100 - ], - "flags": { - "collapsed": false - }, - "order": 4, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 7 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 12 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 43 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [] - }, - { - "id": 10, - "type": "UNETLoader", - "pos": [ - -410, - -240 - ], - "size": [ - 450, - 140 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "localized_name": "unet_name", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": 61 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 16, - 28 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoader", - "cnr_id": "comfy-core", - "ver": "0.25.0", - "models": [ - { - "name": "krea2_turbo_fp8_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/Krea-2/resolve/main/diffusion_models/krea2_turbo_fp8_scaled.safetensors", - "directory": "diffusion_models" - } - ] - }, - "widgets_values": [ - "krea2_turbo_fp8_scaled.safetensors", - "default" - ] - }, - { - "id": 11, - "type": "CLIPLoader", - "pos": [ - -410, - 150 - ], - "size": [ - 450, - 170 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": 62 - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [ - 10, - 18 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoader", - "cnr_id": "comfy-core", - "ver": "0.25.0", - "models": [ - { - "name": "qwen3vl_4b_fp8_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/Krea-2/resolve/main/text_encoders/qwen3vl_4b_fp8_scaled.safetensors", - "directory": "text_encoders" - } - ] - }, - "widgets_values": [ - "qwen3vl_4b_fp8_scaled.safetensors", - "krea2", - "default" - ] - }, - { - "id": 12, - "type": "VAELoader", - "pos": [ - -410, - 390 - ], - "size": [ - 450, - 120 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "vae_name", - "name": "vae_name", - "type": "COMBO", - "widget": { - "name": "vae_name" - }, - "link": 63 - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 12 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoader", - "cnr_id": "comfy-core", - "ver": "0.25.0", - "models": [ - { - "name": "qwen_image_vae.safetensors", - "url": "https://huggingface.co/Comfy-Org/Krea-2/resolve/main/vae/qwen_image_vae.safetensors", - "directory": "vae" - } - ] - }, - "widgets_values": [ - "qwen_image_vae.safetensors" - ] - }, - { - "id": 13, - "type": "ConditioningZeroOut", - "pos": [ - 350, - 220 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "conditioning", - "name": "conditioning", - "type": "CONDITIONING", - "link": 13 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 14 - ] - } - ], - "properties": { - "Node name for S&R": "ConditioningZeroOut", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [] - }, - { - "id": 15, - "type": "LoraLoaderModelOnly", - "pos": [ - -410, - -50 - ], - "size": [ - 450, - 170 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 16 - }, - { - "localized_name": "lora_name", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": 58 - }, - { - "localized_name": "strength_model", - "name": "strength_model", - "type": "FLOAT", - "widget": { - "name": "strength_model" - }, - "link": 59 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 29 - ] - } - ], - "properties": { - "Node name for S&R": "LoraLoaderModelOnly", - "cnr_id": "comfy-core", - "ver": "0.25.0", - "models": [ - { - "name": "krea2_darkbrush.safetensors", - "url": "https://huggingface.co/Comfy-Org/Krea-2/resolve/main/loras/krea2_darkbrush.safetensors", - "directory": "loras" - } - ] - }, - "widgets_values": [ - "krea2_darkbrush.safetensors", - 0.8 - ] - }, - { - "id": 16, - "type": "TextGenerate", - "pos": [ - 60, - 650 - ], - "size": [ - 400, - 556 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 18 - }, - { - "localized_name": "image", - "name": "image", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "video", - "name": "video", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "prompt", - "name": "prompt", - "type": "STRING", - "widget": { - "name": "prompt" - }, - "link": 19 - }, - { - "localized_name": "max_length", - "name": "max_length", - "type": "INT", - "widget": { - "name": "max_length" - }, - "link": 49 - } - ], - "outputs": [ - { - "localized_name": "generated_text", - "name": "generated_text", - "type": "STRING", - "links": [ - 33 - ] - } - ], - "properties": { - "Node name for S&R": "TextGenerate", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "", - 512, - "on", - 0.7, - 64, - 0.95, - 0.05, - 1.05, - 0, - 0, - false, - true - ] - }, - { - "id": 17, - "type": "StringConcatenate", - "pos": [ - -210, - 1310 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 11, - "mode": 0, - "inputs": [ - { - "localized_name": "string_a", - "name": "string_a", - "type": "STRING", - "widget": { - "name": "string_a" - }, - "link": 21 - }, - { - "localized_name": "string_b", - "name": "string_b", - "type": "STRING", - "widget": { - "name": "string_b" - }, - "link": 22 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 19 - ] - } - ], - "properties": { - "Node name for S&R": "StringConcatenate", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "", - "", - "" - ] - }, - { - "id": 18, - "type": "PrimitiveStringMultiline", - "pos": [ - -430, - 650 - ], - "size": [ - 460, - 610 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 21 - ] - } - ], - "title": "Text String (System Prompt)", - "properties": { - "Node name for S&R": "PrimitiveStringMultiline", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "You are an expert prompt engineer for text-to-image models. Your task is to expand the user's prompt into a highly effective image-generation prompt.\n\nThink step by step about the request before writing the answer:\n- What is the subject and mood?\n- What visual styles, mediums, and lighting options would fit? Consider two or three alternatives and pick the one that best serves the caption.\n- What composition, framing, and grounded details will help the text-to-image model?\n\nThen output a single expanded prompt paragraph.\n\nFollow these rules strictly:\n1. **Faithfulness First:** Preserve all original subjects, actions, colors, and spatial relationships. Do not add new objects, props, characters, or animals unless the user clearly implies them.\n2. **Practical T2I Structure:** Write a prompt that a text-to-image model can parse cleanly. Group subjects with their own attributes and actions. Use grounded phrasing for poses, interactions, and spatial layout.\n3. **Style Planning Stays Internal:** Use your internal reasoning to choose style, medium, framing, and lighting. Do not emit planning tags or wrappers in the visible answer body.\n4. **Text Rendering:** If the user requests visible text, quotes, labels, or typography, specify the exact text clearly and wrap requested words in quotes.\n5. **Avoid Over-Specification:** Do not invent highly specific clothing, colors, materials, or scene details unless the input supports them.\n6. **Structure:** Write one cohesive paragraph after the thinking block. No bullets, JSON, or markdown.\n7. **Respect Existing Detail:** If the user's prompt is already detailed, lightly polish and finalize rather than heavily expanding — preserve their phrasing and direction.\n8. **Respect the Human Form:** Treat depictions of people with dignity. Assume clothing covers genitals and intimate anatomy.\n9. **Preserve User Medium:** When the user explicitly requests a medium (e.g. \"photo of\", \"photograph of\", \"illustration of\", \"painting of\", \"sketch of\", \"3D render of\"), honor it. Do not pivot to a different medium to avoid difficulty — match the user's stated intent.\n\nUser's Input:\n\n" - ] - }, - { - "id": 19, - "type": "PrimitiveStringMultiline", - "pos": [ - -1070, - -290 - ], - "size": [ - 570, - 800 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "STRING", - "widget": { - "name": "value" - }, - "link": 45 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 22, - 34 - ] - } - ], - "title": "Text String (User Prompt)", - "properties": { - "Node name for S&R": "PrimitiveStringMultiline", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "A high-resolution, surreal digital illustration showing a human hand holding a martini glass. The image is overlaid with whimsical, expressive ink-style doodles, including a cartoon figure inside the glass, a drawn citrus wedge on the rim, and various abstract sketches and faces surrounding the glass against a clean, white background. The style seamlessly blends a realistic, lit photograph with loose, hand-drawn marker artistry, creating a playful and artistic juxtaposition." - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 20, - "type": "PreviewAny", - "pos": [ - 500, - 660 - ], - "size": [ - 470, - 550 - ], - "flags": { - "collapsed": false - }, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "source", - "name": "source", - "type": "*", - "link": 27 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 37, - 41 - ] - } - ], - "properties": { - "Node name for S&R": "PreviewAny", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - null, - null, - null - ] - }, - { - "id": 21, - "type": "ComfySwitchNode", - "pos": [ - 170, - 1270 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "STRING", - "link": 34 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "STRING", - "link": 33 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 32 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "STRING", - "links": [ - 27 - ] - } - ], - "properties": { - "Node name for S&R": "ComfySwitchNode", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - false - ] - }, - { - "id": 22, - "type": "ComfySwitchNode", - "pos": [ - 640, - -270 - ], - "size": [ - 320, - 130 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "MODEL", - "link": 28 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "MODEL", - "link": 29 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 31 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "MODEL", - "links": [ - 30 - ] - } - ], - "title": "Switch (Model)", - "properties": { - "Node name for S&R": "ComfySwitchNode", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - false - ] - }, - { - "id": 23, - "type": "PrimitiveBoolean", - "pos": [ - -910, - 670 - ], - "size": [ - 270, - 110 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "BOOLEAN", - "widget": { - "name": "value" - }, - "link": 57 - } - ], - "outputs": [ - { - "localized_name": "BOOLEAN", - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 31, - 42 - ] - } - ], - "title": "Boolean (Enable LoRA?)", - "properties": { - "Node name for S&R": "PrimitiveBoolean", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - false - ] - }, - { - "id": 24, - "type": "PrimitiveBoolean", - "pos": [ - -910, - 840 - ], - "size": [ - 270, - 110 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "BOOLEAN", - "widget": { - "name": "value" - }, - "link": 46 - } - ], - "outputs": [ - { - "localized_name": "BOOLEAN", - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 32 - ] - } - ], - "title": "Boolean (Refine Prompt?)", - "properties": { - "Node name for S&R": "PrimitiveBoolean", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - true - ] - }, - { - "id": 27, - "type": "StringConcatenate", - "pos": [ - 1030, - 960 - ], - "size": [ - 350, - 250 - ], - "flags": { - "collapsed": false - }, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "string_a", - "name": "string_a", - "type": "STRING", - "widget": { - "name": "string_a" - }, - "link": 41 - }, - { - "localized_name": "string_b", - "name": "string_b", - "type": "STRING", - "widget": { - "name": "string_b" - }, - "link": 60 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 38 - ] - } - ], - "title": "Concatenate Text (LoRA Trigger Word)", - "properties": { - "Node name for S&R": "StringConcatenate", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - "", - "muted minimalist sketch style", - ", " - ] - }, - { - "id": 28, - "type": "ComfySwitchNode", - "pos": [ - 1050, - 670 - ], - "size": [ - 340, - 130 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "STRING", - "link": 37 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "STRING", - "link": 38 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 42 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "STRING", - "links": [ - 72 - ] - } - ], - "properties": { - "Node name for S&R": "ComfySwitchNode", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - false - ] - } - ], - "groups": [ - { - "id": 1, - "title": "Models", - "bounding": [ - -430, - -320, - 490, - 850 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 4, - "title": "Prompt Enhancement", - "bounding": [ - -440, - 580, - 1940, - 840 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 5, - "title": "Group", - "bounding": [ - -1080, - -360, - 610, - 910 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 6, - "title": "Image Generation", - "bounding": [ - -440, - -360, - 1940, - 910 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 7, - "title": "Prompt", - "bounding": [ - 90, - -320, - 500, - 570 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 8, - "title": "Size", - "bounding": [ - 90, - 270, - 500, - 260 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 9, - "title": "Feature Switch", - "bounding": [ - -1080, - 580, - 610, - 400 - ], - "color": "#3f789e", - "flags": {} - } - ], - "links": [ - { - "id": 10, - "origin_id": 11, - "origin_slot": 0, - "target_id": 6, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 30, - "origin_id": 22, - "origin_slot": 0, - "target_id": 3, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 4, - "origin_id": 6, - "origin_slot": 0, - "target_id": 3, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 14, - "origin_id": 13, - "origin_slot": 0, - "target_id": 3, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 2, - "origin_id": 5, - "origin_slot": 0, - "target_id": 3, - "target_slot": 3, - "type": "LATENT" - }, - { - "id": 7, - "origin_id": 3, - "origin_slot": 0, - "target_id": 8, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 12, - "origin_id": 12, - "origin_slot": 0, - "target_id": 8, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 13, - "origin_id": 6, - "origin_slot": 0, - "target_id": 13, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 16, - "origin_id": 10, - "origin_slot": 0, - "target_id": 15, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 18, - "origin_id": 11, - "origin_slot": 0, - "target_id": 16, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 19, - "origin_id": 17, - "origin_slot": 0, - "target_id": 16, - "target_slot": 4, - "type": "STRING" - }, - { - "id": 21, - "origin_id": 18, - "origin_slot": 0, - "target_id": 17, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 22, - "origin_id": 19, - "origin_slot": 0, - "target_id": 17, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 27, - "origin_id": 21, - "origin_slot": 0, - "target_id": 20, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 34, - "origin_id": 19, - "origin_slot": 0, - "target_id": 21, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 33, - "origin_id": 16, - "origin_slot": 0, - "target_id": 21, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 32, - "origin_id": 24, - "origin_slot": 0, - "target_id": 21, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 28, - "origin_id": 10, - "origin_slot": 0, - "target_id": 22, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 29, - "origin_id": 15, - "origin_slot": 0, - "target_id": 22, - "target_slot": 1, - "type": "MODEL" - }, - { - "id": 31, - "origin_id": 23, - "origin_slot": 0, - "target_id": 22, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 41, - "origin_id": 20, - "origin_slot": 0, - "target_id": 27, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 37, - "origin_id": 20, - "origin_slot": 0, - "target_id": 28, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 38, - "origin_id": 27, - "origin_slot": 0, - "target_id": 28, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 42, - "origin_id": 23, - "origin_slot": 0, - "target_id": 28, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 43, - "origin_id": 8, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 45, - "origin_id": -10, - "origin_slot": 0, - "target_id": 19, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 46, - "origin_id": -10, - "origin_slot": 1, - "target_id": 24, - "target_slot": 0, - "type": "BOOLEAN" - }, - { - "id": 49, - "origin_id": -10, - "origin_slot": 2, - "target_id": 16, - "target_slot": 5, - "type": "INT" - }, - { - "id": 50, - "origin_id": -10, - "origin_slot": 3, - "target_id": 5, - "target_slot": 0, - "type": "INT" - }, - { - "id": 51, - "origin_id": -10, - "origin_slot": 4, - "target_id": 5, - "target_slot": 1, - "type": "INT" - }, - { - "id": 56, - "origin_id": -10, - "origin_slot": 5, - "target_id": 3, - "target_slot": 4, - "type": "INT" - }, - { - "id": 57, - "origin_id": -10, - "origin_slot": 6, - "target_id": 23, - "target_slot": 0, - "type": "BOOLEAN" - }, - { - "id": 58, - "origin_id": -10, - "origin_slot": 7, - "target_id": 15, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 59, - "origin_id": -10, - "origin_slot": 8, - "target_id": 15, - "target_slot": 2, - "type": "FLOAT" - }, - { - "id": 60, - "origin_id": -10, - "origin_slot": 9, - "target_id": 27, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 61, - "origin_id": -10, - "origin_slot": 10, - "target_id": 10, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 62, - "origin_id": -10, - "origin_slot": 11, - "target_id": 11, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 63, - "origin_id": -10, - "origin_slot": 12, - "target_id": 12, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 72, - "origin_id": 28, - "origin_slot": 0, - "target_id": 6, - "target_slot": 1, - "type": "STRING" - } - ], - "extra": {} - } - ] - }, - "config": {}, - "extra": { - "ds": { - "scale": 0.3548835625347306, - "offset": [ - 1873.2677448910986, - 1333.496511703664 - ] - }, - "frontendVersion": "1.45.15", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true - }, - "version": 0.4 -} \ No newline at end of file diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_z_image_turbo.json b/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_z_image_turbo.json deleted file mode 100644 index 4a98c03bf8..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/templates/image_z_image_turbo.json +++ /dev/null @@ -1,1064 +0,0 @@ -{ - "id": "9ae6082b-c7f4-433c-9971-7a8f65a3ea65", - "revision": 0, - "last_node_id": 61, - "last_link_id": 75, - "nodes": [ - { - "id": 35, - "type": "MarkdownNote", - "pos": [ - -420.00005528861476, - 199.99998755061938 - ], - "size": [ - 510, - 771.953125 - ], - "flags": { - "collapsed": false - }, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model link", - "properties": {}, - "widgets_values": [ - "## Report workflow issue\n\nIf you found any issues when running this workflow, [report template issue here](https://github.com/Comfy-Org/workflow_templates/issues)\n\n\n## Model links\n\n**text_encoders**\n\n- [qwen_3_4b.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors)\n\n**diffusion_models**\n\n- [z_image_turbo_bf16.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors)\n\n**vae**\n\n- [ae.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors)\n\n\nModel Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ text_encoders/\n│ │ └── qwen_3_4b.safetensors\n│ ā”œā”€ā”€ šŸ“‚ diffusion_models/\n│ │ └── z_image_turbo_bf16.safetensors\n│ └── šŸ“‚ vae/\n│ └── ae.safetensors\n```\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 9, - "type": "SaveImage", - "pos": [ - 569.9998957637683, - 199.99998755061938 - ], - "size": [ - 780, - 660 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 62 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "SaveImage", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "z-image-turbo" - ] - }, - { - "id": 57, - "type": "f2fdebf6-dfaf-43b6-9eb2-7f70613cfdc1", - "pos": [ - 130, - 200 - ], - "size": [ - 400, - 470 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "label": "prompt", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 62 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "27", - "text" - ], - [ - "13", - "width" - ], - [ - "13", - "height" - ], - [ - "3", - "seed" - ], - [ - "3", - "steps" - ], - [ - "28", - "unet_name" - ], - [ - "30", - "clip_name" - ], - [ - "29", - "vae_name" - ], - [ - "3", - "control_after_generate" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.3.73", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [] - } - ], - "links": [ - [ - 62, - 57, - 0, - 9, - 0, - "IMAGE" - ] - ], - "groups": [], - "definitions": { - "subgraphs": [ - { - "id": "f2fdebf6-dfaf-43b6-9eb2-7f70613cfdc1", - "version": 1, - "state": { - "lastGroupId": 4, - "lastNodeId": 61, - "lastLinkId": 75, - "lastRerouteId": 0 - }, - "revision": 0, - "config": {}, - "name": "Text to Image (Z-Image-Turbo)", - "inputNode": { - "id": -10, - "bounding": [ - -560, - 480, - 120, - 200 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 1670, - 320, - 120, - 60 - ] - }, - "inputs": [ - { - "id": "fb178669-e742-4a53-8a69-7df59834dfd8", - "name": "text", - "type": "STRING", - "linkIds": [ - 34 - ], - "label": "prompt", - "pos": [ - -460, - 500 - ] - }, - { - "id": "dd780b3c-23e9-46ff-8469-156008f42e5a", - "name": "width", - "type": "INT", - "linkIds": [ - 35 - ], - "pos": [ - -460, - 520 - ] - }, - { - "id": "7b08d546-6bb0-4ef9-82e9-ffae5e1ee6bc", - "name": "height", - "type": "INT", - "linkIds": [ - 36 - ], - "pos": [ - -460, - 540 - ] - }, - { - "id": "f77677f7-6bf6-4c19-a71f-c4a553d5981e", - "name": "seed", - "type": "INT", - "linkIds": [ - 71 - ], - "pos": [ - -460, - 560 - ] - }, - { - "id": "ef9a9fb1-5983-4bc9-a60b-cf5aec48bff1", - "name": "steps", - "type": "INT", - "linkIds": [ - 72 - ], - "pos": [ - -460, - 580 - ] - }, - { - "id": "a20a1b30-785f-4a04-bb6d-3d61adab9764", - "name": "unet_name", - "type": "COMBO", - "linkIds": [ - 73 - ], - "pos": [ - -460, - 600 - ] - }, - { - "id": "4af8fc2b-4655-4086-8240-45f8cb38c6f6", - "name": "clip_name", - "type": "COMBO", - "linkIds": [ - 74 - ], - "pos": [ - -460, - 620 - ] - }, - { - "id": "4d518693-2807-439c-9cb6-cffd23ccba2c", - "name": "vae_name", - "type": "COMBO", - "linkIds": [ - 75 - ], - "pos": [ - -460, - 640 - ] - } - ], - "outputs": [ - { - "id": "1fa72a21-ce00-4952-814e-1f2ffbe87d1d", - "name": "IMAGE", - "type": "IMAGE", - "linkIds": [ - 16 - ], - "localized_name": "IMAGE", - "pos": [ - 1690, - 340 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 30, - "type": "CLIPLoader", - "pos": [ - 29.99986879338951, - 422.66401138970815 - ], - "size": [ - 270, - 141.328125 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": 74 - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [ - 28 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPLoader", - "cnr_id": "comfy-core", - "ver": "0.3.73", - "models": [ - { - "name": "qwen_3_4b.safetensors", - "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors", - "directory": "text_encoders" - } - ], - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "qwen_3_4b.safetensors", - "lumina2", - "default" - ] - }, - { - "id": 29, - "type": "VAELoader", - "pos": [ - 29.99986879338951, - 649.9999131978064 - ], - "size": [ - 270, - 106.65625 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "localized_name": "vae_name", - "name": "vae_name", - "type": "COMBO", - "widget": { - "name": "vae_name" - }, - "link": 75 - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 27 - ] - } - ], - "properties": { - "Node name for S&R": "VAELoader", - "cnr_id": "comfy-core", - "ver": "0.3.73", - "models": [ - { - "name": "ae.safetensors", - "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors", - "directory": "vae" - } - ], - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "ae.safetensors" - ] - }, - { - "id": 33, - "type": "ConditioningZeroOut", - "pos": [ - 629.9998362150791, - 959.999861458308 - ], - "size": [ - 225, - 72 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "conditioning", - "name": "conditioning", - "type": "CONDITIONING", - "link": 32 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 33 - ] - } - ], - "properties": { - "Node name for S&R": "ConditioningZeroOut", - "cnr_id": "comfy-core", - "ver": "0.3.73", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 1319.9997837897204, - 229.99998088352976 - ], - "size": [ - 225, - 96 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 14 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 27 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 16 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [] - }, - { - "id": 28, - "type": "UNETLoader", - "pos": [ - 29.99986879338951, - 229.99998088352976 - ], - "size": [ - 270, - 106.65625 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "localized_name": "unet_name", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": 73 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 26 - ] - } - ], - "properties": { - "Node name for S&R": "UNETLoader", - "cnr_id": "comfy-core", - "ver": "0.3.73", - "models": [ - { - "name": "z_image_turbo_bf16.safetensors", - "url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors", - "directory": "diffusion_models" - } - ], - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "z_image_turbo_bf16.safetensors", - "default" - ] - }, - { - "id": 27, - "type": "CLIPTextEncode", - "pos": [ - 399.9978589832622, - 229.99946973987727 - ], - "size": [ - 450, - 650 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 28 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": 34 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 30, - 32 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.73", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - "Latina female with thick wavy hair, harbor boats and pastel houses behind. Breezy seaside light, warm tones, cinematic close-up. " - ] - }, - { - "id": 13, - "type": "EmptySD3LatentImage", - "pos": [ - 39.999933078393155, - 889.9999101400169 - ], - "size": [ - 260, - 168 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 35 - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 36 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 17 - ] - } - ], - "properties": { - "Node name for S&R": "EmptySD3LatentImage", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 1024, - 1024, - 1 - ] - }, - { - "id": 11, - "type": "ModelSamplingAuraFlow", - "pos": [ - 949.9997988929108, - 229.99998088352976 - ], - "size": [ - 310, - 104 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 26 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 13 - ] - } - ], - "properties": { - "Node name for S&R": "ModelSamplingAuraFlow", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 3 - ] - }, - { - "id": 3, - "type": "KSampler", - "pos": [ - 949.9997988929108, - 399.9999517059391 - ], - "size": [ - 320, - 341.328125 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 13 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 30 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 33 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 17 - }, - { - "localized_name": "seed", - "name": "seed", - "type": "INT", - "widget": { - "name": "seed" - }, - "link": 71 - }, - { - "localized_name": "steps", - "name": "steps", - "type": "INT", - "widget": { - "name": "steps" - }, - "link": 72 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 14 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler", - "cnr_id": "comfy-core", - "ver": "0.3.64", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65 - }, - "widgets_values": [ - 0, - "randomize", - 8, - 1, - "res_multistep", - "simple", - 1 - ] - } - ], - "groups": [ - { - "id": 2, - "title": "Step2 - Image size", - "bounding": [ - 10, - 820, - 320, - 280 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 3, - "title": "Step3 - Prompt", - "bounding": [ - 360, - 130, - 530, - 970 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 4, - "title": "Step1 - Load models", - "bounding": [ - 0, - 130, - 330, - 660 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], - "links": [ - { - "id": 32, - "origin_id": 27, - "origin_slot": 0, - "target_id": 33, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 26, - "origin_id": 28, - "origin_slot": 0, - "target_id": 11, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 14, - "origin_id": 3, - "origin_slot": 0, - "target_id": 8, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 27, - "origin_id": 29, - "origin_slot": 0, - "target_id": 8, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 13, - "origin_id": 11, - "origin_slot": 0, - "target_id": 3, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 30, - "origin_id": 27, - "origin_slot": 0, - "target_id": 3, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 33, - "origin_id": 33, - "origin_slot": 0, - "target_id": 3, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 17, - "origin_id": 13, - "origin_slot": 0, - "target_id": 3, - "target_slot": 3, - "type": "LATENT" - }, - { - "id": 28, - "origin_id": 30, - "origin_slot": 0, - "target_id": 27, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 16, - "origin_id": 8, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 34, - "origin_id": -10, - "origin_slot": 0, - "target_id": 27, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 35, - "origin_id": -10, - "origin_slot": 1, - "target_id": 13, - "target_slot": 0, - "type": "INT" - }, - { - "id": 36, - "origin_id": -10, - "origin_slot": 2, - "target_id": 13, - "target_slot": 1, - "type": "INT" - }, - { - "id": 71, - "origin_id": -10, - "origin_slot": 3, - "target_id": 3, - "target_slot": 4, - "type": "INT" - }, - { - "id": 72, - "origin_id": -10, - "origin_slot": 4, - "target_id": 3, - "target_slot": 5, - "type": "INT" - }, - { - "id": 73, - "origin_id": -10, - "origin_slot": 5, - "target_id": 28, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 74, - "origin_id": -10, - "origin_slot": 6, - "target_id": 30, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 75, - "origin_id": -10, - "origin_slot": 7, - "target_id": 29, - "target_slot": 0, - "type": "COMBO" - } - ], - "extra": { - "workflowRendererVersion": "LG" - } - } - ] - }, - "config": {}, - "extra": { - "ds": { - "scale": 0.6731331717151416, - "offset": [ - 841.4738691917171, - 312.8272327558304 - ] - }, - "frontendVersion": "1.42.15", - "workflowRendererVersion": "LG", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true - }, - "version": 0.4 -} diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_ltx2_3_i2v.json b/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_ltx2_3_i2v.json deleted file mode 100644 index dd984de321..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_ltx2_3_i2v.json +++ /dev/null @@ -1,5061 +0,0 @@ -{ - "id": "07824bbb-6672-4bb0-ac36-4313a519e35b", - "revision": 0, - "last_node_id": 329, - "last_link_id": 646, - "nodes": [ - { - "id": 103, - "type": "MarkdownNote", - "pos": [ - -1220, - 3530 - ], - "size": [ - 750, - 1200 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "- Huggingface: [Lightricks/LTX-2.3](https://huggingface.co/Lightricks/LTX-2.3/)\n- Github: [LTX-2](https://github.com/Lightricks/LTX-2)\n\n## LTX-2.3 Prompting Tips\n\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Visual Details**: Describe all visual details you want to appear in the video \n3. **Audio**: Describe sounds and dialogue needed for the scene\n\n## Report LTX-2.3 Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n\n## Model Links (for Local Users)\n\n**checkpoints**\n\n- [ltx-2.3-22b-dev-fp8.safetensors](https://huggingface.co/Lightricks/LTX-2.3-fp8/resolve/main/ltx-2.3-22b-dev-fp8.safetensors)\n\n**loras**\n\n- [ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors](https://huggingface.co/Comfy-Org/ltx-2.3/resolve/main/split_files/loras/ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors)\n- [gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors](https://huggingface.co/Comfy-Org/ltx-2/resolve/main/split_files/loras/gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors)\n\n**latent_upscale_models**\n\n- [ltx-2.3-spatial-upscaler-x2-1.1.safetensors](https://huggingface.co/Lightricks/LTX-2.3/resolve/main/ltx-2.3-spatial-upscaler-x2-1.1.safetensors)\n\n\n## Model Storage Location\n\n```\nšŸ“‚ ComfyUI/\nā”œā”€ā”€ šŸ“‚ models/\n│ ā”œā”€ā”€ šŸ“‚ checkpoints/\n│ │ └── ltx-2.3-22b-dev-fp8.safetensors\n│ ā”œā”€ā”€ šŸ“‚ loras/\n│ │ ā”œā”€ā”€ ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors\n│ │ └── gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors\n│ └── šŸ“‚ latent_upscale_models/\n│ └── ltx-2.3-spatial-upscaler-x2-1.1.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/Comfy-Org/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 269, - "type": "LoadImage", - "pos": [ - -440, - 3530 - ], - "size": [ - 410, - 530 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 633 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "LoadImage", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "egyptian_queen.png", - "image" - ] - }, - { - "id": 75, - "type": "SaveVideo", - "pos": [ - 430, - 3530 - ], - "size": [ - 660, - 580 - ], - "flags": { - "collapsed": false - }, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 632 - } - ], - "outputs": [], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "SaveVideo", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "video/LTX_2.3_i2v", - "auto", - "auto" - ] - }, - { - "id": 320, - "type": "2454ad83-157c-40dd-9f19-5daaf4041ce0", - "pos": [ - 10, - 3530 - ], - "size": [ - 380, - 650 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "label": "first_frame", - "name": "input", - "type": "IMAGE,MASK", - "link": 633 - }, - { - "label": "prompt", - "name": "value", - "type": "STRING", - "widget": { - "name": "value" - }, - "link": null - }, - { - "label": "prompt_enhance", - "name": "value_1", - "type": "BOOLEAN", - "widget": { - "name": "value_1" - }, - "link": null - }, - { - "label": "width", - "name": "value_2", - "type": "INT", - "widget": { - "name": "value_2" - }, - "link": null - }, - { - "label": "height", - "name": "value_3", - "type": "INT", - "widget": { - "name": "value_3" - }, - "link": null - }, - { - "label": "duration", - "name": "value_4", - "type": "INT", - "widget": { - "name": "value_4" - }, - "link": null - }, - { - "label": "fps", - "name": "value_5", - "type": "INT", - "widget": { - "name": "value_5" - }, - "link": null - }, - { - "label": "seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": null - }, - { - "label": "distilled_lora", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": null - }, - { - "label": "text_encoder", - "name": "text_encoder", - "type": "COMBO", - "widget": { - "name": "text_encoder" - }, - "link": null - }, - { - "label": "latent_upscale_model", - "name": "model_name", - "type": "COMBO", - "widget": { - "name": "model_name" - }, - "link": null - }, - { - "label": "lora", - "name": "lora_name_1", - "type": "COMBO", - "widget": { - "name": "lora_name_1" - }, - "link": null - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 632 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "319", - "value" - ], - [ - "328", - "value" - ], - [ - "312", - "value" - ], - [ - "299", - "value" - ], - [ - "301", - "value" - ], - [ - "300", - "value" - ], - [ - "277", - "noise_seed" - ], - [ - "316", - "ckpt_name" - ], - [ - "285", - "lora_name" - ], - [ - "317", - "text_encoder" - ], - [ - "311", - "model_name" - ], - [ - "324", - "lora_name" - ] - ], - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "ue_properties": { - "widget_ue_connectable": { - "value_1": true, - "value_2": true, - "value_3": true, - "value_4": true, - "lora_name": true, - "model_name": true, - "value_5": true - }, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - } - ], - "links": [ - [ - 632, - 320, - 0, - 75, - 0, - "VIDEO" - ], - [ - 633, - 269, - 0, - 320, - 0, - "IMAGE" - ] - ], - "groups": [], - "definitions": { - "subgraphs": [ - { - "id": "2454ad83-157c-40dd-9f19-5daaf4041ce0", - "version": 1, - "state": { - "lastGroupId": 26, - "lastNodeId": 329, - "lastLinkId": 646, - "lastRerouteId": 0 - }, - "revision": 0, - "config": {}, - "name": "Image to Video (LTX-2.3)", - "inputNode": { - "id": -10, - "bounding": [ - 730, - 4110, - 170.162109375, - 308 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 6590, - 4360, - 128, - 68 - ] - }, - "inputs": [ - { - "id": "7afd6ea8-c738-4fd9-97b8-66fa905cd381", - "name": "input", - "type": "IMAGE,MASK", - "linkIds": [ - 535 - ], - "localized_name": "input", - "label": "first_frame", - "pos": [ - 876.162109375, - 4134 - ] - }, - { - "id": "9494c550-4172-49c6-930e-5b508f775e77", - "name": "value", - "type": "STRING", - "linkIds": [ - 595 - ], - "label": "prompt", - "pos": [ - 876.162109375, - 4154 - ] - }, - { - "id": "ec291311-2d21-49f9-aaba-24bb2e544ce0", - "name": "value_1", - "type": "BOOLEAN", - "linkIds": [ - 644 - ], - "label": "prompt_enhance", - "pos": [ - 876.162109375, - 4174 - ] - }, - { - "id": "58dbb3f6-f924-4548-96ef-e0e34610bd4e", - "name": "value_2", - "type": "INT", - "linkIds": [ - 597 - ], - "label": "width", - "pos": [ - 876.162109375, - 4194 - ] - }, - { - "id": "6086d5b8-2586-448c-a641-dd14d76dd102", - "name": "value_3", - "type": "INT", - "linkIds": [ - 598 - ], - "label": "height", - "pos": [ - 876.162109375, - 4214 - ] - }, - { - "id": "feb8c2eb-ae48-4fa8-bc24-929552d656c3", - "name": "value_4", - "type": "INT", - "linkIds": [ - 599 - ], - "label": "duration", - "pos": [ - 876.162109375, - 4234 - ] - }, - { - "id": "3e32ce15-0ae7-4cd0-909f-a354e8e9c4c9", - "name": "value_5", - "type": "INT", - "linkIds": [ - 624 - ], - "label": "fps", - "pos": [ - 876.162109375, - 4254 - ] - }, - { - "id": "dc40eadf-b8a9-421e-88f6-245042dd5424", - "name": "noise_seed", - "type": "INT", - "linkIds": [ - 646 - ], - "label": "seed", - "pos": [ - 876.162109375, - 4274 - ] - }, - { - "id": "d7255058-319a-4880-8f9a-7e542c8f3c3c", - "name": "ckpt_name", - "type": "COMBO", - "linkIds": [ - 601, - 604, - 605 - ], - "pos": [ - 876.162109375, - 4294 - ] - }, - { - "id": "4afce68d-8f65-4342-9d6d-ae0a7688c3e3", - "name": "lora_name", - "type": "COMBO", - "linkIds": [ - 602 - ], - "label": "distilled_lora", - "pos": [ - 876.162109375, - 4314 - ] - }, - { - "id": "ab842b4b-c977-4679-b421-424722785b57", - "name": "text_encoder", - "type": "COMBO", - "linkIds": [ - 606 - ], - "label": "text_encoder", - "pos": [ - 876.162109375, - 4334 - ] - }, - { - "id": "9e47372d-28d9-4311-91e9-e90d03f4eb43", - "name": "model_name", - "type": "COMBO", - "linkIds": [ - 607 - ], - "label": "latent_upscale_model", - "pos": [ - 876.162109375, - 4354 - ] - }, - { - "id": "682e457c-5d94-49b2-bf40-5731696deaf0", - "name": "lora_name_1", - "type": "COMBO", - "linkIds": [ - 645 - ], - "label": "lora", - "pos": [ - 876.162109375, - 4374 - ] - } - ], - "outputs": [ - { - "id": "954ef307-c897-4eea-8b5c-5c6ce15a5357", - "name": "VIDEO", - "type": "VIDEO", - "linkIds": [ - 536 - ], - "localized_name": "VIDEO", - "pos": [ - 6614, - 4384 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 276, - "type": "RandomNoise", - "pos": [ - 4700, - 3650 - ], - "size": [ - 280, - 110 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 490 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "RandomNoise", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 42, - "fixed" - ] - }, - { - "id": 277, - "type": "RandomNoise", - "pos": [ - 3160, - 3630 - ], - "size": [ - 280, - 110 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": 646 - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 483 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "RandomNoise", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 60540193790228, - "randomize" - ] - }, - { - "id": 278, - "type": "LTXVConcatAVLatent", - "pos": [ - 4710, - 4490 - ], - "size": [ - 280, - 100 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "video_latent", - "name": "video_latent", - "type": "LATENT", - "link": 512 - }, - { - "localized_name": "audio_latent", - "name": "audio_latent", - "type": "LATENT", - "link": 513 - } - ], - "outputs": [ - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "links": [ - 494 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "LTXVConcatAVLatent", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 279, - "type": "LTXVAudioVAELoader", - "pos": [ - 1660, - 4100 - ], - "size": [ - 430, - 110 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": 604 - } - ], - "outputs": [ - { - "localized_name": "Audio VAE", - "name": "Audio VAE", - "type": "VAE", - "links": [ - 481, - 496 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.68", - "Node name for S&R": "LTXVAudioVAELoader", - "models": [ - { - "name": "ltx-2.3-22b-dev-fp8.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.3-fp8/resolve/main/ltx-2.3-22b-dev-fp8.safetensors", - "directory": "checkpoints" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "ltx-2.3-22b-dev-fp8.safetensors" - ] - }, - { - "id": 280, - "type": "KSamplerSelect", - "pos": [ - 4700, - 4100 - ], - "size": [ - 280, - 110 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 492 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "KSamplerSelect", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 281, - "type": "ManualSigmas", - "pos": [ - 4700, - 4290 - ], - "size": [ - 280, - 110 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 493 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "ManualSigmas", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "0.85, 0.7250, 0.4219, 0.0" - ] - }, - { - "id": 282, - "type": "CFGGuider", - "pos": [ - 4700, - 3850 - ], - "size": [ - 280, - 160 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 478 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 479 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 480 - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 491 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.71", - "Node name for S&R": "CFGGuider", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1 - ] - }, - { - "id": 283, - "type": "SamplerCustomAdvanced", - "pos": [ - 3550, - 3630 - ], - "size": [ - 230, - 170 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 483 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 484 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 485 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 544 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 487 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 488 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.60", - "Node name for S&R": "SamplerCustomAdvanced", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 284, - "type": "LTXVCropGuides", - "pos": [ - 3830, - 3810 - ], - "size": [ - 250, - 120 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 475 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 476 - }, - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "link": 477 - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "links": [ - 479 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "links": [ - 480 - ] - }, - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "slot_index": 2, - "links": [] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.68", - "Node name for S&R": "LTXVCropGuides", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 285, - "type": "LoraLoaderModelOnly", - "pos": [ - 1660, - 3890 - ], - "size": [ - 430, - 140 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 520 - }, - { - "localized_name": "lora_name", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": 602 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 478, - 541, - 641 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LoraLoaderModelOnly", - "models": [ - { - "name": "ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors", - "url": "https://huggingface.co/Comfy-Org/ltx-2.3/resolve/main/split_files/loras/ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors", - "directory": "loras" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "ltx_2.3_22b_distilled_1.1_lora_dynamic_fro09_avg_rank_111_bf16.safetensors", - 0.5 - ] - }, - { - "id": 286, - "type": "ResizeImagesByLongerEdge", - "pos": [ - 2070, - 4810 - ], - "size": [ - 310, - 110 - ], - "flags": { - "collapsed": false - }, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 523 - } - ], - "outputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "links": [ - 505 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "ResizeImagesByLongerEdge", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1536 - ] - }, - { - "id": 287, - "type": "LTXVLatentUpsampler", - "pos": [ - 4250, - 3760 - ], - "size": [ - 330, - 120 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 547 - }, - { - "localized_name": "upscale_model", - "name": "upscale_model", - "type": "LATENT_UPSCALE_MODEL", - "link": 545 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 554 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 548 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LTXVLatentUpsampler", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 288, - "type": "LTXVImgToVideoInplace", - "pos": [ - 4230, - 4100 - ], - "size": [ - 300, - 180 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 552 - }, - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 515 - }, - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "link": 548 - }, - { - "localized_name": "bypass", - "name": "bypass", - "type": "BOOLEAN", - "widget": { - "name": "bypass" - }, - "link": 543 - } - ], - "outputs": [ - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "links": [ - 512 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXVImgToVideoInplace", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1, - false - ] - }, - { - "id": 289, - "type": "LTXVPreprocess", - "pos": [ - 2100, - 5010 - ], - "size": [ - 290, - 110 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 505 - } - ], - "outputs": [ - { - "localized_name": "output_image", - "name": "output_image", - "type": "IMAGE", - "links": [ - 510, - 515 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXVPreprocess", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 18 - ] - }, - { - "id": 290, - "type": "ResizeImageMaskNode", - "pos": [ - 1660, - 4810 - ], - "size": [ - 300, - 239.984375 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "input", - "name": "input", - "type": "IMAGE,MASK", - "link": 535 - }, - { - "localized_name": "width", - "name": "resize_type.width", - "type": "INT", - "widget": { - "name": "resize_type.width" - }, - "link": 558 - }, - { - "localized_name": "height", - "name": "resize_type.height", - "type": "INT", - "widget": { - "name": "resize_type.height" - }, - "link": 559 - } - ], - "outputs": [ - { - "localized_name": "resized", - "name": "resized", - "type": "IMAGE,MASK", - "links": [ - 523 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "ResizeImageMaskNode", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "scale dimensions", - 1920, - 1088, - "center", - "lanczos" - ] - }, - { - "id": 291, - "type": "KSamplerSelect", - "pos": [ - 3160, - 4040 - ], - "size": [ - 280, - 110 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 485 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "KSamplerSelect", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "euler" - ] - }, - { - "id": 292, - "type": "ComfyMathExpression", - "pos": [ - 2540, - 4830 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 18, - "mode": 0, - "inputs": [ - { - "label": "a", - "localized_name": "values.a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 560 - }, - { - "label": "b", - "localized_name": "values.b", - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": null - }, - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 561 - ] - }, - { - "localized_name": "BOOL", - "name": "BOOL", - "type": "BOOLEAN", - "links": null - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "ComfyMathExpression", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "a/2" - ] - }, - { - "id": 293, - "type": "Reroute", - "pos": [ - 3850, - 4050 - ], - "size": [ - 75, - 26 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "", - "type": "*", - "link": 557 - } - ], - "outputs": [ - { - "name": "", - "type": "VAE", - "links": [ - 552, - 553, - 554 - ] - } - ], - "properties": { - "showOutputText": false, - "horizontal": false, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - } - }, - { - "id": 294, - "type": "ComfyMathExpression", - "pos": [ - 2550, - 4890 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 20, - "mode": 0, - "inputs": [ - { - "label": "a", - "localized_name": "values.a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 562 - }, - { - "label": "b", - "localized_name": "values.b", - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": null - }, - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 563 - ] - }, - { - "localized_name": "BOOL", - "name": "BOOL", - "type": "BOOLEAN", - "links": null - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "ComfyMathExpression", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "a/2" - ] - }, - { - "id": 295, - "type": "EmptyLTXVLatentVideo", - "pos": [ - 2870, - 4940 - ], - "size": [ - 280, - 200 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 561 - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 563 - }, - { - "localized_name": "length", - "name": "length", - "type": "INT", - "widget": { - "name": "length" - }, - "link": 631 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 511 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.60", - "Node name for S&R": "EmptyLTXVLatentVideo", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 768, - 512, - 97, - 1 - ] - }, - { - "id": 296, - "type": "LTXVImgToVideoInplace", - "pos": [ - 3230, - 4810 - ], - "size": [ - 280, - 180 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 556 - }, - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 510 - }, - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "link": 511 - }, - { - "localized_name": "bypass", - "name": "bypass", - "type": "BOOLEAN", - "widget": { - "name": "bypass" - }, - "link": 542 - } - ], - "outputs": [ - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "links": [ - 497 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXVImgToVideoInplace", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 0.7, - false - ] - }, - { - "id": 297, - "type": "LTXVAudioVAEDecode", - "pos": [ - 5760, - 3970 - ], - "size": [ - 270, - 100 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 495 - }, - { - "label": "Audio VAE", - "localized_name": "audio_vae", - "name": "audio_vae", - "type": "VAE", - "link": 496 - } - ], - "outputs": [ - { - "localized_name": "Audio", - "name": "Audio", - "type": "AUDIO", - "links": [ - 534 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXVAudioVAEDecode", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 298, - "type": "ComfyMathExpression", - "pos": [ - 2540, - 5030 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 24, - "mode": 0, - "inputs": [ - { - "label": "a", - "localized_name": "values.a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 564 - }, - { - "label": "b", - "localized_name": "values.b", - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 566, - 591 - ] - }, - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 565 - ] - }, - { - "localized_name": "BOOL", - "name": "BOOL", - "type": "BOOLEAN", - "links": null - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "ComfyMathExpression", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "a" - ] - }, - { - "id": 299, - "type": "PrimitiveInt", - "pos": [ - 1190, - 4650 - ], - "size": [ - 370, - 110 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "INT", - "widget": { - "name": "value" - }, - "link": 598 - } - ], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 559, - 562 - ] - } - ], - "title": "Height", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "PrimitiveInt", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 720, - "fixed" - ] - }, - { - "id": 300, - "type": "PrimitiveInt", - "pos": [ - 1190, - 4840 - ], - "size": [ - 370, - 110 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "INT", - "widget": { - "name": "value" - }, - "link": 624 - } - ], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 564, - 629 - ] - } - ], - "title": "Frame Rate", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "PrimitiveInt", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 25, - "fixed" - ] - }, - { - "id": 301, - "type": "PrimitiveInt", - "pos": [ - 1190, - 4280 - ], - "size": [ - 370, - 110 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "INT", - "widget": { - "name": "value" - }, - "link": 599 - } - ], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 628 - ] - } - ], - "title": "Duration", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "PrimitiveInt", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 5, - "fixed" - ] - }, - { - "id": 302, - "type": "PrimitiveBoolean", - "pos": [ - 1190, - 4110 - ], - "size": [ - 370, - 100 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "BOOLEAN", - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 542, - 543 - ] - } - ], - "title": "Switch to Text to Video?", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveBoolean", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 303, - "type": "CLIPTextEncode", - "pos": [ - 2170, - 3640 - ], - "size": [ - 600, - 390 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 642 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": 638 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 526 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CLIPTextEncode", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "" - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 304, - "type": "LTXVConditioning", - "pos": [ - 2800, - 3810 - ], - "size": [ - 280, - 130 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 526 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 527 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 566 - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "links": [ - 475, - 518 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "links": [ - 476, - 519 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "LTXVConditioning", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 24 - ] - }, - { - "id": 305, - "type": "LTXVEmptyLatentAudio", - "pos": [ - 3540, - 4960 - ], - "size": [ - 280, - 170 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "localized_name": "audio_vae", - "name": "audio_vae", - "type": "VAE", - "link": 481 - }, - { - "localized_name": "frames_number", - "name": "frames_number", - "type": "INT", - "widget": { - "name": "frames_number" - }, - "link": 630 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "INT", - "widget": { - "name": "frame_rate" - }, - "link": 565 - } - ], - "outputs": [ - { - "localized_name": "Latent", - "name": "Latent", - "type": "LATENT", - "links": [ - 498 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.68", - "Node name for S&R": "LTXVEmptyLatentAudio", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 97, - 25, - 1 - ] - }, - { - "id": 306, - "type": "ManualSigmas", - "pos": [ - 3160, - 4220 - ], - "size": [ - 500, - 110 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SIGMAS", - "name": "SIGMAS", - "type": "SIGMAS", - "links": [ - 544 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "ManualSigmas", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0" - ] - }, - { - "id": 307, - "type": "LTXVSeparateAVLatent", - "pos": [ - 3820, - 3630 - ], - "size": [ - 250, - 100 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "localized_name": "av_latent", - "name": "av_latent", - "type": "LATENT", - "link": 488 - } - ], - "outputs": [ - { - "localized_name": "video_latent", - "name": "video_latent", - "type": "LATENT", - "links": [ - 477, - 547 - ] - }, - { - "localized_name": "audio_latent", - "name": "audio_latent", - "type": "LATENT", - "links": [ - 513 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "LTXVSeparateAVLatent", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 308, - "type": "SamplerCustomAdvanced", - "pos": [ - 5050, - 3650 - ], - "size": [ - 230, - 170 - ], - "flags": {}, - "order": 32, - "mode": 0, - "inputs": [ - { - "localized_name": "noise", - "name": "noise", - "type": "NOISE", - "link": 490 - }, - { - "localized_name": "guider", - "name": "guider", - "type": "GUIDER", - "link": 491 - }, - { - "localized_name": "sampler", - "name": "sampler", - "type": "SAMPLER", - "link": 492 - }, - { - "localized_name": "sigmas", - "name": "sigmas", - "type": "SIGMAS", - "link": 493 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 494 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "LATENT", - "links": [ - 578 - ] - }, - { - "localized_name": "denoised_output", - "name": "denoised_output", - "type": "LATENT", - "links": [] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "SamplerCustomAdvanced", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 309, - "type": "LTXVSeparateAVLatent", - "pos": [ - 5390, - 3650 - ], - "size": [ - 230, - 100 - ], - "flags": {}, - "order": 33, - "mode": 0, - "inputs": [ - { - "localized_name": "av_latent", - "name": "av_latent", - "type": "LATENT", - "link": 578 - } - ], - "outputs": [ - { - "localized_name": "video_latent", - "name": "video_latent", - "type": "LATENT", - "links": [ - 539 - ] - }, - { - "localized_name": "audio_latent", - "name": "audio_latent", - "type": "LATENT", - "links": [ - 495 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "LTXVSeparateAVLatent", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 310, - "type": "CreateVideo", - "pos": [ - 6050, - 4490 - ], - "size": [ - 280, - 130 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 538 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 534 - }, - { - "localized_name": "fps", - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 591 - } - ], - "outputs": [ - { - "localized_name": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 536 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "CreateVideo", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 24 - ] - }, - { - "id": 311, - "type": "LatentUpscaleModelLoader", - "pos": [ - 1670, - 4550 - ], - "size": [ - 400, - 110 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "localized_name": "model_name", - "name": "model_name", - "type": "COMBO", - "widget": { - "name": "model_name" - }, - "link": 607 - } - ], - "outputs": [ - { - "localized_name": "LATENT_UPSCALE_MODEL", - "name": "LATENT_UPSCALE_MODEL", - "type": "LATENT_UPSCALE_MODEL", - "links": [ - 545 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LatentUpscaleModelLoader", - "models": [ - { - "name": "ltx-2.3-spatial-upscaler-x2-1.1.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.3/resolve/main/ltx-2.3-spatial-upscaler-x2-1.1.safetensors", - "directory": "latent_upscale_models" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "ltx-2.3-spatial-upscaler-x2-1.1.safetensors" - ] - }, - { - "id": 312, - "type": "PrimitiveInt", - "pos": [ - 1190, - 4470 - ], - "size": [ - 370, - 110 - ], - "flags": {}, - "order": 36, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "INT", - "widget": { - "name": "value" - }, - "link": 597 - } - ], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 558, - 560 - ] - } - ], - "title": "Width", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "PrimitiveInt", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1280, - "fixed" - ] - }, - { - "id": 313, - "type": "CLIPTextEncode", - "pos": [ - 2180, - 4120 - ], - "size": [ - 600, - 170 - ], - "flags": {}, - "order": 37, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 627 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 527 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CLIPTextEncode", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "pc game, console game, video game, cartoon, childish, ugly" - ], - "color": "#323", - "bgcolor": "#535" - }, - { - "id": 314, - "type": "CFGGuider", - "pos": [ - 3160, - 3810 - ], - "size": [ - 280, - 160 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 541 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 518 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 519 - } - ], - "outputs": [ - { - "localized_name": "GUIDER", - "name": "GUIDER", - "type": "GUIDER", - "links": [ - 484 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "CFGGuider", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1 - ] - }, - { - "id": 315, - "type": "VAEDecodeTiled", - "pos": [ - 5750, - 3610 - ], - "size": [ - 280, - 200 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 539 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 553 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 538 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 768, - 64, - 4096, - 4 - ] - }, - { - "id": 316, - "type": "CheckpointLoaderSimple", - "pos": [ - 1660, - 3660 - ], - "size": [ - 430, - 160 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": 601 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 520 - ] - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "links": [ - 556, - 557 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CheckpointLoaderSimple", - "models": [ - { - "name": "ltx-2.3-22b-dev-fp8.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.3-fp8/resolve/main/ltx-2.3-22b-dev-fp8.safetensors", - "directory": "checkpoints" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "ltx-2.3-22b-dev-fp8.safetensors" - ] - }, - { - "id": 317, - "type": "LTXAVTextEncoderLoader", - "pos": [ - 1660, - 4280 - ], - "size": [ - 430, - 170 - ], - "flags": {}, - "order": 41, - "mode": 0, - "showAdvanced": false, - "inputs": [ - { - "localized_name": "text_encoder", - "name": "text_encoder", - "type": "COMBO", - "widget": { - "name": "text_encoder" - }, - "link": 606 - }, - { - "localized_name": "ckpt_name", - "name": "ckpt_name", - "type": "COMBO", - "widget": { - "name": "ckpt_name" - }, - "link": 605 - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [ - 627, - 642, - 643 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXAVTextEncoderLoader", - "models": [ - { - "name": "ltx-2.3-22b-dev-fp8.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.3-fp8/resolve/main/ltx-2.3-22b-dev-fp8.safetensors", - "directory": "checkpoints" - }, - { - "name": "gemma_3_12B_it_fp4_mixed.safetensors", - "url": "https://huggingface.co/Comfy-Org/ltx-2/resolve/main/split_files/text_encoders/gemma_3_12B_it_fp4_mixed.safetensors", - "directory": "text_encoders" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "gemma_3_12B_it_fp4_mixed.safetensors", - "ltx-2.3-22b-dev-fp8.safetensors", - "default" - ] - }, - { - "id": 318, - "type": "LTXVConcatAVLatent", - "pos": [ - 3860, - 4830 - ], - "size": [ - 240, - 100 - ], - "flags": {}, - "order": 42, - "mode": 0, - "inputs": [ - { - "localized_name": "video_latent", - "name": "video_latent", - "type": "LATENT", - "link": 497 - }, - { - "localized_name": "audio_latent", - "name": "audio_latent", - "type": "LATENT", - "link": 498 - } - ], - "outputs": [ - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "links": [ - 487 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.7.0", - "Node name for S&R": "LTXVConcatAVLatent", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 319, - "type": "PrimitiveStringMultiline", - "pos": [ - 1190, - 3680 - ], - "size": [ - 370, - 350 - ], - "flags": {}, - "order": 43, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "STRING", - "widget": { - "name": "value" - }, - "link": 595 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [ - 639, - 640 - ] - } - ], - "title": "Prompt", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "PrimitiveStringMultiline", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "Egyptian royal in blue-and-gold headdress and high collar, white dress with golden embroidery and armbands, desert, robot soldiers in formation left and right. She walks steadily forward, head held level and gaze fixed ahead—no dipping or lowering of the head. The camera performs a single, smooth push-in only: starting in a wider shot of her, the robots, and the desert, it moves steadily forward until she is in a medium or medium-close frame, then holds. She stops, posture and head still upright, and says: ā€œThe old gods are silent. I am not.ā€ Robot soldiers shift or march in place; sand and fabric move with the wind. No pull-back; the only camera move is the continuous push-in." - ] - }, - { - "id": 323, - "type": "ComfyMathExpression", - "pos": [ - 1210, - 5040 - ], - "size": [ - 225, - 8 - ], - "flags": { - "collapsed": true - }, - "order": 44, - "mode": 0, - "inputs": [ - { - "label": "a", - "localized_name": "values.a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 628 - }, - { - "label": "b", - "localized_name": "values.b", - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": 629 - }, - { - "label": "c", - "localized_name": "values.c", - "name": "values.c", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": null - }, - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 630, - 631 - ] - }, - { - "localized_name": "BOOL", - "name": "BOOL", - "type": "BOOLEAN", - "links": null - } - ], - "title": "Math Expression (length)", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.18.1", - "Node name for S&R": "ComfyMathExpression", - "ue_properties": { - "widget_ue_connectable": {}, - "input_ue_unconnectable": {}, - "version": "7.7" - } - }, - "widgets_values": [ - "a * b + 1" - ] - }, - { - "id": 324, - "type": "LoraLoader", - "pos": [ - 1200, - 2870 - ], - "size": [ - 380, - 230 - ], - "flags": {}, - "order": 45, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 641 - }, - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 643 - }, - { - "localized_name": "lora_name", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": 645 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": null - }, - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "links": [ - 634 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "LoraLoader", - "models": [ - { - "name": "gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors", - "url": "https://huggingface.co/Comfy-Org/ltx-2/resolve/main/split_files/loras/gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors", - "directory": "loras" - } - ] - }, - "widgets_values": [ - "gemma-3-12b-it-abliterated_lora_rank64_bf16.safetensors", - 1, - 1 - ] - }, - { - "id": 325, - "type": "TextGenerateLTX2Prompt", - "pos": [ - 1630, - 2870 - ], - "size": [ - 400, - 558.65625 - ], - "flags": { - "collapsed": false - }, - "order": 46, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 634 - }, - { - "localized_name": "image", - "name": "image", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "video", - "name": "video", - "shape": 7, - "type": "IMAGE", - "link": null - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "prompt", - "name": "prompt", - "type": "STRING", - "widget": { - "name": "prompt" - }, - "link": 639 - } - ], - "outputs": [ - { - "localized_name": "generated_text", - "name": "generated_text", - "type": "STRING", - "links": [ - 636 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "TextGenerateLTX2Prompt" - }, - "widgets_values": [ - "", - 2048, - "on", - 0.7, - 64, - 0.95, - 0.05, - 1.05, - 0, - 0, - false, - true - ] - }, - { - "id": 326, - "type": "PreviewAny", - "pos": [ - 2470, - 2890 - ], - "size": [ - 510, - 360 - ], - "flags": {}, - "order": 47, - "mode": 0, - "inputs": [ - { - "localized_name": "source", - "name": "source", - "type": "*", - "link": 635 - } - ], - "outputs": [ - { - "localized_name": "STRING", - "name": "STRING", - "type": "STRING", - "links": [] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.16.3", - "Node name for S&R": "PreviewAny" - }, - "widgets_values": [ - null, - null, - null - ] - }, - { - "id": 327, - "type": "ComfySwitchNode", - "pos": [ - 2160, - 3280 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 48, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "STRING", - "link": 640 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "STRING", - "link": 636 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 637 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "STRING", - "links": [ - 635, - 638 - ] - } - ], - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.22.0", - "Node name for S&R": "ComfySwitchNode" - }, - "widgets_values": [ - false - ] - }, - { - "id": 328, - "type": "PrimitiveBoolean", - "pos": [ - 1200, - 3350 - ], - "size": [ - 270, - 100 - ], - "flags": {}, - "order": 49, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "BOOLEAN", - "widget": { - "name": "value" - }, - "link": 644 - } - ], - "outputs": [ - { - "localized_name": "BOOLEAN", - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 637 - ] - } - ], - "title": "Boolean (Enable Prompt Enhance)", - "properties": { - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "cnr_id": "comfy-core", - "ver": "0.22.0", - "Node name for S&R": "PrimitiveBoolean" - }, - "widgets_values": [ - true - ] - } - ], - "groups": [ - { - "id": 1, - "title": "Model", - "bounding": [ - 1630, - 3550, - 480, - 1140 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 2, - "title": "Generate Low Resolution", - "bounding": [ - 3130, - 3550, - 1000, - 1140 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 3, - "title": "Prompt", - "bounding": [ - 2140, - 3550, - 960, - 1140 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 6, - "title": "Generate High Resolution", - "bounding": [ - 4670, - 3550, - 990, - 1130 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 7, - "title": "Latent Upscale", - "bounding": [ - 4160, - 3550, - 480, - 1130 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 19, - "title": "Video Settings", - "bounding": [ - 1150, - 3550, - 460, - 1610 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 20, - "title": "Image Preprocess", - "bounding": [ - 1630, - 4720, - 830, - 440 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 21, - "title": "Empty Latent", - "bounding": [ - 2820, - 4720, - 1310, - 450 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 22, - "title": "Number conversion", - "bounding": [ - 2480, - 4720, - 310, - 440 - ], - "color": "#3f789e", - "flags": {} - }, - { - "id": 26, - "title": "Prompt Enhancement", - "bounding": [ - 1160, - 2790, - 2010, - 720 - ], - "color": "#3f789e", - "flags": {} - } - ], - "links": [ - { - "id": 512, - "origin_id": 288, - "origin_slot": 0, - "target_id": 278, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 513, - "origin_id": 307, - "origin_slot": 1, - "target_id": 278, - "target_slot": 1, - "type": "LATENT" - }, - { - "id": 478, - "origin_id": 285, - "origin_slot": 0, - "target_id": 282, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 479, - "origin_id": 284, - "origin_slot": 0, - "target_id": 282, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 480, - "origin_id": 284, - "origin_slot": 1, - "target_id": 282, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 541, - "origin_id": 285, - "origin_slot": 0, - "target_id": 314, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 518, - "origin_id": 304, - "origin_slot": 0, - "target_id": 314, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 519, - "origin_id": 304, - "origin_slot": 1, - "target_id": 314, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 483, - "origin_id": 277, - "origin_slot": 0, - "target_id": 283, - "target_slot": 0, - "type": "NOISE" - }, - { - "id": 484, - "origin_id": 314, - "origin_slot": 0, - "target_id": 283, - "target_slot": 1, - "type": "GUIDER" - }, - { - "id": 485, - "origin_id": 291, - "origin_slot": 0, - "target_id": 283, - "target_slot": 2, - "type": "SAMPLER" - }, - { - "id": 544, - "origin_id": 306, - "origin_slot": 0, - "target_id": 283, - "target_slot": 3, - "type": "SIGMAS" - }, - { - "id": 487, - "origin_id": 318, - "origin_slot": 0, - "target_id": 283, - "target_slot": 4, - "type": "LATENT" - }, - { - "id": 475, - "origin_id": 304, - "origin_slot": 0, - "target_id": 284, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 476, - "origin_id": 304, - "origin_slot": 1, - "target_id": 284, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 477, - "origin_id": 307, - "origin_slot": 0, - "target_id": 284, - "target_slot": 2, - "type": "LATENT" - }, - { - "id": 520, - "origin_id": 316, - "origin_slot": 0, - "target_id": 285, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 523, - "origin_id": 290, - "origin_slot": 0, - "target_id": 286, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 547, - "origin_id": 307, - "origin_slot": 0, - "target_id": 287, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 545, - "origin_id": 311, - "origin_slot": 0, - "target_id": 287, - "target_slot": 1, - "type": "LATENT_UPSCALE_MODEL" - }, - { - "id": 554, - "origin_id": 293, - "origin_slot": 0, - "target_id": 287, - "target_slot": 2, - "type": "VAE" - }, - { - "id": 552, - "origin_id": 293, - "origin_slot": 0, - "target_id": 288, - "target_slot": 0, - "type": "VAE" - }, - { - "id": 515, - "origin_id": 289, - "origin_slot": 0, - "target_id": 288, - "target_slot": 1, - "type": "IMAGE" - }, - { - "id": 548, - "origin_id": 287, - "origin_slot": 0, - "target_id": 288, - "target_slot": 2, - "type": "LATENT" - }, - { - "id": 543, - "origin_id": 302, - "origin_slot": 0, - "target_id": 288, - "target_slot": 3, - "type": "BOOLEAN" - }, - { - "id": 505, - "origin_id": 286, - "origin_slot": 0, - "target_id": 289, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 558, - "origin_id": 312, - "origin_slot": 0, - "target_id": 290, - "target_slot": 1, - "type": "INT" - }, - { - "id": 559, - "origin_id": 299, - "origin_slot": 0, - "target_id": 290, - "target_slot": 2, - "type": "INT" - }, - { - "id": 560, - "origin_id": 312, - "origin_slot": 0, - "target_id": 292, - "target_slot": 0, - "type": "INT" - }, - { - "id": 557, - "origin_id": 316, - "origin_slot": 2, - "target_id": 293, - "target_slot": 0, - "type": "VAE" - }, - { - "id": 562, - "origin_id": 299, - "origin_slot": 0, - "target_id": 294, - "target_slot": 0, - "type": "INT" - }, - { - "id": 561, - "origin_id": 292, - "origin_slot": 1, - "target_id": 295, - "target_slot": 0, - "type": "INT" - }, - { - "id": 563, - "origin_id": 294, - "origin_slot": 1, - "target_id": 295, - "target_slot": 1, - "type": "INT" - }, - { - "id": 556, - "origin_id": 316, - "origin_slot": 2, - "target_id": 296, - "target_slot": 0, - "type": "VAE" - }, - { - "id": 510, - "origin_id": 289, - "origin_slot": 0, - "target_id": 296, - "target_slot": 1, - "type": "IMAGE" - }, - { - "id": 511, - "origin_id": 295, - "origin_slot": 0, - "target_id": 296, - "target_slot": 2, - "type": "LATENT" - }, - { - "id": 542, - "origin_id": 302, - "origin_slot": 0, - "target_id": 296, - "target_slot": 3, - "type": "BOOLEAN" - }, - { - "id": 495, - "origin_id": 309, - "origin_slot": 1, - "target_id": 297, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 496, - "origin_id": 279, - "origin_slot": 0, - "target_id": 297, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 564, - "origin_id": 300, - "origin_slot": 0, - "target_id": 298, - "target_slot": 0, - "type": "INT" - }, - { - "id": 526, - "origin_id": 303, - "origin_slot": 0, - "target_id": 304, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 527, - "origin_id": 313, - "origin_slot": 0, - "target_id": 304, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 566, - "origin_id": 298, - "origin_slot": 0, - "target_id": 304, - "target_slot": 2, - "type": "FLOAT" - }, - { - "id": 497, - "origin_id": 296, - "origin_slot": 0, - "target_id": 318, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 498, - "origin_id": 305, - "origin_slot": 0, - "target_id": 318, - "target_slot": 1, - "type": "LATENT" - }, - { - "id": 481, - "origin_id": 279, - "origin_slot": 0, - "target_id": 305, - "target_slot": 0, - "type": "VAE" - }, - { - "id": 565, - "origin_id": 298, - "origin_slot": 1, - "target_id": 305, - "target_slot": 2, - "type": "INT" - }, - { - "id": 488, - "origin_id": 283, - "origin_slot": 0, - "target_id": 307, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 490, - "origin_id": 276, - "origin_slot": 0, - "target_id": 308, - "target_slot": 0, - "type": "NOISE" - }, - { - "id": 491, - "origin_id": 282, - "origin_slot": 0, - "target_id": 308, - "target_slot": 1, - "type": "GUIDER" - }, - { - "id": 492, - "origin_id": 280, - "origin_slot": 0, - "target_id": 308, - "target_slot": 2, - "type": "SAMPLER" - }, - { - "id": 493, - "origin_id": 281, - "origin_slot": 0, - "target_id": 308, - "target_slot": 3, - "type": "SIGMAS" - }, - { - "id": 494, - "origin_id": 278, - "origin_slot": 0, - "target_id": 308, - "target_slot": 4, - "type": "LATENT" - }, - { - "id": 578, - "origin_id": 308, - "origin_slot": 0, - "target_id": 309, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 539, - "origin_id": 309, - "origin_slot": 0, - "target_id": 315, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 553, - "origin_id": 293, - "origin_slot": 0, - "target_id": 315, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 538, - "origin_id": 315, - "origin_slot": 0, - "target_id": 310, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 534, - "origin_id": 297, - "origin_slot": 0, - "target_id": 310, - "target_slot": 1, - "type": "AUDIO" - }, - { - "id": 591, - "origin_id": 298, - "origin_slot": 0, - "target_id": 310, - "target_slot": 2, - "type": "FLOAT" - }, - { - "id": 535, - "origin_id": -10, - "origin_slot": 0, - "target_id": 290, - "target_slot": 0, - "type": "IMAGE,MASK" - }, - { - "id": 536, - "origin_id": 310, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "VIDEO" - }, - { - "id": 595, - "origin_id": -10, - "origin_slot": 1, - "target_id": 319, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 597, - "origin_id": -10, - "origin_slot": 3, - "target_id": 312, - "target_slot": 0, - "type": "INT" - }, - { - "id": 598, - "origin_id": -10, - "origin_slot": 4, - "target_id": 299, - "target_slot": 0, - "type": "INT" - }, - { - "id": 599, - "origin_id": -10, - "origin_slot": 5, - "target_id": 301, - "target_slot": 0, - "type": "INT" - }, - { - "id": 601, - "origin_id": -10, - "origin_slot": 8, - "target_id": 316, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 602, - "origin_id": -10, - "origin_slot": 9, - "target_id": 285, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 604, - "origin_id": -10, - "origin_slot": 8, - "target_id": 279, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 605, - "origin_id": -10, - "origin_slot": 8, - "target_id": 317, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 606, - "origin_id": -10, - "origin_slot": 10, - "target_id": 317, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 607, - "origin_id": -10, - "origin_slot": 11, - "target_id": 311, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 624, - "origin_id": -10, - "origin_slot": 6, - "target_id": 300, - "target_slot": 0, - "type": "INT" - }, - { - "id": 627, - "origin_id": 317, - "origin_slot": 0, - "target_id": 313, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 628, - "origin_id": 301, - "origin_slot": 0, - "target_id": 323, - "target_slot": 0, - "type": "INT" - }, - { - "id": 629, - "origin_id": 300, - "origin_slot": 0, - "target_id": 323, - "target_slot": 1, - "type": "INT" - }, - { - "id": 630, - "origin_id": 323, - "origin_slot": 1, - "target_id": 305, - "target_slot": 1, - "type": "INT" - }, - { - "id": 631, - "origin_id": 323, - "origin_slot": 1, - "target_id": 295, - "target_slot": 2, - "type": "INT" - }, - { - "id": 634, - "origin_id": 324, - "origin_slot": 1, - "target_id": 325, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 635, - "origin_id": 327, - "origin_slot": 0, - "target_id": 326, - "target_slot": 0, - "type": "*" - }, - { - "id": 636, - "origin_id": 325, - "origin_slot": 0, - "target_id": 327, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 637, - "origin_id": 328, - "origin_slot": 0, - "target_id": 327, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 638, - "origin_id": 327, - "origin_slot": 0, - "target_id": 303, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 639, - "origin_id": 319, - "origin_slot": 0, - "target_id": 325, - "target_slot": 4, - "type": "STRING" - }, - { - "id": 640, - "origin_id": 319, - "origin_slot": 0, - "target_id": 327, - "target_slot": 0, - "type": "STRING" - }, - { - "id": 641, - "origin_id": 285, - "origin_slot": 0, - "target_id": 324, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 642, - "origin_id": 317, - "origin_slot": 0, - "target_id": 303, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 643, - "origin_id": 317, - "origin_slot": 0, - "target_id": 324, - "target_slot": 1, - "type": "CLIP" - }, - { - "id": 644, - "origin_id": -10, - "origin_slot": 2, - "target_id": 328, - "target_slot": 0, - "type": "BOOLEAN" - }, - { - "id": 645, - "origin_id": -10, - "origin_slot": 12, - "target_id": 324, - "target_slot": 2, - "type": "COMBO" - }, - { - "id": 646, - "origin_id": -10, - "origin_slot": 7, - "target_id": 277, - "target_slot": 0, - "type": "INT" - } - ], - "extra": { - "workflowRendererVersion": "Vue-corrected", - "ue_links": [] - } - } - ] - }, - "config": {}, - "extra": { - "ds": { - "scale": 0.6483464662132057, - "offset": [ - 1077.2415814613244, - -3058.8785664510397 - ] - }, - "frontendVersion": "1.43.18", - "workflowRendererVersion": "Vue-corrected", - "prompt": { - "1": { - "inputs": { - "ckpt_name": "ltx-av-step-1751000_vocoder_24K.safetensors" - }, - "class_type": "CheckpointLoaderSimple", - "_meta": { - "title": "Load Checkpoint" - } - }, - "2": { - "inputs": { - "gemma_path": "gemma-3-12b-it-qat-q4_0-unquantized_readout_proj/model/model.safetensors", - "ltxv_path": "ltx-av-step-1751000_vocoder_24K.safetensors", - "max_length": 1024 - }, - "class_type": "LTXVGemmaCLIPModelLoader", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ Gemma 3 Model Loader" - } - }, - "3": { - "inputs": { - "text": "", - "clip": [ - "2", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Prompt)" - } - }, - "4": { - "inputs": { - "text": "blurry, low quality, still frame, frames, watermark, overlay, titles, has blurbox, has subtitles", - "clip": [ - "2", - 0 - ] - }, - "class_type": "CLIPTextEncode", - "_meta": { - "title": "CLIP Text Encode (Prompt)" - } - }, - "8": { - "inputs": { - "sampler_name": "euler" - }, - "class_type": "KSamplerSelect", - "_meta": { - "title": "KSamplerSelect" - } - }, - "9": { - "inputs": { - "steps": 20, - "max_shift": 2.05, - "base_shift": 0.95, - "stretch": true, - "terminal": 0.1, - "latent": [ - "28", - 0 - ] - }, - "class_type": "LTXVScheduler", - "_meta": { - "title": "LTXVScheduler" - } - }, - "11": { - "inputs": { - "noise_seed": 10 - }, - "class_type": "RandomNoise", - "_meta": { - "title": "RandomNoise" - } - }, - "12": { - "inputs": { - "samples": [ - "29", - 0 - ], - "vae": [ - "1", - 2 - ] - }, - "class_type": "VAEDecode", - "_meta": { - "title": "VAE Decode" - } - }, - "13": { - "inputs": { - "ckpt_name": "ltx-av-step-1751000_vocoder_24K.safetensors" - }, - "class_type": "LTXVAudioVAELoader", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ LTXV Audio VAE Loader" - } - }, - "14": { - "inputs": { - "samples": [ - "29", - 1 - ], - "audio_vae": [ - "13", - 0 - ] - }, - "class_type": "LTXVAudioVAEDecode", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ LTXV Audio VAE Decode" - } - }, - "15": { - "inputs": { - "frame_rate": [ - "23", - 0 - ], - "loop_count": 0, - "filename_prefix": "AnimateDiff", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 19, - "save_metadata": true, - "trim_to_audio": false, - "pingpong": false, - "save_output": true, - "images": [ - "12", - 0 - ], - "audio": [ - "14", - 0 - ] - }, - "class_type": "VHS_VideoCombine", - "_meta": { - "title": "Video Combine šŸŽ„šŸ…„šŸ…—šŸ…¢" - } - }, - "17": { - "inputs": { - "skip_blocks": "29", - "model": [ - "28", - 1 - ], - "positive": [ - "22", - 0 - ], - "negative": [ - "22", - 1 - ], - "parameters": [ - "18", - 0 - ] - }, - "class_type": "MultimodalGuider", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ Multimodal Guider" - } - }, - "18": { - "inputs": { - "modality": "VIDEO", - "cfg": 3, - "stg": 0, - "rescale": 0, - "modality_scale": 3, - "parameters": [ - "19", - 0 - ] - }, - "class_type": "GuiderParameters", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ Guider Parameters" - } - }, - "19": { - "inputs": { - "modality": "AUDIO", - "cfg": 7, - "stg": 0, - "rescale": 0, - "modality_scale": 3 - }, - "class_type": "GuiderParameters", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ Guider Parameters" - } - }, - "21": { - "inputs": { - "audioUI": "", - "audio": [ - "14", - 0 - ] - }, - "class_type": "PreviewAudio", - "_meta": { - "title": "PreviewAudio" - } - }, - "22": { - "inputs": { - "frame_rate": [ - "23", - 0 - ], - "positive": [ - "3", - 0 - ], - "negative": [ - "4", - 0 - ] - }, - "class_type": "LTXVConditioning", - "_meta": { - "title": "LTXVConditioning" - } - }, - "23": { - "inputs": { - "value": 25 - }, - "class_type": "FloatConstant", - "_meta": { - "title": "Float Constant" - } - }, - "26": { - "inputs": { - "frames_number": [ - "27", - 0 - ], - "frame_rate": [ - "42", - 0 - ], - "batch_size": 1 - }, - "class_type": "LTXVEmptyLatentAudio", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ LTXV Empty Latent Audio" - } - }, - "27": { - "inputs": { - "value": 105 - }, - "class_type": "INTConstant", - "_meta": { - "title": "INT Constant" - } - }, - "28": { - "inputs": { - "video_latent": [ - "43", - 0 - ], - "audio_latent": [ - "26", - 0 - ], - "model": [ - "44", - 0 - ] - }, - "class_type": "LTXVConcatAVLatent", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ LTXV Concat AV Latent" - } - }, - "29": { - "inputs": { - "av_latent": [ - "41", - 0 - ], - "model": [ - "28", - 1 - ] - }, - "class_type": "LTXVSeparateAVLatent", - "_meta": { - "title": "šŸ…›šŸ…£šŸ…§ LTXV Separate AV Latent" - } - }, - "41": { - "inputs": { - "noise": [ - "11", - 0 - ], - "guider": [ - "17", - 0 - ], - "sampler": [ - "8", - 0 - ], - "sigmas": [ - "9", - 0 - ], - "latent_image": [ - "28", - 0 - ] - }, - "class_type": "SamplerCustomAdvanced", - "_meta": { - "title": "SamplerCustomAdvanced" - } - }, - "42": { - "inputs": { - "a": [ - "23", - 0 - ] - }, - "class_type": "CM_FloatToInt", - "_meta": { - "title": "FloatToInt" - } - }, - "43": { - "inputs": { - "width": 768, - "height": 512, - "length": [ - "27", - 0 - ], - "batch_size": 1 - }, - "class_type": "EmptyLTXVLatentVideo", - "_meta": { - "title": "EmptyLTXVLatentVideo" - } - }, - "44": { - "inputs": { - "torch_compile": true, - "disable_backup": false, - "model": [ - "1", - 0 - ] - }, - "class_type": "LTXVSequenceParallelMultiGPUPatcher", - "_meta": { - "title": "LTXVSequenceParallelMultiGPUPatcher" - } - }, - "45": { - "inputs": { - "frame_idx": 0, - "strength": 1 - }, - "class_type": "LTXVAddGuide", - "_meta": { - "title": "LTXVAddGuide" - } - } - }, - "comfy_fork_version": "feature/av_inference@a6994ed1", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "ue_links": [] - }, - "version": 0.4 -} \ No newline at end of file diff --git a/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_wan2_2_14B_i2v.json b/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_wan2_2_14B_i2v.json deleted file mode 100644 index 50a159c8b8..0000000000 --- a/src/renderer/extensions/firstRunTour/__fixtures__/templates/video_wan2_2_14B_i2v.json +++ /dev/null @@ -1,3154 +0,0 @@ -{ - "id": "ec7da562-7e21-4dac-a0d2-f4441e1efd3b", - "revision": 0, - "last_node_id": 164, - "last_link_id": 292, - "nodes": [ - { - "id": 105, - "type": "MarkdownNote", - "pos": [ - -560, - 400 - ], - "size": [ - 480, - 260 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "VRAM Usage", - "properties": { - "ue_properties": { - "version": "7.1", - "widget_ue_connectable": {}, - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "## GPU:RTX4090D 24GB\n\n| Model | Size |VRAM Usage | 1st Generation | 2nd Generation |\n|---------------------|-------|-----------|---------------|-----------------|\n| fp8_scaled |640*640| 84% | ā‰ˆ 536s | ā‰ˆ 513s |\n| fp8_scaled + 4steps LoRA | 640*640 | 83% | ā‰ˆ 97s | ā‰ˆ 71s |" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 66, - "type": "MarkdownNote", - "pos": [ - -560.0000843011317, - -420.00007365412586 - ], - "size": [ - 480, - 760 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "[Tutorial](https://docs.comfy.org/tutorials/video/wan/wan2_2\n)\n\n**Diffusion Model**\n- [wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors)\n- [wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors)\n\n**LoRA**\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors)\n- [wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors)\n\n**VAE**\n- [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors)\n\n**Text Encoder** \n- [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)\n\n\nFile save location\n\n```\nComfyUI/\nā”œā”€ā”€ā”€šŸ“‚ models/\n│ ā”œā”€ā”€ā”€šŸ“‚ diffusion_models/\n│ │ ā”œā”€ā”€ā”€ wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors\n│ │ └─── wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors\n│ ā”œā”€ā”€ā”€šŸ“‚ loras/\n│ │ ā”œā”€ā”€ā”€ wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ │ └─── wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\n│ ā”œā”€ā”€ā”€šŸ“‚ text_encoders/\n│ │ └─── umt5_xxl_fp8_e4m3fn_scaled.safetensors \n│ ā””ā”€ā”€ā”€šŸ“‚ vae/\n│ └── wan_2.1_vae.safetensors\n```\n" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 97, - "type": "LoadImage", - "pos": [ - -40.000219828513536, - -420.00007365412586 - ], - "size": [ - 430, - 490 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 238 - ] - }, - { - "name": "MASK", - "type": "MASK", - "slot_index": 1, - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "LoadImage", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "video_wan2_2_14B_i2v_input_image.jpg", - "image" - ] - }, - { - "id": 108, - "type": "SaveVideo", - "pos": [ - 1009.9993749030441, - -420.00007365412586 - ], - "size": [ - 890, - 990 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 239 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.49", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "Node name for S&R": "SaveVideo", - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "video/Wan2.2_i2v", - "auto", - "auto" - ] - }, - { - "id": 130, - "type": "MarkdownNote", - "pos": [ - 740, - -610 - ], - "size": [ - 230, - 120 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Note", - "properties": { - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "Click to open the [subgraph](https://docs.comfy.org/interface/features/subgraph) šŸ‘‡" - ], - "color": "#222", - "bgcolor": "#000" - }, - { - "id": 129, - "type": "84e2cf3f-de93-40ef-ab22-b9375296917b", - "pos": [ - 430.00002728559, - -420.00002121286985 - ], - "size": [ - 540, - 690 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "start_image", - "type": "IMAGE", - "link": 238 - }, - { - "label": "prompt", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": null - }, - { - "label": "duration", - "name": "value_1", - "type": "FLOAT", - "widget": { - "name": "value_1" - }, - "link": null - }, - { - "label": "high_noise_model", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": null - }, - { - "label": "high_noise_lightning_lora", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": null - }, - { - "label": "low_noise_model", - "name": "unet_name_1", - "type": "COMBO", - "widget": { - "name": "unet_name_1" - }, - "link": null - }, - { - "label": "low_noise_lightning_lora", - "name": "lora_name_1", - "type": "COMBO", - "widget": { - "name": "lora_name_1" - }, - "link": null - }, - { - "label": "enable_turbo_mode", - "name": "value", - "type": "BOOLEAN", - "widget": { - "name": "value" - }, - "link": null - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 239 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "93", - "text" - ], - [ - "98", - "width" - ], - [ - "98", - "height" - ], - [ - "161", - "value" - ], - [ - "86", - "noise_seed" - ], - [ - "95", - "unet_name" - ], - [ - "101", - "lora_name" - ], - [ - "96", - "unet_name" - ], - [ - "102", - "lora_name" - ], - [ - "84", - "clip_name" - ], - [ - "90", - "vae_name" - ], - [ - "131", - "value" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.13.0", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": { - "text": true, - "unet_name": true, - "unet_name_1": true, - "lora_name": true, - "lora_name_1": true, - "value": true - }, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - } - ], - "links": [ - [ - 238, - 97, - 0, - 129, - 0, - "IMAGE" - ], - [ - 239, - 129, - 0, - 108, - 0, - "VIDEO" - ] - ], - "groups": [], - "definitions": { - "subgraphs": [ - { - "id": "84e2cf3f-de93-40ef-ab22-b9375296917b", - "version": 1, - "state": { - "lastGroupId": 19, - "lastNodeId": 164, - "lastLinkId": 292, - "lastRerouteId": 0 - }, - "revision": 0, - "config": {}, - "name": "Image to Video (Wan2.2)", - "inputNode": { - "id": -10, - "bounding": [ - -1070, - 70, - 182.60546875, - 300 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 3190, - 180, - 120, - 60 - ] - }, - "inputs": [ - { - "id": "32a9d9ec-7fc3-4759-87ae-2363c47f7b9c", - "name": "start_image", - "type": "IMAGE", - "linkIds": [ - 186 - ], - "localized_name": "start_image", - "shape": 7, - "pos": [ - -907.39453125, - 90 - ] - }, - { - "id": "779b5775-a4cc-4b74-b57e-7a70b050277d", - "name": "text", - "type": "STRING", - "linkIds": [ - 243 - ], - "label": "prompt", - "pos": [ - -907.39453125, - 110 - ] - }, - { - "id": "7649bdd7-4e34-464c-958b-6ae0a4effcbe", - "name": "width", - "type": "INT", - "linkIds": [ - 239 - ], - "pos": [ - -907.39453125, - 130 - ] - }, - { - "id": "f514d9fb-240b-4eee-87ff-3fcc76bb893a", - "name": "height", - "type": "INT", - "linkIds": [ - 240 - ], - "pos": [ - -907.39453125, - 150 - ] - }, - { - "id": "1eba617a-f78d-4cca-aaad-a6f2ba2a96b5", - "name": "value_1", - "type": "FLOAT", - "linkIds": [ - 282 - ], - "label": "duration", - "pos": [ - -907.39453125, - 170 - ] - }, - { - "id": "f55a4b65-02e7-496f-879f-3819f8ba2a41", - "name": "noise_seed", - "type": "INT", - "linkIds": [ - 285 - ], - "pos": [ - -907.39453125, - 190 - ] - }, - { - "id": "e6d9ca2c-a630-4e3d-a60f-5553e5c72ce3", - "name": "unet_name", - "type": "COMBO", - "linkIds": [ - 286 - ], - "label": "high_noise_model", - "pos": [ - -907.39453125, - 210 - ] - }, - { - "id": "c8c89718-6bf7-421b-a026-3c7d7eb2179e", - "name": "lora_name", - "type": "COMBO", - "linkIds": [ - 287 - ], - "label": "high_noise_lightning_lora", - "pos": [ - -907.39453125, - 230 - ] - }, - { - "id": "d87e8b8c-6e78-4092-8b5e-f8331efe4180", - "name": "unet_name_1", - "type": "COMBO", - "linkIds": [ - 288 - ], - "label": "low_noise_model", - "pos": [ - -907.39453125, - 250 - ] - }, - { - "id": "87d8b7e0-5cc2-47bb-bc25-b4da9f5f28cf", - "name": "lora_name_1", - "type": "COMBO", - "linkIds": [ - 289 - ], - "label": "low_noise_lightning_lora", - "pos": [ - -907.39453125, - 270 - ] - }, - { - "id": "fdfca733-fe91-4371-9da6-51ccf7236cc4", - "name": "clip_name", - "type": "COMBO", - "linkIds": [ - 290 - ], - "pos": [ - -907.39453125, - 290 - ] - }, - { - "id": "8772c016-4b84-4c17-8f87-68eb0d7000a1", - "name": "vae_name", - "type": "COMBO", - "linkIds": [ - 291 - ], - "pos": [ - -907.39453125, - 310 - ] - }, - { - "id": "d73374ef-396f-4fbf-94cf-5f4472927a80", - "name": "value", - "type": "BOOLEAN", - "linkIds": [ - 292 - ], - "label": "enable_turbo_mode", - "pos": [ - -907.39453125, - 330 - ] - } - ], - "outputs": [ - { - "id": "3a5bd5b8-e5b4-4f5d-9849-264ea14d9063", - "name": "VIDEO", - "type": "VIDEO", - "linkIds": [ - 197 - ], - "localized_name": "VIDEO", - "pos": [ - 3210, - 200 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 98, - "type": "WanImageToVideo", - "pos": [ - 539.9998603322258, - 469.9998092172766 - ], - "size": [ - 350, - 300 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 183 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 184 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 185 - }, - { - "localized_name": "clip_vision_output", - "name": "clip_vision_output", - "shape": 7, - "type": "CLIP_VISION_OUTPUT", - "link": null - }, - { - "localized_name": "start_image", - "name": "start_image", - "shape": 7, - "type": "IMAGE", - "link": 186 - }, - { - "localized_name": "width", - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 239 - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 240 - }, - { - "localized_name": "length", - "name": "length", - "type": "INT", - "widget": { - "name": "length" - }, - "link": 281 - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 168, - 172 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 169, - 173 - ] - }, - { - "localized_name": "latent", - "name": "latent", - "type": "LATENT", - "slot_index": 2, - "links": [ - 174 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "WanImageToVideo", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 640, - 640, - 81, - 1 - ] - }, - { - "id": 94, - "type": "CreateVideo", - "pos": [ - 2670, - 870 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 182 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": null - }, - { - "localized_name": "fps", - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 283 - } - ], - "outputs": [ - { - "localized_name": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 197 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "CreateVideo", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 16 - ] - }, - { - "id": 104, - "type": "ModelSamplingSD3", - "pos": [ - 2020, - -250 - ], - "size": [ - 230, - 110 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 268 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 195 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "ModelSamplingSD3", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 5.000000000000001 - ] - }, - { - "id": 89, - "type": "CLIPTextEncode", - "pos": [ - 459.99962735750455, - 219.99983354073368 - ], - "size": [ - 510, - 140 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 178 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 184 - ] - } - ], - "title": "CLIP Text Encode (Negative Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "CLIPTextEncode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "č‰²č°ƒč‰³äø½ļ¼Œčæ‡ę›ļ¼Œé™ę€ļ¼Œē»†čŠ‚ęØ”ē³Šäøęø…ļ¼Œå­—å¹•ļ¼Œé£Žę ¼ļ¼Œä½œå“ļ¼Œē”»ä½œļ¼Œē”»é¢ļ¼Œé™ę­¢ļ¼Œę•“ä½“å‘ē°ļ¼Œęœ€å·®č“Øé‡ļ¼Œä½Žč“Øé‡ļ¼ŒJPEGåŽ‹ē¼©ę®‹ē•™ļ¼Œäø‘é™‹ēš„ļ¼Œę®‹ē¼ŗēš„ļ¼Œå¤šä½™ēš„ę‰‹ęŒ‡ļ¼Œē”»å¾—äøå„½ēš„ę‰‹éƒØļ¼Œē”»å¾—äøå„½ēš„č„øéƒØļ¼Œē•øå½¢ēš„ļ¼ŒęÆå®¹ēš„ļ¼Œå½¢ę€ē•øå½¢ēš„č‚¢ä½“ļ¼Œę‰‹ęŒ‡čžåˆļ¼Œé™ę­¢äøåŠØēš„ē”»é¢ļ¼Œę‚ä¹±ēš„čƒŒę™Æļ¼Œäø‰ę”č…æļ¼ŒčƒŒę™Æäŗŗå¾ˆå¤šļ¼Œå€’ē€čµ°" - ], - "color": "#322", - "bgcolor": "#533" - }, - { - "id": 128, - "type": "PrimitiveInt", - "pos": [ - 1019.9998250958658, - -460.0000329444829 - ], - "size": [ - 350, - 110 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 234 - ] - } - ], - "title": "Int (Steps)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveInt", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 20, - "fixed" - ] - }, - { - "id": 87, - "type": "VAEDecode", - "pos": [ - 2390, - 870 - ], - "size": [ - 230, - 100 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 175 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 176 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [ - 182 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "VAEDecode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [] - }, - { - "id": 93, - "type": "CLIPTextEncode", - "pos": [ - 459.99962735750455, - -290.000075279958 - ], - "size": [ - 500, - 430 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "link": 181 - }, - { - "localized_name": "text", - "name": "text", - "type": "STRING", - "widget": { - "name": "text" - }, - "link": 243 - } - ], - "outputs": [ - { - "localized_name": "CONDITIONING", - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 183 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "CLIPTextEncode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "The white dragon warrior stands still, eyes full of determination and strength. The camera slowly moves closer or circles around the warrior, highlighting the powerful presence and heroic spirit of the character." - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 131, - "type": "PrimitiveBoolean", - "pos": [ - 1039.9993817599054, - 1059.9995569144005 - ], - "size": [ - 330, - 110 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "BOOLEAN", - "widget": { - "name": "value" - }, - "link": 292 - } - ], - "outputs": [ - { - "localized_name": "BOOLEAN", - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 248, - 249, - 250, - 251, - 252 - ] - } - ], - "title": "Enable 4steps LoRA?", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveBoolean", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 90, - "type": "VAELoader", - "pos": [ - -0.0003508166894334863, - 539.9997622803373 - ], - "size": [ - 350, - 110 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "vae_name", - "name": "vae_name", - "type": "COMBO", - "widget": { - "name": "vae_name" - }, - "link": 291 - } - ], - "outputs": [ - { - "localized_name": "VAE", - "name": "VAE", - "type": "VAE", - "slot_index": 0, - "links": [ - 176, - 185 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "VAELoader", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "wan_2.1_vae.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", - "directory": "vae" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "wan_2.1_vae.safetensors" - ] - }, - { - "id": 84, - "type": "CLIPLoader", - "pos": [ - -0.0003508166894334863, - 259.9997350653912 - ], - "size": [ - 350, - 150 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [ - { - "localized_name": "clip_name", - "name": "clip_name", - "type": "COMBO", - "widget": { - "name": "clip_name" - }, - "link": 290 - } - ], - "outputs": [ - { - "localized_name": "CLIP", - "name": "CLIP", - "type": "CLIP", - "slot_index": 0, - "links": [ - 178, - 181 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "CLIPLoader", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", - "directory": "text_encoders" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "umt5_xxl_fp8_e4m3fn_scaled.safetensors", - "wan", - "default" - ] - }, - { - "id": 96, - "type": "UNETLoader", - "pos": [ - -10.00027245717797, - 19.99975268357116 - ], - "size": [ - 350, - 120 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "localized_name": "unet_name", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": 288 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 196, - 220 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "UNETLoader", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", - "directory": "diffusion_models" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", - "default" - ] - }, - { - "id": 95, - "type": "UNETLoader", - "pos": [ - -10.00027245717797, - -220.00012221689724 - ], - "size": [ - 350, - 120 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "unet_name", - "name": "unet_name", - "type": "COMBO", - "widget": { - "name": "unet_name" - }, - "link": 286 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 194, - 216 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "UNETLoader", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", - "directory": "diffusion_models" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", - "default" - ] - }, - { - "id": 127, - "type": "PrimitiveInt", - "pos": [ - 1029.9998900448234, - -140.00014003199635 - ], - "size": [ - 340, - 103.0625 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 232 - ] - } - ], - "title": "Int (split_step)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveInt", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 10, - "fixed" - ] - }, - { - "id": 126, - "type": "PrimitiveFloat", - "pos": [ - 1029.9998900448234, - -300.000068574681 - ], - "size": [ - 340, - 110 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 233 - ] - } - ], - "title": "Float (CFG)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveFloat", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 3.5 - ] - }, - { - "id": 102, - "type": "LoraLoaderModelOnly", - "pos": [ - 1019.9998250958658, - 359.99973966685525 - ], - "size": [ - 350, - 140 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 196 - }, - { - "localized_name": "lora_name", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": 289 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 219 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.49", - "Node name for S&R": "LoraLoaderModelOnly", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", - "directory": "loras" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors", - 1.0000000000000002 - ] - }, - { - "id": 101, - "type": "LoraLoaderModelOnly", - "pos": [ - 1019.9998250958658, - 139.99981552871554 - ], - "size": [ - 350, - 140 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 194 - }, - { - "localized_name": "lora_name", - "name": "lora_name", - "type": "COMBO", - "widget": { - "name": "lora_name" - }, - "link": 287 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 215 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.49", - "Node name for S&R": "LoraLoaderModelOnly", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "models": [ - { - "name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", - "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/loras/wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", - "directory": "loras" - } - ], - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors", - 1.0000000000000002 - ] - }, - { - "id": 86, - "type": "KSamplerAdvanced", - "pos": [ - 2020, - -80 - ], - "size": [ - 310, - 530 - ], - "flags": {}, - "order": 9, - "mode": 0, - "showAdvanced": false, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 195 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 172 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 173 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 174 - }, - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": 285 - }, - { - "localized_name": "steps", - "name": "steps", - "type": "INT", - "widget": { - "name": "steps" - }, - "link": 270 - }, - { - "localized_name": "cfg", - "name": "cfg", - "type": "FLOAT", - "widget": { - "name": "cfg" - }, - "link": 271 - }, - { - "localized_name": "end_at_step", - "name": "end_at_step", - "type": "INT", - "widget": { - "name": "end_at_step" - }, - "link": 272 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 170 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "KSamplerAdvanced", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "enable", - 264244520398999, - "randomize", - 4, - 1, - "euler", - "simple", - 0, - 2, - "enable" - ] - }, - { - "id": 85, - "type": "KSamplerAdvanced", - "pos": [ - 2370, - -80 - ], - "size": [ - 310, - 530 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 192 - }, - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 168 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 169 - }, - { - "localized_name": "latent_image", - "name": "latent_image", - "type": "LATENT", - "link": 170 - }, - { - "localized_name": "steps", - "name": "steps", - "type": "INT", - "widget": { - "name": "steps" - }, - "link": 275 - }, - { - "localized_name": "cfg", - "name": "cfg", - "type": "FLOAT", - "widget": { - "name": "cfg" - }, - "link": 276 - }, - { - "localized_name": "start_at_step", - "name": "start_at_step", - "type": "INT", - "widget": { - "name": "start_at_step" - }, - "link": 273 - }, - { - "localized_name": "end_at_step", - "name": "end_at_step", - "type": "INT", - "widget": { - "name": "end_at_step" - }, - "link": 274 - } - ], - "outputs": [ - { - "localized_name": "LATENT", - "name": "LATENT", - "type": "LATENT", - "links": [ - 175 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "KSamplerAdvanced", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - "disable", - 0, - "fixed", - 4, - 1, - "euler", - "simple", - 2, - 1, - "disable" - ] - }, - { - "id": 122, - "type": "PrimitiveFloat", - "pos": [ - 1019.9998250958658, - 739.999484866328 - ], - "size": [ - 350, - 110 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 222 - ] - } - ], - "title": "Float (CFG)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveFloat", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 1 - ] - }, - { - "id": 124, - "type": "PrimitiveInt", - "pos": [ - 1029.9998900448234, - 889.9997425583445 - ], - "size": [ - 340, - 103.0625 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 228 - ] - } - ], - "title": "Int (split_step)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveInt", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 2, - "fixed" - ] - }, - { - "id": 118, - "type": "PrimitiveInt", - "pos": [ - 1019.9998250958658, - 589.9998004081867 - ], - "size": [ - 350, - 110 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 221 - ] - } - ], - "title": "Int (Steps)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "PrimitiveInt", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 4, - "fixed" - ] - }, - { - "id": 116, - "type": "ComfySwitchNode", - "pos": [ - 1549.99925475348, - -250.00010210106615 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "MODEL", - "link": 216 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "MODEL", - "link": 215 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 249 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "MODEL", - "links": [ - 268 - ] - } - ], - "title": "Switch (Model)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "ComfySwitchNode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 125, - "type": "ComfySwitchNode", - "pos": [ - 1549.99925475348, - 479.99973085776514 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "INT", - "link": 232 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "INT", - "link": 228 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 248 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "INT", - "links": [ - 272, - 273 - ] - } - ], - "title": "Switch (Split Step)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "ComfySwitchNode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 119, - "type": "ComfySwitchNode", - "pos": [ - 1549.99925475348, - 109.99990729878107 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "INT", - "link": 234 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "INT", - "link": 221 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 251 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "INT", - "links": [ - 270, - 274, - 275 - ] - } - ], - "title": "Switch (Steps)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "ComfySwitchNode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 120, - "type": "ComfySwitchNode", - "pos": [ - 1549.99925475348, - 289.9998582580289 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "FLOAT", - "link": 233 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "FLOAT", - "link": 222 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 252 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "FLOAT", - "links": [ - 271, - 276 - ] - } - ], - "title": "Switch (CFG)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "ComfySwitchNode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 103, - "type": "ModelSamplingSD3", - "pos": [ - 2360, - -250 - ], - "size": [ - 230, - 110 - ], - "flags": { - "collapsed": false - }, - "order": 20, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 269 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 192 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.45", - "Node name for S&R": "ModelSamplingSD3", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.1", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - 5.000000000000001 - ] - }, - { - "id": 117, - "type": "ComfySwitchNode", - "pos": [ - 1549.99925475348, - -70.00011531470113 - ], - "size": [ - 270, - 130 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "localized_name": "on_false", - "name": "on_false", - "type": "MODEL", - "link": 220 - }, - { - "localized_name": "on_true", - "name": "on_true", - "type": "MODEL", - "link": 219 - }, - { - "localized_name": "switch", - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 250 - } - ], - "outputs": [ - { - "localized_name": "output", - "name": "output", - "type": "MODEL", - "links": [ - 269 - ] - } - ], - "title": "Switch (Model)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.13.0", - "Node name for S&R": "ComfySwitchNode", - "enableTabs": false, - "tabWidth": 65, - "tabXOffset": 10, - "hasSecondTab": false, - "secondTabText": "Send Back", - "secondTabOffset": 80, - "secondTabWidth": 65, - "ue_properties": { - "widget_ue_connectable": {}, - "version": "7.7", - "input_ue_unconnectable": {} - } - }, - "widgets_values": [ - false - ] - }, - { - "id": 161, - "type": "PrimitiveFloat", - "pos": [ - -50, - 890 - ], - "size": [ - 270, - 103.0625 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "localized_name": "value", - "name": "value", - "type": "FLOAT", - "widget": { - "name": "value" - }, - "link": 282 - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 279 - ] - } - ], - "title": "Float (Duration)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.19.1", - "ue_properties": { - "widget_ue_connectable": {}, - "input_ue_unconnectable": {} - }, - "Node name for S&R": "PrimitiveFloat" - }, - "widgets_values": [ - 5 - ] - }, - { - "id": 162, - "type": "PrimitiveFloat", - "pos": [ - -50, - 1040 - ], - "size": [ - 270, - 103.0625 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 280, - 283 - ] - } - ], - "title": "Float (FPS)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.19.1", - "ue_properties": { - "widget_ue_connectable": {}, - "input_ue_unconnectable": {} - }, - "Node name for S&R": "PrimitiveFloat" - }, - "widgets_values": [ - 16 - ] - }, - { - "id": 163, - "type": "ComfyMathExpression", - "pos": [ - 317.34237770662673, - 895.2316381312489 - ], - "size": [ - 400, - 200 - ], - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "label": "a", - "localized_name": "values.a", - "name": "values.a", - "type": "FLOAT,INT", - "link": 279 - }, - { - "label": "b", - "localized_name": "values.b", - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT", - "link": 280 - }, - { - "label": "c", - "localized_name": "values.c", - "name": "values.c", - "shape": 7, - "type": "FLOAT,INT", - "link": null - } - ], - "outputs": [ - { - "localized_name": "FLOAT", - "name": "FLOAT", - "type": "FLOAT", - "links": null - }, - { - "localized_name": "INT", - "name": "INT", - "type": "INT", - "links": [ - 281 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.19.1", - "ue_properties": { - "widget_ue_connectable": {}, - "input_ue_unconnectable": {} - }, - "Node name for S&R": "ComfyMathExpression" - }, - "widgets_values": [ - "floor (a * b + 1)" - ] - } - ], - "groups": [ - { - "id": 11, - "title": "Model", - "bounding": [ - -80, - -360, - 500, - 1140 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 13, - "title": "Prompt", - "bounding": [ - 450, - -360, - 520, - 730 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 14, - "title": "Video size & length", - "bounding": [ - 450, - 400, - 520, - 380 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 17, - "title": "Original Settings", - "bounding": [ - 1010, - -530, - 380, - 540 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 18, - "title": "4steps Light LoRA", - "bounding": [ - 1010, - 40, - 380, - 970 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], - "links": [ - { - "id": 183, - "origin_id": 93, - "origin_slot": 0, - "target_id": 98, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 184, - "origin_id": 89, - "origin_slot": 0, - "target_id": 98, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 185, - "origin_id": 90, - "origin_slot": 0, - "target_id": 98, - "target_slot": 2, - "type": "VAE" - }, - { - "id": 182, - "origin_id": 87, - "origin_slot": 0, - "target_id": 94, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 196, - "origin_id": 96, - "origin_slot": 0, - "target_id": 102, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 220, - "origin_id": 96, - "origin_slot": 0, - "target_id": 117, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 219, - "origin_id": 102, - "origin_slot": 0, - "target_id": 117, - "target_slot": 1, - "type": "MODEL" - }, - { - "id": 233, - "origin_id": 126, - "origin_slot": 0, - "target_id": 120, - "target_slot": 0, - "type": "FLOAT" - }, - { - "id": 222, - "origin_id": 122, - "origin_slot": 0, - "target_id": 120, - "target_slot": 1, - "type": "FLOAT" - }, - { - "id": 232, - "origin_id": 127, - "origin_slot": 0, - "target_id": 125, - "target_slot": 0, - "type": "INT" - }, - { - "id": 228, - "origin_id": 124, - "origin_slot": 0, - "target_id": 125, - "target_slot": 1, - "type": "INT" - }, - { - "id": 192, - "origin_id": 103, - "origin_slot": 0, - "target_id": 85, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 168, - "origin_id": 98, - "origin_slot": 0, - "target_id": 85, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 169, - "origin_id": 98, - "origin_slot": 1, - "target_id": 85, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 170, - "origin_id": 86, - "origin_slot": 0, - "target_id": 85, - "target_slot": 3, - "type": "LATENT" - }, - { - "id": 234, - "origin_id": 128, - "origin_slot": 0, - "target_id": 119, - "target_slot": 0, - "type": "INT" - }, - { - "id": 221, - "origin_id": 118, - "origin_slot": 0, - "target_id": 119, - "target_slot": 1, - "type": "INT" - }, - { - "id": 195, - "origin_id": 104, - "origin_slot": 0, - "target_id": 86, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 172, - "origin_id": 98, - "origin_slot": 0, - "target_id": 86, - "target_slot": 1, - "type": "CONDITIONING" - }, - { - "id": 173, - "origin_id": 98, - "origin_slot": 1, - "target_id": 86, - "target_slot": 2, - "type": "CONDITIONING" - }, - { - "id": 174, - "origin_id": 98, - "origin_slot": 2, - "target_id": 86, - "target_slot": 3, - "type": "LATENT" - }, - { - "id": 216, - "origin_id": 95, - "origin_slot": 0, - "target_id": 116, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 215, - "origin_id": 101, - "origin_slot": 0, - "target_id": 116, - "target_slot": 1, - "type": "MODEL" - }, - { - "id": 178, - "origin_id": 84, - "origin_slot": 0, - "target_id": 89, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 181, - "origin_id": 84, - "origin_slot": 0, - "target_id": 93, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 194, - "origin_id": 95, - "origin_slot": 0, - "target_id": 101, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 175, - "origin_id": 85, - "origin_slot": 0, - "target_id": 87, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 176, - "origin_id": 90, - "origin_slot": 0, - "target_id": 87, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 186, - "origin_id": -10, - "origin_slot": 0, - "target_id": 98, - "target_slot": 4, - "type": "IMAGE" - }, - { - "id": 197, - "origin_id": 94, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "VIDEO" - }, - { - "id": 239, - "origin_id": -10, - "origin_slot": 2, - "target_id": 98, - "target_slot": 5, - "type": "INT" - }, - { - "id": 240, - "origin_id": -10, - "origin_slot": 3, - "target_id": 98, - "target_slot": 6, - "type": "INT" - }, - { - "id": 243, - "origin_id": -10, - "origin_slot": 1, - "target_id": 93, - "target_slot": 1, - "type": "STRING" - }, - { - "id": 248, - "origin_id": 131, - "origin_slot": 0, - "target_id": 125, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 249, - "origin_id": 131, - "origin_slot": 0, - "target_id": 116, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 250, - "origin_id": 131, - "origin_slot": 0, - "target_id": 117, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 251, - "origin_id": 131, - "origin_slot": 0, - "target_id": 119, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 252, - "origin_id": 131, - "origin_slot": 0, - "target_id": 120, - "target_slot": 2, - "type": "BOOLEAN" - }, - { - "id": 268, - "origin_id": 116, - "origin_slot": 0, - "target_id": 104, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 269, - "origin_id": 117, - "origin_slot": 0, - "target_id": 103, - "target_slot": 0, - "type": "MODEL" - }, - { - "id": 270, - "origin_id": 119, - "origin_slot": 0, - "target_id": 86, - "target_slot": 5, - "type": "INT" - }, - { - "id": 271, - "origin_id": 120, - "origin_slot": 0, - "target_id": 86, - "target_slot": 6, - "type": "FLOAT" - }, - { - "id": 272, - "origin_id": 125, - "origin_slot": 0, - "target_id": 86, - "target_slot": 7, - "type": "INT" - }, - { - "id": 273, - "origin_id": 125, - "origin_slot": 0, - "target_id": 85, - "target_slot": 6, - "type": "INT" - }, - { - "id": 274, - "origin_id": 119, - "origin_slot": 0, - "target_id": 85, - "target_slot": 7, - "type": "INT" - }, - { - "id": 275, - "origin_id": 119, - "origin_slot": 0, - "target_id": 85, - "target_slot": 4, - "type": "INT" - }, - { - "id": 276, - "origin_id": 120, - "origin_slot": 0, - "target_id": 85, - "target_slot": 5, - "type": "FLOAT" - }, - { - "id": 279, - "origin_id": 161, - "origin_slot": 0, - "target_id": 163, - "target_slot": 0, - "type": "FLOAT" - }, - { - "id": 280, - "origin_id": 162, - "origin_slot": 0, - "target_id": 163, - "target_slot": 1, - "type": "FLOAT" - }, - { - "id": 281, - "origin_id": 163, - "origin_slot": 1, - "target_id": 98, - "target_slot": 7, - "type": "INT" - }, - { - "id": 282, - "origin_id": -10, - "origin_slot": 4, - "target_id": 161, - "target_slot": 0, - "type": "FLOAT" - }, - { - "id": 283, - "origin_id": 162, - "origin_slot": 0, - "target_id": 94, - "target_slot": 2, - "type": "FLOAT" - }, - { - "id": 285, - "origin_id": -10, - "origin_slot": 5, - "target_id": 86, - "target_slot": 4, - "type": "INT" - }, - { - "id": 286, - "origin_id": -10, - "origin_slot": 6, - "target_id": 95, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 287, - "origin_id": -10, - "origin_slot": 7, - "target_id": 101, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 288, - "origin_id": -10, - "origin_slot": 8, - "target_id": 96, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 289, - "origin_id": -10, - "origin_slot": 9, - "target_id": 102, - "target_slot": 1, - "type": "COMBO" - }, - { - "id": 290, - "origin_id": -10, - "origin_slot": 10, - "target_id": 84, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 291, - "origin_id": -10, - "origin_slot": 11, - "target_id": 90, - "target_slot": 0, - "type": "COMBO" - }, - { - "id": 292, - "origin_id": -10, - "origin_slot": 12, - "target_id": 131, - "target_slot": 0, - "type": "BOOLEAN" - } - ], - "extra": { - "workflowRendererVersion": "LG", - "ue_links": [] - } - } - ] - }, - "config": {}, - "extra": { - "frontendVersion": "1.42.10", - "workflowRendererVersion": "LG", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "ue_links": [], - "ds": { - "scale": 0.5563375096270589, - "offset": [ - 1118.671140524013, - 855.6803172750391 - ] - } - }, - "version": 0.4 -} diff --git a/src/renderer/extensions/firstRunTour/roleResolver.test.ts b/src/renderer/extensions/firstRunTour/roleResolver.test.ts index b57f634fa4..006c43e1cf 100644 --- a/src/renderer/extensions/firstRunTour/roleResolver.test.ts +++ b/src/renderer/extensions/firstRunTour/roleResolver.test.ts @@ -3,133 +3,13 @@ import { describe, expect, it } from 'vitest' import type { ComfyWorkflowJSON } from '@/platform/workflow/validation/schemas/workflowSchema' import { toNodeId } from '@/types/nodeId' -import { loadTemplateWorkflow } from './__fixtures__/loadTemplateWorkflow' import { fromWorkflowJson, resolveRoles, templateOverrides } from './roleResolver' -import type { CuratedTemplateId } from './roleResolver' - -interface CuratedExpectation { - sourceId: number | null - promptInnerId: number - promptWidget: string - engineId: number - sinkId: number - mediaKind: 'image' | 'video' -} - -const CURATED: Record = { - image_krea2_turbo_t2i: { - sourceId: null, - promptInnerId: 19, - promptWidget: 'value', - engineId: 3, - sinkId: 29, - mediaKind: 'image' - }, - image_z_image_turbo: { - sourceId: null, - promptInnerId: 27, - promptWidget: 'text', - engineId: 3, - sinkId: 9, - mediaKind: 'image' - }, - video_ltx2_3_i2v: { - sourceId: 269, - promptInnerId: 319, - promptWidget: 'value', - engineId: 283, - sinkId: 75, - mediaKind: 'video' - }, - video_wan2_2_14B_i2v: { - sourceId: 97, - promptInnerId: 93, - promptWidget: 'text', - engineId: 86, - sinkId: 108, - mediaKind: 'video' - }, - flux_kontext_dev_basic: { - sourceId: 190, - promptInnerId: 6, - promptWidget: 'text', - engineId: 31, - sinkId: 136, - mediaKind: 'image' - } -} - -const curatedIds = Object.keys(CURATED) as CuratedTemplateId[] - -describe('resolveRoles — curated templates, heuristics only (no override)', () => { - it.for(curatedIds)('resolves %s from its real JSON', (id) => { - const expected = CURATED[id] - const roles = resolveRoles(loadTemplateWorkflow(id)) - - if (expected.sourceId === null) { - expect(roles.source).toBeNull() - } else { - expect(roles.source?.nodeId).toBe(toNodeId(expected.sourceId)) - } - expect(roles.prompt?.innerNodeId).toBe(toNodeId(expected.promptInnerId)) - expect(roles.prompt?.widgetName).toBe(expected.promptWidget) - expect(roles.engine?.nodeId).toBe(toNodeId(expected.engineId)) - expect(roles.sink?.nodeId).toBe(toNodeId(expected.sinkId)) - expect(roles.mediaKind).toBe(expected.mediaKind) - }) - - it('rejects the internal-fed decoy CLIPTextEncode (krea 6, ltx 303)', () => { - expect( - resolveRoles(loadTemplateWorkflow('image_krea2_turbo_t2i')).prompt - ?.innerNodeId - ).not.toBe(toNodeId(6)) - expect( - resolveRoles(loadTemplateWorkflow('video_ltx2_3_i2v')).prompt?.innerNodeId - ).not.toBe(toNodeId(303)) - }) - - it('picks the boundary-fed user prompt over a sibling system prompt (krea)', () => { - const roles = resolveRoles(loadTemplateWorkflow('image_krea2_turbo_t2i')) - expect(roles.prompt?.innerNodeId).toBe(toNodeId(19)) - }) - - it('picks the positive CLIPTextEncode over the negative one (wan)', () => { - const roles = resolveRoles(loadTemplateWorkflow('video_wan2_2_14B_i2v')) - expect(roles.prompt?.innerNodeId).toBe(toNodeId(93)) - }) - - it('picks one source when several LoadImage exist (flux)', () => { - const roles = resolveRoles(loadTemplateWorkflow('flux_kontext_dev_basic')) - expect(roles.source?.nodeId).toBe(toNodeId(190)) - }) - - it('exposes the subgraph node id and prompt port for fallback', () => { - const zImage = resolveRoles(loadTemplateWorkflow('image_z_image_turbo')) - expect(zImage.prompt?.subgraphNodeId).toBe(toNodeId(57)) - expect(zImage.prompt?.portFallback).toBe('text') - - const ltx = resolveRoles(loadTemplateWorkflow('video_ltx2_3_i2v')) - expect(ltx.prompt?.portFallback).toBe('value') - }) -}) - -describe('templateOverrides pin the heuristic result', () => { - it('matches the heuristic result for every curated id', () => { - for (const id of curatedIds) { - const roles = resolveRoles(loadTemplateWorkflow(id)) - const pin = templateOverrides[id] - expect(pin.promptNodeId).toBe(roles.prompt?.innerNodeId) - expect(pin.engineNodeId).toBe(roles.engine?.nodeId) - expect(pin.sinkNodeId).toBe(roles.sink?.nodeId) - expect(pin.mediaKind).toBe(roles.mediaKind) - if (roles.source) expect(pin.sourceNodeId).toBe(roles.source.nodeId) - } - }) +describe('templateOverrides applied to the graph', () => { it('override sink, engine, and media win over the heuristics on the graph', () => { const pin = templateOverrides.image_z_image_turbo const roles = resolveRoles( @@ -162,22 +42,53 @@ describe('templateOverrides pin the heuristic result', () => { }) it('spotlights the subgraph host, not the pinned inner node, for a nested prompt', () => { + const subgraphId = '33333333-3333-3333-3333-333333333333' + const pin = templateOverrides.image_z_image_turbo const roles = resolveRoles( - loadTemplateWorkflow('flux_kontext_dev_basic'), - 'flux_kontext_dev_basic' + { + ...workflow([ + node(50, subgraphId, { inputs: [] }), + node(9, 'SaveImage', { + inputs: [{ name: 'images', type: 'IMAGE', link: 8 }] + }) + ]), + definitions: { + subgraphs: [ + { + id: subgraphId, + inputs: [], + nodes: [cte(Number(pin.promptNodeId), 4, 'a red fox')], + links: [] + } + ] + } + } as unknown as ComfyWorkflowJSON, + 'image_z_image_turbo' ) - expect(roles.prompt?.innerNodeId).toBe(toNodeId(6)) - expect(roles.prompt?.subgraphNodeId).toBe(toNodeId(192)) + expect(roles.prompt?.innerNodeId).toBe(pin.promptNodeId) + expect(roles.prompt?.subgraphNodeId).toBe(toNodeId(50)) }) it('ignores an unknown template id and falls back to heuristics', () => { - const withUnknown = resolveRoles( - loadTemplateWorkflow('image_z_image_turbo'), - 'not_a_real_template' + const graph = workflow( + [ + cte(6, 4, 'a red fox'), + node(3, 'KSampler', { + inputs: [{ name: 'positive', type: 'CONDITIONING', link: 4 }] + }), + node(9, 'SaveImage', { + inputs: [{ name: 'images', type: 'IMAGE', link: 8 }] + }) + ], + [ + [4, 6, 0, 3, 1, 'CONDITIONING'], + [8, 3, 0, 9, 0, 'IMAGE'] + ] + ) + expect(resolveRoles(graph, 'not_a_real_template')).toEqual( + resolveRoles(graph) ) - const heuristic = resolveRoles(loadTemplateWorkflow('image_z_image_turbo')) - expect(withUnknown).toEqual(heuristic) }) }) @@ -370,16 +281,46 @@ describe('fromWorkflowJson normalizes the serialized shape', () => { }) it('reads object links and the boundary origin inside subgraphs', () => { - const graph = fromWorkflowJson(loadTemplateWorkflow('image_z_image_turbo')) - const subgraph = graph.subgraphs[0] - const clip = subgraph.nodes.find((n) => n.id === toNodeId(27)) + const subgraphId = '44444444-4444-4444-4444-444444444444' + const graph = fromWorkflowJson({ + ...workflow([node(50, subgraphId, { inputs: [] })]), + definitions: { + subgraphs: [ + { + id: subgraphId, + inputs: [{ name: 'text', type: 'STRING' }], + nodes: [ + node(27, 'CLIPTextEncode', { + inputs: [{ name: 'text', type: 'STRING', link: 7 }] + }) + ], + links: [ + { + id: 7, + origin_id: -10, + origin_slot: 0, + target_id: 27, + target_slot: 0 + } + ] + } + ] + } + } as unknown as ComfyWorkflowJSON) + const clip = graph.subgraphs[0].nodes.find((n) => n.id === toNodeId(27)) const textInput = clip?.inputs.find((i) => i.name === 'text') expect(textInput?.origin).toEqual({ kind: 'boundary', slot: 0 }) }) it('flags the hosting subgraph node', () => { - const graph = fromWorkflowJson(loadTemplateWorkflow('image_z_image_turbo')) + const subgraphId = '44444444-4444-4444-4444-444444444444' + const graph = fromWorkflowJson({ + ...workflow([node(50, subgraphId, { inputs: [] })]), + definitions: { + subgraphs: [{ id: subgraphId, inputs: [], nodes: [], links: [] }] + } + } as unknown as ComfyWorkflowJSON) const host = graph.nodes.find((n) => n.subgraphId !== null) expect(host?.subgraphId).toBe(graph.subgraphs[0].id) @@ -489,11 +430,24 @@ describe('resolveRoles — hostile node types do not match prototype members', ( }) it('ignores a template id that names a prototype member', () => { - const heuristic = resolveRoles(loadTemplateWorkflow('image_z_image_turbo')) + const graph = workflow( + [ + cte(6, 4, 'a red fox'), + node(3, 'KSampler', { + inputs: [{ name: 'positive', type: 'CONDITIONING', link: 4 }] + }), + node(9, 'SaveImage', { + inputs: [{ name: 'images', type: 'IMAGE', link: 8 }] + }) + ], + [ + [4, 6, 0, 3, 1, 'CONDITIONING'], + [8, 3, 0, 9, 0, 'IMAGE'] + ] + ) + const heuristic = resolveRoles(graph) for (const id of ['constructor', 'toString', 'hasOwnProperty']) { - expect( - resolveRoles(loadTemplateWorkflow('image_z_image_turbo'), id) - ).toEqual(heuristic) + expect(resolveRoles(graph, id)).toEqual(heuristic) } }) })