ACEStep Mask Visualizer β‘π ‘π π £π
See the repaint window before you commit to it
- latents
- mask_info
ACEStepHybridGuider's repaint fields - start time, end time, feather - define a region you're about to regenerate, but you can't see that region just by looking at the numbers. This node exists so you can check your math before spending a generation on the wrong 10 seconds of your song.
A small companion utility in ryanontheinside's ACE-Step 1.0 toolset, meant to sit right next to ACEStepHybridGuider in your graph.
How it works
Feed it the same latent and the same time-range values you're about to give the Hybrid Guider, and it computes what the resulting repaint mask would actually look like - reporting back a description rather than rendering an image, which is worth knowing going in. It's a small node with an outsized payoff: a full ACE-Step repaint generation isn't instant, and finding out after the fact that your start_time/end_time window was off by 10 seconds is exactly the kind of wasted run this exists to prevent.
The inputs and outputs that matter
latents- theLATENTyou're planning to repaint.start_time/end_time- default 10 and 20 seconds. Match these to whatever you'll set on the Hybrid Guider'srepaint_start_time/repaint_end_time.feather_time- default 0.1, same as the guider's default.
Output is mask_info, a STRING. It's a text description of the mask, not a picture of it - don't expect a visual preview panel from this one, it's meant to be read, or piped into something that displays text.
How to install it
Via ComfyUI Manager, search RyanOnTheInside. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
then restart. No model or weights needed - it's a computation on latent shape and time values, not a generation step.
Common issues & troubleshooting
Values don't match what you'll actually run. The whole point of this node is prediction, so if you check the mask here with one set of start/end/feather values and then run ACEStepHybridGuider with different ones, the preview was meaningless. Keep the two in lockstep, ideally by copying the exact widget values across.
Expecting an image and getting a string. This is a text-output debug node, not a visualizer in the "renders a picture" sense despite the name - pipe mask_info into a text display node or just read it in the console/log if you want to see it.
Only useful for the repaint path. If you're purely extending a song with ACEStepExtendGuider and never touching repaint_start_time/repaint_end_time, there's no mask to preview and this node has nothing to tell you - it's specifically for checking the Hybrid Guider's repaint window before committing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| latents | LATENT | β | |
| start_time | FLOAT | 10.00β1000 | β |
| end_time | FLOAT | 20.00β1000 | β |
| feather_time | FLOAT | 0.100β2 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mask_info | STRING | β |