Section renderer for the song ledger (hook-first pipeline): ACE-Step 1.5 turbo renders one section under explicit bpm/key/time-signature locks, optionally timbre-conditioned on the approved hook via the core ReferenceTimbreAudio node - the arrangement stage never drifts away from the audited hook's sound
Tags: audiomusicsong-sectionhook-firstace-step2026-sota
Inputs (9)#
The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.
promptstringrequiredlyricsstringdefault bpmintegerdefault 92min 40max 220keyscalestringdefault C majortime_signaturestringdefault 4duration_secondsintegerdefault 24min 8max 120use_hook_referencebooleandefault falsehook_audiostringseedintegerdefault -1ComfyUI node graph (12)#
The executable ComfyUI prompt graph: 12 nodes across 12 distinct node classes, wired by 15 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.
Nodes (12)#
1CheckpointLoaderSimplecoreckpt_name = ace_step_1.5_turbo_aio.safetensorsMODELCLIPVAE2TextEncodeAceStepAudio1.5coreclip = ◂ node 1 · out[1]tags = {{prompt}} tmpllyrics = {{lyrics}} tmplseed = {{seed}} tmplbpm = {{bpm}} tmplduration = {{duration_seconds}} tmpltimesignature = {{time_signature}} tmpllanguage = enkeyscale = {{keyscale}} tmplCONDITIONING3ConditioningZeroOutcoreconditioning = ◂ node 2 · out[0]CONDITIONINGhook_loadLoadAudiocoreaudio = {{hook_audio}} tmplAUDIOhook_encodeVAEEncodeAudiocoreaudio = ◂ node hook_load · out[0]vae = ◂ node 1 · out[2]LATENThook_timbreReferenceTimbreAudiocoreconditioning = ◂ node 2 · out[0]latent = ◂ node hook_encode · out[0]CONDITIONING4EmptyAceStep1.5LatentAudiocoreseconds = {{duration_seconds}} tmplbatch_size = 1LATENT5ModelSamplingAuraFlowcoremodel = ◂ node 1 · out[0]shift = 3.0MODEL6KSamplercoremodel = ◂ node 5 · out[0]positive = ◂ node hook_timbre · out[0]negative = ◂ node 3 · out[0]latent_image = ◂ node 4 · out[0]seed = {{seed}} tmplsteps = 8cfg = 1.0sampler_name = eulerscheduler = simpledenoise = 1.0LATENT7VAEDecodeAudiocoresamples = ◂ node 6 · out[0]vae = ◂ node 1 · out[2]AUDIO8AudioLimitercustom packaudio = ◂ node 7 · out[0]ceiling_db = -1.0AUDIO9SaveAudioMP3coreaudio = ◂ node 8 · out[0]filename_prefix = song_sectionquality = V0Models & dependencies#
Custom node packs (1)#
The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.
AudioLimiterModels required (1)#
ace_step_1.5_turbo_aio.safetensorsOutput contract#
What a successful run of this workflow returns.
typeaudioformatmp3codecpcm_s16lechannels2descriptionSong-ledger section master renderaudio_package{"mixdown": {"artifact_id": "audio_mixdown", "path_template": "audio/{{job_id}}/mixdown/section-master.wav", "format": "wav", "sample_rate_hz": 48000, "bit_depth": 24, "channels": 2, "codec": "pcm_s24le"}, "loudness": {"artifact_id": "loudness_report", "path_template": "audio/{{job_id}}/analysis/loudness-report.json", "format": "json", "standard": "spotify", "target_integrated_lufs": -14, "max_true_peak_dbtp": -1}, "compliance": {"artifact_id": "audio_compliance_report", "path_template": "audio/{{job_id}}/analysis/audio-compliance-report.json", "format": "json", "loudness_tolerance_lufs": 1.0, "true_peak_tolerance_dbtp": 0.3, "max_clipping_percent": 0.1, "enforce_format_normalization": true}, "cue_sheet": {"artifact_id": "cue_sheet", "path_template": "audio/{{job_id}}/metadata/cue-sheet.csv", "format": "csv", "include_timecode": true, "include_beat_markers": true, "include_sections": true}}Taxonomy & routing#
How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.
assetFamilysong-ledger-sectionoutputPackageProfileaudio-master-profilecontrolModalitiessampler-scheduler-lockseed-lockmodel-lockreference-ensembleconsistencyDimensionscolor-scriptmotionnotesM2/M3 execution vehicle: section render under song-ledger locks; use_hook_reference locks timbre on the approved hook via core ReferenceTimbreAudio + VAEEncodeAudio.