Nodes/ComfyUI-SongScribe/Song Analyzer (SongScribe)
ComfyUI Node

Song Analyzer (SongScribe)

Extract a structured music caption, lyrics and duration from an audio file. Measured values (BPM, key, dynamics, section map) come from DSP analysis and are never guessed.

By TheLocalLab·Created about a month ago·Updated a day ago· 11
Song Analyzer (SongScribe)
  • audio
  • caption
  • lyrics
  • duration
  • duration_int
  • duration_str
  • analysis
audio_file
describeclap
genre_sourceclap
clap_modelmusic_and_speech
transcribe_lyricsoff
whisper_modelbase
stylebalanced
use_cachetrue
seed0
CategorySongScribe

Inputs (10)

NameTypeDefaultDescription
audio_fileCOMBO1 options: (use AUDIO input)
describeCOMBOclapScore genre, mood, instruments and vocal character with CLAP (CPU, no GPU needed). The first run downloads a ~600 MB model. 'off' emits measured facts only.
genre_sourceCOMBOclapWhere genre comes from. 'maest' is a supervised tagger trained on 400 Discogs styles and is markedly more accurate than CLAP's zero-shot guessing, but it executes custom model code (trust_remote_code) from a pinned, audited revision - opt in knowingly. 'off' omits genre so a preset can supply it.
clap_modelCOMBOmusic_and_speechWhich CLAP checkpoint scores the descriptors. Downloaded on first use: 'music_and_speech' ~1.5 GB (music-specialised, better on genre), 'general' ~1.9 GB (broader audio, weaker on genre). Ignored when describe is off.
transcribe_lyricsCOMBOoffTranscribe sung lyrics with Whisper when the file carries none. CPU, slow, and sung ASR is markedly worse than speech - expect to hand-fix the result. Embedded tags and .lrc files are always preferred over this.
whisper_modelCOMBObaseLarger is more accurate and much slower. Only used when transcribe_lyrics is enabled.
styleCOMBObalancedHow literally the caption reproduces the track. 'verbatim' keeps exact section timings (closest clone); 'balanced' keeps tempo and key; 'loose' gives genre, mood and texture only.
use_cacheBOOLEANtrueReuse a previous analysis of the same file instead of recomputing it on every queue.
seedINT00–18446744073709550000Varies caption phrasing without re-analysing the audio.
audiooptAUDIOAnalyse audio from an upstream node. Takes priority over the file dropdown when connected.

Outputs (6)

NameTypeDescription
captionSTRINGThree-section caption (Global Metadata / Vocal Details / Arrangement).
lyricsSTRINGLyrics from embedded tags or a sidecar .lrc/.txt, if present.
durationFLOATDuration in seconds - wire straight into max_duration.
duration_intINTDuration rounded to whole seconds.
duration_strSTRINGDuration formatted as m:ss.
analysisSONGSCRIBE_ANALYSISFull analysis payload for downstream SongScribe nodes.