lisa-on-cuda 1.4.14
LISA (Reasoning Segmentation via Large Language Model) on cuda, now with huggingface ZeroGPU support!
License: Apache 2.0
Requires Python: <3.12,>=3.10

---
title: lisa + gradio + fastapi + CUDA
emoji: ⚡
colorFrom: red
colorTo: purple
sdk: gradio
sdk_version: 5.9.1
app_file: app.py
pinned: true
---

# LISA (Reasoning Segmentation via Large Language Model) on cuda, now with huggingface ZeroGPU support!

## Exec jupyter on the remote server with port forwarding on localhost

1. checkout repo, install venv with jupyter
2. port forwarding in localhost wiht private key: `ssh -i /path/to/private_key name@endpoint.com -L 8889:localhost:8889 -N -f`
3. start the jupyter-lab server
4. connect to page in localhost

## Commands to work on remote virtual machines (e.g. SaturnCloud) after clone and git lfs install

```bash
cd ~/workspace/lisa-on-cuda/
rm -rf lisa_venv 
python3 -m venv lisa_venv
ln -s lisa_venv/ venv
source  venv/bin/activate
pip --version
which python
python -m pip install pip wheel --upgrade
python -m pip install pytest pytest-cov jupyterlab
python -m pip install -r requirements.txt
nohup jupyter-lab &
tail -F nohup.out
```

# Jupyterlab Howto

To run the `test.ipynb` notebook you should already:
- cloned project https://huggingface.co/spaces/aletrn/lisa-on-cuda with active git lfs
- created and activated a virtualenv
- installed jupyterlab dependencies from requirements_jupyter.txt
- installed dependencies from requirements.txt

## Hardware requirements for local usage

- an nvidia gpu with 10 or 12GB of memory (a T4 should suffice)
- at least 16GB of system ram

## Hardware requirements on huggingface ZeroGPU

Right now (July 2024) huggingface let use ZeroGPU Nvidia A100 GPUs.

[![Gradio](https://img.shields.io/badge/Gradio-Online%20Demo-blue)](http://103.170.5.190:7860/)
[![Open in OpenXLab](https://cdn-static.openxlab.org.cn/app-center/openxlab_app.svg)](https://openxlab.org.cn/apps/detail/openxlab-app/LISA)

See [LISA](https://github.com/dvlab-research/LISA) for details on the original project.
Note that the authors don't keep the project updated anymore.

## Dependencies and HuggingFace demos with Gradio SDK

HuggingFace demos based on Gradio SDK (you need that to use ZeroGPU hardware) needs updated requirements.txt.
You can keep your requirements.txt in sync with the dependencies installed in the project using this python 
command (from samgis-core):

```bash
python -m samgis_core.utilities.update_requirements_txt --req_no_version_path requirements_no_versions.txt --req_output_path requirements.txt
```

About the parameters:

- input argument `--req_no_version_path` is a file with the dependencies package list without version declared
- output argument `--req_output_path` is the output requirements.txt

This command simply freeze the installed packages and filter it using the dependencies package list from the input argument.
If you need to modify the `requirements_no_versions.txt` file, avoid inserting

- `python` (this is required only by `poetry`)
- `gradio`, `gradio-client` (installed directly by HuggingFace, selecting the version in header section of the README.md file)
- `spaces` (installed directly by HuggingFace, version selected connected by the gradio version)

In case of doubt check the HuggingFace container log for the correct `spaces` package version.