Niedrig aufgelöste Bilder in einer Assembly hochskalieren und verbessern
Machen Sie kleine, blasse Fotos für Angebote, Banner und Drucke nutzbar, bevor Sie sie speichern. Unsere Robots /image/enhance und /image/upscale verbessern Tonwerte und ergänzen Pixel in derselben Assembly, die Ihre Uploads skaliert und speichert. Im Folgenden machen wir aus einem Foto mit 480 Pixeln ein schärferes, farbenfroheres JPEG mit 1.920 Pixeln.
Was die beiden Robots leisten
Der Robot 🤖 /image/upscale (English)
vergrößert ein Bild mit einem KI-Modell, statt seine Pixel zu strecken. Sein Standardmodell,
nightmareai/real-esrgan, unterstützt scale: 2 und scale: 4, verdoppelt oder vervierfacht jede Dimension
und rekonstruiert dabei Kanten und Texturen. Andere unterstützte Modelle können für denselben Wert
von scale andere Abmessungen liefern. Daher verwenden wir in dieser Anleitung das Standardmodell.
Dieser Robot ist in der Beta-Phase.
Der Robot 🤖 /image/enhance (English)
nutzt ImageMagick-Anpassungen mit der Standardeinstellung engine: "classic", die wir hier verwenden. enhance
legt die Intensität fest (auto, auto_gentle, auto_aggressive oder none), sharpen und denoise
nehmen einen Wert von 0 bis 10 an, und preset wendet eine von 13 Farbkorrekturen an, etwa warm, vintage
oder bw_classic. Die klassische Bildverbesserung behält Format und Abmessungen unterstützter Bilder bei;
nicht unterstützte Typen werden unverändert durchgereicht.
Beide sind reguläre Steps in einer Assembly, neben 🤖 /image/resize, 🤖 /image/optimize und Ihrem Robot zum Speichern. Sie müssen sich weder bei einem separaten KI-Anbieter registrieren noch einen weiteren API-Schlüssel verwalten oder Dateien zwischen Diensten herunterladen und erneut hochladen.
Vorher und nachher
Um den Effekt zu zeigen, haben wir unser Chamäleon-Demofoto in einen schlechten Upload verwandelt: 480 Pixel breit, mit reduziertem Kontrast. Dieselbe Assembly verbessert diese Kopie anschließend, skaliert sie 4× hoch und wandelt das Ergebnis in JPEG um:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "https://demos.transloadit.com/inputs/chameleon.jpg"
},
"low_res": {
"use": "imported",
"robot": "/image/resize",
"width": 480,
"contrast": 0.6,
"result": true
},
"enhanced": { "use": "low_res", "robot": "/image/enhance", "enhance": "auto_aggressive" },
"upscaled": { "use": "enhanced", "robot": "/image/upscale", "scale": 4 },
"web": { "use": "upscaled", "robot": "/image/resize", "format": "jpg", "result": true }
}
}
Wir führen /image/enhance zuerst auf der kleinen Datei aus, damit die Hochskalierung mit einem gut
belichteten Bild beginnt und die Bildverbesserung weniger Pixel verarbeiten muss. Speichern Sie
das JSON als instructions.json neben diesem Skript,
fix-upload.mjs, das unser Node.js SDK verwendet:
import { readFile } from 'node:fs/promises'
import { Transloadit } from '@transloadit/node'
const client = new Transloadit({
authKey: process.env.TRANSLOADIT_KEY,
authSecret: process.env.TRANSLOADIT_SECRET,
})
const assembly = await client.createAssembly({
params: JSON.parse(await readFile('instructions.json', 'utf8')),
waitForCompletion: true,
})
for (const [step, [file]] of Object.entries(assembly.results)) {
console.log(`${step}: ${file.meta.width}×${file.meta.height} ${file.ssl_url}`)
}
Installieren Sie mit Node.js 20.10.0 oder neuer das SDK, ergänzen Sie Ihre Zugangsdaten und führen Sie das Skript aus:
npm install @transloadit/node
export TRANSLOADIT_KEY=MY_AUTH_KEY
export TRANSLOADIT_SECRET=MY_SECRET_KEY
node fix-upload.mjs
Unser Test in der Produktionsumgebung dauerte insgesamt etwa neun Sekunden und gab Folgendes aus, hier mit gekürzten URLs:
$ node fix-upload.mjs
low_res: 480×320 https://…/1e93be86….jpg
web: 1920×1280 https://…/791f086a….jpg
Unten links sehen Sie die Datei low_res mit 480 Pixeln, die durch eine normale Größenänderung auf
1920 Pixel gestreckt wurde. Rechts sehen Sie das Ergebnis web.

