Attach images and files
Add images and files to a message in DataMind Oda: each item is checked and stored before your
message is accepted. Images go through validation and conversion; every other file is kept exactly
as you sent it. This page covers the sizes, formats and storage of attachments, and what a refusal
means. The message box covers adding items, and
Attachments in model requests covers what the model receives.
Image formats and limits
| Item | Limit |
|---|
| Images in one message | 20 |
| Image bytes in one message | 200 MiB |
| One source image | 20 MiB, 64,000,000 pixels, 8192 px per side |
| Image formats | PNG, JPEG, WebP and GIF |
- These are the shipped limits; your company can set others, and a refusal names the limit that
applies.
- The limits apply to images only. A file that is not an image has no list of accepted types and no
size limit, and its bytes are kept exactly as you sent them.
- If the limits change later, images you already attached stay readable.
How images are prepared
- Every image is decoded and checked when you add it: an image with no bytes, bytes that do not
match the file's stated type, or a file that is not a usable raster is refused before anything is
stored, as is an image over the byte, pixel or per-side limits.
- A single-frame PNG, JPEG or WebP that carries no extra metadata and is already within the limits
is kept exactly as you sent it.
- Anything else is converted first: the orientation your camera recorded is applied, metadata and
colour profiles are removed, and transparency is kept as it is.
- A large image is scaled down under a total-pixel budget and a long-edge cap, so a very wide or
very tall image keeps its detail on the short side; a small image is never enlarged.
- An image with transparency is stored as WebP; an image without it, as JPEG. Oda tries a few
quality steps and keeps the first result that fits its byte target, or the smallest one it
produced.
- An animated GIF is stored as a static first frame, and an image in an unusual colour format, such
as a 16-bit PNG, is converted to a standard 8-bit form.
Where your items are stored
- Every item is stored on the computer that runs Oda, and another computer cannot read it.
- An image is kept under an internal identity, never a file path or a public link. A file is kept
byte for byte and identified by a fingerprint of its contents: two identical files share one
stored copy, and a zero-byte file is a valid attachment.
- Stored items are never deleted automatically, and an item that never left an unsent draft is not
saved at all.
- Images stay part of the chat and are reused in later turns, including after you close and reopen
the chat; a resumed chat shows the same images again.
- When a stored copy is read back, Oda checks its bytes against what was recorded; a copy that was
deleted or changed is reported as an error rather than returning different bytes.
When an attachment is refused
- Items are checked before your message is accepted. If one image of a batch is refused, the whole
message fails and nothing reaches the chat; your draft and items stay, so you can fix or remove
the problem and send again.
- If the batch is refused before anything is stored, the refusal names the limit, for example
Image batch exceeds the configured image-count limit.,
Image batch exceeds the configured aggregate image-byte limit. or
Image type <type> is not accepted by this deployment.
- An upload whose data arrived malformed is refused before anything is stored:
Image upload is not canonical base64. or File upload is not canonical base64.
- A stored copy that cannot be read or written is reported instead of being replaced:
File attachment object is missing., Stored file attachment failed integrity verification. or
Unable to persist attachment.; the same faults on an image read as
Attachment object is missing. or Unable to read image attachment.
- Sending images also needs a model that can take them: if the chat's model accepts text only, the
image batch is refused and your draft stays. Choose another model and send again, as described on
Chat with Oda.
- A command that does not accept attachments is not run: the message box shows
/{command} does not accept attachments; remove them first, and your draft and items stay, so you
can remove them and run the command again. A command that takes them receives your items in the
order you added them. See Slash commands and references.
Questions, answered
Which image formats can I attach?
PNG, JPEG, WebP and GIF. Files that are not images have no list of accepted types, and Oda keeps
their bytes exactly as you sent them.
How large can a single image be?
Up to 20 MiB, 64,000,000 pixels and 8192 px per side for one source image, and up to
20 images and 200 MiB of image bytes in one message. These are the shipped limits; your
company can set others, and a refusal names the limit that applies.
Why did Oda convert my image before storing it?
A single-frame PNG, JPEG or WebP that carries no extra metadata and is already within the limits is
kept exactly as you sent it. Anything else is converted first: the orientation your camera recorded
is applied, metadata and colour profiles are removed, transparency is kept, and a large image is
scaled down. Transparency decides the stored format: WebP with it, JPEG without it.
Why did Oda straighten a sideways photo?
When an image is converted, Oda applies the rotation your camera recorded, so the stored copy shows
the photo the right way up and the orientation note is removed along with the other metadata.
Can another computer read my attachments?
No. Items are stored on the one computer that runs Oda, and another computer cannot read them.
Does Oda ever delete stored attachments?
No. Stored items are never deleted automatically. An item that never left an unsent draft is not
saved at all, so there is nothing to delete later.
Why was my whole message refused when one image failed?
Images are checked as one batch: if any image is refused, the message fails as a whole and nothing
reaches the chat. Fix or remove the image that was refused and send again; your draft and the other
items stay.
Can I attach files to a command?
Only a command that takes attachments. A command that does not is not run: the message box shows
/{command} does not accept attachments; remove them first, and your draft and items stay so you
can remove them and run the command again. See
Slash commands and references.
Is a zero-byte file a valid attachment?
Yes. Files that are not images are kept byte for byte, and a file of zero bytes is accepted like any
other.
Will Oda reuse my image in later turns?
Yes. An image stays part of the chat and is reused in later turns, including after you close and
reopen the chat, and a resumed chat shows the same images again.