--- library_name: audio-interv tags: - ace-step - audio - concept-slider - diffusion - interpretability - lora - music - peft - steering - tf6tf7 - vocal-gender --- # Concept Slider LoRA — `vocal_gender` (r8, layers=tf6tf7) — ACE-Step LoRA adapter trained with the Concept Sliders loss for steering ACE-Step audio generation toward the **vocal_gender** concept. `alpha` modulates the active LoRA weight; `set_alpha` swaps weights without reloading. - Rank: r8 - Target layers: tf6tf7 ## Paper TADA! Tuning Audio Diffusion Models through Activation Steering — [https://huggingface.co/papers/2602.11910](https://huggingface.co/papers/2602.11910) ## Files - `pytorch_lora_weights.safetensors` — the LoRA weights. - `train_config.json` — training hyperparameters. ## Quickstart ```python from src.steering import SteerableACEModel, ConceptSlidersSteeringController model = SteerableACEModel(device="cuda") model.pipeline.load() ctrl = ConceptSlidersSteeringController.from_pretrained("lukasz-staniszewski/ace-step-cs-vocal-gender-r8-tf6tf7", alpha=1.0) with model.steer(ctrl): for alpha in [-2, -1, 0, 1, 2]: ctrl.set_alpha(alpha) audio = model.generate( prompt="instrumental music", lyrics="[inst]", audio_duration=10.0, infer_step=30, manual_seed=0, ) ``` ## Training config ```json { "concept": "vocal_gender", "lora_config": { "r": 8, "lora_alpha": 1, "target_modules": [ "to_q", "to_k", "to_v", "to_out.0", "add_q_proj", "add_k_proj", "add_v_proj", "to_add_out" ], "lora_dropout": 0.0, "bias": "none" }, "lora_config_path": "steering/cs/lora_config_r8.json", "layers": "tf6tf7", "layers_to_transform": [ 6, 7 ], "iterations": 500, "lr": 0.0001, "weight_decay": 0.01, "eta": 7, "audio_duration": 10.0, "seed": 42, "max_grad_norm": 1.0, "gradient_checkpointing": true, "with_denoising": true, "max_denoising_steps": 50, "denoise_cfg_scale": 5.0, "num_lora_params": 983040, "frame_length": 108, "num_prompts": 50, "final_loss": 0.02685546875, "avg_loss_last_50": 0.0709228515625 } ```