Skip to content

Fix doubled player on VHS LoadAudio in vue#8206

Merged
AustinMroz merged 5 commits intomainfrom
austin/fix-vhs-audio
Jan 21, 2026
Merged

Fix doubled player on VHS LoadAudio in vue#8206
AustinMroz merged 5 commits intomainfrom
austin/fix-vhs-audio

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Jan 21, 2026

In vue mode, the VHS Load Audio (Upload) node had 2 audio previews. This occurred because the native AudioPreview widget was being applied to any combo widget with the name audio. This native preview does not support the advanced preview functions VHS provides like seeking to specific start time, trimming to a target duration, or converting from formats the browser may not support.

This is fixed through a fairly involved cleanup to instead display the litegraph AudioUI widget as an AudioPreview widget when in vue mode.

┆Issue is synchronized with this Notion page by Unito

@AustinMroz AustinMroz requested a review from a team as a code owner January 21, 2026 04:32
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jan 21, 2026
@github-actions
Copy link

github-actions bot commented Jan 21, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/21/2026, 07:24:01 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 21, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 505 passed, 0 failed, 1 flaky, 8 skipped (Total: 514)

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 495 / ❌ 0 / ⚠️ 0 / ⏭️ 8)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 7 / ❌ 0 / ⚠️ 1 / ⏭️ 0)

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 21, 2026

📝 Walkthrough

Walkthrough

Removes WidgetAudioUI; simplifies widget lookup by changing getComponent to accept only type; centralizes audio UI updates via a new updateUIWidget helper in uploadAudio.ts; refactors AudioPreviewPlayer to use modelValue (v-model) and drop external node/api dependencies.

Changes

Cohort / File(s) Summary
Component Registry API Simplification
src/components/rightSidePanel/parameters/WidgetItem.vue, src/renderer/extensions/vueNodes/components/NodeWidgets.vue, src/renderer/extensions/vueNodes/widgets/registry/widgetRegistry.ts
getComponent call/signature changed from (type, name) → (type); removed combo-augmentation helper and removed WidgetAudioUI from FOR_TESTING exports.
WidgetAudioUI Removal
src/renderer/extensions/vueNodes/widgets/components/WidgetAudioUI.vue
Deleted the Vue SFC that provided the audio widget UI (template and script removed).
Audio UI Update Consolidation
src/extensions/core/uploadAudio.ts
Added updateUIWidget helper; replaced direct DOM/widget mutations with centralized calls; added widget value getter/setter wrappers; unified handling across upload, recording, execution, and removal flows.
Audio Player Component Refactoring
src/renderer/extensions/vueNodes/widgets/components/audio/AudioPreviewPlayer.vue
Converted to expose modelValue (v-model) for audio URL, bind to modelValue, removed litegraph/app/node output dependencies, simplified lifecycle and watchers, narrowed props.
Audio Utilities Cleanup
src/renderer/extensions/vueNodes/widgets/utils/audioUtils.ts
Removed exported getAudioUrlFromPath and the api import; kept getResourceURL and splitFilePath.
Test Updates
src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.test.ts
Updated tests to call getComponent with a single argument and removed WidgetAudioUI-related cases; adjusted expected mappings accordingly.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Recorder
  participant uploadAudio as uploadAudio.ts
  participant API
  participant Widget as AudioPreviewPlayer

  User->>Recorder: start/stop recording
  Recorder->>uploadAudio: provides Blob
  uploadAudio->>API: upload blob -> returns resource URL
  API-->>uploadAudio: resource URL
  uploadAudio->>Widget: updateUIWidget(resource URL, value, callback)
  Widget-->>User: audio playable via modelValue
  Note right of uploadAudio: Also used on file upload, node outputs, and removal flows
Loading

Possibly related PRs

Suggested reviewers

  • jtydhr88
  • Myestery
  • christian-byrne

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link

github-actions bot commented Jan 21, 2026

Bundle Size Report

Summary

  • Raw size: 21.4 MB baseline 21.4 MB — 🟢 -6.88 kB
  • Gzip: 4.44 MB baseline 4.44 MB — 🟢 -2.4 kB
  • Brotli: 3.29 MB baseline 3.29 MB — 🟢 -2.34 kB
  • Bundles: 151 current • 155 baseline • 73 added / 77 removed

