> ## 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.

# Bildoperationen

> Verwandle ein vorhandenes Bild — img2img, Variationen, Upscale, Resize, Hintergrundentfernung und Vektorisierung.

Die Bildoperations-Endpunkte transformieren ein Bild, das du bereits hast — keine
reine Prompt-Generierung. Sechs Operationen, jede ein `POST`, das einen Job
einreicht, plus ein `GET`, das ihn abfragt:

| Operation                 | Einreichen                                                                          | Was sie tut                                              | Scope              |
| ------------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------ |
| **Img2img**               | [`POST /images/img2img`](/de/api-reference/image-ops/img2img)                       | Transformiert 1–14 Referenzbilder mit einem Prompt       | `images.edit`      |
| **Variationen**           | [`POST /images/variations`](/de/api-reference/image-ops/variations)                 | Generiert kreative Variationen eines Bildes              | `images.transform` |
| **Upscale**               | [`POST /images/upscales`](/de/api-reference/image-ops/upscale)                      | Skaliert ein Bild auf eine höhere Auflösung              | `images.transform` |
| **Resize**                | [`POST /images/resizes`](/de/api-reference/image-ops/resize)                        | Ändert das Seitenverhältnis (serverseitiges Outpainting) | `images.transform` |
| **Hintergrundentfernung** | [`POST /images/background-removals`](/de/api-reference/image-ops/remove-background) | Entfernt den Hintergrund (transparentes PNG)             | `images.transform` |
| **Vektorisierung**        | [`POST /images/vectorizations`](/de/api-reference/image-ops/vectorize)              | Vektorisiert ein Bild zu SVG                             | `images.transform` |

## Quellbild

Jede Operation nimmt ihre Quelle auf dieselben drei Arten — übergib **genau einen**
Modus pro Quelle:

* `image_id` — die id eines Bildes, das dem **Key-Ersteller** in Samsa gehört; jede
  andere id liefert `404`, auch die eines Bildes, das ein anderes Mitglied deiner
  Organisation erstellt hat.
* `url` — eine `https`-URL, die der Server unter seinem SSRF-Schutz herunterlädt.
* `base64` + `mime_type` — Inline-Bytes, `mime_type` eines von `image/jpeg`,
  `image/png`, `image/webp`.

Null oder mehr als ein Modus ist ein `422`. Img2img akzeptiert ein `images`-**Array**
(1–14 Quellen); die anderen fünf nehmen ein einzelnes `image`-Objekt.

## Asynchrones Muster

Jede Einreichung gibt **`202 Accepted`** mit einem Job-Handle
`{ "id", "status": "pending", "estimated_credits" }` zurück. Frage den
`GET .../{id}`-Endpunkt der Operation ab, bis `status` gleich `completed` ist (oder
`failed`/`cancelled`), und lies dann das Ergebnis — jedes erzeugte Asset enthält
eine presigned `url`, **24 Stunden** gültig. Übergib eine `webhook_url`, um statt
abzufragen benachrichtigt zu werden (siehe [Webhooks](/de/guides/webhooks)).

<Note>
  **Cache-Treffer (Hintergrundentfernung & Vektorisierung).** Wenn die Quelle eine
  `image_id` ist, die du besitzt, und bereits ein Ergebnis dafür existiert, gibt die
  Einreichung **sofort** `202` mit `status: "completed"` und `estimated_credits: 0`
  zurück — es wird kein neuer Job eingereiht und das Concurrency-Limit deiner
  Organisation wird nicht belegt. Jede andere Quelle (eine `https`-`url`, `base64`
  oder eine besessene `image_id` ohne fertiges Ergebnis) ist der normale,
  abgerechnete, asynchrone Pfad.
</Note>

## Scopes

Img2img ist eine **edit**-Operation und erfordert den `images.edit`-Scope. Die
anderen fünf sind **transform**-Operationen und erfordern `images.transform`. Ein
Schlüssel, dem der erforderliche Scope fehlt, erhält
[`403 missing_scope`](/de/guides/errors#missing_scope).

## Credits

Die Kosten ziehen aus dem Stand, den das aufrufende Credential ausgeben kann, nicht
zwingend aus dem gesamten Pool der Organisation; zu wenig davon liefert
[`402 insufficient_credits`](/de/guides/errors#insufficient_credits) oder die
team-bezogenen
[`insufficient_team_credits`](/de/guides/errors#insufficient_team_credits) /
[`insufficient_unallocated_credits`](/de/guides/errors#insufficient_unallocated_credits)
in Organisationen mit mindestens einem aktiven Team (vom Team-Budgeting befreite
System-Organisationen bleiben beim generischen Code). Ein operativer Fehler in der
Abbuchung selbst kann ebenfalls als generisches `insufficient_credits` erscheinen,
unabhängig vom Regime. Die Seite jeder Operation nennt
ihre Kostenbasis. Siehe [Preise](/de/guides/pricing) und
[`GET /credits`](/de/api-reference/account/credits).
