--- license: apache-2.0 pipeline_tag: other datasets: - RS2002/RPMC-L2 tags: - stage-lighting - generative-task - music-to-light --- # Skip-BART Skip-BART is an end-to-end generative model designed for **Automatic Stage Lighting Control (ASLC)**. Unlike traditional rule-based methods, Skip-BART conceptualizes lighting control as a generative task, learning directly from professional lighting engineers to predict vivid, human-like lighting sequences synchronized with music. This model was presented in the paper [Automatic Stage Lighting Control: Is it a Rule-Driven Process or Generative Task?](https://huggingface.co/papers/2506.01482). - **Repository**: [https://github.com/RS2002/Skip-BART](https://github.com/RS2002/Skip-BART) - **Dataset**: [RS2002/RPMC-L2](https://huggingface.co/datasets/RS2002/RPMC-L2) ## Model Details - **Model Type**: Transformer-based model (BART architecture) with skip connections. - **Task**: Stage lighting sequence generation (predicting light hue and intensity). - **Architecture**: BART-based structure enhanced with a novel skip-connection mechanism to strengthen the relationship between musical frames and lighting states. - **Input Format**: Encoder input (batch_size, length, 512) for audio features; Decoder input (batch_size, length, 2) for lighting parameters. - **Output Format**: Hidden states representing lighting control parameters (dimension 1024). ## Training Data The model was trained on the **RPMC-L2** dataset, a self-collected dataset containing music and corresponding stage lighting data synchronized within a frame grid. ## Usage ### Installation ```shell git clone https://huggingface.co/RS2002/Skip-BART ``` ### Example Code The following snippet demonstrates how to load the model and perform a forward pass (requires `model.py` from the official repository). ```python import torch from model import Skip_BART # Load the model model = Skip_BART.from_pretrained("RS2002/Skip-BART") # Example input x_encoder = torch.rand((2, 1024, 512)) x_decoder = torch.randint(0, 10, (2, 1024, 2)) encoder_attention_mask = torch.zeros((2, 1024)) decoder_attention_mask = torch.zeros((2, 1024)) # Forward pass output = model(x_encoder, x_decoder, encoder_attention_mask, decoder_attention_mask) print(output.size()) # Output: [2, 1024, 1024] ``` ## Citation ```bibtex @article{zhao2025automatic, title={Automatic Stage Lighting Control: Is it a Rule-Driven Process or Generative Task?}, author={Zhao, Zijian and Jin, Dian and Zhou, Zijing and Zhang, Xiaoyu}, journal={arXiv preprint arXiv:2506.01482}, year={2025} } ``` ## Contact Zijian Zhao: zzhaock@connect.ust.hk