# FLUX.2 [klein]

> Run FLUX.2 [klein] by infsh online or via API. GPU time, billed per millisecond, no setup.

**URL:** https://inference.sh/apps/infsh/flux-2-klein
**Last updated:** 2026-11-03

---

The FLUX.2 [klein] is the fastest image models of the FLUX.2 family. It unifies generation and editing in a single compact architecture, delivering state-of-the-art quality with end-to-end inference in as low as under a second. Built for applications that require real-time image generation without sacrificing quality.


- app: `infsh/flux-2-klein`
- maker: [infsh](https://inference.sh/apps/infsh.md)
- category: [other](https://inference.sh/apps/category/other.md)
- input → output: text → image, image → image
- tasks: [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), [open weights](https://inference.sh/apps/tag/open-weights.md)
- price: GPU time, billed per millisecond
- runs via: api, javascript and python sdk, belt cli, mcp

## flux-2-klein API Guide

### About
the flux.2 [klein] is the fastest image models of the flux.2 family. it unifies generation and editing in a single compact architecture, delivering state-of-the-art quality with end-to-end inference in as low as under a second. built for applications that require real-time image generation without sacrificing quality.


### Get an API Key
Create one in [settings → api keys](https://app.inference.sh/settings/keys). The examples read it from `INFERENCE_API_KEY`.

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

### 1. Calling the API

#### Install the Client

```bash
pip install inferencesh
```

#### Run and Get Result
Submit a request and wait for the final result.

```python
import os
from inferencesh import inference

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

## version @208q5kpr pinned
result = client.run({
        "app": "infsh/flux-2-klein@208q5kpr",
        "input": {
            "prompt": "prompt"
        }
    })

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

#### Stream Live Updates
Get real-time progress updates as the task runs.

```python
import os
from inferencesh import inference

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

## version @208q5kpr pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "infsh/flux-2-klein@208q5kpr",
        "input": {
            "prompt": "prompt"
        }
    }, stream=True):
    if update.get("progress"):
        print(f"progress: {update['progress']}%")
    if update.get("output"):
        print(f"output: {update['output']}")
```

#### Run in the Background
Start the task and get its id back right away, then check on it with `GET /tasks/{id}`. It is done when `status` is 10 (completed), 11 (failed) or 12 (cancelled).

```python
import os
from inferencesh import inference, TaskStatus

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

## returns as soon as the task is created
task = client.run({
        "app": "infsh/flux-2-klein@208q5kpr",
        "input": {
            "prompt": "prompt"
        }
    }, wait=False)

## later: read its current state
state = client.tasks.get(task["id"]).data
if state["status"] == TaskStatus.COMPLETED:
    print(state["output"])
```

### 2. Files

#### Automatic Upload

```python
## local file paths are automatically uploaded
result = client.run({
    "app": "infsh/flux-2-klein@208q5kpr",
    "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/...
```

### 3. Schema

#### Input
- **prompt** (string) *required*: The text prompt to generate an image from.
- **height** (integer): The height in pixels of the generated image.
- **width** (integer): The width in pixels of the generated image.
- **reference_images** (array): List of reference images to use for generation.
- **seed** (integer): The seed for random generation.

#### Output
- **image** (string): The generated image.

## other other apps

- [Google Analytics](https://inference.sh/apps/google/analytics.md): from $0.00000277/sec
- [Google Search Console](https://inference.sh/apps/google/search-console.md): from $0.00000277/sec
- [HTTP Request](https://inference.sh/apps/infsh/http.md): from $0.00000277/sec
- [ArcFace Identity Similarity](https://inference.sh/apps/eval/arcface.md): from $0.00055833/sec
- [PickScore](https://inference.sh/apps/eval/pickscore.md): from $0.00055833/sec

## faq

### how much does FLUX.2 [klein] cost?

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

### how do I run FLUX.2 [klein] via api?

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

### who makes FLUX.2 [klein]?

FLUX.2 [klein] is made by infsh and runs on inference shell. every infsh app is listed at https://inference.sh/apps/infsh.

### can my agent use FLUX.2 [klein]?

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 FLUX.2 [klein]?

other other apps on inference shell include Google Analytics, Google Search Console, HTTP Request, ArcFace Identity Similarity. they run through the same api, so switching is a one-line change.
