Skip to content

Character Voices waveform trim editor doesn't render (silent failure) on frontend 1.48.7 #348

Description

@vlenchik

Character Voices waveform trim editor doesn't render (no error) on recent frontend

Environment: ComfyUI 0.31.1, comfyui_frontend_package 1.48.7 (via Comfy Desktop 1.0.37), macOS arm64 (Apple Silicon), Python 3.12.11

Repro

  1. Add a fresh 🎭 Character Voices node to any workflow
  2. Select any library voice from voice_name (e.g. voices_examples/Ru_Anton.WAV)

Expected

Per web/character_voices_preview.js / web/character_voices_trim_ui.js, selecting a voice should mount a waveform editor with drag handles for trim_start/trim_end, replacing the plain trim_start, trim_end, and customized widgets.

Actual

The node shows only voice_name and reference_text — no waveform, no plain trim_start/trim_end/customized fields, no play/pause control. Just blank space where the editor should be.

Diagnosis

The plain trim_start/trim_end/customized widgets are getting hidden (confirmed visually — they don't appear at all), which only happens inside setupDomEditor() in character_voices_preview.js, right after node.addDOMWidget(...) succeeds:

const domWidget = node.addDOMWidget("voice_reference_editor", "audioUI", editor.element, {...});
domWidget.computeSize = ...
hideNativeWidget(findWidget(node, "trim_start"));
hideNativeWidget(findWidget(node, "trim_end"));
hideNativeWidget(findWidget(node, "customized"));

So addDOMWidget isn't throwing (the fallback path in setupCharacterVoices — plain ▶ Play/Pause Voice button — never appears either). The DOM widget appears to be registered but its content (editor.element) isn't actually painting.

Checked and ruled out:

  • Backend is fine/api/tts-audio-suite/voice-library returns the correct voice list, /api/tts-audio-suite/voice-preview?voice_name=... returns 200 with valid audio bytes.
  • No console errors — reselecting the voice in DevTools (opened via a plain browser tab pointed at the same local server, since Comfy Desktop's packaged build has DevTools disabled) produces zero new console output, red or otherwise, tied to character_voices_*.js.

My guess, unverified: something about how addDOMWidget-based widgets are laid out on this frontend version has changed since this code was written — possibly related to the frontend's move toward Vue-based widget rendering — such that editor.element gets attached to the widget list but not actually mounted into the visible node DOM. Happy to help narrow this down further if you can point at what changed in addDOMWidget handling around the 1.48.x frontend line, or if there's a known replacement pattern for custom audio/waveform widgets on current frontends.

Impact

Users can't trim reference audio through the UI at all on this frontend version — no error surfaces, so it just silently looks like the feature doesn't exist. Workaround is trimming the source file externally before dropping it into voices_examples/.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions