# P-Image Ideogram

> Run P-Image Ideogram by pruna online or via API. $0.003–$0.015/image at 1K, $0.006–$0.03/image at 2K, no setup.

**URL:** https://inference.sh/apps/pruna/p-image-ideogram
**Last updated:** 2026-08-05

---

High-quality text-to-image generation with strong typography and prompt understanding, built with Ideogram

- app: `pruna/p-image-ideogram`
- maker: [pruna](https://inference.sh/apps/pruna.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)
- price: $0.003–$0.015/image at 1K, $0.006–$0.03/image at 2K
- runs via: api, javascript and python sdk, belt cli, mcp

## p-image-ideogram API Guide

### About
high-quality text-to-image generation with strong typography and prompt understanding, built with ideogram

### 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 @4knedfha pinned
result = client.run({
        "app": "pruna/p-image-ideogram@4knedfha",
        "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 @4knedfha pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "pruna/p-image-ideogram@4knedfha",
        "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": "pruna/p-image-ideogram@4knedfha",
        "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": "pruna/p-image-ideogram@4knedfha",
    "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*: Text description of the image to generate. Handles rendered text and typography well.
- **thinking** (string): Reasoning effort. Higher levels improve quality at the cost of speed and price.
- **image_size** (string): Output resolution budget. Ignored when aspect_ratio is custom.
- **aspect_ratio** (string): Aspect ratio for the image. Use custom to set width and height directly.
- **width** (integer): Custom width in pixels (256-2560). Only used when aspect_ratio=custom.
- **height** (integer): Custom height in pixels (256-2560). Only used when aspect_ratio=custom.
- **prompt_upsampling** (boolean): Enhance the prompt with an LLM before generation.
- **seed** (integer): Random seed for reproducible generation.
- **output_format** (string): Output image format.
- **output_quality** (integer): Output quality from 0 to 100. Ignored for PNG.

#### Output
- **image** (string): Generated image file.
- **seed** (integer): Seed used for generation.

## 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 P-Image Ideogram cost?

$0.003–$0.015/image at 1K, $0.006–$0.03/image at 2K. you pay per run from your inference shell credits. no subscription is required.

### how do I run P-Image Ideogram via api?

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

### who makes P-Image Ideogram?

P-Image Ideogram is made by pruna and runs on inference shell. every pruna app is listed at https://inference.sh/apps/pruna.

### can my agent use P-Image Ideogram?

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 P-Image Ideogram?

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.
