From fd5244f3b5576e096c11e31051043486b5fd33de Mon Sep 17 00:00:00 2001 From: bymyself Date: Fri, 12 Dec 2025 19:04:24 -0800 Subject: [PATCH 1/4] fit to view when no nodes visible --- .../default-viewport-saved-offscreen.json | 412 ++++++++++++++++++ browser_tests/tests/viewport.spec.ts | 20 + src/scripts/app.ts | 27 +- src/utils/mathUtil.ts | 61 +++ 4 files changed, 514 insertions(+), 6 deletions(-) create mode 100644 browser_tests/assets/viewport/default-viewport-saved-offscreen.json create mode 100644 browser_tests/tests/viewport.spec.ts diff --git a/browser_tests/assets/viewport/default-viewport-saved-offscreen.json b/browser_tests/assets/viewport/default-viewport-saved-offscreen.json new file mode 100644 index 0000000000..348c8aee13 --- /dev/null +++ b/browser_tests/assets/viewport/default-viewport-saved-offscreen.json @@ -0,0 +1,412 @@ +{ + "id": "2ba0b800-2f13-4f21-b8d6-c6cdb0152cae", + "revision": 0, + "last_node_id": 16, + "last_link_id": 9, + "nodes": [ + { + "id": 4, + "type": "CheckpointLoaderSimple", + "pos": [ + 60, + 200 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 1 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 1, + "links": [ + 3, + 5 + ] + }, + { + "name": "VAE", + "type": "VAE", + "slot_index": 2, + "links": [ + 8 + ] + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple", + "cnr_id": "comfy-core", + "ver": "0.3.65", + "models": [ + { + "name": "v1-5-pruned-emaonly-fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "v1-5-pruned-emaonly-fp16.safetensors" + ] + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 870, + 170 + ], + "size": [ + 315, + 474 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 4 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 2 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 7 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + 685468484323813, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 975, + 700 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 8 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 410, + 410 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 5 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 6 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + "text, watermark" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 5, + "type": "EmptyLatentImage", + "pos": [ + 520, + 690 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 2 + ] + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + 512, + 512, + 1 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 411.21649169921875, + 203.68695068359375 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 4 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + "beautiful scenery nature glass bottle landscape, purple galaxy bottle," + ], + "color": "#232", + "bgcolor": "#353" + } + ], + "links": [ + [ + 1, + 4, + 0, + 3, + 0, + "MODEL" + ], + [ + 2, + 5, + 0, + 3, + 3, + "LATENT" + ], + [ + 3, + 4, + 1, + 6, + 0, + "CLIP" + ], + [ + 4, + 6, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 5, + 4, + 1, + 7, + 0, + "CLIP" + ], + [ + 6, + 7, + 0, + 3, + 2, + "CONDITIONING" + ], + [ + 7, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 8, + 4, + 2, + 8, + 1, + "VAE" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load model", + "bounding": [ + 50, + 130, + 335, + 181.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Image size", + "bounding": [ + 510, + 620, + 335, + 189.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 2 - Prompt", + "bounding": [ + 400, + 130, + 445.27801513671875, + 467.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.44218252181616574, + "offset": [ + -666.5670907104311, + -2227.894644048147 + ] + }, + "frontendVersion": "1.35.3", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" + }, + "version": 0.4 +} \ No newline at end of file diff --git a/browser_tests/tests/viewport.spec.ts b/browser_tests/tests/viewport.spec.ts new file mode 100644 index 0000000000..7bc686a1cf --- /dev/null +++ b/browser_tests/tests/viewport.spec.ts @@ -0,0 +1,20 @@ +import { expect } from '@playwright/test' + +import { comfyPageFixture as test } from '../fixtures/ComfyPage' + +test.describe('Viewport', () => { + test('Fits view to nodes when saved viewport position is offscreen', async ({ + comfyPage + }) => { + await comfyPage.loadWorkflow('viewport/default-viewport-saved-offscreen') + + // Wait a few frames for rendering to stabilize + for (let i = 0; i < 5; i++) { + await comfyPage.nextFrame() + } + + await expect(comfyPage.canvas).toHaveScreenshot( + 'viewport-fits-when-saved-offscreen.png' + ) + }) +}) diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 7201fb68ca..1b1022493e 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -64,6 +64,7 @@ import type { ComfyExtension, MissingNodeType } from '@/types/comfy' import { type ExtensionManager } from '@/types/extensionTypes' import type { NodeExecutionId } from '@/types/nodeIdentification' import { graphToPrompt } from '@/utils/executionUtil' +import { anyItemOverlapsRect, computeBoundsFromPosSize } from '@/utils/mathUtil' import { collectAllNodes, forEachNode } from '@/utils/graphTraversalUtil' import { getNodeByExecutionId, @@ -1219,16 +1220,30 @@ export class ComfyApp { restore_view && useSettingStore().get('Comfy.EnableWorkflowViewRestore') ) { + const nodes = this.rootGraph._nodes + if (graphData.extra?.ds) { this.canvas.ds.offset = graphData.extra.ds.offset this.canvas.ds.scale = graphData.extra.ds.scale + + // Check if any nodes are visible in the restored viewport. + // If not, fit view to ensure user can see the workflow. + this.canvas.ds.computeVisibleArea(this.canvas.viewport) + if (!anyItemOverlapsRect(nodes, this.canvas.visible_area)) { + // Use pos/size directly since boundingRect isn't computed yet + const bounds = computeBoundsFromPosSize(nodes) + if (bounds) { + this.canvas.ds.fitToBounds(bounds) + this.canvas.setDirty(true, true) + } + } } else { - // @note: Set view after the graph has been rendered once. fitView uses - // boundingRect on nodes to calculate the view bounds, which only become - // available after the first render. - requestAnimationFrame(() => { - useLitegraphService().fitView() - }) + // Use pos/size directly since boundingRect isn't computed yet + const bounds = computeBoundsFromPosSize(nodes) + if (bounds) { + this.canvas.ds.fitToBounds(bounds) + this.canvas.setDirty(true, true) + } } } } catch (error) { diff --git a/src/utils/mathUtil.ts b/src/utils/mathUtil.ts index 4dad40df54..b0183b05cf 100644 --- a/src/utils/mathUtil.ts +++ b/src/utils/mathUtil.ts @@ -1,6 +1,9 @@ import type { ReadOnlyRect } from '@/lib/litegraph/src/interfaces' import type { Bounds } from '@/renderer/core/layout/types' +/** Simple 2D point or size as [x, y] or [width, height] */ +type Vec2 = readonly [number, number] + /** * Finds the greatest common divisor (GCD) for two numbers using iterative * Euclidean algorithm. Uses iteration instead of recursion to avoid stack @@ -91,3 +94,61 @@ export function computeUnionBounds( height: maxY - minY } } + +/** + * Checks if any item with pos/size overlaps a rectangle (AABB test). + * @param items Items with pos [x, y] and size [width, height] + * @param rect Rectangle as [x, y, width, height] + * @returns `true` if any item overlaps the rect + */ +export function anyItemOverlapsRect( + items: Iterable<{ pos: Vec2; size: Vec2 }>, + rect: ReadOnlyRect +): boolean { + const rectRight = rect[0] + rect[2] + const rectBottom = rect[1] + rect[3] + + for (const item of items) { + if ( + item.pos[0] < rectRight && + item.pos[0] + item.size[0] > rect[0] && + item.pos[1] < rectBottom && + item.pos[1] + item.size[1] > rect[1] + ) { + return true + } + } + return false +} + +/** + * Computes bounding rect from items with pos/size (no render required). + * @param items Items with pos [x, y] and size [width, height] + * @param padding Padding around the bounds + * @returns Bounding rect as [x, y, width, height], or null if no items + */ +export function computeBoundsFromPosSize( + items: Iterable<{ pos: Vec2; size: Vec2 }>, + padding: number = 10 +): ReadOnlyRect | null { + let minX = Infinity + let minY = Infinity + let maxX = -Infinity + let maxY = -Infinity + + for (const item of items) { + minX = Math.min(minX, item.pos[0]) + minY = Math.min(minY, item.pos[1]) + maxX = Math.max(maxX, item.pos[0] + item.size[0]) + maxY = Math.max(maxY, item.pos[1] + item.size[1]) + } + + if (!isFinite(minX)) return null + + return [ + minX - padding, + minY - padding, + maxX - minX + 2 * padding, + maxY - minY + 2 * padding + ] +} From 98878b976e4b71a81d1c50bf3c34de6ec672c8ea Mon Sep 17 00:00:00 2001 From: bymyself Date: Fri, 12 Dec 2025 20:26:23 -0800 Subject: [PATCH 2/4] simplify --- .../default-viewport-saved-offscreen.json | 412 ------------------ browser_tests/tests/viewport.spec.ts | 20 - src/scripts/app.ts | 21 +- 3 files changed, 4 insertions(+), 449 deletions(-) delete mode 100644 browser_tests/assets/viewport/default-viewport-saved-offscreen.json delete mode 100644 browser_tests/tests/viewport.spec.ts diff --git a/browser_tests/assets/viewport/default-viewport-saved-offscreen.json b/browser_tests/assets/viewport/default-viewport-saved-offscreen.json deleted file mode 100644 index 348c8aee13..0000000000 --- a/browser_tests/assets/viewport/default-viewport-saved-offscreen.json +++ /dev/null @@ -1,412 +0,0 @@ -{ - "id": "2ba0b800-2f13-4f21-b8d6-c6cdb0152cae", - "revision": 0, - "last_node_id": 16, - "last_link_id": 9, - "nodes": [ - { - "id": 4, - "type": "CheckpointLoaderSimple", - "pos": [ - 60, - 200 - ], - "size": [ - 315, - 98 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "slot_index": 0, - "links": [ - 1 - ] - }, - { - "name": "CLIP", - "type": "CLIP", - "slot_index": 1, - "links": [ - 3, - 5 - ] - }, - { - "name": "VAE", - "type": "VAE", - "slot_index": 2, - "links": [ - 8 - ] - } - ], - "properties": { - "Node name for S&R": "CheckpointLoaderSimple", - "cnr_id": "comfy-core", - "ver": "0.3.65", - "models": [ - { - "name": "v1-5-pruned-emaonly-fp16.safetensors", - "url": "https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors?download=true", - "directory": "checkpoints" - } - ] - }, - "widgets_values": [ - "v1-5-pruned-emaonly-fp16.safetensors" - ] - }, - { - "id": 3, - "type": "KSampler", - "pos": [ - 870, - 170 - ], - "size": [ - 315, - 474 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 1 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 4 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 6 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 2 - } - ], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 7 - ] - } - ], - "properties": { - "Node name for S&R": "KSampler", - "cnr_id": "comfy-core", - "ver": "0.3.65" - }, - "widgets_values": [ - 685468484323813, - "randomize", - 20, - 8, - "euler", - "normal", - 1 - ] - }, - { - "id": 8, - "type": "VAEDecode", - "pos": [ - 975, - 700 - ], - "size": [ - 210, - 46 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 7 - }, - { - "name": "vae", - "type": "VAE", - "link": 8 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "slot_index": 0, - "links": [] - } - ], - "properties": { - "Node name for S&R": "VAEDecode", - "cnr_id": "comfy-core", - "ver": "0.3.65" - }, - "widgets_values": [] - }, - { - "id": 7, - "type": "CLIPTextEncode", - "pos": [ - 410, - 410 - ], - "size": [ - 425.27801513671875, - 180.6060791015625 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 5 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 6 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.65" - }, - "widgets_values": [ - "text, watermark" - ], - "color": "#223", - "bgcolor": "#335" - }, - { - "id": 5, - "type": "EmptyLatentImage", - "pos": [ - 520, - 690 - ], - "size": [ - 315, - 106 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "LATENT", - "type": "LATENT", - "slot_index": 0, - "links": [ - 2 - ] - } - ], - "properties": { - "Node name for S&R": "EmptyLatentImage", - "cnr_id": "comfy-core", - "ver": "0.3.65" - }, - "widgets_values": [ - 512, - 512, - 1 - ] - }, - { - "id": 6, - "type": "CLIPTextEncode", - "pos": [ - 411.21649169921875, - 203.68695068359375 - ], - "size": [ - 422.84503173828125, - 164.31304931640625 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 3 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 4 - ] - } - ], - "properties": { - "Node name for S&R": "CLIPTextEncode", - "cnr_id": "comfy-core", - "ver": "0.3.65" - }, - "widgets_values": [ - "beautiful scenery nature glass bottle landscape, purple galaxy bottle," - ], - "color": "#232", - "bgcolor": "#353" - } - ], - "links": [ - [ - 1, - 4, - 0, - 3, - 0, - "MODEL" - ], - [ - 2, - 5, - 0, - 3, - 3, - "LATENT" - ], - [ - 3, - 4, - 1, - 6, - 0, - "CLIP" - ], - [ - 4, - 6, - 0, - 3, - 1, - "CONDITIONING" - ], - [ - 5, - 4, - 1, - 7, - 0, - "CLIP" - ], - [ - 6, - 7, - 0, - 3, - 2, - "CONDITIONING" - ], - [ - 7, - 3, - 0, - 8, - 0, - "LATENT" - ], - [ - 8, - 4, - 2, - 8, - 1, - "VAE" - ] - ], - "groups": [ - { - "id": 1, - "title": "Step 1 - Load model", - "bounding": [ - 50, - 130, - 335, - 181.60000610351562 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 2, - "title": "Step 3 - Image size", - "bounding": [ - 510, - 620, - 335, - 189.60000610351562 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - }, - { - "id": 3, - "title": "Step 2 - Prompt", - "bounding": [ - 400, - 130, - 445.27801513671875, - 467.2060852050781 - ], - "color": "#3f789e", - "font_size": 24, - "flags": {} - } - ], - "config": {}, - "extra": { - "ds": { - "scale": 0.44218252181616574, - "offset": [ - -666.5670907104311, - -2227.894644048147 - ] - }, - "frontendVersion": "1.35.3", - "VHS_latentpreview": false, - "VHS_latentpreviewrate": 0, - "VHS_MetadataImage": true, - "VHS_KeepIntermediate": true, - "workflowRendererVersion": "LG" - }, - "version": 0.4 -} \ No newline at end of file diff --git a/browser_tests/tests/viewport.spec.ts b/browser_tests/tests/viewport.spec.ts deleted file mode 100644 index 7bc686a1cf..0000000000 --- a/browser_tests/tests/viewport.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { expect } from '@playwright/test' - -import { comfyPageFixture as test } from '../fixtures/ComfyPage' - -test.describe('Viewport', () => { - test('Fits view to nodes when saved viewport position is offscreen', async ({ - comfyPage - }) => { - await comfyPage.loadWorkflow('viewport/default-viewport-saved-offscreen') - - // Wait a few frames for rendering to stabilize - for (let i = 0; i < 5; i++) { - await comfyPage.nextFrame() - } - - await expect(comfyPage.canvas).toHaveScreenshot( - 'viewport-fits-when-saved-offscreen.png' - ) - }) -}) diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 1b1022493e..57554ca824 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -64,7 +64,7 @@ import type { ComfyExtension, MissingNodeType } from '@/types/comfy' import { type ExtensionManager } from '@/types/extensionTypes' import type { NodeExecutionId } from '@/types/nodeIdentification' import { graphToPrompt } from '@/utils/executionUtil' -import { anyItemOverlapsRect, computeBoundsFromPosSize } from '@/utils/mathUtil' +import { computeBoundsFromPosSize } from '@/utils/mathUtil' import { collectAllNodes, forEachNode } from '@/utils/graphTraversalUtil' import { getNodeByExecutionId, @@ -1220,26 +1220,13 @@ export class ComfyApp { restore_view && useSettingStore().get('Comfy.EnableWorkflowViewRestore') ) { - const nodes = this.rootGraph._nodes - if (graphData.extra?.ds) { this.canvas.ds.offset = graphData.extra.ds.offset this.canvas.ds.scale = graphData.extra.ds.scale - - // Check if any nodes are visible in the restored viewport. - // If not, fit view to ensure user can see the workflow. - this.canvas.ds.computeVisibleArea(this.canvas.viewport) - if (!anyItemOverlapsRect(nodes, this.canvas.visible_area)) { - // Use pos/size directly since boundingRect isn't computed yet - const bounds = computeBoundsFromPosSize(nodes) - if (bounds) { - this.canvas.ds.fitToBounds(bounds) - this.canvas.setDirty(true, true) - } - } } else { - // Use pos/size directly since boundingRect isn't computed yet - const bounds = computeBoundsFromPosSize(nodes) + // Use pos/size directly since boundingRect isn't computed until + // after the first render (rAF + fitView was unreliable). + const bounds = computeBoundsFromPosSize(this.rootGraph._nodes) if (bounds) { this.canvas.ds.fitToBounds(bounds) this.canvas.setDirty(true, true) From 65dd80da7b8be6fd7fe1d76ce5e4049f2f0178c4 Mon Sep 17 00:00:00 2001 From: bymyself Date: Fri, 12 Dec 2025 22:10:55 -0800 Subject: [PATCH 3/4] fix: fit view when saved viewport position has no visible nodes When loading a workflow with a saved viewport position (extra.ds), check if any nodes are visible in that viewport. If not, fit view to ensure the user can see the workflow. --- .../default-viewport-saved-offscreen.json | 412 ++++++++++++++++++ browser_tests/tests/viewport.spec.ts | 20 + src/scripts/app.ts | 21 +- src/utils/mathUtil.ts | 39 +- 4 files changed, 448 insertions(+), 44 deletions(-) create mode 100644 browser_tests/assets/viewport/default-viewport-saved-offscreen.json create mode 100644 browser_tests/tests/viewport.spec.ts diff --git a/browser_tests/assets/viewport/default-viewport-saved-offscreen.json b/browser_tests/assets/viewport/default-viewport-saved-offscreen.json new file mode 100644 index 0000000000..348c8aee13 --- /dev/null +++ b/browser_tests/assets/viewport/default-viewport-saved-offscreen.json @@ -0,0 +1,412 @@ +{ + "id": "2ba0b800-2f13-4f21-b8d6-c6cdb0152cae", + "revision": 0, + "last_node_id": 16, + "last_link_id": 9, + "nodes": [ + { + "id": 4, + "type": "CheckpointLoaderSimple", + "pos": [ + 60, + 200 + ], + "size": [ + 315, + 98 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "slot_index": 0, + "links": [ + 1 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "slot_index": 1, + "links": [ + 3, + 5 + ] + }, + { + "name": "VAE", + "type": "VAE", + "slot_index": 2, + "links": [ + 8 + ] + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple", + "cnr_id": "comfy-core", + "ver": "0.3.65", + "models": [ + { + "name": "v1-5-pruned-emaonly-fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors?download=true", + "directory": "checkpoints" + } + ] + }, + "widgets_values": [ + "v1-5-pruned-emaonly-fp16.safetensors" + ] + }, + { + "id": 3, + "type": "KSampler", + "pos": [ + 870, + 170 + ], + "size": [ + 315, + 474 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 1 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 4 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 6 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 2 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 7 + ] + } + ], + "properties": { + "Node name for S&R": "KSampler", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + 685468484323813, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + }, + { + "id": 8, + "type": "VAEDecode", + "pos": [ + 975, + 700 + ], + "size": [ + 210, + 46 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 7 + }, + { + "name": "vae", + "type": "VAE", + "link": 8 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "slot_index": 0, + "links": [] + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [] + }, + { + "id": 7, + "type": "CLIPTextEncode", + "pos": [ + 410, + 410 + ], + "size": [ + 425.27801513671875, + 180.6060791015625 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 5 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 6 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + "text, watermark" + ], + "color": "#223", + "bgcolor": "#335" + }, + { + "id": 5, + "type": "EmptyLatentImage", + "pos": [ + 520, + 690 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "slot_index": 0, + "links": [ + 2 + ] + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + 512, + 512, + 1 + ] + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 411.21649169921875, + 203.68695068359375 + ], + "size": [ + 422.84503173828125, + 164.31304931640625 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 3 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 4 + ] + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.65" + }, + "widgets_values": [ + "beautiful scenery nature glass bottle landscape, purple galaxy bottle," + ], + "color": "#232", + "bgcolor": "#353" + } + ], + "links": [ + [ + 1, + 4, + 0, + 3, + 0, + "MODEL" + ], + [ + 2, + 5, + 0, + 3, + 3, + "LATENT" + ], + [ + 3, + 4, + 1, + 6, + 0, + "CLIP" + ], + [ + 4, + 6, + 0, + 3, + 1, + "CONDITIONING" + ], + [ + 5, + 4, + 1, + 7, + 0, + "CLIP" + ], + [ + 6, + 7, + 0, + 3, + 2, + "CONDITIONING" + ], + [ + 7, + 3, + 0, + 8, + 0, + "LATENT" + ], + [ + 8, + 4, + 2, + 8, + 1, + "VAE" + ] + ], + "groups": [ + { + "id": 1, + "title": "Step 1 - Load model", + "bounding": [ + 50, + 130, + 335, + 181.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 2, + "title": "Step 3 - Image size", + "bounding": [ + 510, + 620, + 335, + 189.60000610351562 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + }, + { + "id": 3, + "title": "Step 2 - Prompt", + "bounding": [ + 400, + 130, + 445.27801513671875, + 467.2060852050781 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.44218252181616574, + "offset": [ + -666.5670907104311, + -2227.894644048147 + ] + }, + "frontendVersion": "1.35.3", + "VHS_latentpreview": false, + "VHS_latentpreviewrate": 0, + "VHS_MetadataImage": true, + "VHS_KeepIntermediate": true, + "workflowRendererVersion": "LG" + }, + "version": 0.4 +} \ No newline at end of file diff --git a/browser_tests/tests/viewport.spec.ts b/browser_tests/tests/viewport.spec.ts new file mode 100644 index 0000000000..7bc686a1cf --- /dev/null +++ b/browser_tests/tests/viewport.spec.ts @@ -0,0 +1,20 @@ +import { expect } from '@playwright/test' + +import { comfyPageFixture as test } from '../fixtures/ComfyPage' + +test.describe('Viewport', () => { + test('Fits view to nodes when saved viewport position is offscreen', async ({ + comfyPage + }) => { + await comfyPage.loadWorkflow('viewport/default-viewport-saved-offscreen') + + // Wait a few frames for rendering to stabilize + for (let i = 0; i < 5; i++) { + await comfyPage.nextFrame() + } + + await expect(comfyPage.canvas).toHaveScreenshot( + 'viewport-fits-when-saved-offscreen.png' + ) + }) +}) diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 57554ca824..b9335b353e 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -64,7 +64,7 @@ import type { ComfyExtension, MissingNodeType } from '@/types/comfy' import { type ExtensionManager } from '@/types/extensionTypes' import type { NodeExecutionId } from '@/types/nodeIdentification' import { graphToPrompt } from '@/utils/executionUtil' -import { computeBoundsFromPosSize } from '@/utils/mathUtil' +import { anyItemOverlapsRect } from '@/utils/mathUtil' import { collectAllNodes, forEachNode } from '@/utils/graphTraversalUtil' import { getNodeByExecutionId, @@ -1223,14 +1223,19 @@ export class ComfyApp { if (graphData.extra?.ds) { this.canvas.ds.offset = graphData.extra.ds.offset this.canvas.ds.scale = graphData.extra.ds.scale - } else { - // Use pos/size directly since boundingRect isn't computed until - // after the first render (rAF + fitView was unreliable). - const bounds = computeBoundsFromPosSize(this.rootGraph._nodes) - if (bounds) { - this.canvas.ds.fitToBounds(bounds) - this.canvas.setDirty(true, true) + + // Fit view if no nodes visible in restored viewport + this.canvas.ds.computeVisibleArea(this.canvas.viewport) + if ( + !anyItemOverlapsRect( + this.rootGraph._nodes, + this.canvas.visible_area + ) + ) { + requestAnimationFrame(() => useLitegraphService().fitView()) } + } else { + requestAnimationFrame(() => useLitegraphService().fitView()) } } } catch (error) { diff --git a/src/utils/mathUtil.ts b/src/utils/mathUtil.ts index b0183b05cf..e13d26fe91 100644 --- a/src/utils/mathUtil.ts +++ b/src/utils/mathUtil.ts @@ -109,46 +109,13 @@ export function anyItemOverlapsRect( const rectBottom = rect[1] + rect[3] for (const item of items) { - if ( + const overlaps = item.pos[0] < rectRight && item.pos[0] + item.size[0] > rect[0] && item.pos[1] < rectBottom && item.pos[1] + item.size[1] > rect[1] - ) { - return true - } - } - return false -} - -/** - * Computes bounding rect from items with pos/size (no render required). - * @param items Items with pos [x, y] and size [width, height] - * @param padding Padding around the bounds - * @returns Bounding rect as [x, y, width, height], or null if no items - */ -export function computeBoundsFromPosSize( - items: Iterable<{ pos: Vec2; size: Vec2 }>, - padding: number = 10 -): ReadOnlyRect | null { - let minX = Infinity - let minY = Infinity - let maxX = -Infinity - let maxY = -Infinity - for (const item of items) { - minX = Math.min(minX, item.pos[0]) - minY = Math.min(minY, item.pos[1]) - maxX = Math.max(maxX, item.pos[0] + item.size[0]) - maxY = Math.max(maxY, item.pos[1] + item.size[1]) + if (overlaps) return true } - - if (!isFinite(minX)) return null - - return [ - minX - padding, - minY - padding, - maxX - minX + 2 * padding, - maxY - minY + 2 * padding - ] + return false } From 2647571e3e3865b869b6d66c7e8625510e9cc86d Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 13 Dec 2025 06:42:18 +0000 Subject: [PATCH 4/4] [automated] Update test expectations --- ...fits-when-saved-offscreen-chromium-linux.png | Bin 0 -> 81549 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 browser_tests/tests/viewport.spec.ts-snapshots/viewport-fits-when-saved-offscreen-chromium-linux.png diff --git a/browser_tests/tests/viewport.spec.ts-snapshots/viewport-fits-when-saved-offscreen-chromium-linux.png b/browser_tests/tests/viewport.spec.ts-snapshots/viewport-fits-when-saved-offscreen-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9d1cb0604c0ebb1617ea1b42b10de0046ed99154 GIT binary patch literal 81549 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 literal 0 HcmV?d00001