Model Discovery
Via the Image Models API
The dedicated image models endpoint lists every available image model with its capabilities:data array includes:
| Field | Description |
|---|---|
id | Model slug to use in generation requests |
architecture | Input and output modalities the model accepts |
supported_parameters | Union of capabilities across all endpoints. Each key is a request field name; the value is a capability descriptor |
supports_streaming | Whether any endpoint supports native SSE streaming (stream: true) |
endpoints | URL to the full per-endpoint records for this model |
Per-Endpoint Records
Each model may be served by multiple providers. To see the definitive capabilities, pricing, and passthrough options per endpoint:| Field | Description |
|---|---|
provider_slug | Use in provider.options[slug] to pass provider-specific parameters |
provider_tag | Use to pin requests to a specific provider. null when provider-level routing is unavailable |
supported_parameters | The definitive set of parameters this endpoint accepts (a subset of the model-level union) |
allowed_passthrough_parameters | Provider-specific keys accepted under provider.options[provider_slug] |
supports_streaming | Whether this endpoint supports native SSE streaming |
pricing | Billable pricing lines for this endpoint. Each entry has billable (e.g. output_image, input_image, input_reference), unit (image, megapixel, or token), cost_usd, and an optional variant tier (e.g. 2k, 4k for resolution-tiered pricing) |
Capability Descriptors
Thesupported_parameters map uses typed descriptors to describe what each request field accepts:
| Type | Shape | Meaning |
|---|---|---|
enum | { type: "enum", values: ["1K", "2K", "4K"] } | Discrete allowlist of accepted string values |
range | { type: "range", min: 0, max: 100 } | Any integer in [min, max] is valid |
boolean | { type: "boolean" } | Supported (present) or unsupported (absent) |
Via the Models API
You can also discover image models through the general Models API:On the Models Page
Visit the Models page and filter by output modalities to find models with image generation capabilities.API Usage
Send aPOST request to /api/v1/images with the model and prompt:
Response Format
Images are returned as base64-encoded bytes. Theusage field reports token counts and cost when available.
For raster PNG outputs (most models), media_type is omitted:
media_type field is included:
Image Configuration Options
Resolution and Aspect Ratio
Control output dimensions withresolution, aspect_ratio, or the convenience size shorthand:
resolution— normalized tier (512,1K,2K,4K). Concrete pixel dimensions are derived per-provider.aspect_ratio— normalized ratio. Passautoto let the provider choose. Common values include1:1,16:9,9:16,4:3,3:4,3:2,2:3,4:5,5:4, and extended ratios like1:2,2:1,1:4,4:1,1:8,8:1,9:21,21:9. Providers clamp to their supported subset — check the model’ssupported_parametersfor accepted values.size— convenience shorthand. Pass a tier ("2K") or explicit pixels ("2048x2048") and it gets normalized for the provider. Interchangeable withresolution+aspect_ratio; conflicting values are rejected.
supported_parameters to see which values each endpoint accepts.
Quality and Output Format
quality—auto,low,medium, orhigh. Providers without a quality knob ignore this.output_format—png,jpeg, orwebp.background—auto,transparent, oropaque.transparentrequires an alpha-capable format (png or webp).output_compression— 0–100 for webp/jpeg. Ignored for png.
Multiple Images
Request up to 10 images per call withn:
n > 1. Check the model’s supported_parameters for availability.
Image-to-Image (Reference Images)
Pass reference images to guide generation viainput_references:
Provider-Specific Options
Pass provider-specific parameters throughprovider.options, keyed by the provider slug from the endpoints API:
allowed_passthrough_parameters field in each endpoint record lists which keys are accepted.
Streaming Image Generation
Models that support native SSE streaming (supports_streaming: true in the discovery API) can return partial images as they’re generated:
media_type is omitted:
media_type is included:
usage object in the completed event includes cost (USD), matching the buffered response shape.
Error — emitted if generation fails mid-stream:
data: [DONE].
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model slug (e.g. bytedance-seed/seedream-4.5) |
prompt | string | Yes | Text description of the desired image |
n | integer | No | Number of images to generate (1–10) |
resolution | string | No | Resolution tier (512, 1K, 2K, 4K) |
aspect_ratio | string | No | Aspect ratio (1:1, 16:9, 9:16, 4:3, 3:4, 1:4, 4:1, etc.) |
size | string | No | Convenience shorthand — a tier or explicit pixels ("2048x2048") |
quality | string | No | auto, low, medium, or high |
output_format | string | No | png, jpeg, or webp |
background | string | No | auto, transparent, or opaque |
output_compression | integer | No | Compression level (0–100) for webp/jpeg |
seed | integer | No | Seed for deterministic generation (where supported) |
stream | boolean | No | Stream partial images via SSE |
input_references | array | No | Reference images for image-to-image generation |
provider.options | object | No | Provider-specific parameters keyed by provider slug |