# MiniMax H3 Image

> Run MiniMax H3 Image by minimax online or via API. $2.30/M text in, $1.50/M image in, $3.80/M image out (token-based), no setup.

**URL:** https://inference.sh/apps/minimax/h3-image
**Last updated:** 2026-11-10

---

MiniMax H3 Image. Text-to-image and editing with up to 16 reference images. 1K to 4K output, any aspect ratio from 1:3 to 3:1, up to 10 images per run, built-in prompt enhancement.

- app: `minimax/h3-image`
- maker: [minimax](https://inference.sh/apps/minimax.md)
- category: [image](https://inference.sh/apps/category/image.md)
- input → output: text → image
- tasks: [text to image](https://inference.sh/apps/tag/text-to-image.md), [image editing](https://inference.sh/apps/tag/image-editing.md)
- price: $2.30/M text in, $1.50/M image in, $3.80/M image out (token-based)
- runs via: api, javascript and python sdk, belt cli, mcp

## h3-image API Guide

### About
minimax h3 image. text-to-image and editing with up to 16 reference images. 1k to 4k output, any aspect ratio from 1:3 to 3:1, up to 10 images per run, built-in prompt enhancement.

### 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 @6bxce50h pinned
result = client.run({
        "app": "minimax/h3-image@6bxce50h",
        "input": {
            "prompt": "A ceramic teapot shaped like a lighthouse on a weathered wooden table, soft morning window light, shallow depth of field, product photography.",
            "aspect_ratio": "16:9"
        }
    })

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 @6bxce50h pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "minimax/h3-image@6bxce50h",
        "input": {
            "prompt": "A ceramic teapot shaped like a lighthouse on a weathered wooden table, soft morning window light, shallow depth of field, product photography.",
            "aspect_ratio": "16:9"
        }
    }, 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": "minimax/h3-image@6bxce50h",
        "input": {
            "prompt": "A ceramic teapot shaped like a lighthouse on a weathered wooden table, soft morning window light, shallow depth of field, product photography.",
            "aspect_ratio": "16:9"
        }
    }, 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": "minimax/h3-image@6bxce50h",
    "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*: What to generate, or how to change the reference images. Refer to references as Picture 1, Picture 2, in upload order. Up to 32000 characters.
- **images** (array): Reference images for editing or composition, up to 16. JPG, PNG, WEBP, HEIC or HEIF; each side 128 to 8192 px; long side at most 4x the short side. Leave empty for text-to-image.
- **aspect_ratio** (string): Output aspect ratio as X:Y (e.g. 16:9, 3:4, 21:9), between 1:3 and 3:1, or auto to let the model choose from the prompt and references.
- **resolution** (string): Output area: 1K (about 1024x1024), 2K (about 2048x2048) or 4K (about 4096x4096). Width and height follow the aspect ratio, e.g. 2K at 16:9 is 2720x1536.
- **size** (string): Exact output size as WIDTHxHEIGHT, e.g. 2720x1536. Overrides aspect_ratio and resolution. Area 655,360 to 20,000,000 px, ratio between 1:3 and 3:1.
- **num_images** (integer): Number of images to generate.
- **enhance_prompt** (boolean): Let the model expand the prompt before generating. Always on when reference images are given. When off with aspect_ratio auto, the image is 1:1.
- **output_format** (string): Image file format.

#### Output
- **images** (array): The generated images.
- **revised_prompts** (array): The prompt the model used for each image, after enhancement.

## other image apps

- [GPT Image 2.6 Flare](https://inference.sh/apps/openai/gpt-image-2-6-flare.md): $30.00/M output, $5.00/M text input, $8.00/M image input, $0.10/M SVG input, $0.50/M SVG output
- [GPT Image 2.6 Sunburst](https://inference.sh/apps/openai/gpt-image-2-6-sunburst.md): $30.00/M out, $5.00/M text in, $8.00/M img in; SVG $0.10/$0.50/M in/out
- [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.

## faq

### how much does MiniMax H3 Image cost?

$2.30/M text in, $1.50/M image in, $3.80/M image out (token-based). you pay per run from your inference shell credits. no subscription is required.

### how do I run MiniMax H3 Image via api?

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

### who makes MiniMax H3 Image?

MiniMax H3 Image is made by minimax and runs on inference shell. every minimax app is listed at https://inference.sh/apps/minimax.

### can my agent use MiniMax H3 Image?

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 MiniMax H3 Image?

other image apps on inference shell include GPT Image 2.6 Flare, GPT Image 2.6 Sunburst, Gemini Nano Banana 2.1, Grok Imagine Image 2.0. they run through the same api, so switching is a one-line change.
