Ingrandire un'immagine
Invia un job di upscale — un’immagine sorgente verso una risoluzione target superiore — e ottieni un id del job.
image sorgente verso una target_resolution superiore con uno dei
quattro modelli. La chiamata restituisce 202 Accepted con un id del job;
interroga GET /images/upscales/{id} per
il risultato. L’image prende esattamente uno tra image_id, url o
base64 + mime_type. Richiede lo scope images.transform.
Esempio: una sorgente per modalità
Esempio: magnific-creative con opzioni
202 è l’handle del job asincrono:
model è crystal (predefinito), seedvr, magnific-creative o
magnific-precision. target_resolution è obbligatorio e tratto da un insieme
chiuso: 2K, 4K, 6K, 8K, 10K, 12K, 14K, 16K, 20K, 24K, 28K,
32K, 38K. Le classi oltre 16K sono valide solo per crystal. I limiti di
fattore e area per modello sono validati prima di qualsiasi addebito — una
richiesta oltre il limite è un 422, mai un job addebitato.options sono per modello, tipizzate e validate rigorosamente: fornisci
magnific_creative per il modello magnific-creative o magnific_precision per
magnific-precision. seedvr e crystal non prendono opzioni — fornire options
per loro è un 422. Chiavi sconosciute o valori fuori intervallo sono un 422.magnific_creative:prompt(≤ 500 caratteri),optimized_for(standard·soft_portraits·hard_portraits·art_n_illustration·videogame_assets·nature_n_landscapes·films_n_photography·3d_renders·science_fiction_n_horror),creativity/hdr/resemblance/fractality(interi −10…10),engine(automatic·magnific_illusio·magnific_sharpy·magnific_sparkle).magnific_precision:sharpen/smart_grain/ultra_detail(interi 0…100),flavor(sublime(predefinito) ·photo·photo_denoiser).
Credits
Il costo è il livello di risoluzione (2K:5, 4K:10, 6K:20, 8K:25, 10K:35,
12K:45, 14K:60, 16K:80) moltiplicato per il moltiplicatore di credits del
modello (Magnific ×3); Crystal oltre 12K addebita per megapixel di output. Gli
estimated_credits nella risposta 202 corrispondono esattamente all’addebito. Vedi
Prezzi.
Errori
Autorizzazioni
Organization API key as a bearer token: Authorization: Bearer samsa_sk_....
Corpo
POST /images/upscales body (SAM-819 / S8.7 — ADR §7, §8, §10).
Upscale ONE source image to a higher target_resolution with one of the
four public models. The source is exactly one of image_id (an image in
your organization's context), an https url, or base64+mime_type.
target_resolution is a CLOSED set — the per-model factor/area caps are
validated BEFORE charging (an over-cap request is a 422, never a charged
job). options are per-model, typed, and STRICTLY validated (out-of-range /
unknown values are 422 — a documented deviation from the app's clamping).
Cost is the existing upscale estimator: the resolution tier
(2K:5, 4K:10, 6K:20, 8K:25, 10K:35, 12K:45, 14K:60, 16K:80) x the model
credit multiplier (Magnific x3); Crystal above 12K prices by output
megapixels. estimated_credits in the 202 equals the deduction exactly.
The source image: exactly one of image_id, an https url, or base64+mime_type.
Target resolution class (REQUIRED) — one of 2K, 4K, 6K, 8K, 10K, 12K, 14K, 16K, 20K, 24K, 28K, 32K, 38K. Classes above 16K are only valid for crystal. The per-model factor/area caps are validated before charging.
2K, 4K, 6K, 8K, 10K, 12K, 14K, 16K, 20K, 24K, 28K, 32K, 38K "4K"
Upscale model: seedvr, crystal (default), magnific-creative, or magnific-precision.
seedvr, crystal, magnific-creative, magnific-precision "crystal"
Per-model tuning options (typed). Only magnific-creative and magnific-precision accept options — supplying options for seedvr/crystal is a 422.
Optional https webhook notified once on terminal status (signed per the webhook signature scheme; see the webhooks docs).
"https://example.com/webhooks/samsa"
Risposta
Successful Response
Shared 202 body for the transform-op submits (SAM-813 / S8 wave).
Every POST /images/<op> returns the async job handle
{id, status, estimated_credits}. The initial status is pending (the
job is queued), with ONE exception: background-removals and
vectorizations answer an owned-image_id cache hit (a ready result
already exists for that image) with status: "completed" and
estimated_credits: 0 — no new job is queued, the completed webhook
event is emitted immediately for a supplied webhook_url, and the result
is already available from the op's GET .../{id} endpoint. The other
transform ops (img2img, variations, resizes, upscales) always
start pending.
The job id — poll the op's GET .../{id} endpoint.
Initial status: pending (job queued — enter the polling flow), or completed with estimated_credits: 0 when background-removals / vectorizations serve an owned-image cache hit (the result is immediately available).
pending, processing, completed, failed, cancelled "pending"
Credits this job is expected to cost — 0 on a cache-hit completed response.
5

