--- tags: - clip - image-classification - endpoints-template library_name: generic --- # Fork of [Geonmo/laion-aesthetic-predictor](https://huggingface.co/spaces/Geonmo/laion-aesthetic-predictor) for an Image Aesthetic Predictor). This repository implements a `custom` task for `Geonmo/laion-aesthetic-predictor` for 🤗 Inference Endpoints. The code for the customized handler is in the [handler.py](https://huggingface.co/philschmid/laion-asthetic-endpoint/tree/main/handler.py). ## Test Handler locally. This model & handker can be tested locally using the [ hf-endpoints-emulator](https://github.com/huggingface/hf-endpoints-emulator). 1. Clone the repository and install the requirements. ```bash git lfs install git clone https://huggingface.co/philschmid/laion-asthetic-endpoint cd laion-asthetic-endpoint pip install -r requirements.txt ``` 2. Install `hf-endpoints-emulator` ```bash pip install hf-endpoints-emulator ``` 3. Run the emulator ```bash hf-endpoints-emulator --handler handler.py ``` 4. Test the endpoint and send request ```bash curl --request POST \ --url http://localhost \ --header 'Content-Type: image/jpg' \ --data-binary '@example1.jpg' ``` ## Run Request The endpoint expects the image to be served as `binary`. Below is an curl and python example #### cURL 1. get image ```bash wget https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg -O test.jpg ``` 2. send cURL request ```bash curl --request POST \ --url https://{ENDPOINT}/ \ --header 'Content-Type: image/jpg' \ --header 'Authorization: Bearer {HF_TOKEN}' \ --data-binary '@test.jpg' ``` 3. the expected output ```json {"text": "INDLUS THE"} ``` #### Python 1. get image ```bash wget https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg -O test.jpg ``` 2. run request ```python import json from typing import List import requests as r import base64 ENDPOINT_URL="" HF_TOKEN="" def predict(path_to_image:str=None): with open(path_to_image, "rb") as i: b = i.read() headers= { "Authorization": f"Bearer {HF_TOKEN}", "Content-Type": "image/jpeg" # content type of image } response = r.post(ENDPOINT_URL, headers=headers, data=b) return response.json() prediction = predict(path_to_image="test.jpg") prediction ``` expected output ```python {"text": "INDLUS THE"} ```