Images

Generate an image

Generates images from text prompts using the specified model.

POST
/v1/images/generations
AuthorizationBearer <token>

Bearer token authentication. Use your MPilot virtual-key JWT or admin JWT. Virtual keys (prefixed with sk-bf-) can also be passed here.

In: header

modelstring

Model identifier in format provider/model

promptstring

Text prompt to generate image

n?integer

Number of images to generate

Range1 <= value <= 10
size?string

Size of the generated image

Value in"256x256" | "512x512" | "1024x1024" | "1792x1024" | "1024x1792" | "1536x1024" | "1024x1536" | "auto"
quality?string

Quality of the generated image

Value in"auto" | "high" | "medium" | "low" | "hd" | "standard"
style?string

Style of the generated image

Value in"natural" | "vivid"
response_format?string

Format of the response.

Default"url"
Value in"url" | "b64_json"
background?string

Background type for the image

Value in"transparent" | "opaque" | "auto"
moderation?string

Content moderation level

Value in"low" | "auto"
partial_images?integer

Number of partial images to generate

Range0 <= value <= 3
output_compression?integer

Compression level (0-100%)

Range0 <= value <= 100
output_format?string

Output image format

Value in"png" | "webp" | "jpeg"
user?string

User identifier for tracking

seed?integer

Seed for reproducible image generation

negative_prompt?string

Negative prompt to guide what to avoid in generation

num_inference_steps?integer

Number of inference steps for generation

stream?boolean

Whether to stream the response. When true, images are sent as SSE. When streaming, providers may return base64 chunks (b64_json) and/or URLs (url) depending on provider and configuration.

Defaultfalse
fallbacks?array<Fallback>

Fallback models to try if primary model fails

Response Body

curl -X POST "https://loading/{AI_GATEWAY_URL}/v1/images/generations" \  -H "Content-Type: application/json" \  -d '{    "model": "string",    "prompt": "string"  }'
{
  "id": "string",
  "created": 0,
  "model": "string",
  "data": [
    {
      "url": "http://example.com",
      "b64_json": "string",
      "revised_prompt": "string",
      "index": 0
    }
  ],
  "background": "string",
  "output_format": "png",
  "quality": "string",
  "size": "256x256",
  "usage": {
    "input_tokens": 0,
    "input_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    },
    "total_tokens": 0,
    "output_tokens": 0,
    "output_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    }
  },
  "extra_fields": {
    "request_type": "string",
    "provider": "openai",
    "model_requested": "string",
    "model_deployment": "string",
    "latency": 0,
    "chunk_index": 0,
    "raw_request": {},
    "raw_response": {},
    "cache_debug": {
      "cache_hit": true,
      "cache_id": "string",
      "hit_type": "string",
      "requested_provider": "string",
      "requested_model": "string",
      "provider_used": "string",
      "model_used": "string",
      "input_tokens": 0,
      "threshold": 0,
      "similarity": 0
    }
  }
}
{
  "event_id": "string",
  "type": "string",
  "is_bifrost_error": true,
  "status_code": 0,
  "error": {
    "type": "string",
    "code": "string",
    "message": "string",
    "param": "string",
    "event_id": "string"
  },
  "extra_fields": {
    "provider": "openai",
    "model_requested": "string",
    "request_type": "string"
  }
}
{
  "event_id": "string",
  "type": "string",
  "is_bifrost_error": true,
  "status_code": 0,
  "error": {
    "type": "string",
    "code": "string",
    "message": "string",
    "param": "string",
    "event_id": "string"
  },
  "extra_fields": {
    "provider": "openai",
    "model_requested": "string",
    "request_type": "string"
  }
}
On this page

On this page

No Headings