Skip to content

Conversation

@niknah
Copy link
Contributor

@niknah niknah commented Nov 29, 2025

Before node v2, you could use getInputPos, getOutputPos. In node v2, that is not possible.

Summary

Want to get the position of the output / inputs on the graph like before node v2.

Changes

  • What: Added LGraphNode.getSlotPosition

Review Focus

Screenshots (if applicable)

┆Issue is synchronized with this Notion page by Unito

Before node v2, you could use getInputPos, getOutputPos.
In node v2, that is not possible.
@niknah niknah requested a review from a team as a code owner November 29, 2025 19:45
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Nov 29, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 29, 2025

📝 Walkthrough

Walkthrough

A new public method getSlotPosition is added to LGraphNode that delegates to an imported utility function, providing a centralized way to compute slot center positions using layout-tree logic or node position fallback.

Changes

Cohort / File(s) Summary
LGraphNode API Extension
src/lib/litegraph/src/LGraphNode.ts
Added import of getSlotPosition from slotCalculations module. Introduced new public method getSlotPosition(slotIndex: number, isInput: boolean): Point that delegates to the imported utility function, centralizing slot position computation.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d94e072 and 9b3a6fd.

📒 Files selected for processing (1)
  • src/lib/litegraph/src/LGraphNode.ts (2 hunks)
🧰 Additional context used
📓 Path-based instructions (13)
**/*.{vue,ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

**/*.{vue,ts,tsx}: Leverage VueUse functions for performance-enhancing utilities
Use vue-i18n in Composition API for any string literals and place new translation entries in src/locales/en/main.json

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursorrules)

Use es-toolkit for utility functions

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

Use TypeScript for type safety

**/*.{ts,tsx}: Never use any type - use proper TypeScript types
Never use as any type assertions - fix the underlying type issue

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.{ts,tsx,js,vue}

📄 CodeRabbit inference engine (.cursorrules)

Implement proper error handling in components and services

**/*.{ts,tsx,js,vue}: Use 2-space indentation, single quotes, no semicolons, and maintain 80-character line width as configured in .prettierrc
Organize imports by sorting and grouping by plugin, and run pnpm format before committing

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/**/*.{vue,ts}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.{vue,ts}: Leverage VueUse functions for performance-enhancing styles
Implement proper error handling
Use vue-i18n in composition API for any string literals. Place new translation entries in src/locales/en/main.json

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/**/*.ts

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.ts: Use es-toolkit for utility functions
Use TypeScript for type safety

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.{ts,tsx,js,jsx,vue}

📄 CodeRabbit inference engine (CLAUDE.md)

Use camelCase for variable and setting names in TypeScript/Vue files

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,vue}: Use const settingStore = useSettingStore() and settingStore.get('Comfy.SomeSetting') to retrieve settings in TypeScript/Vue files
Use await settingStore.set('Comfy.SomeSetting', newValue) to update settings in TypeScript/Vue files
Check server capabilities using api.serverSupportsFeature('feature_name') before using enhanced features
Use api.getServerFeature('config_name', defaultValue) to retrieve server feature configuration

Enforce ESLint rules for Vue + TypeScript including: no floating promises, no unused imports, and i18n raw text restrictions in templates

Files:

  • src/lib/litegraph/src/LGraphNode.ts
**/*.ts

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.ts: Define dynamic setting defaults using runtime context with functions in settings configuration
Use defaultsByInstallVersion property for gradual feature rollout based on version in settings configuration

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

src/**/*.{ts,tsx,vue}: Sanitize HTML with DOMPurify to prevent XSS attacks
Avoid using @ts-expect-error; use proper TypeScript types instead
Use es-toolkit for utility functions instead of other utility libraries
Implement proper TypeScript types throughout the codebase

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/**/*.{vue,ts,tsx}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Follow Vue 3 composition API style guide

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/lib/litegraph/**/*.{js,ts,jsx,tsx}

