Spaces:
Running
on
T4
VampNet
This repository contains recipes for training generative music models on top of the Lyrebird Audio Codec.
Setting up
Install LAC
install AudioTools
git clone https://github.com/hugofloresgarcia/audiotools.git
pip install -e ./audiotools
install the LAC library.
git clone https://github.com/hugofloresgarcia/lac.git
pip install -e ./lac
install VampNet
git clone https://github.com/hugofloresgarcia/vampnet2.git
pip install -e ./vampnet2
A note on argbind
This repository relies on argbind to manage CLIs and config files.
Config files are stored in the conf/
folder.
Getting the Pretrained Models
Download the pretrained models from this link. Then, extract the models to the models/
folder.
How the code is structured
This code was written fast to meet a publication deadline, so it can be messy and redundant at times. Currently working on cleaning it up.
βββ conf <- (conf files for training, finetuning, etc)
βββ demo.py <- (gradio UI for playing with vampnet)
βββ env <- (environment variables)
β βββ env.sh
βββ models <- (extract pretrained models)
β βββ spotdl
β β βββ c2f.pth <- (coarse2fine checkpoint)
β β βββ coarse.pth <- (coarse checkpoint)
β β βββ codec.pth <- (codec checkpoint)
β βββ wavebeat.pth
βββ README.md
βββ scripts
β βββ exp
β β βββ eval.py <- (eval script)
β β βββ train.py <- (training/finetuning script)
β βββ utils
βββ vampnet
β βββ beats.py <- (beat tracking logic)
β βββ __init__.py
β βββ interface.py <- (high-level programmatic interface)
β βββ mask.py
β βββ modules
β β βββ activations.py
β β βββ __init__.py
β β βββ layers.py
β β βββ transformer.py <- (architecture + sampling code)
β βββ scheduler.py
β βββ util.py
Usage
First, you'll want to set up your environment
source ./env/env.sh
Staging a Run
Staging a run makes a copy of all the git-tracked files in the codebase and saves them to a folder for reproducibility. You can then run the training script from the staged folder.
stage --name my_run --run_dir /path/to/staging/folder
Training a model
python scripts/exp/train.py --args.load conf/vampnet.yml --save_path /path/to/checkpoints
Fine-tuning
To fine-tune a model, see the configuration files under conf/lora/
.
You just need to provide a list of audio files // folders to fine-tune on, then launch the training job as usual.
python scripts/exp/train.py --args.load conf/lora/birds.yml --save_path /path/to/checkpoints
Launching the Gradio Interface
python demo.py --args.load conf/interface/spotdl.yml --Interface.device cuda