# BAGEL Image Understanding & Generation

> Run BAGEL Image Understanding & Generation by infsh online or via API. Pay per run, no setup.

**URL:** https://inference.sh/apps/infsh/bagel
**Last updated:** 2026-07-28

---

A tool that combines understanding and creation capabilities, notable for its high-quality image generation and advanced image editing using simple language.

- app: `infsh/bagel`
- maker: [infsh](https://inference.sh/apps/infsh.md)
- category: [image](https://inference.sh/apps/category/image.md)
- input → output: text → image, image → image
- tasks: [reasoning](https://inference.sh/apps/tag/reasoning.md), [text to image](https://inference.sh/apps/tag/text-to-image.md), [image to image](https://inference.sh/apps/tag/image-to-image.md), [image editing](https://inference.sh/apps/tag/image-editing.md)
- price: GPU time, billed per millisecond
- runs via: api, javascript and python sdk, belt cli, mcp

## bagel API Guide

### About
a tool that combines understanding and creation capabilities, notable for its high-quality image generation and advanced image editing using simple language.

### 1. Calling the API

#### Install the Client

```bash
pip install inferencesh
```

#### Setup Your API Key
Set `INFERENCE_API_KEY` as an environment variable. Get your key from settings → api keys.

```bash
export INFERENCE_API_KEY="inf_your_key"
```

#### Run and Get Result

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])


result = client.run({
        "app": "infsh/bagel@6qe3f1nw",
        "input": {
            "system_prompt": "you are a helpful assistant that can answer questions and help with tasks.",
            "context": [
                {
                    "content": [
                        {
                            "text": "What is the capital of France?",
                            "type": "text"
                        }
                    ],
                    "role": "user"
                },
                {
                    "content": [
                        {
                            "text": "The capital of France is Paris.",
                            "type": "text"
                        }
                    ],
                    "role": "assistant"
                }
            ],
            "text": "write a haiku about artificial general intelligence"
        }
    })

print(result["output"])
```

#### Stream Live Updates

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])


## stream=True yields updates as they arrive
for update in client.run({
        "app": "infsh/bagel@6qe3f1nw",
        "input": {
            "system_prompt": "you are a helpful assistant that can answer questions and help with tasks.",
            "context": [
                {
                    "content": [
                        {
                            "text": "What is the capital of France?",
                            "type": "text"
                        }
                    ],
                    "role": "user"
                },
                {
                    "content": [
                        {
                            "text": "The capital of France is Paris.",
                            "type": "text"
                        }
                    ],
                    "role": "assistant"
                }
            ],
            "text": "write a haiku about artificial general intelligence"
        }
    }, stream=True):
    if update.get("progress"):
        print(f"progress: {update['progress']}%")
    if update.get("output"):
        print(f"output: {update['output']}")
```

### 2. Authentication
The API uses API keys for authentication. See the authentication docs for detailed setup instructions.

### 3. Files

#### Automatic Upload

```python
## local file paths are automatically uploaded
result = client.run({
    "app": "infsh/bagel@6qe3f1nw",
    "input": {
        "image": "/path/to/local/image.png",  # detected & uploaded
        "audio": "https://example.com/audio.mp3",  # url passed through
    }
})
```

#### Manual Upload

```python
## upload and get a hosted URL
file = client.files.upload("/path/to/file.png")
print(file.uri)  # https://cloud.inference.sh/...
```

### 4. Schema

#### Input
- **thinking_enabled** (boolean): Enable thinking mode for enhanced reasoning
- **analysis_mode** (boolean): Enable understanding mode for image analysis only
- **images** (array): the images to use for the model
- **system_prompt** (string): the system prompt to use for the model
- **context** (array): the context to use for the model
- **role** (string): the role of the input text
- **text** (string) *required*: the input text to use for the model
- **temperature** (number): Temperature
- **top_p** (number): Top P
- **context_size** (integer): Context Size
- **max_tokens** (integer): Max Tokens

#### Output
- **image** (string): Generated or processed image
- **reasoning** (string): Thinking content
- **response** (string): Generated text response (thinking or understanding)

## other image apps

- [Gemini Nano Banana 2.1](https://inference.sh/apps/google/gemini-nano-banana-2-1.md): $1.50/M input, $0.0336–$0.1134/image (1K–4K), +$0.014/query Google Search
- [grok-imagine-image-2-0](https://inference.sh/apps/xai/grok-imagine-image-2-0.md): $0.04/img low 1k, $0.06/img low 2k, $0.06/img med 1k, $0.08/img med 2k; $0.01/source img (edits)
- [GPT Image 2.5 Sunburst](https://inference.sh/apps/openai/gpt-image-2-5-sunburst.md): $0.006-$0.21 per 1024x1024 image: low $0.006, medium $0.013, high $0.053, xhigh $0.094, max $0.21. Larger sizes cost more; edits add ~$0.008 per reference image.
- [GPT Image 2.5 Flare](https://inference.sh/apps/openai/gpt-image-2-5-flare.md): $0.006-$0.21/image at 1024x1024: low $0.0059, medium $0.0132, high $0.0527, xhigh $0.0937, max $0.2107. Larger sizes cost more; edits add ~$0.0083 per reference image.
- [Image Resize & Crop](https://inference.sh/apps/eval/resize.md): from $0.00000277/sec

## faq

### how much does BAGEL Image Understanding & Generation cost?

GPU time, billed per millisecond. you pay per run from your inference shell credits. no subscription is required.

### how do I run BAGEL Image Understanding & Generation via api?

call infsh/bagel with the javascript or python sdk, the rest api, or `belt app run infsh/bagel` from a terminal. the api reference on this page lists every input.

### who makes BAGEL Image Understanding & Generation?

BAGEL Image Understanding & Generation is made by infsh and runs on inference shell. every infsh app is listed at https://inference.sh/apps/infsh.

### can my agent use BAGEL Image Understanding & Generation?

yes. agents call it as a tool through the inference shell mcp server (https://api.inference.sh/mcp), the belt cli or the sdk, and pay per run like you do.

### what are the alternatives to BAGEL Image Understanding & Generation?

other image apps on inference shell include Gemini Nano Banana 2.1, grok-imagine-image-2-0, GPT Image 2.5 Sunburst, GPT Image 2.5 Flare. they run through the same api, so switching is a one-line change.