📄 CodeRabbit inference engine (src/lib/litegraph/CLAUDE.md)

src/lib/litegraph/**/*.{js,ts,jsx,tsx}: Run ESLint instead of manually figuring out whitespace fixes or other trivial style concerns using the pnpm lint:fix command
Take advantage of TypedArray subarray when appropriate
The size and pos properties of Rectangle share the same array buffer (subarray); they may be used to set the rectangle's size and position
Prefer single line if syntax over adding curly braces, when the statement has a very concise expression and concise, single line statement
Do not replace &&= or ||= with = when there is no reason to do so. If you do find a reason to remove either &&= or ||=, leave a comment explaining why the removal occurred
When writing methods, prefer returning idiomatic JavaScript undefined over null

Files:

  • src/lib/litegraph/src/LGraphNode.ts
src/lib/litegraph/**/*.{ts,tsx}

📄 CodeRabbit inference engine (src/lib/litegraph/CLAUDE.md)

Type assertions are an absolute last resort. In almost all cases, they are a crutch that leads to brittle code

Files:

  • src/lib/litegraph/src/LGraphNode.ts
🧬 Code graph analysis (1)
src/lib/litegraph/src/LGraphNode.ts (3)
src/renderer/core/layout/types.ts (1)
  • Point (18-21)
src/lib/litegraph/src/interfaces.ts (1)
  • Point (229-229)
src/renderer/core/canvas/litegraph/slotCalculations.ts (1)
  • getSlotPosition (136-189)
🔇 Additional comments (2)
src/lib/litegraph/src/LGraphNode.ts (2)

5-6: LGTM! Import addition is correct.

The getSlotPosition function is properly imported from the slotCalculations module and will be used by the new public method below.


3358-3366: LGTM! Well-implemented unified slot position method.

This new method successfully restores the ability to obtain pin positions after the node v2 migration. The implementation:

  • Properly delegates to the imported utility function
  • Prioritizes layout-tree-based positioning when available
  • Falls back to node properties when needed
  • Provides a unified interface for both input and output slots

The method signature is clear, well-documented, and type-safe.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

🎨 Storybook Build Status

loading Build is starting...

⏰ Started at: 11/29/2025, 07:45:34 PM UTC

🚀 Building Storybook

  • 📦 Installing dependencies...
  • 🔧 Building Storybook components...
  • 🌐 Preparing deployment to Cloudflare Pages...

⏱️ Please wait while the Storybook build is in progress...

@github-actions
Copy link

github-actions bot commented Nov 29, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/30/2025, 02:26:23 AM UTC

📈 Summary

  • Total Tests: 495
  • Passed: 483 ✅
  • Failed: 0
  • Flaky: 3 ⚠️
  • Skipped: 9 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 474 / ❌ 0 / ⚠️ 3 / ⏭️ 9
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

Bundle Size Report

Summary

  • Raw size: 17 MB baseline 17 MB — 🟢 -202 B
  • Gzip: 3.37 MB baseline 3.37 MB — 🔴 +7 B
  • Brotli: 2.58 MB baseline 2.58 MB — 🟢 -76 B
  • Bundles: 97 current • 97 baseline • 52 added / 52 removed

