Nova ACE Dataset Review ๐
Five minutes now, or three wasted GPU hours later
- dataset
- console
- ready
- sample_count
- problem_count
An audio LoRA run is an hour to three and a half hours of a pegged GPU, and the failures that waste it are boring: a track that's eleven minutes long and gets silently truncated, a three-second clip dragging the loss sideways, a vocal track with no lyrics tag that the model learns as an instrumental.
Nova ACE Dataset Review ๐ exists so you find those before the queue, not after. ACE-Step's own documentation makes a manual review pass mandatory; this is that pass, as a node, with numbers instead of vibes.
What it checks
It takes the NOVA_ACE_DATASET that Nova ACE Dataset Builder emitted in memory - no re-reading files, no second parse of the JSON - and grades every sample against three rules you set:
- min_duration (default 10s) - very short clips teach the model almost nothing and skew the loss. The tooltip is blunt about it and it's right.
- max_duration (default 240s) - anything longer gets truncated by the preprocessor. Match this to the
max_durationyou'll use in Preprocess, because Preprocess truncates silently and never logs which track lost its ending. - require_caption (on by default) - a sample with no caption trains against an empty prompt, which is exactly as useful as it sounds.
That's the whole node. It changes nothing on disk - it's a report.
Inputs and outputs
Inputs: dataset (wire it from the Builder's dataset output), plus the three thresholds above.
Outputs you'll actually use:
- console - the human-readable review. Wire it into Nova Console; the Builder already taught you that habit.
- ready - a boolean, true when nothing blocking was found. This is the one to branch on if you're automating.
- sample_count and problem_count - the two numbers that tell you whether you even need to read the console.
There's no "fix" button and no hidden repair mode. That's correct behaviour: the node can tell you a tag is missing, but it can't know what the caption should say.
Install
ComfyUI Manager โ Nova Audio Player โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Restart ComfyUI and it's under โถ๏ธ Nova Audio โ ๐ LoRA Training. This node pulls in nothing - no models, no ACE-Step checkout, no extra pip packages. The five training nodes in this pack are all report-or-drive; the only one that touches a real dependency stack is the Trainer, and even that shells out to a separate ACE-Step install rather than importing it into the ComfyUI process.
Where it fits
Nova Batch Load Audio ๐ผ โโโถ Nova ACE Dataset Builder ๐งฑ
โ dataset
โผ
Nova ACE Dataset Review ๐
โ dataset_json (from the Builder)
โผ
Nova ACE Preprocess ๐งฎ โโโถ Nova ACE LoRA Trainer ๐
The review is optional in the graph and non-optional in practice. It costs a second to run and the thing it protects you from costs an afternoon. If you skip one node in this chain, don't skip this one.
Two habits from the broader LoRA world that carry over here: keep the dataset small and clean rather than large and scrappy, and don't judge the run by the loss curve. On a diffusion trainer that number is dominated by which random timestep got drawn, and it flattens long before the model stops improving - the reference run for this pack dropped 0.99 โ 0.80 in the first 50 epochs and then moved 0.02 across the next 150. The dataset review is how you make sure the thing you're training on is worth training on at all.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| dataset | NOVA_ACE_DATASET | From Nova ACE Dataset Builder. | |
| max_duration | FLOAT | 24010โ3600 | Anything longer is truncated by the preprocessor. Match this to the preprocess node. |
| min_duration | FLOAT | 100โ600 | Very short clips teach the model little and skew the loss. |
| require_caption | BOOLEAN | true | Treat a missing caption as a problem. A sample with no caption trains against an empty prompt. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| console | STRING | The review โ wire into Nova Console. |
| ready | BOOLEAN | True when nothing blocking was found. |
| sample_count | INT | Samples in the dataset. |
| problem_count | INT | Problems found. |