# Ernie Image API

> Provider: **Baidu**
> Source: https://www.pixazo.ai/models/ernie-image

Baidu's Ernie Image generates high-quality images from text prompts using the ERNIE multimodal foundation model.

## Ernie Image Turbo

### Text to Image

## Base URL

```
https://gateway.pixazo.ai/ernie-image-turbo/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Ernie Image Turbo generate request

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/ernie-image-turbo/v1/ernie-image-turbo-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_API_KEY

{
  "prompt": "A serene mountain landscape at sunset with golden light",
  "negative_prompt": "",
  "image_size": "square_hd",
  "num_inference_steps": 8,
  "guidance_scale": 1,
  "num_images": 1,
  "enable_prompt_expansion": true,
  "enable_safety_checker": true,
  "output_format": "jpeg",
  "acceleration": "regular"
}
```

```
import requests

url = "https://gateway.pixazo.ai/ernie-image-turbo/v1/ernie-image-turbo-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
}
data = {
    "prompt": "A serene mountain landscape at sunset with golden light",
    "negative_prompt": "",
    "image_size": "square_hd",
    "num_inference_steps": 8,
    "guidance_scale": 1,
    "num_images": 1,
    "enable_prompt_expansion": true,
    "enable_safety_checker": true,
    "output_format": "jpeg",
    "acceleration": "regular"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/ernie-image-turbo/v1/ernie-image-turbo-request";
const headers = {
  "Content-Type": "application/json",
  "Cache-Control": "no-cache",
  "Ocp-Apim-Subscription-Key": "YOUR_API_KEY"
};
const data = {
  "prompt": "A serene mountain landscape at sunset with golden light",
  "negative_prompt": "",
  "image_size": "square_hd",
  "num_inference_steps": 8,
  "guidance_scale": 1,
  "num_images": 1,
  "enable_prompt_expansion": true,
  "enable_safety_checker": true,
  "output_format": "jpeg",
  "acceleration": "regular"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data));
```

```
curl -X POST "https://gateway.pixazo.ai/ernie-image-turbo/v1/ernie-image-turbo-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  --data-raw '{
    "prompt": "A serene mountain landscape at sunset with golden light",
    "negative_prompt": "",
    "image_size": "square_hd",
    "num_inference_steps": 8,
    "guidance_scale": 1,
    "num_images": 1,
    "enable_prompt_expansion": true,
    "enable_safety_checker": true,
    "output_format": "jpeg",
    "acceleration": "regular"
}'
```

## Output

