Axortex

The culture of tech, food & beauty

← Tech
Tech

int8 Was the Wrong Checkpoint — and a Second Music Model, Measured the Same Way

A controlled YuE2 checkpoint swap on one song: bf16 beat int8 on dynamics (4.8 to 7.1) and duration (176 to 193 s), and the published 100-track batch had run on int8. Alongside it, three MiniMax Music 3 tracks measured the same way land on the same loudness target as YuE2 — about -13 LUFS, LRA ~5 — but stop cleanly at 0 dBFS where YuE2 pushed 95 of 100 tracks past it.

TL;DR — Two follow-ups to the 100-track YuE2 run. First: that batch used the int8 checkpoint, and a controlled swap to bf16 on the same song, lyrics and seed produced more dynamics (4.8 → 7.1) and a longer track (176 → 193 s). The int8 checkpoint is gone. Second: MiniMax Music 3, measured the same way on three Korean-language tracks, lands on the same loudness target as YuE2 (≈ −13 LUFS, LRA ≈ 5) but with one decisive difference — its output is ceilinged at 0 dBFS with essentially no clipped samples, where YuE2 pushed 95 of 100 tracks past 0 dBTP. Both models undershoot long duration requests by a near-identical margin.

This continues 100 K-pop tracks with YuE2 and running YuE2 on 16 GB and Windows. Same machine: RTX 5080 16 GB, Windows, ComfyUI.


1. The 100-track batch used the weaker checkpoint

The earlier piece listed two things it had not tested. One was whether int8 quantisation costs anything audible. It does, at least on the one pair measured.

The test holds everything constant except the checkpoint file: same song, same style prompt, same lyrics, same seed, same 195-second request, same sampler settings.

CheckpointLoaderSimple  →  YuE2GenerateABC  →  YuE2GenerateMusic
                                    ↓
        EmptyYuE2LatentAudio  →  KSampler  →  VAEDecodeAudio  →  SaveAudio

ABC stage     max_abc_tokens 8192, temp 0.7, top_p 0.9, top_k 30, rep 1.005
Music stage   temp 1.0, top_p 0.95, top_k 100, rep 1.2
KSampler      20 steps, cfg 3.0, euler / simple
Negative      ConditioningZeroOut of the positive
Checkpoint Duration Dynamics (per-second RMS σ, dB)
yue2_3b_int8_convrot 176 s 4.8
yue2_3b_bf16 193 s 7.1

Dynamics here is the standard deviation of per-second RMS in dB — how much the track moves between quiet and loud. 4.8 is flat; 7.1 has actual verse-to-chorus contrast.

The int8 file has since been deleted from the machine.

This matters for the previous article. All 100 tracks in that batch ran on yue2_3b_int8_convrot (3.69 GB). The findings there — mean 165.6 s against a 195 s request, 95 of 100 clipping, −12.97 LUFS — describe the int8 build. The duration result in particular may be softer on bf16, since the one bf16 track reached 193 s where its int8 twin stopped at 176 s.

The honest limit: this is n = 1. One song, one seed, one pair. It was enough to justify deleting the int8 file and re-running future work on bf16, but it is not enough to put a number on the gap. A proper version of this test is a paired batch across all five styles.


2. A second model, measured the same way

MiniMax Music 3 runs natively in ComfyUI and is a completely different architecture, so the interesting part is not "which is better" but which behaviours are shared.

CLIPLoader   minimax_music3_text_encoder_pruned_int8_convrot.safetensors
UNETLoader   minimax_music3_dit_fp16.safetensors
VAELoader    minimax_music3_dav.safetensors
Encode       MiniMaxMusic3TextEncode — caption + lyrics, cfg_scale 1.7, top_k 50
KSampler     30 steps, cfg 1.7, euler / simple

The prompt interface is the biggest practical difference

YuE2 takes one style string. Music 3 takes a three-part caption plus section-tagged lyrics, and the parts are not interchangeable:

  • Global Metadata — genre, BPM, key, harmonic language, emotional arc, setting, production character
  • Vocal Details — how many voices, timbre, register, harmony stacking, ad-libs, language
  • Arrangement — instrument by instrument, then section by section (intro / verse / pre-chorus / chorus / bridge / outro)

An abbreviated example from the mid-tempo track:

Global Metadata: Korean girl group dreamy mid-tempo pop with a retro city-pop undercurrent […] 104 BPM, E major, major seventh and add9 voicings throughout with a few unexpected borrowed chords that tilt the mood bittersweet rather than purely bright. […] Late afternoon light, linen curtains, a room someone used to live in.

Vocal Details: Five young female voices, light and airy with clear diction, trading lines closely and often overlapping. Breathy head-voice tone in the verses […] opening into a soft belted chest mix in the chorus but never straining.

Arrangement: Soft rounded kick with a warm rimshot-and-brush snare […] Bridge: drums drop out entirely to Rhodes, pad and close vocals, then bass and brushes ease back in.

Lyrics were Korean, with section tags and occasional English hook phrases. The YuE2 batch was entirely English, so this is not a like-for-like language comparison — it is a note that Korean lyric input is accepted.

Measurements

Three tracks. Seeds 776412 / 315082 / 880231.

Track Requested Actual Hit Integrated LRA Sample peak
glossy-dancepop 165 s 165.0 s 100% −12.74 LUFS 4.9 LU 0.00 dBFS
warm-citypop 180 s 157.1 s 87% −13.02 LUFS 7.4 LU −0.01 dBFS
guitar-housepop 195 s 159.6 s 82% −12.67 LUFS 4.4 LU 0.00 dBFS

Spectral distribution, mono downmix, Welch-averaged:

Track Centroid 20–120 Hz 120–500 500–2k 2k–6k 6k–11k
glossy-dancepop 3802 Hz 8.5% 11.2% 27.5% 28.8% 17.1%
warm-citypop 4179 Hz 6.5% 17.2% 25.3% 22.7% 17.7%
guitar-housepop 4153 Hz 5.2% 13.9% 21.2% 33.1% 18.6%

The band split tracks the briefs: the house-pop track with the distorted guitar hook carries the most 2–6 kHz energy (33.1%), and the four-on-the-floor dance track the most sub-bass (8.5%).

The chart at the top of this article is the per-second loudness of all three, K-weighted per ITU-R BS.1770. The flat clustering around −13 LUFS is the finding of the next section; the one deep trough near the end of the mid-tempo track is its drop-out bridge, which is also why it carries the widest loudness range of the three.


3. What the two models share, and where they split

They converge on the same master

YuE2 (n = 100) Music 3 (n = 3)
Integrated loudness −12.97 LUFS −12.81 LUFS (mean)
Loudness range 5.4 LU 5.6 LU (mean)

Two unrelated architectures, trained separately, landing within 0.2 LU of each other on both measures. Neither is targeting the −14 LUFS streaming norm; both are targeting something closer to a commercial pop master, and both compress to roughly the same degree.

They split completely on the ceiling

This is the one difference with a practical consequence.

YuE2 (n = 100) Music 3 (n = 3)
Peak behaviour 95/100 over 0 dBTP, mean +0.44, max +1.36 peak sits at 0.00 / −0.01 dBFS
Full-scale samples 4 in 14.5 M, 0, 0
Clipped runs (≥ 3 consecutive) 0 across all three tracks

Music 3's output stops exactly at digital full scale and stays there — the signature of a limiter at the end of the chain. YuE2's output runs past full scale, which is the signature of no limiter at all. In practice: YuE2 output needs limiting or loudness normalisation before you use it anywhere; Music 3 output does not.

Both undershoot long requests by about the same margin

Request YuE2 Music 3
195 s 165.6 s mean (85%), 15/100 reached 159.6 s (82%)
165 s 165.0 s (100%)

The requested length behaves as a ceiling in both models, and the shortfall grows with the request. The one 165-second request landed exactly on target. That is a single data point, but it points the same direction as the YuE2 result, where shorter-tending styles hit their target far more often than long ones.


4. The three tracks

Raw model output — nothing mixed, mastered, edited or trimmed. Named by sonic character rather than by the reference acts the briefs were written against, since the prompts are production descriptions and that is the more useful label.

glossy-dancepop — 124 BPM, B minor. Four-on-the-floor, 808 sub, plucked arpeggio motif, sidechain pump, gang-vocal hook. 165.0 s, −12.74 LUFS, LRA 4.9

warm-citypop — 104 BPM, E major. Rhodes centre, brushed drums, muted funk guitar sixteenths, five-part stacked harmony, no drop. The widest dynamics of the three, and the only one with a true drop-out bridge. 157.1 s, −13.02 LUFS, LRA 7.4

guitar-housepop — 126 BPM, A minor. Distorted guitar riff over progressive-house four-on-the-floor, extended two-part chorus. 159.6 s, −12.67 LUFS, LRA 4.4

The numbers say nothing about whether the Korean vocal phrasing is convincing. That is a listening judgement and the files are here for you to make it.


5. How these were measured, and three traps

ffmpeg was unavailable on the machine during this pass, so the measurements were taken in the browser with the Web Audio API — decodeAudioData on the lossless FLAC, then ITU-R BS.1770 K-weighting (high shelf +3.999 dB at 1681.97 Hz, Q 0.7071, then high-pass at 38.13 Hz, Q 0.5), 400 ms blocks at 75% overlap, absolute −70 LUFS gate followed by a relative −10 LU gate. LRA uses 3-second blocks, a −20 LU relative gate, and the 10th-to-95th percentile spread.

That route works, and it produced numbers consistent with the ffmpeg-measured YuE2 figures. But three things silently produce wrong answers, and all three caught me before the numbers above were final:

1. OfflineAudioContext clamps its output to ±1. Anything measured off a render is capped at 0 dBFS by construction. The first peak readings came back as exactly 0.00, which looked like a finding and was an artefact. Attenuate by a known factor before the render — 0.25 works — and add the 12.04 dB back afterwards. This matters for the K-weighted path too, because the +4 dB shelf pushes a loud master past 1.0.

2. Downmixing to mono before measuring peak understates it. Averaging L and R gave −0.15 dBFS on a track whose actual per-channel peak is 0.00. Peak is a per-channel measurement. Spectral analysis on a mono downmix is fine; peak is not.

3. Web Audio's resampler is not a true-peak meter. Rendering at 4× the sample rate to get dBTP returns exactly the maximum sample value, because the interpolation is not guaranteed band-limited and never overshoots. That is why no dBTP figure is quoted for Music 3 above. Counting samples at or above full scale, and runs of three or more consecutive ones, is the reliable substitute — and it answers the question that actually matters, which is whether the file is clipped.


6. Still untested

  • bf16 across a batch. The int8/bf16 comparison is one song. The duration and dynamics gap needs a paired run across all five styles before it deserves a number.
  • Music 3 at n > 3. Three tracks cannot establish duration behaviour, and the 165-second exact hit could be coincidence.
  • Whether the Korean vocal output holds up. Measurement cannot answer this.
  • Whether Music 3's limiter costs anything. A ceilinged output is more convenient, but a limiter in the chain is also a limiter you did not choose.
#yue2#minimax-music3#music-generation#comfyui#measurement

← Back to all posts