Category Glance
Other 🟢 -5.58 kB (6.28 MB) · Utilities & Hooks 🟢 -691 B (18.1 kB) · Data & Services 🟢 -657 B (3.04 MB) · Graph Workspace 🔴 +75 B (1.02 MB) · App Entry Points 🟢 -34 B (22.3 kB) · Vendor & Third-Party ⚪ 0 B (10.4 MB) · + 5 more

Per-category breakdown
App Entry Points — 22.3 kB (baseline 22.4 kB) • 🟢 -34 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-LW4l_PUK.js (removed) 22.4 kB 🟢 -22.4 kB 🟢 -6.74 kB 🟢 -5.93 kB
assets/index-DUS27J7N.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +6.72 kB 🔴 +5.91 kB

Status: 1 added / 1 removed

Graph Workspace — 1.02 MB (baseline 1.02 MB) • 🔴 +75 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-C-8HX-t6.js (new) 1.02 MB 🔴 +1.02 MB 🔴 +201 kB 🔴 +153 kB
assets/GraphView-Cn7As3-M.js (removed) 1.02 MB 🟢 -1.02 MB 🟢 -201 kB 🟢 -153 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-ByPYULbt.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.61 kB 🟢 -3.05 kB
assets/CloudSurveyView-DkD2BWk5.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.61 kB 🔴 +3.06 kB
assets/CloudLoginView-CS3hCMH8.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.09 kB 🟢 -2.71 kB
assets/CloudLoginView-DrZm8zXI.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.71 kB
assets/UserCheckView-BGWW3Obe.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/UserCheckView-CrIr00ne.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/CloudLayoutView-BEm8YWXU.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.25 kB 🟢 -1.96 kB
assets/CloudLayoutView-C9C3wHtr.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.25 kB 🔴 +1.96 kB
assets/CloudSignupView-BR2CVyzo.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.03 kB
assets/CloudSignupView-TWqGfLbs.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/CloudForgotPasswordView-Czk_lkeO.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-D7nZUuHA.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/UserSelectView-CkDQz02n.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/UserSelectView-DH1y9FeK.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/CloudSubscriptionRedirectView-B2-dqQWA.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudSubscriptionRedirectView-DDTUfIhD.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudAuthTimeoutView-BlPsILTT.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/CloudAuthTimeoutView-CPKxz6Kx.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.71 kB 🔴 +1.49 kB
assets/CloudSorryContactSupportView-41RMhsFA.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-DT-CUejm.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/LegacyCreditsPanel-Cp1kWvI1.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.94 kB 🔴 +5.23 kB
assets/LegacyCreditsPanel-Dc16Ol7T.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.95 kB 🟢 -5.24 kB
assets/SubscriptionPanel-BeJTeMqz.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5 kB 🟢 -4.38 kB
assets/SubscriptionPanel-BsFX6Z-I.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5 kB 🔴 +4.39 kB
assets/KeybindingPanel-C10tMeYA.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.73 kB 🔴 +3.31 kB
assets/KeybindingPanel-CauMUD3x.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.73 kB 🟢 -3.32 kB
assets/AboutPanel-BLxF_jFJ.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.43 kB
assets/AboutPanel-uFtYVhqg.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.42 kB
assets/ExtensionPanel-DiEH0JBm.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ExtensionPanel-Lu4Ufdtt.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ServerConfigPanel-9Kkly9Qv.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.16 kB 🟢 -1.94 kB
assets/ServerConfigPanel-DSwnm1xg.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.16 kB 🔴 +1.94 kB
assets/UserPanel-BHUuEhTg.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.91 kB 🟢 -1.67 kB
assets/UserPanel-CGo5c5S4.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.91 kB 🔴 +1.67 kB
assets/cloudRemoteConfig-B1nIDqs6.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -768 B 🟢 -665 B
assets/cloudRemoteConfig-EDTvGOyU.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +771 B 🔴 +655 B
assets/remoteConfig-BEkdBLxH.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-D_gf6SLU.js 188 B 188 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-6DVADt2n.js 34.3 kB 34.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B0j03ezr.js 38.3 kB 38.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BHe-AJJN.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BT2lfy0S.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cp0lF2Mp.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CwdesOpm.js 32.1 kB 32.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D3SeHgho.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D42m_JEJ.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-FF_vLB0C.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-reUMVWRn.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-s7kHNBdQ.js 28.9 kB 28.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

