> ## Documentation Index
> Fetch the complete documentation index at: https://docs.samsa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Bild-Eingaben

> Wie du Quellbilder an die API und die MCP-Tools übergibst — per image_id, https-URL oder base64 — mit Größen-, Format- und URL-Abrufregeln.

Jede Operation, die ein vorhandenes Bild transformiert — Magic Edit, img2img,
Variationen, Resize, Upscale, Hintergrundentfernung und Vektorisierung — nimmt ihr
Quellbild auf dieselbe Weise entgegen. Diese Seite behandelt die drei Eingabemodi,
ihre Grenzen und wie der Server eine URL abruft.

## Die drei Quellmodi

Über REST ist jedes Quellbild **genau eines** der folgenden:

<CardGroup cols={3}>
  <Card title="image_id" icon="database">
    Ein Bild, das der **Key-Ersteller** in Samsa generiert, bearbeitet oder
    hochgeladen hat. Kein Upload nötig; der Server liest es per id. Das Bild eines
    anderen Mitglieds ist für deinen Key nicht lesbar.
  </Card>

  <Card title="url" icon="link">
    Eine öffentliche **`https`**-URL, die der Server unter seinem SSRF-Schutz
    herunterlädt. Siehe [URL-Abruf](#url-abruf) unten.
  </Card>

  <Card title="base64" icon="file-code">
    Inline-Bildbytes, gesendet als `base64` zusammen mit einem `mime_type`.
  </Card>
</CardGroup>

Gib **genau eines** pro Quelle an. Keines oder mehrere zu senden ist ein
[`422 validation_error`](/de/guides/errors#validation_error).

```json Quellbeispiele theme={null}
// per id
{ "image_id": "8f3c…" }

// per URL
{ "url": "https://example.com/photo.jpg" }

// inline base64
{ "base64": "iVBORw0KGgo…", "mime_type": "image/png" }
```

## Größen- und Formatgrenzen

| Regel                            | Wert                                                       |
| -------------------------------- | ---------------------------------------------------------- |
| Maximalgröße pro Quelle          | **10 MB** (dekodierte Bytes)                               |
| Maximale Quellpixel (nur Resize) | **33.554.432** (32 MP, Breite × Höhe)                      |
| Akzeptierte Formate              | `image/jpeg`, `image/png`, `image/webp`                    |
| `mime_type` (base64)             | Erforderlich, und muss eines der akzeptierten Formate sein |

Die 10-MB-Grenze gilt für das **dekodierte** Bild. Bei einer `base64`-Quelle wird
zuerst die kodierte Zeichenkette begrenzt (eine längere Zeichenkette dekodiert
zwangsläufig über die Grenze), danach werden die dekodierten Bytes geprüft. Bytes,
die kein lesbares Bild sind, werden als `422` abgelehnt, bevor etwas berechnet wird.

Die Pixelgrenze ist unabhängig von der Größengrenze: Eine stark komprimierte Quelle kann
unter 10 MB bleiben und trotzdem 32 MP überschreiten — dann gibt
[`POST /images/resizes`](/de/api-reference/image-ops/resize) ein `422` mit
`param: image` zurück, bevor etwas gerendert wird. Diese Grenze von 33.554.432 Pixeln für
das Quellraster gilt speziell für Resize.

## Mehrere Quellen (img2img)

Die meisten Operationen nehmen ein einzelnes Quellbild. **Img2img** akzeptiert
**1–14** Quellbilder in einer Anfrage — übergib sie als `images`-Array, und die
Quellreihenfolge bleibt erhalten:

```json theme={null}
{
  "prompt": "eine Aquarell-Collage",
  "images": [
    { "image_id": "8f3c…" },
    { "url": "https://example.com/ref-2.png" },
    { "base64": "iVBORw0KGgo…", "mime_type": "image/webp" }
  ],
  "resolution": "2K"
}
```

Jedes Element folgt derselben Genau-eines-Regel. Eine Anfrage mit mehr Quellen, als
die Engine erlaubt, ist ein `422`.

## MCP: nur image\_id oder image\_url

Die [MCP-Tools](/de/mcp-server) akzeptieren eine Quelle nur als **`image_id`** oder
**`image_url`** — es gibt **keine `base64`-Eingabe über MCP**. Referenziere das Bild
stattdessen per id oder öffentlicher URL:

```json theme={null}
// MCP-img2img-Element
{ "image_id": "8f3c…" }
// oder
{ "image_url": "https://example.com/photo.jpg" }
```

Das gilt für jedes MCP-Tool, das ein Quellbild entgegennimmt: `edit_image`,
`img2img`, `create_variations`, `resize_image`, `upscale_image`, `remove_background`
und `vectorize_image`.

## URL-Abruf

Wenn du eine `url` (REST) oder `image_url` (MCP) übergibst, lädt der Server sie unter
einem strengen SSRF-Schutz herunter, bevor er sie verwendet:

* **Nur `https`, nur Port 443.** Jedes andere Schema oder jeder andere Port wird
  abgelehnt.
* **Nur öffentliche Adressen.** Der Hostname wird aufgelöst und jede resultierende IP
  geprüft; private, Loopback-, Link-local- und geteilte/CGNAT-Bereiche werden
  abgelehnt.
* **Redirects werden neu validiert.** Auto-Follow ist aus; bis zu **3** Redirect-Hops
  werden manuell gefolgt, und jeder Hop wird erneut gegen denselben Schutz geprüft.
* **Content-Type-Allowlist.** Nur `jpeg`-, `png`- und `webp`-Antworten werden
  akzeptiert, und die 10-MB-Grenze wird auf die gestreamten Bytes angewendet (ein
  angegebener `Content-Length` wird nie allein vertraut).
* **Zeitbudget.** Ein Connect-Timeout von \~5 s und ein weiches
  Gesamt-Wall-Clock-Budget von **\~30 s** umspannen den gesamten Download inklusive
  Redirects.

Jeder Abruf, der einen Schutz nicht besteht, ist ein
[`422 validation_error`](/de/guides/errors#validation_error), das das betroffene Feld
nennt — nie ein Serverfehler. Hoste eine Quelle irgendwo öffentlich über `https`
erreichbar, oder sende sie als `base64` (REST).

## Siehe auch

<CardGroup cols={2}>
  <Card title="Preise" icon="credit-card" href="/de/guides/pricing">
    Was jede Operation kostet, inklusive der Tabelle pro Operation.
  </Card>

  <Card title="MCP-Server" icon="plug" href="/de/mcp-server">
    Dieselben Operationen als Tools — mit der id/url-only-Quellregel.
  </Card>

  <Card title="Fehler" icon="triangle-exclamation" href="/de/guides/errors">
    Der Fehler-Envelope und jeder Code, inklusive `validation_error`.
  </Card>

  <Card title="Bildoperationen" icon="wand-magic-sparkles" href="/de/api-reference/image-ops/overview">
    Die sechs Operationen und ihre vollständigen Request-/Response-Verträge.
  </Card>
</CardGroup>
