Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| title: Omniseal Leaderboard | |
| emoji: 🦀 | |
| colorFrom: red | |
| colorTo: green | |
| sdk: docker | |
| pinned: false | |
| short_description: Leaderboard for watermarking models | |
| ## Docker Build Instructions | |
| ### Prerequisites | |
| - Docker installed on your system | |
| - Git repository cloned locally | |
| ### Build Steps (conda) | |
| 1. Initialize conda environment | |
| ```bash | |
| cd backend | |
| conda env create -f environment.yml -y | |
| conda activate omniseal-benchmark-backend | |
| ``` | |
| 2. Build frontend (outputs html, js, css into frontend/dist). Note you only need this if you are updating the frontend, the repository would already have a build checked in at frontend/dist | |
| ```bash | |
| cd frontend | |
| npm install | |
| npm run build -- --mode prod | |
| ``` | |
| 3. Run backend server from project root. This would serve frontend files from port http://localhost:7860 | |
| ```bash | |
| gunicorn --chdir backend -b 0.0.0.0:7860 app:app --reload | |
| ``` | |
| 4. Server will be running on `http://localhost:7860` | |
| ### Build Steps (Docker, huggingface) | |
| 2. Build the Docker image from project root: | |
| ```bash | |
| docker build -t omniseal-benchmark . | |
| ``` | |
| OR | |
| ```bash | |
| docker buildx build -t omniseal-benchmark . | |
| ``` | |
| 3. Run the container (this runs in auto-reload mode when you update python files in the backend directory). Note the -v argument make it so the backend could hot reload: | |
| ```bash | |
| docker run -p 7860:7860 -v $(pwd)/backend:/app/backend omniseal-benchmark | |
| ``` | |
| 4. Access the application at `http://localhost:7860` | |
| ### Local Development | |
| When updating the backend, you can run it in whichever build steps above to take advantage of hot-reload so you don't have to restart the server. | |
| For the frontend: | |
| 1. Create a `.env.local` file in the frontend directory. Set `VITE_API_SERVER_URL` to where your backend server is running. When running locally it will be `VITE_API_SERVER_URL=http://localhost:7860`. This overrides the configuration in `.env` so the frontend will connect with your backend URL of choice. | |
| 2. Run the development server with hot-reload: | |
| ```bash | |
| cd frontend | |
| npm install | |
| npm run dev | |
| ``` | |
| ### Local datasets | |
| By default, datasets are loaded over the network based on `backend/config.py`. Please see the file there and modify if loading different datasets. | |
| `ABS_DATASET_DOMAIN`, `ABS_DATASET_PATH` controls where datasets are loaded from and are used in `DATASET_CONFIGS` and `EXAMPLE_CONFIGS`. Any datasets and examples to be added would need to update the above constants to be visualized in the UI. | |
| There is commented out code that sets the `ABS_DATASET_DOMAIN` to the `backend/data` directory. You can see the data formats of the csv / json files required to render the leaderboard as well as examples there. | |
| In the `data` directory, by default this matches the path structure for loading over the network. Each dataset should be placed under `data/omnisealbench` as a directory, e.g. `data/omnisealbench/sav_val_full_v2` and in the directory have files: | |
| - `{type}_benchmark.csv` for leaderboard tables | |
| - `{type}_attacks_variations.csv` for leaderboard chart | |
| - `examples_eval_results.json` for examples | |
| Please see reference csv and json files for what these need to look like. | |