--- model_name: JAY_2 license: cc0-1.0 base_model: - ACE-Step/acestep-v15-xl-turbo base_model_relation: adapter library_name: peft pipeline_tag: text-to-audio tags: - lora - music - text2audio - acestep - acestep-v1.5 - acestep-xl - male-vocals - song-structure - vocal-separation - retro --- # JAY 2 — Male Vocal, Lyrical Structure & Storytelling LoRA Trained from scratch on a retro-focused dataset for **ACE-Step 1.5 XL Turbo**. JAY-2 is a full retrain, not a port of JAY-1. It targets a different architecture, a different dataset, and a wider set of vocal behaviours — most notably two-track voice separation and lyric-aware phrasing. **Built for `acestep-v15-xl-turbo` (4B DiT).** Not compatible with `acestep-v15-turbo` (2B) or any non-XL variant. The layer count and hidden size differ, so the adapter does not bind — this is a structural mismatch, not a version warning. --- ## ⚠️ Prefix token — it goes first **`jay_singing_runs` must be the first token in the prompt.** This is a prefix token, not an inline keyword. It modifies how the whole prompt is conditioned, so its position matters: ``` ✅ jay_singing_runs, melodic British rock, raw emotional male vocalist ❌ melodic British rock, raw emotional male vocalist, jay_singing_runs ``` Put it anywhere but the front and the effect is substantially reduced. Do not put it in the lyrics block — it belongs at the very start of the caption/tags field. You are not obliged to use it. JAY-2 works without the token — at `1.0` the adapter carries its effect either way. The token is an amplifier, not a switch: including it drives the behaviors described below harder than they sit at baseline. So: `1.0` is required, the token is optional, and the token amplifies on top of that. --- ## What it does | Effect | Description | | --- | --- | | **Male vocal presence** | **+50%** toward a male vocal read, with substantially less female-vocal bleed underneath. | | **Lyrical structure** | **+80%** to lyric structure legibility — the strongest single change from JAY-1. Tighter sections, more predictable phrasing. | | **Vocal layering & separation** | Clearer lead and backing vocals as distinct tracks instead of one blended voice. | | **Ad-libs over chorus** | Lead-singer ad-libs sit properly *above* the chorus rather than being buried inside it. | | **Emotional delivery** | The vocal reads as more emotional and human rather than synthetic. | | **Lyric-aware phrasing** | The singer appears responsive to the *meaning* of the words while delivering them — phrasing that tracks the narrative rather than reciting the syllable count. | | **Flow & transitions** | **+60%** handling of flow patterns and transitions, specifically movement into and out of a bridge, into a chorus, and into an ending. | | **Instrumentals** | A substantial lift on instrumental cues as well — strongest on retro video game music captions. See [Instrumentals](#instrumentals). | > **On the percentages:** these are the author's desk characterizations from A/B listening, > not benchmark measurements. There is no objective "percent more male" to measure. Read > them as an indication of direction and rough magnitude. ### Compared to JAY-1 | | JAY-1 | JAY-2 | | --- | --- | --- | | Base | `acestep-v15-turbo` (2B) | `acestep-v15-xl-turbo` (4B) | | Male vocal | +10% | **+50%** | | Lyrical structure | +20% | **+80%** | | Female bleed | reduced | **much more reduced** | | Flow / transitions | not addressed | **+60%** | | Voice separation | no | **yes** | | Ad-lib placement | no | **yes** | | Lyric-aware phrasing | no | **yes** | | Prefix token | `guy_singing_runs` | **`jay_singing_runs`** | | Dataset | original | **retro-focused, trained from 0 steps** | The two are not interchangeable. JAY-1 will not load into XL-turbo, and JAY-2 will not load into 2B turbo. > **Migrating from JAY-1? The prefix token changed.** `guy_singing_runs` is not the JAY-2 > token and will not trigger it — it reads as an ordinary word and fails silently, with no > error. Use `jay_singing_runs`. --- ## Files ``` adapter_model.safetensors adapter_config.json ``` Inference-only. No dataset, no preprocessed tensors, no training script — this is not a post-training release. ### ⚠️ Renaming on download ACE-Step only loads a LoRA whose files are named **exactly** `adapter_model.safetensors` and `adapter_config.json`. Rename either and the adapter will not be found and the run will proceed without it, silently. > **If the LoRA seems to do nothing,** check the filenames first. That is the cause far > more often than strength. --- ## Usage 1. Download both files into one folder. 2. Confirm the exact filenames above. 3. Load the folder as the LoRA source. 4. Set strength, put `jay_singing_runs` at the **front** of the prompt, generate. ### Strength **`1.0`. Not a starting point — the only working value.** This adapter does not fade in gracefully. Below `1.0` it does not become "a subtler version of itself," it degrades into static. That is measured across every JAY adapter, not a conservative default. The cause is in the config. `lora_alpha: 64` against `r: 32` gives PEFT a scaling factor of **2.0**, so effective strength is double the slider number. At slider `1.0` you get an effective `2.0`, which is roughly what it takes to override the base model's prior and produce coherent audio. Turn it down and the signal never clears the base model's own output — what you get is the base model, badly perturbed. Consequence: **this cannot be used as a subtle blend.** If you want a whisper of JAY in something, remove the prefix trigger token. Use `1.0`. If you are loading it through a pipeline whose default scale is not `1.0`, set it explicitly. A silent default of `0.8` is the single most likely reason someone reports this LoRA "has noise." ### Suggested settings | Setting | Value | | --- | --- | | LoRA scale | `1.0` | | Think | on, then compare both ways | | LM temperature | default | | LM CFG scale | default | This is a distilled 8-step model with no CFG. The base model's own sampling controls interact with the adapter, so they matter as much as the strength does. --- ## Instrumentals The retro dataset does not only carry vocal material. Instrumental cues take a **substantial** lift from this adapter, and the largest gain is on **retro video game music** captions — chiptune-adjacent cues, square and synth leads, era-appropriate arpeggios. If you are generating without vocals, this is not a wasted download. The same `1.0` strength applies, and the same rule holds: there is no partial-strength setting. ### Example instrumental caption ``` jay_singing_runs, retro video game music, 16-bit chiptune, square wave lead melody, pulse bass, duty-cycle drums, era-authentic arpeggios, minor key, adventurous and melancholic, no vocals, instrumental ``` --- ## Prompting The adapter responds to the caption and the lyrics separately. Structure the lyrics with explicit tags — the lyrical-structure push has nothing to organize otherwise. ### Example ``` jay_singing_runs, melodic British rock, polished but organic. Clean articulate lead guitar, radio-friendly mid-tempo groove, tight rhythm guitar, supportive bass, crisp drums. Male singer, deep baritone, gravelly rough-edged texture, raw and understated, conversational storytelling phrasing. ``` ### The 2-column chorus format For two-track lead/backing vocals, the chorus has to be written as **two columns**. The chorus line goes in parentheses on the left; the lead vocal track goes in the right column on the same line. ``` [Chorus] (Oh, Sundays feel like heaven, hearts are running free) hearts running free (The world can wait a little, we've got our own parade) the world can wait ``` This is what activates the 2-track vocal behavior — a distinct lead and a distinct backing vocal rather than one blended voice. A `[Chorus]` tag with a single column of lyrics will not produce it, no matter what the caption says. The structure has to be in the lyrics. ### Lyrics Full example, 2-column choruses: ``` [Intro] [Verse 1] Sun is rising slowly, light upon the floor Coffee's on the table, no alarms, no chores Nothing on the schedule, nowhere we need to go [Pre-Chorus] And I can feel it turning Everything is changing [Chorus] (Oh, Sundays feel like heaven, hearts are running free) hearts running free (The world can wait a little, we've got our own parade) the world can wait [Verse 2] Stories in the kitchen, songs drift through the air The clock is just a number, the hours drift away [Bridge] Hold that thought, I'll come back round Some things only matter when they are found [Chorus] (Oh, Sundays feel like heaven, hearts are running free) hearts running free (The world can wait a little, we've got our own parade) the world can wait [Outro] ``` The `[Pre-Chorus]` and `[Bridge]` tags are where the flow/transition handling is most visible. Tag them explicitly to get the benefit. --- ## Limitations - **XL-turbo only.** Will not load into `acestep-v15-turbo` (2B) or non-XL variants. - **The prefix token must be first.** Mid-prompt placement substantially reduces the effect. - The male-vocal shift is a bias, not a lock. It will not convert a prompt explicitly asking for a female vocalist. - Lyrical-structure gains depend on explicit `[Verse]` / `[Chorus]` / `[Bridge]` tagging. Untagged freeform lyrics get much less. - Voice separation is a lift, not a mix bus. It will not replace actual stem separation if you need clean isolated tracks for production. - Running below scale `1.0` produces static, not a weaker effect. No blending. - Retro-leaning dataset: expect a vintage-leaning tilt. If you want contemporary timbres, counter it in the prompt and expect to fight the adapter somewhat. - Trained on a limited corpus by one person. Expect a narrower stylistic range than the base model. --- ## License **CC0-1.0** — public domain dedication. Use, modify, redistribute, commercial or not, no attribution required. No warranty, no liability. Base model: [`ACE-Step/acestep-v15-xl-turbo`](https://huggingface.co/ACE-Step/acestep-v15-xl-turbo) — MIT, trained on legally compliant datasets. Generated music may be used commercially. This adapter is an independent derivative and is not affiliated with or endorsed by the ACE-Step authors. --- ## Author `str8bored@S-W-O-R-D` ## README Author `seven@S-W-O-R-D`