Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions invokeai/frontend/webv2/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,48 +55,48 @@
"@dnd-kit/utilities": "^3.2.2",
"@emotion/react": "^11.14.0",
"@fontsource/inter": "^5.3.0",
"@tanstack/react-query": "^5.102.8",
"@tanstack/react-router": "^1.170.36",
"@tanstack/react-virtual": "^3.14.13",
"@xyflow/react": "^12.11.6",
"ag-psd": "^31.0.2",
"@tanstack/react-query": "^5.104.5",
"@tanstack/react-router": "^1.170.46",
"@tanstack/react-virtual": "^3.14.22",
"@xyflow/react": "^12.12.0",
"ag-psd": "^31.0.3",
"fflate": "^0.8.3",
"fuzzysort": "^4.0.2",
"html-to-image": "^1.11.13",
"i18next": "^26.4.2",
"i18next-http-backend": "^4.0.2",
"idb": "^8.0.3",
"lucide-react": "^1.46.0",
"i18next": "^26.5.6",
"i18next-http-backend": "^4.0.4",
"idb": "^8.0.4",
"lucide-react": "^1.61.0",
"perfect-freehand": "^1.2.3",
"plotly.js-gl2d-dist-min": "^4.1.1",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"plotly.js-gl2d-dist-min": "^4.1.2",
"react": "^19.3.1",
"react-dom": "^19.3.1",
"react-hook-tanstack-virtual": "^0.0.4",
"react-i18next": "^17.0.14",
"socket.io-client": "^4.8.3",
"tinykeys": "^4.0.0",
"react-i18next": "^17.1.3",
"socket.io-client": "^4.8.4",
"tinykeys": "^4.0.1",
"use-sync-external-store": "^1.7.0",
"yaml": "^2.9.1",
"zod": "^4.6.5"
"zod": "^4.6.7"
},
"devDependencies": {
"@chakra-ui/cli": "^3.37.0",
"@rolldown/plugin-babel": "^0.2.4",
"@types/node": "^26.5.1",
"@types/plotly.js": "^3.0.13",
"@types/node": "^26.6.5",
"@types/plotly.js": "^3.0.15",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@types/use-sync-external-store": "^1.7.0",
"@vitejs/plugin-react": "^6.1.1",
"@vitest/browser-playwright": "5.0.0",
"axe-core": "^4.13.0",
"@vitejs/plugin-react": "^6.1.2",
"@vitest/browser-playwright": "5.0.5",
"axe-core": "^4.14.0",
"babel-plugin-react-compiler": "^1.0.0",
"oxfmt": "^0.68.0",
"oxlint": "^1.83.0",
"playwright": "1.63.0",
"oxfmt": "^0.74.0",
"oxlint": "^1.89.0",
"playwright": "1.64.1",
"typescript": "^7.0.2",
"vite": "^8.3.0",
"vitest": "5.0.0"
"vite": "^8.3.5",
"vitest": "5.0.5"
},
"engines": {
"pnpm": "10"
Expand Down
41 changes: 24 additions & 17 deletions invokeai/frontend/webv2/patches/react-hook-tanstack-virtual.patch

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion invokeai/frontend/webv2/performance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Locale strings count: `en.json` is part of each route's `otherAssetRawBytes`. Ne

### Finding a new startup request

Build `main` in a separate worktree; compare hash-stripped `dist/assets/*.js` names with the branch build. Names only in the branch build that also appear in the route trace (`artifacts/architecture-performance/traces/<fixture>-<profile>.zip`, `trace.network` URLs) are the extra requests. Run `pnpm test:performance:browser:profile` to collect traces for passing routes. `dist/.vite/chunk-sources.json` maps chunks to sources; `vite build --minify false` keeps `//#region` module markers.
Build `main` in a separate worktree; compare hash-stripped `dist/assets/*.js` names with the branch build. Names only in the branch build that also appear in the route trace (`artifacts/architecture-performance/traces/<fixture>-<profile>.zip`, `trace.network` URLs) are the extra requests. Run `pnpm test:performance:browser:profile` to collect traces for passing routes. `dist/.vite/chunk-sources.json` maps each chunk to its source modules and packages; diff it between the two builds to see which modules moved between chunks. Unminified builds no longer carry `//#region` module markers.

## Remediation tickets

Expand Down
26 changes: 11 additions & 15 deletions invokeai/frontend/webv2/performance/architecture-baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"build": {
"launchpad": {
"baseline": {
"brotliBytes": 804953,
"brotliBytes": 808399,
"cssRawBytes": 2159,
"fontRawBytes": 219480,
"gzipBytes": 804296,
"gzipBytes": 807399,
"imageRawBytes": 44398,
"initialRawBytes": 2074195,
"largestAssetRawBytes": 752422,
"initialRawBytes": 2083953,
"largestAssetRawBytes": 751904,
"otherAssetRawBytes": 0,
"ownedRawBytes": 103111,
"ownedRawBytes": 103029,
"requestCount": 35,
"scriptRequestCount": 19,
"sourceOwners": [
Expand Down Expand Up @@ -350,15 +350,15 @@
},
"editor": {
"baseline": {
"brotliBytes": 1213758,
"brotliBytes": 1216912,
"cssRawBytes": 2159,
"fontRawBytes": 219480,
"gzipBytes": 1206518,
"gzipBytes": 1209036,
"imageRawBytes": 44398,
"initialRawBytes": 3341503,
"largestAssetRawBytes": 752422,
"initialRawBytes": 3350470,
"largestAssetRawBytes": 751904,
"otherAssetRawBytes": 0,
"ownedRawBytes": 156608,
"ownedRawBytes": 156430,
"requestCount": 71,
"scriptRequestCount": 55,
"sourceOwners": [
Expand Down Expand Up @@ -845,12 +845,10 @@
"source:src/workbench/canvas-engine/document/mergeVisible.ts",
"source:src/workbench/canvas-engine/document/selectionRepair.ts",
"source:src/workbench/canvas-engine/document/sources.ts",
"source:src/workbench/canvas-engine/editing/controlPixelEdit.ts",
"source:src/workbench/canvas-engine/engineStores.ts",
"source:src/workbench/canvas-engine/layerExportGuards.ts",
"source:src/workbench/canvas-engine/math/mat2d.ts",
"source:src/workbench/canvas-engine/math/rect.ts",
"source:src/workbench/canvas-engine/math/snapping.ts",
"source:src/workbench/canvas-engine/mutationContracts.ts",
"source:src/workbench/canvas-engine/render/adjustments.ts",
"source:src/workbench/canvas-engine/render/compositor.ts",
Expand All @@ -860,8 +858,6 @@
"source:src/workbench/canvas-engine/render/maskFill.ts",
"source:src/workbench/canvas-engine/render/rasterComposite.ts",
"source:src/workbench/canvas-engine/render/rasterizers/textRasterizer.ts",
"source:src/workbench/canvas-engine/render/thumbnail.ts",
"source:src/workbench/canvas-engine/transform/transformMath.ts",
"source:src/workbench/canvasDimsSync.ts",
"source:src/workbench/canvasLayerContent.ts",
"source:src/workbench/canvasMigration.ts",
Expand Down Expand Up @@ -1113,7 +1109,7 @@
"source": "src/app/WorkbenchApp.tsx"
}
},
"capturedAt": "2026-10-23",
"capturedAt": "2026-10-24",
"developmentInvalidation": {
"platformUiBarrel": {
"specifier": "@platform/ui",
Expand Down
80 changes: 40 additions & 40 deletions invokeai/frontend/webv2/performance/browser-baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 0,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236655,
"requestCount": 29,
"scriptRawBytes": 1897694,
"scriptRawBytes": 1919842,
"scriptRequestCount": 25,
"totalRawBytes": 2158882
"totalRawBytes": 2182320
},
"routeReadyMedianMs": 215.30000019073486,
"scriptSourceOwnerSet": "launchpad-static",
Expand Down Expand Up @@ -67,12 +67,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 0,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236655,
"requestCount": 29,
"scriptRawBytes": 1897694,
"scriptRawBytes": 1919842,
"scriptRequestCount": 25,
"totalRawBytes": 2158882
"totalRawBytes": 2182320
},
"routeReadyMedianMs": 225.39999961853027,
"scriptSourceOwnerSet": "launchpad-static",
Expand Down Expand Up @@ -105,12 +105,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 87,
"scriptRawBytes": 4312524,
"scriptRawBytes": 4350945,
"scriptRequestCount": 82,
"totalRawBytes": 4618110
"totalRawBytes": 4657815
},
"routeReadyMedianMs": 360.90000009536743,
"scriptSourceOwnerSet": "editor-minimal-static",
Expand Down Expand Up @@ -143,12 +143,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 87,
"scriptRawBytes": 4312524,
"scriptRawBytes": 4350945,
"scriptRequestCount": 82,
"totalRawBytes": 4618110
"totalRawBytes": 4657815
},
"routeReadyMedianMs": 367.80000019073486,
"scriptSourceOwnerSet": "editor-minimal-static",
Expand Down Expand Up @@ -181,12 +181,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 96,
"scriptRawBytes": 4853620,
"scriptRawBytes": 4895726,
"scriptRequestCount": 91,
"totalRawBytes": 5159206
"totalRawBytes": 5202596
},
"routeReadyMedianMs": 1095.3000001907349,
"scriptSourceOwnerSet": "editor-canvas-static",
Expand Down Expand Up @@ -219,12 +219,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 96,
"scriptRawBytes": 4853620,
"scriptRawBytes": 4895726,
"scriptRequestCount": 91,
"totalRawBytes": 5159206
"totalRawBytes": 5202596
},
"routeReadyMedianMs": 1042.5,
"scriptSourceOwnerSet": "editor-canvas-static",
Expand Down Expand Up @@ -257,12 +257,12 @@
"cssRawBytes": 17572,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 94,
"scriptRawBytes": 4772177,
"scriptRawBytes": 4818320,
"scriptRequestCount": 88,
"totalRawBytes": 5093176
"totalRawBytes": 5140603
},
"routeReadyMedianMs": 1093.0999999046326,
"scriptSourceOwnerSet": "editor-workflow-static",
Expand Down Expand Up @@ -295,12 +295,12 @@
"cssRawBytes": 17572,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 94,
"scriptRawBytes": 4772177,
"scriptRawBytes": 4818320,
"scriptRequestCount": 88,
"totalRawBytes": 5093176
"totalRawBytes": 5140603
},
"routeReadyMedianMs": 1105.0999999046326,
"scriptSourceOwnerSet": "editor-workflow-static",
Expand Down Expand Up @@ -333,12 +333,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 87,
"scriptRawBytes": 4312524,
"scriptRawBytes": 4350945,
"scriptRequestCount": 82,
"totalRawBytes": 4618110
"totalRawBytes": 4657815
},
"routeReadyMedianMs": 1324.5,
"scriptSourceOwnerSet": "editor-minimal-static",
Expand Down Expand Up @@ -371,12 +371,12 @@
"cssRawBytes": 2159,
"fontRawBytes": 23664,
"imageRawBytes": 44398,
"largestAssetRawBytes": 752431,
"otherRawBytes": 235365,
"largestAssetRawBytes": 751922,
"otherRawBytes": 236649,
"requestCount": 87,
"scriptRawBytes": 4312524,
"scriptRawBytes": 4350945,
"scriptRequestCount": 82,
"totalRawBytes": 4618110
"totalRawBytes": 4657815
},
"routeReadyMedianMs": 1301.5,
"scriptSourceOwnerSet": "editor-minimal-static",
Expand Down
Loading
Loading