---
tags: [gradio-custom-component, BBoxAnnotator, image, annotation, bbox]
title: gradio_bbox_annotator
short_description: Bounding box annotation tool for Gradio
colorFrom: blue
colorTo: yellow
sdk: gradio
pinned: false
app_file: space.py
---
# `gradio_bbox_annotator`
Bounding box annotation tool for Gradio
## Installation
```bash
pip install gradio_bbox_annotator
```
## Usage
```python
import gradio as gr
from gradio_bbox_annotator import BBoxAnnotator
example = BBoxAnnotator().example_value()
demo = gr.Interface(
lambda x: x,
BBoxAnnotator(value=example, show_label=False), # input is interactive
BBoxAnnotator(show_label=False), # output is static
examples=[[example]], # examples are in the gallery format
)
if __name__ == "__main__":
demo.launch()
```
## `BBoxAnnotator`
### Initialization
name | type | default | description |
---|---|---|---|
value |
```python str | Path | tuple[ str | Path, list[tuple[int, int, int, int, str | None]], ] | None ``` | None |
A path or URL for the image, or a tuple of the image and list of (left, top, right, bottom, label) annotations. |
categories |
```python list[str] | None ``` | None |
a list of categories to choose from when annotating the image. |
label |
```python str | None ``` | None |
the label for this component, displayed above the component if `show_label` is `True` and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component corresponds to. |
every |
```python Timer | float | None ``` | None |
Continously calls `value` to recalculate it if `value` is a function (has no effect otherwise). Can provide a Timer whose tick resets `value`, or a float that provides the regular interval for the reset Timer. |
inputs |
```python Component | Sequence[Component] | set[Component] | None ``` | None |
Components that are used as inputs to calculate `value` if `value` is a function (has no effect otherwise). `value` is recalculated any time the inputs change. |
show_label |
```python bool | None ``` | None |
if True, will display label. |
show_download_button |
```python bool ``` | True |
If True, will display button to download annotations. |
container |
```python bool ``` | True |
If True, will place the component in a container - providing some extra padding around the border. |
scale |
```python int | None ``` | None |
relative size compared to adjacent Components. For example if Components A and B are in a Row, and A has scale=2, and B has scale=1, A will be twice as wide as B. Should be an integer. scale applies in Rows, and to top-level Components in Blocks where fill_height=True. |
min_width |
```python int ``` | 160 |
minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first. |
interactive |
```python bool | None ``` | None |
if True, will allow users to upload and edit an image; if False, can only be used to display images. If not provided, this is inferred based on whether the component is used as an input or output. |
visible |
```python bool ``` | True |
If False, component will be hidden. |
elem_id |
```python str | None ``` | None |
An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. |
elem_classes |
```python list[str] | str | None ``` | None |
An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles. |
render |
```python bool ``` | True |
If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later. |
key |
```python int | str | None ``` | None |
if assigned, will be used to assume identity across a re-render. Components that have the same key across a re-render will have their value preserved. |