Metadata-Version: 2.4
Name: flashstudio
Version: 0.1.0
Summary: Interactive Training & Inference UI for FlashDet — runs on Google Colab
Author: Gaurav14cs17
License: Apache-2.0
Project-URL: Homepage, https://github.com/FlashVision/FlashStudio
Project-URL: Repository, https://github.com/FlashVision/FlashStudio
Keywords: object-detection,flashdet,training,inference,ui,colab
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: streamlit>=1.28.0
Requires-Dist: plotly>=5.0
Requires-Dist: pandas>=1.5
Requires-Dist: pillow>=9.0
Requires-Dist: numpy>=1.21
Provides-Extra: full
Requires-Dist: pyngrok>=6.0; extra == "full"
Requires-Dist: torch>=2.0; extra == "full"
Requires-Dist: opencv-python>=4.5; extra == "full"
Provides-Extra: colab
Requires-Dist: pyngrok>=6.0; extra == "colab"
Provides-Extra: dev
Requires-Dist: ruff; extra == "dev"
Requires-Dist: pytest; extra == "dev"

# ⚡ FlashStudio

**Interactive Training & Inference UI for FlashDet** — runs locally or on Google Colab with a Streamlit interface.

<p align="center">
  <img src="docs/mockups/flashstudio_streamlit_mockup.png" width="800" alt="FlashStudio UI"/>
</p>

## Features

- 🏋️ **Training Dashboard** — Real-time monitoring with live loss curves, visualizations, GT verification
- 🧠 **Model Config** — All 6 FlashDet sizes + YOLOv8/v9/v10/v11/YOLOX with accurate params
- 🔍 **Inference Pipeline** — 4-step wizard: Model → Data → Zone → Run (17 solutions, 6 trackers)
- 📤 **Export** — ONNX export with FP16 auto-generated weights
- 📦 **Data** — Native `flashdet download` datasets + custom upload
- 🚀 **Colab Support** — ngrok tunneling for remote access

## Quick Start

### Install from GitHub

```bash
pip install git+https://github.com/FlashVision/FlashStudio.git
```

### Install locally (development)

```bash
git clone https://github.com/FlashVision/FlashStudio.git
cd FlashStudio
pip install -e .
```

### Install with all dependencies (FlashDet + PyTorch)

```bash
pip install "flashstudio[full] @ git+https://github.com/FlashVision/FlashStudio.git"
```

### Run

```bash
# CLI
flashstudio --port 8501

# Or directly
streamlit run flashstudio/app.py
```

### Python API (for Colab)

```python
from flashstudio import launch
launch()  # Opens ngrok tunnel in Colab, localhost otherwise
```

## Google Colab

| Notebook | Description | Link |
|----------|-------------|------|
| Training | Train FlashDet models | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/FlashVision/FlashStudio/blob/main/notebooks/FlashStudio_Train.ipynb) |
| Inference | Run detection on images/video | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/FlashVision/FlashStudio/blob/main/notebooks/FlashStudio_Inference.ipynb) |

## Architecture

```
FlashStudio/
├── flashstudio/
│   ├── __init__.py              # Package init + launch() export
│   ├── app.py                   # Main Streamlit app (wizard flow)
│   ├── launcher.py              # Colab/local launcher with ngrok
│   ├── cli.py                   # CLI entrypoint
│   ├── pages/
│   │   ├── dashboard.py         # Overview + recent runs
│   │   ├── data.py              # Dataset upload/download
│   │   ├── model.py             # Architecture & hyperparameter config
│   │   ├── training.py          # Training monitor (reads real workspace)
│   │   ├── export.py            # ONNX export
│   │   └── inference.py         # 4-step inference pipeline
│   ├── components/
│   │   ├── sidebar.py           # Navigation sidebar
│   │   ├── styles.py            # Custom CSS
│   │   └── wizard.py            # Step indicator & navigation
│   └── utils/
│       └── device.py            # GPU/environment detection
├── notebooks/
│   ├── FlashStudio_Train.ipynb
│   └── FlashStudio_Inference.ipynb
├── .streamlit/config.toml
├── pyproject.toml
└── README.md
```

## Requirements

- Python >= 3.9
- FlashDet (install separately: `pip install git+https://github.com/FlashVision/FlashDet.git`)
- GPU recommended for training (T4 or better)

## License

Apache-2.0