Die Nahansicht des Kopfes zeigt, was die Hochskalierung ergänzt: scharfe Schuppen, ein klar abgegrenztes Auge und saubere Kanten.

Das Modell erfindet plausible Details, statt wiederherzustellen, was die Kamera nicht erfasst hat. Für ein Angebot, ein Hero-Banner oder einen Druck ist das ein guter Kompromiss, für Fotos, die forensisch genau sein müssen, jedoch nicht.
Einsatz bei echten Uploads
Im Produktivbetrieb würden Sie dies auf Dateien anwenden, die Ihre Nutzer hochladen, und nur auf solche, die es benötigen. Hier lässt 🤖 /file/filter Bilder durch, deren beide Seiten kleiner als 1.200 Pixel sind. Alle anderen überspringen die zusätzliche Verarbeitung:
{
"steps": {
":original": { "robot": "/upload/handle" },
"small": {
"use": ":original",
"robot": "/file/filter",
"condition_type": "and",
"accepts": [["${file.meta.width}", "<", 1200], ["${file.meta.height}", "<", 1200]]
},
"enhanced": { "use": "small", "robot": "/image/enhance", "enhance": "auto", "sharpen": 3 },
"upscaled": { "use": "enhanced", "robot": "/image/upscale", "scale": 2 },
"optimized": { "use": "upscaled", "robot": "/image/optimize", "result": true }
}
}
Fügen Sie einen Robot zum Speichern, etwa 🤖 /s3/store, nach optimized hinzu und speichern
Sie die Instructions als Template, damit Ihr Uploadformular nur darauf verweisen
muss. Die herausgefilterten Originale werden nicht an optimized gesendet. Speichern Sie diese separat,
wenn Sie jeden Upload behalten müssen.
Grenzen und Preise
- /image/upscale ist in der Beta-Phase. Wir stimmen den Robot noch ab. Sagen Sie uns, wie er mit Ihren Bildern arbeitet.
- /image/upscale gibt immer PNG aus. Wenn Sie ein JPEG benötigen, schließen Sie mit einem Step mit /image/resize ab, wie im ersten Beispiel.
- /image/upscale ist für kleine Bilder gedacht. Beim Standardmodell überschreiten Eingaben mit mehr als etwa 2,1 Megapixeln nach der robotinternen Größenreduzierung das GPU-Limit des Modells. Verkleinern oder filtern Sie große Fotos zuerst, wie im Beispiel oben.
- Die klassische Bildverbesserung mit /image/enhance wird wie bei unseren anderen Bild-Robots abgerechnet. /image/upscale führt ein GPU-Modell aus und beansprucht pro Bild mehr von Ihrem Tarif als eine Größenänderung. Siehe die Preisseite für Robots.
Weiterführende Artikel
Wenn Sie Produktfotos verbessern, kombinieren Sie diese Robots mit der Hintergrundentfernung. Und wenn kein Foto als Ausgangspunkt vorhanden ist, erstellt die KI-Bildgenerierung eines in derselben Assembly.
Bereit zum Ausprobieren? Registrieren Sie sich kostenlos, lesen Sie die Dokumentation zu 🤖 /image/upscale (English) und 🤖 /image/enhance (English) und erzählen Sie uns, was Sie entwickeln.