Category Glance
Graph Workspace 🟢 -450 B (949 kB) · App Entry Points 🔴 +424 B (3.18 MB) · UI Components 🟢 -185 B (139 kB) · Vendor & Third-Party 🔴 +9 B (8.56 MB) · Other ⚪ 0 B (3.84 MB) · Panels & Settings ⚪ 0 B (298 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.18 MB (baseline 3.18 MB) • 🔴 +424 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Bd4xfpUh.js (new) 2.95 MB 🔴 +2.95 MB 🔴 +616 kB 🔴 +468 kB
assets/index-CqF7qgE3.js (removed) 2.95 MB 🟢 -2.95 MB 🟢 -615 kB 🟢 -467 kB
assets/index-Cj1dcgfD.js (new) 227 kB 🔴 +227 kB 🔴 +48.6 kB 🔴 +40 kB
assets/index-DDTdeBc0.js (removed) 227 kB 🟢 -227 kB 🟢 -48.6 kB 🟢 -40 kB
assets/index-c8TUrEes.js (new) 345 B 🔴 +345 B 🔴 +244 B 🔴 +233 B
assets/index-CZyMhTvZ.js (removed) 345 B 🟢 -345 B 🟢 -247 B 🟢 -229 B

Status: 3 added / 3 removed

Graph Workspace — 949 kB (baseline 949 kB) • 🟢 -450 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Bni9yznG.js (removed) 949 kB 🟢 -949 kB 🟢 -184 kB 🟢 -141 kB
assets/GraphView-C3Zc9mDg.js (new) 949 kB 🔴 +949 kB 🔴 +184 kB 🔴 +141 kB

Status: 1 added / 1 removed

Views & Navigation — 6.54 kB (baseline 6.54 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-Csbans2s.js (new) 6.54 kB 🔴 +6.54 kB 🔴 +2.14 kB 🔴 +1.89 kB
assets/UserSelectView-GcdBhpLq.js (removed) 6.54 kB 🟢 -6.54 kB 🟢 -2.14 kB 🟢 -1.9 kB

Status: 1 added / 1 removed

Panels & Settings — 298 kB (baseline 298 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CreditsPanel-4mGDmbbB.js (new) 21.4 kB 🔴 +21.4 kB 🔴 +5.15 kB 🔴 +4.5 kB
assets/CreditsPanel-COWULCrf.js (removed) 21.4 kB 🟢 -21.4 kB 🟢 -5.15 kB 🟢 -4.5 kB
assets/KeybindingPanel-PdCXUgX7.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +3.42 kB 🔴 +3.01 kB
assets/KeybindingPanel-VPFKuDE1.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -3.42 kB 🟢 -3 kB
assets/ExtensionPanel-CN0yNXYO.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.57 kB 🟢 -2.25 kB
assets/ExtensionPanel-Do7dmrfq.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.57 kB 🔴 +2.25 kB
assets/AboutPanel-DhBNCXqa.js (removed) 9.16 kB 🟢 -9.16 kB 🟢 -2.46 kB 🟢 -2.21 kB
assets/AboutPanel-DpTWG0LK.js (new) 9.16 kB 🔴 +9.16 kB 🔴 +2.46 kB 🔴 +2.21 kB
assets/ServerConfigPanel-7Pzsc02y.js (removed) 6.56 kB 🟢 -6.56 kB 🟢 -1.83 kB 🟢 -1.63 kB
assets/ServerConfigPanel-bOulAnHL.js (new) 6.56 kB 🔴 +6.56 kB 🔴 +1.83 kB 🔴 +1.63 kB
assets/UserPanel-CF2o2Hzy.js (removed) 6.23 kB 🟢 -6.23 kB 🟢 -1.72 kB 🟢 -1.51 kB
assets/UserPanel-DMgIPxYW.js (new) 6.23 kB 🔴 +6.23 kB 🔴 +1.72 kB 🔴 +1.51 kB
assets/settings-BhbWhsRg.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BXTtSH4O.js 33.3 kB 33.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C9Pzn-NG.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCy2fA_h.js 27.3 kB 27.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CQpqEFfl.js 26.6 kB 26.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DHcnxypw.js 21.7 kB 21.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DhFTK9fY.js 25.1 kB 25.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DlT4t_ui.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRgSrIdD.js 24.2 kB 24.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-tjkeqiZq.js 21.1 kB 21.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

UI Components — 139 kB (baseline 139 kB) • 🟢 -185 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/Load3D.vue_vue_type_script_setup_true_lang-7d7ylRfw.js (new) 53.9 kB 🔴 +53.9 kB 🔴 +8.52 kB 🔴 +7.32 kB
assets/Load3D.vue_vue_type_script_setup_true_lang-DnX8s5DA.js (removed) 53.9 kB 🟢 -53.9 kB 🟢 -8.52 kB 🟢 -7.32 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-Duy7xPyH.js (removed) 47 kB 🟢 -47 kB 🟢 -10.1 kB 🟢 -8.78 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-HpBw6zqN.js (new) 47 kB 🔴 +47 kB 🔴 +10.1 kB 🔴 +8.78 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-C_1xYp1E.js (removed) 12.9 kB 🟢 -12.9 kB 🟢 -3.37 kB 🟢 -2.97 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-BqJXcWuD.js (new) 12.8 kB 🔴 +12.8 kB 🔴 +3.35 kB 🔴 +2.96 kB
assets/LazyImage.vue_vue_type_script_setup_true_lang-DYZmdfih.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.97 kB 🟢 -2.6 kB
assets/LazyImage.vue_vue_type_script_setup_true_lang-Pm3jgX4e.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.59 kB
assets/ComfyQueueButton-B_wRUzgw.js (new) 8.44 kB 🔴 +8.44 kB 🔴 +2.47 kB 🔴 +2.21 kB
assets/ComfyQueueButton-tUUAbzWS.js (removed) 8.44 kB 🟢 -8.44 kB 🟢 -2.47 kB 🟢 -2.21 kB
assets/WidgetButton-BT4Lql5K.js (removed) 2.04 kB 🟢 -2.04 kB 🟢 -928 B 🟢 -812 B
assets/WidgetButton-CsMa_P26.js (new) 2.04 kB 🔴 +2.04 kB 🔴 +928 B 🔴 +810 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-Cf8dNyi2.js (new) 2 kB 🔴 +2 kB 🔴 +768 B 🔴 +677 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-Cj7vQINR.js (removed) 2 kB 🟢 -2 kB 🟢 -774 B 🟢 -671 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-Bs-EIQeq.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +686 B 🔴 +593 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-CsUBtx3o.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -686 B 🟢 -594 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-C7ByKuL9.js (removed) 897 B 🟢 -897 B 🟢 -504 B 🟢 -461 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-Tlja5viZ.js (new) 897 B 🔴 +897 B 🔴 +502 B 🔴 +437 B

Status: 9 added / 9 removed

Data & Services — 12.5 kB (baseline 12.5 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-vI-3wNbO.js (new) 7.51 kB 🔴 +7.51 kB 🔴 +1.84 kB 🔴 +1.58 kB
assets/keybindingService-WCai9jnh.js (removed) 7.51 kB 🟢 -7.51 kB 🟢 -1.84 kB 🟢 -1.58 kB
assets/serverConfigStore-B5NW8oSr.js (new) 2.83 kB 🔴 +2.83 kB 🔴 +910 B 🔴 +789 B
assets/serverConfigStore-BQ9GXEkd.js (removed) 2.83 kB 🟢 -2.83 kB 🟢 -909 B 🟢 -789 B
assets/audioService-D-IvsYSB.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +959 B 🔴 +824 B
assets/audioService-DYn_1eWm.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -961 B 🟢 -826 B

Status: 3 added / 3 removed

Utilities & Hooks — 2.94 kB (baseline 2.94 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioUtils-BE0Ogmjv.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +649 B 🔴 +552 B
assets/audioUtils-D3m6zgcT.js (removed) 1.41 kB 🟢 -1.41 kB 🟢 -651 B 🟢 -549 B
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeFilterUtil-CXKCRJ-m.js 460 B 460 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

Vendor & Third-Party — 8.56 MB (baseline 8.56 MB) • 🔴 +9 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-DisjWJFj.js (new) 3.98 MB 🔴 +3.98 MB 🔴 +843 kB 🔴 +673 kB
assets/vendor-other-BawBdcAH.js (removed) 3.98 MB 🟢 -3.98 MB 🟢 -843 kB 🟢 -674 kB
assets/vendor-primevue-BTkNfp3w.js (removed) 1.96 MB 🟢 -1.96 MB 🟢 -336 kB 🟢 -202 kB
assets/vendor-primevue-LncEKxae.js (new) 1.96 MB 🔴 +1.96 MB 🔴 +336 kB 🔴 +202 kB
assets/vendor-chart-B_stLV7c.js (removed) 452 kB 🟢 -452 kB 🟢 -99.1 kB 🟢 -81 kB
assets/vendor-chart-uhYFfslB.js (new) 452 kB 🔴 +452 kB 🔴 +99.1 kB 🔴 +81 kB
assets/vendor-tiptap-C4yk8cCR.js (new) 232 kB 🔴 +232 kB 🔴 +45.7 kB 🔴 +37.7 kB
assets/vendor-tiptap-CogkskC9.js (removed) 232 kB 🟢 -232 kB 🟢 -45.7 kB 🟢 -37.7 kB
assets/vendor-vue-DCnqNLx6.js (removed) 160 kB 🟢 -160 kB 🟢 -37.3 kB 🟢 -31.6 kB
assets/vendor-vue-tw3tq7KH.js (new) 160 kB 🔴 +160 kB 🔴 +37.3 kB 🔴 +31.5 kB
assets/vendor-three-aR6ntw5X.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Other — 3.84 MB (baseline 3.84 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WidgetRecordAudio-0Yrqtm0w.js (new) 20.4 kB 🔴 +20.4 kB 🔴 +5.23 kB 🔴 +4.63 kB
assets/WidgetRecordAudio-B4mwkyYN.js (removed) 20.4 kB 🟢 -20.4 kB 🟢 -5.23 kB 🟢 -4.63 kB
assets/AudioPreviewPlayer-BAmhYkh9.js (new) 13.5 kB 🔴 +13.5 kB 🔴 +3.4 kB 🔴 +3.04 kB
assets/AudioPreviewPlayer-CNedbTJK.js (removed) 13.5 kB 🟢 -13.5 kB 🟢 -3.4 kB 🟢 -3.04 kB
assets/WidgetGalleria-DKvo1FQ6.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.45 kB 🟢 -1.3 kB
assets/WidgetGalleria-DOZ1q38a.js (new) 4.1 kB 🔴 +4.1 kB 🔴 +1.45 kB 🔴 +1.3 kB
assets/WidgetColorPicker-7PBnisGm.js (removed) 3.41 kB 🟢 -3.41 kB 🟢 -1.38 kB 🟢 -1.23 kB
assets/WidgetColorPicker-CVyAger8.js (new) 3.41 kB 🔴 +3.41 kB 🔴 +1.38 kB 🔴 +1.23 kB
assets/WidgetMarkdown-Bp4yCOi7.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.29 kB 🟢 -1.13 kB
assets/WidgetMarkdown-BwGBfvo-.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.29 kB 🔴 +1.13 kB
assets/WidgetAudioUI-3GuNGSgD.js (removed) 2.82 kB 🟢 -2.82 kB 🟢 -1.12 kB 🟢 -1.01 kB
assets/WidgetAudioUI-CqR5FLzJ.js (new) 2.82 kB 🔴 +2.82 kB 🔴 +1.12 kB 🔴 +1.02 kB
assets/MediaVideoTop-6PQqfKb3.js (new) 2.76 kB 🔴 +2.76 kB 🔴 +1.05 kB 🔴 +900 B
assets/MediaVideoTop-Ct23Baus.js (removed) 2.76 kB 🟢 -2.76 kB 🟢 -1.05 kB 🟢 -899 B
assets/WidgetChart-C9sMH5oS.js (new) 2.48 kB 🔴 +2.48 kB 🔴 +931 B 🔴 +816 B
assets/WidgetChart-DID0Bx3W.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -932 B 🟢 -815 B
assets/WidgetTextarea-BNymmMby.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -1.01 kB 🟢 -888 B
assets/WidgetTextarea-zoR2Ds_8.js (new) 2.48 kB 🔴 +2.48 kB 🔴 +1.01 kB 🔴 +904 B
assets/WidgetImageCompare-Cddu857y.js (removed) 2.21 kB 🟢 -2.21 kB 🟢 -747 B 🟢 -664 B
assets/WidgetImageCompare-D4gTOuOo.js (new) 2.21 kB 🔴 +2.21 kB 🔴 +747 B 🔴 +660 B
assets/WidgetInputText-CDJOSnPB.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +917 B 🔴 +849 B
assets/WidgetInputText-OSHVu-S1.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -917 B 🟢 -854 B
assets/MediaImageTop-DBacjcjH.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -840 B 🟢 -716 B
assets/MediaImageTop-DbyT2UjV.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +843 B 🔴 +720 B
assets/WidgetToggleSwitch-3K8macTa.js (removed) 1.58 kB 🟢 -1.58 kB 🟢 -759 B 🟢 -670 B
assets/WidgetToggleSwitch-CBRsIck7.js (new) 1.58 kB 🔴 +1.58 kB 🔴 +760 B 🔴 +666 B
assets/MediaImageBottom-5LMBrxCS.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +743 B 🔴 +643 B
assets/MediaImageBottom-C4IfRm26.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -741 B 🟢 -645 B
assets/MediaAudioBottom-Cft4eeuu.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -740 B 🟢 -652 B
assets/MediaAudioBottom-D3zRqHv1.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +741 B 🔴 +654 B
assets/MediaVideoBottom-C0WiQu8W.js (new) 1.52 kB 🔴 +1.52 kB 🔴 +739 B 🔴 +653 B
assets/MediaVideoBottom-gaMCk0T3.js (removed) 1.52 kB 🟢 -1.52 kB 🟢 -739 B 🟢 -650 B
assets/Media3DBottom-BlH15kVI.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -733 B 🟢 -648 B
assets/Media3DBottom-N29sjj02.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +732 B 🔴 +650 B
assets/Media3DTop-CfwJs39U.js (new) 1.49 kB 🔴 +1.49 kB 🔴 +765 B 🔴 +650 B
assets/Media3DTop-D6w1qRvn.js (removed) 1.49 kB 🟢 -1.49 kB 🟢 -763 B 🟢 -650 B
assets/MediaAudioTop-Bqc4HR5L.js (new) 1.46 kB 🔴 +1.46 kB 🔴 +741 B 🔴 +616 B
assets/MediaAudioTop-CSwk_z5a.js (removed) 1.46 kB 🟢 -1.46 kB 🟢 -738 B 🟢 -618 B
assets/WidgetSelect-DCfpt4CI.js (new) 655 B 🔴 +655 B 🔴 +343 B 🔴 +287 B
assets/WidgetSelect-pZyEKA-8.js (removed) 655 B 🟢 -655 B 🟢 -344 B 🟢 -288 B
assets/WidgetInputNumber-DU9mfBMR.js (removed) 595 B 🟢 -595 B 🟢 -326 B 🟢 -273 B
assets/WidgetInputNumber-G26XNCsv.js (new) 595 B 🔴 +595 B 🔴 +330 B 🔴 +276 B
assets/Load3D-CFjLkpUy.js (removed) 424 B 🟢 -424 B 🟢 -266 B 🟢 -223 B
assets/Load3D-Cos8z78D.js (new) 424 B 🔴 +424 B 🔴 +265 B 🔴 +222 B
assets/WidgetLegacy-DiMGh3jn.js (new) 364 B 🔴 +364 B 🔴 +234 B 🔴 +192 B
assets/WidgetLegacy-DvIBiikd.js (removed) 364 B 🟢 -364 B 🟢 -236 B 🟢 -194 B
assets/commands-_s-RvhJR.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BuUILW6P.js 13 kB 13 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BV4R6fLx.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BWp4HdfU.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CLwPdnT6.js 14.2 kB 14.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CWMchBmd.js 15.9 kB 15.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DazTQhtc.js 12.9 kB 12.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DmWrOe93.js 13.7 kB 13.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiH7Kr6.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-mS3LCNPn.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-5lOBdqcC.js 84.5 kB 84.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BOCuaVpE.js 73.4 kB 73.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-ClrEFGUz.js 72.4 kB 72.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cw9RZWRY.js 89 B 89 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CyNU0iQX.js 99.3 kB 99.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D7gwLxft.js 114 kB 114 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DC8o4BCt.js 86.8 kB 86.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DKiesCV4.js 94.3 kB 94.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Hq2q-OtB.js 83.6 kB 83.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-USAlAlnj.js 82 kB 82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-_Px5dSNW.js 306 kB 306 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-7z21KPoS.js 285 kB 285 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bw_Jitw_.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BWKZzBPK.js 346 kB 346 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CGbgH4Yl.js 320 kB 320 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CjjjdWkV.js 313 kB 313 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CVrNtxvj.js 288 kB 288 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DLRSA0IK.js 309 kB 309 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DQV2gnwA.js 372 kB 372 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ofqLG5vz.js 310 kB 310 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BIbGSUAt.js 1.28 kB 1.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 23 added / 23 removed

@christian-byrne christian-byrne added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch 1.32 core/1.33 Backport PRs for core 1.33 labels Nov 30, 2025
@christian-byrne christian-byrne merged commit b50b34a into Comfy-Org:main Nov 30, 2025
44 checks passed
github-actions bot pushed a commit that referenced this pull request Nov 30, 2025
Before node v2, you could use getInputPos, getOutputPos. In node v2,
that is not possible.

## Summary

Want to get the position of the output / inputs on the graph like before
node v2.

## Changes

- **What**: <!-- Core functionality added/modified --> Added
LGraphNode.getSlotPosition

## Review Focus


## Screenshots (if applicable)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7042-Expose-LGraphNode-getSlotPosition-2ba6d73d36508195a0fed2d1fe2b64f6)
by [Unito](https://www.unito.io)
github-actions bot pushed a commit that referenced this pull request Nov 30, 2025
Before node v2, you could use getInputPos, getOutputPos. In node v2,
that is not possible.

## Summary

Want to get the position of the output / inputs on the graph like before
node v2.

## Changes

- **What**: <!-- Core functionality added/modified --> Added
LGraphNode.getSlotPosition

## Review Focus


## Screenshots (if applicable)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7042-Expose-LGraphNode-getSlotPosition-2ba6d73d36508195a0fed2d1fe2b64f6)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@niknah Successfully backported to #7057

@comfy-pr-bot
Copy link
Member

@niknah Successfully backported to #7058

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Nov 30, 2025
christian-byrne pushed a commit that referenced this pull request Nov 30, 2025
Backport of #7042 to `core/1.32`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7057-backport-core-1-32-Expose-LGraphNode-getSlotPosition-2bb6d73d365081bc86e5c4e7a13503e3)
by [Unito](https://www.unito.io)

Co-authored-by: niknah <niknah+github@gmail.com>
christian-byrne pushed a commit that referenced this pull request Nov 30, 2025
Backport of #7042 to `core/1.33`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7058-backport-core-1-33-Expose-LGraphNode-getSlotPosition-2bb6d73d365081ce9a18f1d4a802276a)
by [Unito](https://www.unito.io)

Co-authored-by: niknah <niknah+github@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.32 core/1.33 Backport PRs for core 1.33 size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants