Preview Pitch β‘π ‘π π £π
Burn the detected pitch onto your video as text
- video_frames
- feature
- IMAGE
Listed in ComfyUI's search as PitchVisualizer, this shows up on the canvas as "Preview Pitch" - and that's exactly what it does. It takes a FEATURE from PitchFeatureExtractor and burns its numeric value directly onto your video frames as on-screen text, frame by frame. Useful for sanity-checking a pitch extraction before you trust it to drive an effect, or for literally showing your work - an on-screen pitch readout is a natural fit if you're streaming a live, reactive video setup, which happens to be exactly the kind of thing this pack's author builds professionally.
How it works
There's no analysis here - this node consumes a FEATURE that's already been computed and renders it as text over video_frames. text_color and font_scale set the look of the readout, label_prefix lets you label it (handy if you're stacking multiple visualizers on one clip and need to tell them apart - a pitch readout next to a rhythm readout, say), and label_x_offset/label_y_offset position it on the frame.
The catch worth knowing up front: this node shows whatever raw value the wired-in feature actually is, with no unit conversion or context. Feed it a FEATURE from PitchFeatureExtractor set to frequency and the numbers on screen are Hz; set to semitone and they're note values instead. Feed it a feature from an unrelated source entirely (an audio amplitude curve, say) and you'll get a number on screen that has nothing to do with pitch - the node doesn't validate what kind of feature it's showing.
The inputs and outputs that matter
video_frames(required,IMAGE) - the footage to overlay text on.feature(required,FEATURE) - the value to display; pair withPitchFeatureExtractor's output for this to actually read as pitch.text_color(default(255,255,255)),font_scale- text appearance.label_prefix- a text label to distinguish this readout from others.label_x_offset/label_y_offset- on-screen position.
Output is a single IMAGE - the original frames with the readout burned in, ready to preview or save.
How to install it
ComfyUI Manager: search "RyanOnTheInside", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
then restart. Pure text-overlay rendering - no model download.
Common issues & troubleshooting
Numbers on screen don't look like pitch at all. Double check feature is actually wired to PitchFeatureExtractor's output and not some other Feature source in your graph - this node has no idea what it's displaying, it just prints whatever number the wired-in feature carries.
Text is unreadable against the footage. text_color defaults to white, which disappears against bright backgrounds. Set a contrasting color, or nudge label_x_offset/label_y_offset to a darker part of the frame.
Stacked multiple visualizers and can't tell readouts apart. Set a distinct label_prefix on each one - without it, several overlapping text overlays on the same frame become hard to parse at a glance.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| video_frames | IMAGE | β | |
| feature | FEATURE | β | |
| text_color | STRING | (255,255,255) | β |
| font_scale | FLOAT | 1.00.1β2 | β |
| label_prefix | STRING | β | |
| label_x_offset | INT | 100β1000 | β |
| label_y_offset | INT | 100β1000 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |