--- tags: - image-to-text - image-captioning - endpoints-template license: bsd-3-clause library_name: generic --- # Fork of [salesforce/BLIP](https://github.com/salesforce/BLIP) for a `image-captioning` task on 🤗Inference endpoint. This repository implements a `custom` task for `image-captioning` for 🤗 Inference Endpoints. The code for the customized pipeline is in the [pipeline.py](https://huggingface.co/florentgbelidji/blip_captioning/blob/main/pipeline.py). To use deploy this model a an Inference Endpoint you have to select `Custom` as task to use the `pipeline.py` file. -> _double check if it is selected_ ### expected Request payload ```json { "image": "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgICAgMC....", // base64 image as bytes } ``` below is an example on how to run a request using Python and `requests`. ## Run Request 1. prepare an image. ```bash !wget https://huggingface.co/datasets/mishig/sample_images/resolve/main/palace.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: image = i.read() payload = { "inputs": [image], "parameters": { "do_sample": True, "top_p":0.9, "min_length":5, "max_length":20 } } response = r.post( ENDPOINT_URL, headers={"Authorization": f"Bearer {HF_TOKEN}"}, json=payload ) return response.json() prediction = predict( path_to_image="palace.jpg" ) ``` Example parameters depending on the decoding strategy: 1. Beam search ``` "parameters": { "num_beams":5, "max_length":20 } ``` 2. Nucleus sampling ``` "parameters": { "num_beams":1, "max_length":20, "do_sample": True, "top_k":50, "top_p":0.95 } ``` 3. Contrastive search ``` "parameters": { "penalty_alpha":0.6, "top_k":4 "max_length":512 } ``` See [generate()](https://huggingface.co/docs/transformers/v4.25.1/en/main_classes/text_generation#transformers.GenerationMixin.generate) doc for additional detail expected output ```python ['buckingham palace with flower beds and red flowers'] ```