--- title: nifty-lab sdk: gradio sdk_version: 6.14.0 app_file: app.py pinned: false license: apache-2.0 short_description: Multimodal playground on ByteDance Lance, ZeroGPU tags: - multimodal - text-to-video - video-understanding - lance --- # nifty-lab (Space code) This is the Hugging Face Space that powers the [nifty-lab](https://github.com/IgorCSIS/nifty-lab) portfolio piece. It runs on ZeroGPU and serves ByteDance's [Lance](https://github.com/bytedance/Lance) unified multimodal model. ## What's in here - `app.py`: the Gradio app, written by me. ZeroGPU adapter around Lance. - `lance_gradio_t2v_v2t.py`: a verbatim copy of ByteDance's reference Gradio script. We import the heavy model-loading classes from it. - `modeling/`, `common/`, `data/`, `config/`: copied verbatim from ByteDance's repo. These are the Python packages Lance's inference code imports. - `requirements.txt`: pinned dependency versions tested against ZeroGPU. - `LICENSE_LANCE`: ByteDance's Apache 2.0 license for the upstream code. ## How it boots When the Space starts, `app.py` downloads the Lance_3B_Video weights from `bytedance-research/Lance` into `downloads/Lance_3B_Video/`. First boot takes 5 to 10 minutes for the download. Subsequent boots use the cached files. After download, the Gradio UI comes up. The first request the user makes loads the model into GPU memory (about 60 seconds). Subsequent requests in the same warm window are fast. ## Stage 1 vs Stage 2 Stage 1 (this commit): text-to-video and video understanding. Stage 2 (coming): text-to-image, image edit, video edit, image understanding. These will load the second Lance variant (`Lance_3B`) alongside the current video variant. ## License attribution Original Lance code is Apache 2.0 by ByteDance Ltd. See `LICENSE_LANCE`. Adapter code in `app.py` is Apache 2.0 by Igor Lima.