| --- |
| title: Imagebind |
| emoji: 📚 |
| colorFrom: red |
| colorTo: green |
| sdk: docker |
| pinned: false |
| license: mit |
| short_description: Small imagebind api implementation |
| --- |
| |
| # ImageBind API Implementation |
|
|
| A FastAPI implementation of Facebook's ImageBind model for cross-modal embeddings. |
|
|
| ## Local Setup |
|
|
| 1. Install system dependencies: |
|
|
| ```bash |
| sudo apt-get update && sudo apt-get install -y ffmpeg libsndfile1 |
| ``` |
|
|
| 2. Create and activate a virtual environment: |
|
|
| ```bash |
| python -m venv venv |
| source venv/bin/activate # On Windows: venv\Scripts\activate |
| ``` |
|
|
| 3. Install Python dependencies: |
|
|
| ```bash |
| pip install --no-cache-dir --upgrade -r requirements.txt |
| ``` |
|
|
| 4. Download and setup ImageBind: |
|
|
| ```bash |
| python setup_imagebind.py |
| pip install --no-cache-dir . |
| ``` |
|
|
| ## Docker Setup |
|
|
| Build and run the container: |
|
|
| ```bash |
| docker build -t imagebind-api . |
| docker run -p 7860:7860 imagebind-api |
| ``` |
|
|
| ## API Endpoints |
|
|
| The API will be available at `http://localhost:7860` with the following endpoints: |
|
|
| ### POST `/compute_embeddings` |
| |
| Generate embeddings for images, audio files, and text. |
| |
| ### POST `/compute_similarities` |
|
|
| Compute similarities between embeddings with advanced filtering options: |
|
|
| - Threshold filtering for minimum similarity scores |
| - Top-K results limitation |
| - Optional self-similarity inclusion |
| - Score normalization |
| - Detailed match information including original file/text references |
| - Statistical analysis of similarity scores |
|
|
| ### GET `/health` |
|
|
| Basic health check endpoint |
|
|
| For detailed API documentation, visit `http://localhost:7860/docs` |
|
|
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference |
|
|
| ## API Authentication |
|
|
| The API uses Bearer token authentication. You need to include an authorization header with your API token in all requests: |
|
|
| ```bash |
| # Set your API token as an environment variable |
| export API_TOKEN="your-api-token-here" |
| |
| # Example curl request with authentication |
| curl -X POST "http://localhost:7860/compute_embeddings" \ |
| -H "Authorization: Bearer ${API_TOKEN}" \ |
| -H "Content-Type: multipart/form-data" \ |
| -F "texts=example text" |
| ``` |
|
|
| When running the Docker container, you can set the API token as an environment variable: |
|
|
| ```bash |
| docker run -p 7860:7860 -e API_TOKEN="your-api-token-here" imagebind-api |
| ``` |
|
|