User & Accounts — 3.94 kB (baseline 3.94 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-gHZxcM21.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.06 kB
assets/auth-sBUJkSlq.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.06 kB
assets/firebaseAuthStore-C18lrypx.js (removed) 217 B 🟢 -217 B 🟢 -138 B 🟢 -122 B
assets/firebaseAuthStore-kHe0OT7G.js (new) 217 B 🔴 +217 B 🔴 +138 B 🔴 +122 B
assets/auth-BEqQal2j.js (new) 178 B 🔴 +178 B 🔴 +141 B 🔴 +132 B
assets/auth-EaqPBsb5.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -131 B

Status: 3 added / 3 removed

Editors & Dialogs — 2.8 kB (baseline 2.8 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-BF1hR5GI.js (removed) 2.62 kB 🟢 -2.62 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/useSubscriptionDialog-DpnSeDxe.js (new) 2.62 kB 🔴 +2.62 kB 🔴 +1.24 kB 🔴 +1.09 kB
assets/useSubscriptionDialog-dfsGILgC.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -96 B
assets/useSubscriptionDialog-Mf3kiOwI.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +100 B

Status: 2 added / 2 removed

UI Components — 32.8 kB (baseline 32.8 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SubscribeButton-CRqOe_zz.js (new) 12.5 kB 🔴 +12.5 kB 🔴 +3.01 kB 🔴 +2.7 kB
assets/SubscribeButton-Dw-dZFFq.js (removed) 12.5 kB 🟢 -12.5 kB 🟢 -3 kB 🟢 -2.69 kB
assets/ComfyQueueButton-Cjn4Fn2S.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.42 kB
assets/ComfyQueueButton-Cye2fxCx.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/WidgetButton-DZ-mX5uq.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -979 B 🟢 -883 B
assets/WidgetButton-ftAKT8u9.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +982 B 🔴 +885 B
assets/CloudBadge-DPLjhjVa.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -729 B 🟢 -648 B
assets/CloudBadge-MnyX65Nm.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +729 B 🔴 +644 B
assets/cloudFeedbackTopbarButton-B-dFurqa.js (new) 866 B 🔴 +866 B 🔴 +524 B 🔴 +446 B
assets/cloudFeedbackTopbarButton-biLMWw39.js (removed) 866 B 🟢 -866 B 🟢 -524 B 🟢 -440 B
assets/ComfyQueueButton-BFcNWqtI.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +106 B
assets/ComfyQueueButton-DjFFZsMT.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -110 B
assets/Button-CKxdX0Yq.js 3.75 kB 3.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-Bj7TTp1S.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

Data & Services — 3.04 MB (baseline 3.05 MB) • 🟢 -657 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-Dk-ZisFF.js (removed) 1.87 MB 🟢 -1.87 MB 🟢 -398 kB 🟢 -304 kB
assets/dialogService-DeVOcE8q.js (new) 1.87 MB 🔴 +1.87 MB 🔴 +397 kB 🔴 +304 kB
assets/api-_x4Z5UoM.js (removed) 1.15 MB 🟢 -1.15 MB 🟢 -240 kB 🟢 -186 kB
assets/api-D32s6QLJ.js (new) 1.15 MB 🔴 +1.15 MB 🔴 +240 kB 🔴 +186 kB
assets/releaseStore-ButIkao9.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.41 kB 🟢 -2.12 kB
assets/releaseStore-Cc7IdIhV.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.41 kB 🔴 +2.13 kB
assets/keybindingService-C2h77SA7.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.75 kB 🔴 +1.52 kB
assets/keybindingService-DDbhCPk-.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.74 kB 🟢 -1.51 kB
assets/userStore-C9cTXbiZ.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +814 B 🔴 +727 B
assets/userStore-JkpkFWOo.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -814 B 🟢 -727 B
assets/audioService-91qNbLMJ.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -817 B
assets/audioService-COYjx1Fe.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +931 B 🔴 +822 B
assets/releaseStore-BtBM7t-E.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +106 B
assets/releaseStore-D9piv3Co.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -105 B
assets/serverConfigStore-sopnD88s.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 7 added / 7 removed

Utilities & Hooks — 18.1 kB (baseline 18.8 kB) • 🟢 -691 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-BjK57vla.js (new) 5.08 kB 🔴 +5.08 kB 🔴 +1.5 kB 🔴 +1.3 kB
assets/useErrorHandling-BPUUz3nj.js (removed) 5.08 kB 🟢 -5.08 kB 🟢 -1.5 kB 🟢 -1.3 kB
assets/subscriptionCheckoutUtil-4USBYEtu.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -862 B 🟢 -752 B
assets/subscriptionCheckoutUtil-CuNvoxEw.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +862 B 🔴 +748 B
assets/audioUtils-DmVyyjrS.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -619 B 🟢 -524 B
assets/audioUtils-COiWjVLX.js (new) 970 B 🔴 +970 B 🔴 +549 B 🔴 +487 B
assets/nodeFilterUtil-BUCOyXf2.js (removed) 421 B 🟢 -421 B 🟢 -259 B 🟢 -232 B
assets/useCurrentUser-Cy-mX8A2.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +98 B
assets/useCurrentUser-D81-_U6U.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -104 B
assets/_plugin-vue_export-helper-xVPqUhAl.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-BTZOs5h9.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-B9qvfWYq.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-DTv34axN.js 487 B 487 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 4 added / 5 removed

Vendor & Third-Party — 10.4 MB (baseline 10.4 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-Dr8GmMlH.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-CpOC_out.js 3.92 MB 3.92 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-DvjPM_Lx.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-BRjoKiJi.js 172 kB 172 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Dqb1VEds.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BxNhpyUI.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-7XRCqLaG.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-CArXWFIl.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.28 MB (baseline 6.28 MB) • 🟢 -5.58 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-CF9gvVyy.js (removed) 177 kB 🟢 -177 kB 🟢 -42.8 kB 🟢 -35.7 kB
assets/core-x34OHg6f.js (new) 177 kB 🔴 +177 kB 🔴 +42.8 kB 🔴 +35.8 kB
assets/Load3D-C1V_3BBT.js (removed) 55.7 kB 🟢 -55.7 kB 🟢 -9.18 kB 🟢 -7.92 kB
assets/Load3D-DyR5VXPU.js (new) 55.7 kB 🔴 +55.7 kB 🔴 +9.18 kB 🔴 +7.93 kB
assets/WidgetSelect-D8nvUZe6.js (removed) 50.5 kB 🟢 -50.5 kB 🟢 -11.1 kB 🟢 -9.69 kB
assets/WidgetSelect-BZTIuo-h.js (new) 50.5 kB 🔴 +50.5 kB 🔴 +11.1 kB 🔴 +9.67 kB
assets/SubscriptionRequiredDialogContent-BWZt1zkT.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.9 kB
assets/SubscriptionRequiredDialogContent-DB36EROp.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.91 kB
assets/WidgetRecordAudio-CK5S34BA.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.96 kB 🟢 -4.43 kB
assets/WidgetRecordAudio-DnTIYDjN.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.97 kB 🔴 +4.43 kB
assets/WidgetInputNumber-BZGUDptp.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.49 kB 🔴 +4 kB
assets/WidgetInputNumber-DvLZwADh.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.49 kB 🟢 -4 kB
assets/WidgetImageCrop-BupTBet7.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.13 kB 🟢 -3.62 kB
assets/WidgetImageCrop-CIcearlF.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.13 kB 🔴 +3.62 kB
assets/PanelTemplate-B6SUardK.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.79 kB
assets/PanelTemplate-DwXGhgSl.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.79 kB
assets/LazyImage-BuqR6Hu5.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +4 kB 🔴 +3.54 kB
assets/LazyImage-DHuYMTZW.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -4 kB 🟢 -3.54 kB
assets/AudioPreviewPlayer-DbB7g11n.js (removed) 12.7 kB 🟢 -12.7 kB 🟢 -3.47 kB 🟢 -3.13 kB
assets/AudioPreviewPlayer-BfV6qO9y.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.65 kB
assets/WidgetWithControl-B0O5z6uy.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.38 kB
assets/WidgetWithControl-Dof5Qd7D.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.65 kB 🟢 -2.38 kB
assets/ValueControlPopover-BWpodvIe.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/ValueControlPopover-rQh4HH0J.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/WidgetGalleria-BekALFye.js (new) 4.57 kB 🔴 +4.57 kB 🔴 +1.56 kB 🔴 +1.43 kB
assets/WidgetGalleria-BwLByoy7.js (removed) 4.57 kB 🟢 -4.57 kB 🟢 -1.56 kB 🟢 -1.42 kB
assets/WidgetImageCompare-BpLJ-dSO.js (removed) 3.79 kB 🟢 -3.79 kB 🟢 -1.28 kB 🟢 -1.12 kB
assets/WidgetImageCompare-BqwXGWo9.js (new) 3.79 kB 🔴 +3.79 kB 🔴 +1.28 kB 🔴 +1.12 kB
assets/WidgetColorPicker-Dv0MELOX.js (removed) 3.71 kB 🟢 -3.71 kB 🟢 -1.38 kB 🟢 -1.25 kB
assets/WidgetColorPicker-E9_-OJ5u.js (new) 3.71 kB 🔴 +3.71 kB 🔴 +1.38 kB 🔴 +1.25 kB
assets/WidgetTextarea-CZnm93Po.js (removed) 3.52 kB 🟢 -3.52 kB 🟢 -1.32 kB 🟢 -1.17 kB
assets/WidgetTextarea-Dm4Ij7fB.js (new) 3.52 kB 🔴 +3.52 kB 🔴 +1.33 kB 🔴 +1.17 kB
assets/WidgetMarkdown-B4aB3N7S.js (removed) 3.22 kB 🟢 -3.22 kB 🟢 -1.28 kB 🟢 -1.13 kB
assets/WidgetMarkdown-BdG0Jp83.js (new) 3.22 kB 🔴 +3.22 kB 🔴 +1.28 kB 🔴 +1.13 kB
assets/WidgetAudioUI-DalAziiM.js (removed) 3.22 kB 🟢 -3.22 kB 🟢 -1.19 kB 🟢 -1.06 kB
assets/WidgetToggleSwitch-B0EfCU8u.js (removed) 3.08 kB 🟢 -3.08 kB 🟢 -1.19 kB 🟢 -1.07 kB
assets/WidgetToggleSwitch-jOzkIkDw.js (new) 3.08 kB 🔴 +3.08 kB 🔴 +1.19 kB 🔴 +1.07 kB
assets/GlobalToast-BZEPenZN.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +939 B
assets/GlobalToast-Di2R65bB.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -941 B
assets/SubscribeToRun-Bw9coz0w.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.15 kB 🟢 -1.01 kB
assets/SubscribeToRun-ExUJtAeu.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/cloudSessionCookie-B-I77RQA.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -918 B 🟢 -795 B
assets/cloudSessionCookie-BZ6FHGDc.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +921 B 🔴 +798 B
assets/WidgetChart-Cw5Ye8UP.js (removed) 2.79 kB 🟢 -2.79 kB 🟢 -1.06 kB 🟢 -945 B
assets/WidgetChart-D3w-Nwsc.js (new) 2.79 kB 🔴 +2.79 kB 🔴 +1.06 kB 🔴 +967 B
assets/WidgetInputText-BUBXlHZn.js (new) 2.58 kB 🔴 +2.58 kB 🔴 +1.01 kB 🔴 +915 B
assets/WidgetInputText-C57tLR52.js (removed) 2.58 kB 🟢 -2.58 kB 🟢 -1.01 kB 🟢 -912 B
assets/BaseViewTemplate-BmCtuJsk.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +949 B
assets/BaseViewTemplate-NQz-WHsq.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -946 B
assets/CloudRunButtonWrapper-B79B2sTS.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -641 B 🟢 -558 B
assets/CloudRunButtonWrapper-CggeeN1P.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +638 B 🔴 +560 B
assets/widgetPropFilter-B0BM5Ibm.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +568 B 🔴 +509 B
assets/widgetPropFilter-DfR_ZXyS.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -567 B 🟢 -481 B
assets/cloudBadges-BLFXhknY.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -537 B 🟢 -479 B
assets/cloudBadges-C13xmyBF.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +537 B 🔴 +478 B
assets/graphHasMissingNodes-DC_I4Qb7.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -460 B 🟢 -426 B
assets/graphHasMissingNodes-DrfsoWSL.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +461 B 🔴 +424 B
assets/cloudSubscription-Y_t9iJf9.js (removed) 976 B 🟢 -976 B 🟢 -457 B 🟢 -394 B
assets/cloudSubscription-y0deWx4Z.js (new) 976 B 🔴 +976 B 🔴 +460 B 🔴 +396 B
assets/AudioPreviewPlayer-uRqjpqGK.js (removed) 191 B 🟢 -191 B 🟢 -120 B 🟢 -121 B
assets/WidgetInputNumber-C7RvZglX.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -121 B
assets/WidgetInputNumber-Dwvw2tmk.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +121 B
assets/WidgetLegacy-BUJNq7Ob.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +104 B
assets/WidgetLegacy-CtHkkDzg.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -109 B
assets/WidgetSelect-Cs2gNhoM.js (removed) 161 B 🟢 -161 B 🟢 -113 B 🟢 -107 B
assets/Load3D-DdkhghcY.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +106 B
assets/Load3D-zkh7YLo6.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -107 B
assets/auto-Bv9cmrEd.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-6dIwsSNi.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BahwM9ZP.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BoJZgy7S.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BQtdp20P.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CEMgeOuO.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CnxND6sZ.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-coXkrooi.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CZcHDaAg.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DDPGTXy9.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DsGC6118.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-yZ2AjT4s.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B_sPkRkB.js 121 kB 121 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BAkXMjmM.js 141 kB 141 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BENvLtOF.js 117 kB 117 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BNsn8_Lr.js 120 kB 120 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C9XUWxrh.js 105 kB 105 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Ch4S7NKM.js 105 kB 105 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DqG_JuMY.js 161 kB 161 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DSqO9eB5.js 124 kB 124 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-F6Zr8qmN.js 118 kB 118 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-kF4hEjF-.js 145 kB 145 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-KWKxelma.js 134 kB 134 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-DEJN4gIz.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-D39-6tpk.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-CVYh1Dta.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-D7WAsNtO.js 2.84 kB 2.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-DaKz7N-R.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-42NP799-.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-5Wl7kJtq.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bfo_nHET.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BIaHseXE.js 334 kB 334 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BqTE0tnV.js 437 kB 437 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CkFt94jg.js 365 kB 365 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-COXALCSv.js 374 kB 374 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Cuv6XdUW.js 332 kB 332 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CyylrXT5.js 355 kB 355 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DN_FfVrO.js 403 kB 403 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Dxwvr4db.js 403 kB 403 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-BsMrb3S_.js 3.23 kB 3.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-DZ1Jt5wB.js 838 B 838 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-CqTjxoQm.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-Buvb2eP-.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-Dneex3J5.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BRX2wHPg.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BttrDPHP.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-BmL9OHU7.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 32 added / 35 removed

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@src/extensions/core/uploadAudio.ts`:
- Around line 171-176: The code calls updateUIWidget(audioUIWidget,
api.apiURL(resourceUrl)) without checking that audioUIWidget exists; guard the
call by checking the result of the widget lookup (audioUIWidget) and only call
updateUIWidget when it's not null/undefined—leave the rest (resourceUrl creation
via getResourceURL and api.apiURL(...)) unchanged so nodes that lack an audioUI
simply skip the UI update instead of throwing.

In
`@src/renderer/extensions/vueNodes/widgets/components/audio/AudioPreviewPlayer.vue`:
- Around line 173-174: showVolumeOne's condition is inverted: replace its
expression so it displays when audio is NOT muted and volume is low;
specifically, change the computed for showVolumeOne to check !isMuted.value and
volume.value > 0 and volume.value <= 0.5 (so it complements showVolumeTwo which
uses !isMuted.value && volume.value > 0.5).

@AustinMroz AustinMroz added the New Browser Test Expectations New browser test screenshot should be set by github action label Jan 21, 2026
@github-actions
Copy link

Updating Playwright Expectations

@github-actions github-actions bot removed the New Browser Test Expectations New browser test screenshot should be set by github action label Jan 21, 2026
Comment on lines +140 to +142
let value = ''
audioUIWidget.options.getValue = () => value
audioUIWidget.options.setValue = (v) => (value = v)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems sus...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. I'm real unhappy with the setup, but the existing DOMwidget code has already defined widget.value. It's impossible to set widget.value on a DOMWidget unless you set up a getter and setter like this.

@AustinMroz AustinMroz merged commit 9a6ead3 into main Jan 21, 2026
27 checks passed
@AustinMroz AustinMroz deleted the austin/fix-vhs-audio branch January 21, 2026 08:14
godwiniheuwa pushed a commit to godwiniheuwa/ComfyUI_frontend that referenced this pull request Jan 22, 2026
In vue mode, the VHS Load Audio (Upload) node had 2 audio previews. This
occurred because the native AudioPreview widget was being applied to any
combo widget with the name `audio`. This native preview does not support
the advanced preview functions VHS provides like seeking to specific
start time, trimming to a target duration, or converting from formats
the browser may not support.

This is fixed through a fairly involved cleanup to instead display the
litegraph AudioUI widget as an AudioPreview widget when in vue mode.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8206-Fix-doubled-player-on-VHS-LoadAudio-in-vue-2ef6d73d365081ce8907dca2706214a1)
by [Unito](https://www.unito.io)

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Alexander Brown <drjkl@comfy.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants