- Duale AI
- Documentation
- Model routing
- Image Support
Image Support: route requirements and budgets
Explains route requirements and per-request budgets for carrying images in Library Tool Results, and when Duale AI replaces an image with a note.
This page covers how images in Library Tool Results reach the model, route image capabilities, profile limits, replacement conditions, safety check behavior, and restoration.
- Image delivery checks and route image capability requirements.
- Image profile limits and provider-type ceilings.
- Conditions that replace an image with a note.
- Safety check behavior when reading images.
- Restoring a dropped image.
Summaries were generated by AI.
Image Support covers images inside Library Tool Results: the images of a Library document that a Task reads. A request cannot attach an image directly as model input. Use this reference to configure a route that can carry images and to predict when the model receives a short note instead of an image.
What decides whether an image reaches the model
Duale AI checks each image again for every provider request that would carry it.
Check whether the route can carry an image
Both checks must pass before an image can reach the model:
- The route carries an Image Support profile. Absent means no image is ever sent to that model.
- The provider type can carry an image inside a Tool Result. Anthropic, AWS Bedrock, OpenAI Responses, and Mistral can. Other provider types, including Microsoft Foundry and DashScope Qwen, send no image bytes.
On Mistral, enable the profile only after verifying that the selected endpoint accepts Tool Result images.
These conditions also affect route choice. When at least one route can carry at least one image, Duale AI uses only routes that can carry at least one. When no route can, all routes remain available and every image is replaced by a note.
The Image Support form appears on every provider type. You can therefore save a profile on a route that cannot receive an image. A saved profile alone does not prove that the provider type carries images.
Every provider request carries its included images in full. Duale AI stores no file at the provider; see Data protection for the provider-retention boundary.
Set the image profile and budget
The profile needs three values: images per request, bytes per image, and the largest width or height in pixels. The form accepts 1 to 1,000 images, up to 128 MiB per image, and up to 65,535 px. Enter limits verified on the selected endpoint. The ceilings below can tighten those values.
Duale AI applies its own ceilings on top of your profile. A ceiling can only tighten your values, never raise them:
| Provider type | Images per request | Bytes per image | Long-edge rule | Request ceiling |
|---|---|---|---|---|
| Anthropic | 100 | 7,500,000 | Above 20 images, the limit drops to 2,000 px | 28,000,000 bytes |
| AWS Bedrock | 20 | 3,750,000 | None | 20,000,000 bytes |
| OpenAI Responses | Your profile only | Your profile only | None | None |
| Mistral | Your profile only | Your profile only | None | None |
Images per request
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 100 | 20 | Your profile only | Your profile only |
Bytes per image
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 7,500,000 | 3,750,000 | Your profile only | Your profile only |
Long-edge rule
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| Above 20 images, the limit drops to 2,000 px | None | None | None |
Request ceiling
| Anthropic | AWS Bedrock | OpenAI Responses | Mistral |
|---|---|---|---|
| 28,000,000 bytes | 20,000,000 bytes | None | None |
A Request ceiling counts the whole provider request, not only its images. A long Task history leaves less room for images in the same request.
One more limit applies to every provider request, on every provider type, and is not in the table: about 42.9 MiB of image files in one request. Above it, Duale AI replaces the oldest images with a short note until the request fits, keeping the newest. On OpenAI Responses and Mistral routes, use your profile to express the remaining limits of the selected endpoint.
An OpenAI Responses route also carries Image Detail. low requests low detail; auto and high
both request high detail. The selected endpoint determines image processing and billed tokens.
Budget image workloads using measured input-token usage and configured prices. Duale AI estimates image tokens to fit each request into the context window. Usage that the provider bills can differ, so validate it with representative images on the selected endpoint.
When an image is replaced by a note
Duale AI replaces an image with a short note and can still return a successful answer from text in these cases:
- The selected route cannot carry images: every image is replaced.
- One image exceeds a byte or dimension limit for one image, or cannot fit the request by itself: that image is replaced.
- The request exceeds the image count, the request ceiling of the provider type, or the total image limit: the oldest images are replaced, keeping the newest.
- The source document no longer exists, or its image reference or bytes are permanently invalid or corrupt: that image is replaced.
- The Agent Identity of the Task can no longer read the Library that holds the image, including for an image from earlier work or a parent Task: that image is replaced. The Grant rule describes this check.
Above 20 images on an Anthropic route, the same oldest-first rule applies. While any image exceeds the tightened 2,000 px long edge, Duale AI replaces the oldest images, whatever their size, until 20 remain or none exceeds that edge. It never makes an image smaller.
Every route receives the same short note in place of a removed image, in every provider request where the image is unavailable. Text derived from that image, such as recognized characters or a caption, stays, as does text extracted from the document itself. Each provider request makes its own image selection, so an image replaced in one request can still reach a later request on an image-capable route, except in the cases a safety check decides. Replacing an image does not rewrite the stored Task history.
A temporary failure to read an image is not a replacement. Duale AI retries it like a provider outage.
When a safety check reads the images
Duale AI’s safety check reads each new Library Tool Result with its images. Two outcomes differ from the notes above:
- When a limit of the route that runs the check drops one of the result’s images, the check cannot read the result whole. Duale AI withholds the whole result, text included: later model calls of the Task and its continuations read a notice in its place, and the Task continues without that document. Keep the images of your documents within the limits of every image-capable route in your pool, or read the document at a lower resolution.
- When no route in your pool can carry images, or an image cannot be read or cannot fit any request by itself, the check reads the result’s text alone. The model keeps that text, and no later model call of that Task or its continuations receives the image, even after you enable an image-capable route. To use the image, read the document again in a new Task.
Restore a dropped image
Ask for a value that only the image carries, and check it against a source outside the model. To restore a dropped image, bring it under the limits: read the document at a lower resolution, or split a document that exceeds the count or request ceiling across several requests.