Nodes/JK AceStep Nodes/AceStepKSampler
ComfyUI Node

AceStepKSampler

The Ace-Step Sampler That Fights Back Against Robotic Vocals

By jeankassio·Created 9 months ago·Updated 9 months ago· 32
AceStepKSampler
  • model
  • positive
  • negative
  • latent
  • vae
  • latent
  • audio
seed0
steps80
cfg4.0
sampler_name
scheduler
denoise1.00
use_apgfalse
use_cfg_rescalefalse
cfg_rescale_multiplier0.25
enable_dynamic_cfgtrue
enable_latent_normalizationtrue
use_vocoderfalse
noise_ema0.08
noise_norm_threshold2.0
anti_autotune_strength0.15
frequency_damping0.18
temporal_smoothing0.10
beat_stability0.50
enable_quality_checkfalse
quality_check_target0.85
quality_check_min40
quality_check_max150
quality_check_interval5

This is the reason the pack exists. AceStepKSampler is a full-fledged replacement for the basic KSampler when you're generating music with the ACE-Step text-to-audio model in ComfyUI - and it exists because the stock sampler treats audio latents like images, which gets you warbly, autotuned-sounding vocals and cut-off words. This one adds a pile of audio-specific cleanup that nobody else bundles in one node.

How it works

Under the hood it's still a KSampler: same model, positive/negative conditioning, latent, and denoise you already know. The difference is what it does during and after the sampling loop. It stabilizes the noise prediction with EMA smoothing and an L2 norm clamp, optionally rescales CFG (CFG++ style) to stop oversaturation, and - the part people actually buy into - applies anti-autotune, frequency damping, temporal smoothing, and beat stability to the latents to kill the metallic, quantized vocal artifacts ACE-Step's vocoder tends to produce.

The pack also registers two custom samplers, jkass_quality and jkass_fast, straight into ComfyUI's global sampler dropdown. You'll find them listed alongside euler and dpmpp in any KSampler node. jkass_quality is a second-order Heun method that costs about 2x compute; jkass_fast is first-order Euler for iterating on ideas. For a finished render, the README's default pick is jkass_quality with sgm_uniform.

The inputs that matter

You set five things most of the time and leave the rest alone:

  • steps - 80 default. README's sweet spot is 80–100; the code comments note that above ~120 you start over-processing.
  • cfg - 4.0–4.5 for audio, not the 7 you'd use on SDXL. Higher is not better here.
  • sampler_name / scheduler - jkass_quality and sgm_uniform are the house recommendation.
  • vae - connect it (highly recommended) and you get the audio output; the pack decodes the latent for you. Without a VAE the audio output has nothing to produce.
  • anti_autotune_strength - 0.25–0.35 for vocals, 0.0–0.15 for instruments. This is the knob for the "AI voice" problem.

Everything else has sane defaults and a tooltip in the node. The noise_ema, noise_norm_threshold, frequency_damping, temporal_smoothing, and beat_stability floats are the anti-artifact tuning rack - start from the defaults (0.08 / 2.0 / 0.18 / 0.10 / 0.5) and only nudge one at a time.

One genuinely cool feature is quality check discovery: flip enable_quality_check and it renders several step counts, scores each with the same composite metric as the pack's AudioQualityEvaluator, and picks the best. Important caveat from the author: scores are comparative only. A 0.65 on Dubstep is often excellent - electronic music naturally scores lower than acoustic. Compare within the same style, not across genres.

Installing

ComfyUI Manager (search "JK AceStep Nodes"), or the classic way:

cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/JK-AceStep-Nodes.git

Restart ComfyUI. Requirements are torch, numpy, tqdm, and librosa - librosa is the only heavyweight, and it's what powers the quality metrics. You also need the ACE-Step model itself loaded in ComfyUI, and if you want the vocoder path to work you must drop diffusion_pytorch_model.safetensors and config.json from the ACE-Step music_vocoder into JK-AceStep-Nodes/vocoder/. Without those files, use_vocoder silently generates without the vocoder.

Where people get burned

  • Enabling every optimization at once (dynamic CFG + latent norm + all the smoothing) - the README explicitly warns this causes word cutting/stuttering. Start stock, add features one at a time.
  • Expecting a quality score to be comparable across genres. It isn't.
  • Forgetting the VAE. No VAE, no audio out - just a latent you can't hear.

It's not a magic bullet: this is a niche pack (the author's announcement thread on r/comfyui is small), so expect to tune per prompt. But it's the one sampler node you want when ACE-Step vocals sound like T-Pain after a bad day.

CategoryJK AceStep Nodes/Sampling

Inputs (28)

NameTypeDefaultDescription
modelMODEL
seedINT00–18446744073709550000
stepsINT8020–200
cfgFLOAT4.01–20
sampler_nameCOMBO46 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +40
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
denoiseFLOAT1.000–1
use_apgoptBOOLEANfalse
use_cfg_rescaleoptBOOLEANfalse
cfg_rescale_multiplieroptFLOAT0.250–1
enable_dynamic_cfgoptBOOLEANtrue
enable_latent_normalizationoptBOOLEANtrue
use_vocoderoptBOOLEANfalse
noise_emaoptFLOAT0.080–0.5EMA smoothing of noise prediction; 0.08 optimal for 8-channel latents
noise_norm_thresholdoptFLOAT2.00–5L2 norm clamp vs input; 2.0 for clean audio without artifacts
anti_autotune_strengthoptFLOAT0.150–1Smooth spectral quantization artifacts. 0.15 default for natural vocals
frequency_dampingoptFLOAT0.180–2Damps higher frequencies to remove metallic sound - 0.18 recommended
temporal_smoothingoptFLOAT0.100–0.5Temporal smoothing to prevent stuttering - 0.10 for natural flow
beat_stabilityoptFLOAT0.500–1Rhythm stability - 0.5 prevents beat dropout without compression
enable_quality_checkoptBOOLEANfalse
quality_check_targetoptFLOAT0.850.5–1
quality_check_minoptINT4020–100
quality_check_maxoptINT15050–300
quality_check_intervaloptINT51–20
vaeoptVAE

Outputs (2)

NameTypeDescription
latentLATENT
audioAUDIO