|
# CRUSH Guidelines for HF Demo |
|
|
|
## Build/Run Commands |
|
- **Setup**: `pip install -r requirements.txt` |
|
- **Run Demo**: `python app.py` |
|
- **Run Main**: `python main.py` |
|
|
|
## Lint/Test Commands |
|
- **Lint**: `flake8 .` or `ruff check .` |
|
- **Format**: `black .` or `ruff format .` |
|
- **Type Check**: `mypy --ignore-missing-imports .` |
|
- **Single File Test**: `python -m pytest tests/test_file.py::test_function_name -v` |
|
|
|
## Code Style Guidelines |
|
- **Language**: Python 3.12+, PyTorch-based |
|
- **Imports**: Standard library, third-party (torch, torchvision, gradio), then local |
|
- **Formatting**: Black-compatible, 88 char line limit |
|
- **Naming**: snake_case for functions/variables, PascalCase for classes |
|
- **Types**: Use type hints where possible (`torch.Tensor`, etc.) |
|
- **Docstrings**: Not required for this demo app |
|
- **Error Handling**: Use try/except for file I/O and model operations |
|
|
|
## Key Architecture Components (HF Demo) |
|
- **FocalCrossViTHybrid**: Main hybrid model combining Focal Transformer + CrossViT |
|
- **FocalModulation**: Adaptive spatial attention with multi-scale focal windows |
|
- **CrossAttention**: Cross-attention mechanism between near/far focus images |
|
- **Gradio Interface**: Web UI for image fusion demo |
|
|
|
## Important Conventions |
|
- Models loaded from Hugging Face automatically |
|
- Use `torch.device('cuda' if torch.cuda.is_available() else 'cpu')` |
|
- Image size: 224x224 for model compatibility |
|
- Follow Gradio patterns for UI components |
|
- Include proper error messages for missing inputs |
|
|
|
## File Structure |
|
- **app.py**: Main Gradio application with model definition and UI |
|
- **main.py**: Simple entry point |
|
- **requirements.txt**: Dependencies for HF Spaces |
|
|
|
## Test Commands |
|
- No formal tests in this directory |
|
- Test locally by running `python app.py` and uploading images |