```
{
  "request_id": "ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

[Try Now](https://api.pixazo.ai/api-details#api=ernie-image-turbo&operation=ernie-image-turbo-request)

## Webhook (Optional)

Add the `X-Webhook-URL` header to your generate request to receive a POST callback instead of polling.

```
X-Webhook-URL: https://your-server.com/webhook/callback
```

## Request Parameters - Ernie Image Turbo generate request

Parameter

Required

Type

Default

Allowed values / range

Description

prompt

Yes

string

—

—

Text prompt for image generation. Supports English, Chinese, and Japanese.

negative\_prompt

No

string

""

—

Content to avoid in the generated image.

image\_size

No

string or object

"square\_hd"

"square\_hd", "square", "portrait\_4\_3", "portrait\_16\_9", "landscape\_4\_3", "landscape\_16\_9", "square\_uhd", "portrait\_3\_2", "landscape\_3\_2", "portrait\_hd", "landscape\_hd"; or {width: number, height: number}

Image dimensions. String options or custom object with width and height.

num\_inference\_steps

No

integer

8

—

Number of denoising steps. Turbo model is optimized for 8 steps.

guidance\_scale

No

float

1

—

Prompt adherence strength. Higher values increase adherence to prompt at potential cost of image quality.

num\_images

No

integer

1

—

Number of images to generate per request.

enable\_prompt\_expansion

No

boolean

true

—

Enable LLM-based prompt enhancement for richer, more detailed prompts.

enable\_safety\_checker

No

boolean

true

—

Enable NSFW content filtering.

output\_format

No

string

"jpeg"

"jpeg", "png"

Output image format.

acceleration

No

string

"regular"

"none", "regular", "high"

Inference acceleration mode.

seed

No

integer

—

—

Random seed for reproducible results. If omitted, a random seed is used.

sync\_mode

No

boolean

—

—

If \`true\`, returns image data URIs instead of CDN URLs. If \`false\` or omitted, returns CDN URLs.

## Example Request

```
{
  "prompt": "A serene mountain landscape at sunset with golden light",
  "negative_prompt": "",
  "image_size": "square_hd",
  "num_inference_steps": 8,
  "guidance_scale": 1,
  "num_images": 1,
  "enable_prompt_expansion": true,
  "enable_safety_checker": true,
  "output_format": "jpeg",
  "acceleration": "regular"
}
```

## Response

```
{
  "request_id": "ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

YOUR\_API\_KEY

## Response Handling

Common status codes.

Code

Meaning

202

Accepted — Request queued

400

Bad Request

401

Unauthorized

402

Insufficient Balance

403

Forbidden

429

Too Many Requests

500

Internal Server Error

## Error Responses

Queue system errors and model validation errors.

### Queue System Errors

```
// 402 — Insufficient balance
{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}
```

```
// 400 — Model not found
{
  "error": "Model not found",
  "message": "Model 'ernie-image-turbo' not found or is disabled"
}
```

### Error via Status/Webhook

```
{
  "request_id": "ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "ernie-image-turbo",
  "error": "Description of the error",
  "output": null
}
```

## Retrieving Results

Poll the universal status endpoint to check progress and retrieve results.

### Endpoint

```
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_API_KEY
```

## cURL Example

```
curl -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
  "https://gateway.pixazo.ai/v2/requests/status/ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
```

## Response (Completed)

```
{
  "request_id": "ernie-image-turbo_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ernie-image-turbo",
  "error": null,
  "output": {
    "media_url": ["https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/ernie-image-turbo_019dxxxx/output.jpeg"],
    "media_type": "image/jpeg"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields

Field

Type

Description

request\_id

string

Unique request identifier

status

string

QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR

model\_id

string

Model that processed the request

error

string|null

Error message if failed

output.media\_url

array

URLs to generated media (R2 CDN)

output.media\_type

string

MIME type of the output

created\_at

string

When request was created

completed\_at

string

When request completed

polling\_url

string

Status URL (initial response only)

## Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field

ERROR

System error — not charged

## Status Flow

```
QUEUED → PROCESSING → COMPLETED
                    → FAILED
                    → ERROR
```

## Typical Workflow

1.  **Send a generate request** to the API endpoint
2.  **Save the `request_id`** from the response
3.  **Poll** every 5-10 seconds: `GET /v2/requests/status/{request_id}`
4.  **When `status` is `"COMPLETED"`**, download from `output.media_url`

**Tip:** Use `X-Webhook-URL` header to get a callback instead of polling.

## Ernie Image 1.0

### Text to Image

## Base URL

```
https://gateway.pixazo.ai/ernie-image/v1
```

## Authentication

All requests require an API key passed via header.

Header

Type

Required

Description

Ocp-Apim-Subscription-Key

string

Yes

Your API subscription key

## Ernie Image generate request - Ernie Image

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/ernie-image/v1/ernie-image-request
Content-Type: application/json
Cache-Control: no-cache
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "prompt": "A serene mountain landscape at sunset with golden light"
}
```

```
import requests

url = "https://gateway.pixazo.ai/ernie-image/v1/ernie-image-request"
headers = {
    "Content-Type": "application/json",
    "Cache-Control": "no-cache",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
    "prompt": "A serene mountain landscape at sunset with golden light"
}

response = requests.post(url, json=data, headers=headers)
print(response.json())
```

```
const url = "https://gateway.pixazo.ai/ernie-image/v1/ernie-image-request";
const headers = {
  "Content-Type": "application/json",
  "Cache-Control": "no-cache",
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};
const data = {
  prompt: "A serene mountain landscape at sunset with golden light"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
```

```
curl -X POST "https://gateway.pixazo.ai/ernie-image/v1/ernie-image-request" \
  -H "Content-Type: application/json" \
  -H "Cache-Control: no-cache" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY" \
  --data-raw '{
    "prompt": "A serene mountain landscape at sunset with golden light"
  }'
```

## Output

```
{
  "images": [
    {
      "file_name": "nano-banana-pro-edit-output.png",
      "content_type": "image/png",
      "url": "[RESPONSE_URL]"
    }
  ],
  "description": ""
}
```

[Try Now](https://api.pixazo.ai/api-details#api=ernie-image&operation=ernie-image-request)

## Request Parameters - Ernie Image generate request

Field

Type

Required

Default

Description

prompt

string

Yes

—

Text description for image generation. Supports English, Chinese, and Japanese.

negative\_prompt

string

No

""

Content to avoid in the generated image.

image\_size

string or object

No

"square\_hd"

Image dimensions. String options: square\_hd, square, portrait\_4\_3, portrait\_16\_9, landscape\_4\_3, landscape\_16\_9, square\_uhd, portrait\_3\_2, landscape\_3\_2, portrait\_hd, landscape\_hd. Or provide an object with width and height integers.

num\_inference\_steps

integer

No

50

Number of denoising steps during generation. Higher values improve quality but increase processing time.

guidance\_scale

float

No

5

Strength of prompt adherence. Higher values make output more aligned with the prompt, but may reduce diversity.

num\_images

integer

No

1

Number of images to generate per request.

enable\_prompt\_expansion

boolean

No

true

Enable LLM-based prompt enhancement to improve clarity and detail.

enable\_safety\_checker

boolean

No

true

Enable NSFW content filtering. Disabling may expose outputs to inappropriate content.

output\_format

string

No

"jpeg"

Output image format. Allowed: jpeg, png.

acceleration

string

No

"regular"

Inference optimization level. Allowed: none, regular, high. Higher acceleration reduces latency but may affect quality.

seed

integer

No

—

Random seed for reproducible results. If omitted, a random seed is used.

sync\_mode

boolean

No

—

If true, returns image data as base64-encoded data URIs instead of CDN URLs. If false or omitted, returns CDN URLs.

## Minimum Request

```
{
  "prompt": "A serene mountain landscape at sunset with golden light"
}
```

## Full Request (all options)

```
{
  "prompt": "A serene mountain landscape at sunset with golden light",
  "negative_prompt": "",
  "image_size": "square_hd",
  "num_inference_steps": 50,
  "guidance_scale": 5,
  "num_images": 1,
  "enable_prompt_expansion": true,
  "enable_safety_checker": true,
  "output_format": "jpeg",
  "acceleration": "regular",
  "seed": 12345,
  "sync_mode": false
}
```

## Response

```
{
  "request_id": "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response Fields - Ernie Image generate request

Field

Type

Description

request\_id

string

Unique identifier for the request, used for polling status.

status

string

Current status of the request (QUEUED, PROCESSING, etc.).

polling\_url

string

URL to poll for the final result.

## Request Headers

Header

Value

Content-Type

application/json

Cache-Control

no-cache

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Ernie Image generate request.

Code

Meaning

200

Success

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

429

Too Many Requests

500

Internal Server Error

## Error Responses

### 400 Validation Error

```
{
  "error": "Invalid parameter: prompt is required"
}
```

### 404 Not Found

```
{
  "error": "Resource not found"
}
```

## Status Workflow

This API uses an asynchronous workflow. After submitting a request, poll the status endpoint until completion.

### Status Values

Status

Description

QUEUED

Request accepted, waiting to be processed

PROCESSING

Being processed by the model

COMPLETED

Done — output contains the result

FAILED

Failed — check error field for details

ERROR

System error — request was not processed and not charged

### Status Flow

```
Submit → QUEUED → PROCESSING → COMPLETED
                     ↘ FAILED
                     ↘ ERROR
```

### Typical Workflow

1.  Submit request to /ernie-image-request
2.  Receive request\_id in response
3.  Periodically poll /v2/requests/status/{request\_id} every 2–3 seconds
4.  Continue polling until status is COMPLETED, FAILED, or ERROR
5.  When COMPLETED, extract image URLs from the output

## Ernie Image check status - Ernie Image

## Request Code

HTTP Python JavaScript cURL

```
POST https://gateway.pixazo.ai/v2/requests/status/ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
```

```
import requests

request_id = "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
url = f"https://gateway.pixazo.ai/v2/requests/status/{request_id}"
headers = {
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}

response = requests.post(url, headers=headers)
print(response.json())
```

```
const request_id = "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
const url = \`https://gateway.pixazo.ai/v2/requests/status/\${request_id}\`;
const headers = {
  "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
};

fetch(url, {
  method: "POST",
  headers: headers
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
```

```
curl -X POST "https://gateway.pixazo.ai/v2/requests/status/ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
  -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
```

## Output

```
{
  "images": [
    {
      "file_name": "nano-banana-pro-edit-output.png",
      "content_type": "image/png",
      "url": "[RESPONSE_URL]"
    }
  ],
  "description": ""
}
```

[Try Now](https://api.pixazo.ai/api-details#api=ernie-image&operation=ernie-image-request-result)

## Request Parameters - Ernie Image check status

Field

Type

Required

Default

Description

request\_id

string

Yes

—

Unique identifier returned from the initial request.

## Minimum Request

```
{
  "request_id": "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Full Request (all options)

```
{
  "request_id": "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

## Response

```
{
  "request_id": "ernie-image_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "ernie-image",
  "error": null,
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/ernie-image_019dxxxx/output.jpeg"
    ],
    "media_type": "image/jpeg"
  },
  "created_at": "2026-03-31T10:00:00.000Z",
  "updated_at": "2026-03-31T10:00:15.000Z",
  "completed_at": "2026-03-31T10:00:15.000Z"
}
```

## Response Fields - Ernie Image check status

Field

Type

Description

request\_id

string

Unique identifier matching the original request.

status

string

Current status of the request (QUEUED, PROCESSING, COMPLETED, etc.).

model\_id

string

The AI model used for generation.

error

string or null

Error message if status is FAILED or ERROR; null otherwise.

output.media\_url

array

Array of URLs to generated images.

output.media\_type

string

MIME type of the generated media (e.g., image/jpeg).

created\_at

string

Time the request was created (ISO 8601).

updated\_at

string

Time the request was last updated (ISO 8601).

completed\_at

string

Time the request was completed (ISO 8601).

## Request Headers

Header

Value

Ocp-Apim-Subscription-Key

Your API subscription key

## Response Handling

Common status codes for Ernie Image check status.

Code

Meaning

200

Success

400

Bad Request (invalid request\_id)

401

Unauthorized

403

Forbidden

404

Not Found (invalid request\_id)

429

Too Many Requests

500

Internal Server Error

## Notes & Tips

1.  Poll the status endpoint every 2–3 seconds until COMPLETED, FAILED, or ERROR is returned.
2.  Implement exponential backoff for retry logic on ERROR or 500 responses.
3.  Use detailed, descriptive prompts for optimal results — include lighting, style, mood, and composition.
4.  Enable enable\_prompt\_expansion for non-native English prompts to improve interpretation.
5.  Use seed to reproduce identical outputs for iterative refinement.
6.  Prefer sync\_mode: true only for small-scale or testing use cases — CDN URLs are more efficient for production.
7.  For best quality, use num\_inference\_steps between 50–100 and guidance\_scale between 5–7.
8.  The output format defaults to jpeg; use png for transparency support.
