ComfyUI Node

Transcribe Score

Transcribe Score Is How You Turn a Recording You Own Into Something the Model Can Play With

By jplenio·Created a day ago·Updated about 13 hours ago· 2
Transcribe Score
  • audio_encoder
  • audio
  • score
  • timeline
  • report

What it is

Transcribe Score listens to a recording and writes it down as a score - melody, accompaniment and chords - in the same ABC dialect the rest of Plenio speaks. It's the entry point of the cover path: without it, the model has no melody to keep, and a "cover" becomes a remix with an idea.

What it adds over the native SheetSage2 node is the beat grid. Alongside the score you get a timeline output holding the time of every bar and the times of the sung notes in source seconds. That timeline is what lets Transcribe Lyrics drop transcribed words into the right score sections, what draws source sections and their start/end times in the Song Sheet editor, and what powers A/B playback against the original recording. Skip this node and you can still make a cover; you'll just be flying without instruments.

How it works

Two required inputs. audio_encoder is SheetSage2, loaded from the native Audio Encoder Loader (sheetsage2_bf16.safetensors, 1.4 GB, into models/audio_encoders). audio is the source recording - and yes, you are expected to trim it first with Trim Audio Duration if you're working on part of a song.

SheetSage2 transcribes one 300-second window per pass. That's not a soft limit. Sources longer than 5:00 need a second pass, and on a card below 24 GB of VRAM the node refuses rather than trying and running out of memory - the pack's own notes record that a second window blew up a 16 GB card. Up to 5:00 is supported; the template's Excerpt block is the intended tool for anything longer.

Only the first item of a batch is transcribed, and the node says so in its warnings rather than silently ignoring the rest. Out-of-memory during the pass is caught and rewritten as a user-facing error with a hint to trim, which beats decoding a CUDA stack trace at midnight.

Outputs: score (native two-voice ABC, with chords - the same score the native SheetSage2 node produces in full mode), timeline (bar times and sung notes), and report (bars, tempo, key, sections and voices - genuinely useful for sanity-checking a transcription before you build on it).

Install

# ComfyUI Manager → search "Plenio Music Production System" → Install → restart
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/jplenio/Plenio-Music-Production-System

Requires ComfyUI 0.37.0+, and the pack installs no Python packages - SheetSage2 and the encoder loader are ComfyUI's own. You do need the encoder file:

ComfyUI/models/audio_encoders/sheetsage2_bf16.safetensors   (1.4 GB, CC BY-NC 4.0 - non-commercial)

Open 2 · YuE2 · Cover and let ComfyUI's missing-model dialog fetch it, or place it by hand. 0 · System Check will tell you whether it's there.

Common issues

  • "Transcribe Score needs the SheetSage2 audio encoder." Either the file is missing or you're feeding the audio_encoder input something that isn't SheetSage2. Load sheetsage2_bf16.safetensors with Audio Encoder Loader and connect that.
  • Out of memory on a long source. Trim. 5:00 is the supported ceiling and the node is explicit about where your hardware sits relative to it.
  • The transcription sounds plausible but the sections are odd. Model transcriptions are good, not perfect, and the report is your check. Fix the score in the Song Sheet's score tab before rendering - that's the whole point of reviewing it first.
  • Five minutes in, the take drifts. The score and the timeline come from one pass, but re-rendering a long cover from a transcription is a stretch; doing covers per section is the more reliable habit.
CategoryPlenio/Audio analysis

Inputs (2)

NameTypeDefaultDescription
audio_encoderAUDIO_ENCODERSheetSage2 from Audio Encoder Loader.
audioAUDIOThe source recording (trim it first for a part of the song).

Outputs (3)

NameTypeDescription
scoreSTRINGThe transcribed score (native two-voice ABC, with chords).
timelinePLENIO_TIMELINEBar times and sung notes in source seconds.
reportPLENIO_REPORTBars, tempo, key, sections and voices.