// MLC OpticScript v2.12.1

License: Elastic License 2.0 Platforms: Windows, Linux, macOS
Skriptgesteuerte Bildverarbeitung — 35+ Operationen in nativer Geschwindigkeit, eine einfache verkettbare Skript-API, Vektor-Leinwand, Gitter-Verzerrung für kreative Effekte und ein visuelles Desktop-Playground zum Live-Tüfteln.
MLC OpticScript Screenshot

Was MLC OpticScript auszeichnet.

Copyright-Schutz für Fotografen

Eine unsichtbare Urheber-Kennung in den Bildpunkten, die Verkleinern, Zuschneiden, Drehen und JPEG übersteht — auch wenn die Metadaten weg sind, belegt durch ein signiertes Register und ein C2PA-Siegel. Mit eigener App „Foto-Schutz“: Fotos hineinziehen, fertig. Schützen mit Pro, Prüfen kostenlos für jeden.

Mehr →
Ultra schnelle Pixel-Operationen

35+ Bildoperationen — Weichzeichnen, Verzerren, Drehen, Mischen, Farbkorrektur, Kantenerkennung und mehr. Native Geschwindigkeit, keine externen Abhängigkeiten, sofort einsatzbereit.

Mehr →
Lesbare Skripte, verkettbare Operationen

Beschreiben, was passieren soll, als Kette von Schritten: img.brightness(1.2).blur(2).rotate(45). Eine Zeile pro Effekt, in der Reihenfolge, in der er greift — ohne kryptische Flags und ohne Boilerplate.

Mehr →
Vektor-Canvas

Pfade, Formen und Verläufe zeichnen und auf Fotos legen. Vorhandene SVG-Dateien importieren oder das Ergebnis als SVG exportieren.

Mehr →
WarpGrid Mesh-Transformation

Kontrollpunkt-Gitter definieren und Bilder mit Sub-Pixel-Präzision verzerren. Perspektive, Tonnenverzerrung oder künstlerische Deformationen.

Mehr →
Mehrbild-Komposition

Mehrere Bilder mit 10 Blend-Modi mischen, stapeln und maskieren — inkl. Porter-Duff Alpha-Compositing. Bilder entlang Bezier-Kurven platzieren.

Mehr →
Clipboard Manager

Screenshot machen — fertig bearbeitete Datei liegt im Ordner. Die Zwischenablage wird beobachtet, Ihr Skript läuft über jede Aufnahme: drei Auflösungen, der Firmen-Rahmen, ein Schwärzungsbalken. Gebaut für alle, die Software dokumentieren oder testen.

Mehr →
MCP-Server für KI-Agenten

Claude, Gemini oder einen eigenen Agenten anschließen — und er bekommt nicht drei feste Filter, sondern die ganze Skript-Engine. Das Modell schreibt ein OpticScript-Skript, prüft es und lässt es laufen. Zehn Werkzeuge, der Skript-Leitfaden als Ressource, zwei Prompts mit der Reihenfolge, die zu lauffähigem Code führt — lokal oder als ein Server für das ganze Team, Bilder per ID statt base64.

Mehr →
CLI, Server & Desktop

Skripte von der Kommandozeile, als HTTP-API oder im interaktiven Desktop-Playground mit Live-Vorschau, Parameter-Slidern und Galerie-Ansicht.

Mehr →

Bilder transformieren mit Code – in nativer Geschwindigkeit.

Hör auf zu raten. Fang an zu sehen. MLC OpticScript ist die professionelle Entwicklungsumgebung für Bildverarbeitung. Kombiniere die Flexibilität von JavaScript mit der Performance einer nativen Engine und der Intelligenz lokaler KI-Modelle.

Eine blitzschnelle Engine, JavaScript-Power und lokale KI-Modelle in einem Paket.

Schreib ein paar Zeilen Code und erledige in Millisekunden, wofür andere teure Software brauchen:

  • KI-Background-Removal: Motive freistellen ohne Daten-Upload.
  • KI-Gesichtsrestaurierung (GFPGAN): Unscharfe, niedrig aufgelöste oder alte gescannte Gesichter wiederbeleben — vollständig auf dem Gerät. Im optionalen KI-Tools-Paket (Windows).
  • Face-Detection: Gesichter finden, markieren oder mit einem Befehl verpixeln.
  • KI-Upscaling (Real-ESRGAN 4×): Deine Bilder auf Knopfdruck knackscharf vergrößern. Im optionalen KI-Tools-Paket (Windows).
  • Live-Playground: Sieh jede Änderung sofort. Vergleiche verschiedene Algorithmen (wie Denoising oder Filter) direkt nebeneinander in der Galerie-Ansicht.

Der schlanke Basis-Installer (~203 MB) enthält die Engine plus die leichten Tools (rmbg, Face-Detection). GFPGAN-Restaurierung und Real-ESRGAN-Upscaling stecken in einem separaten KI-Tools-Paket (~314 MB), das du jederzeit nachinstallieren kannst. Wer alles in einem Download will, nimmt die Komplett-Variante (~517 MB).

Kein "Python-Chaos", kein kompliziertes Setup, kein Warten. Einfach Code.

Dein Name steckt im Bild — nicht in den Metadaten, die soziale Netzwerke beim Hochladen löschen. OpticScript markiert Fotos mit einer unsichtbaren Urheber-Kennung, die Zuschneiden, Verkleinern und JPEG-Kompression übersteht. Markieren mit OpticScript Pro, Prüfen kostenlos für jeden.

Ein markiertes Foto, von einer Plattform beschnitten, verkleinert und ohne Metadaten neu gespeichert — die Prüfung findet die Urheber-Kennung trotzdem

→ Mehr zum Copyright-Schutz

🚀 Skripte werden zu Werkzeugen

Du hast den perfekten Workflow im Playground gebaut? Mit dem mlcos-compile Befehl machst du daraus ein echtes Tool.Deine JavaScript-Variablen werden automatisch zu Kommandozeilen-Argumenten.

So wird aus einem kreativen Experiment ein robustes Werkzeug für dein Team oder deine Kunden:

Dein kompiliertes Skript direkt in der Konsole nutzen:

my-tool.exe --input "photo.jpg" --noise_amount 0.5 --output "clean.webp"

Keine Runtime-Abhängigkeiten, kein Node.js oder Python beim Endnutzer nötig.

Skripte schreiben, Ergebnisse sofort sehen

Der Desktop-Playground bietet einen Code-Editor mit Live-Vorschau. Bild(er) reinziehen, ein paar Zeilen JavaScript schreiben und das Ergebnis in der Vorschau sehen. Parameter-Slider erlauben Feintuning ohne Code-Anpassung. Scripte können exportiert werden und später einfach per namen wieder verwendet werden.

  • 35+ Operationen — Blur, Sharpen, Rotate, Warp, Blend, Farbkorrektur, Kantenerkennung
  • Verkettbare API — img.brightness(1.2).blur(2).rotate(45).resize(800, 600)
  • Multi-Output — mehrere Ergebnisbilder aus einem einzigen Skript
  • Galerie-Ansicht — Outputs nebeneinander vergleichen mit Zoom

Vektorgrafik trifft Rasterverarbeitung

Pfade, Formen und Verläufe auf einem Canvas zeichnen und auf Rasterbilder übernehmen. SVG-Dateien importieren oder Rasterbilder nach SVG umwandeln — alles aus unserer Engine heraus.

Warpen, Verzerren und Perspektiv-Transformationen

Das WarpGrid-System erlaubt ein Kontrollpunkt-Gitter zu definieren und Bilder mit Sub-Pixel-Präzision zu verzerren. Fotos auf 3D-Oberflächen wie Würfel platzieren, Tonnenverzerrungen oder künstlerische Deformationen erstellen — mit wenigen Zeilen Code.

Vom Screenshot zum fertigen Handbuch – in Sekunden.

Dokumentation muss nicht mühsam sein. Mit MLC OpticScript automatisierst du den gesamten Prozess:

  • Automatisches Mockup-Warping: Platziere deine Screenshots perspektivisch korrekt auf Laptop- oder Monitor-Grafiken – ohne Photoshop.
  • KI-Anonymisierung: Verpixle Gesichter oder sensible Daten in deinen Screenshots vollautomatisch per face-detect.
  • Batch-Processing: Erstelle hunderte Handbuch-Grafiken in einem Rutsch. Einmal das Skript schreiben, immer wieder verwenden.

Bilder auf beliebige Flächen projizieren (Warp)

Mit Perspektiv-Transformationen jedes Bild auf jede Oberfläche platzieren. Einen Screenshot auf ein gebogenes Monitor-Mockup mappen, ein Foto um einen 3D-Würfel wickeln oder Artwork auf eine rotierende Trommel projizieren — alles in Echtzeit berechnet.

// Screenshot auf ein Monitor-Mockup platzieren
const screen = Engine.loadImage("SCREENSHOT");
const mockup = Engine.loadImage("MONITOR");
screen.warp4(
  [120, 80],  [540, 95],   // oben-links, oben-rechts (auf dem Monitor)
  [530, 370], [130, 355]   // unten-rechts, unten-links
);
mockup.blendAt(screen, 0, 0, { mode: BLEND_OVER });

Das WarpGrid-System geht noch weiter: ein Kontrollpunkt-Gitter definieren und Tonnenverzerrungen, Seitenknicke, zylindrische Wicklungen oder beliebige Freiform-Deformationen erzeugen.

Testdaten aus einem sauberen Bild

Bildbearbeitung ist nicht nur Optik. Man nimmt ein sauberes Bild mit bekanntem Inhalt und lässt ein Skript daraus beliebig viele realistische Varianten machen — jede weiterhin beschriftet, denn man weiß, was hineinging.

MLC Barcode testet seinen Barcode-Leser genau so: Ein sauberer Arzneimittel-Packungscode wird mit einem berechneten stampGrid-Gitter um eine Flasche gelegt — die Module werden zu den Rändern schmaler, die Zeilen biegen sich zu Bögen, wenn die Kamera von oben schaut — und dann beleuchtet, mit Glanz, Unschärfe und Rauschen versehen und als JPEG gespeichert wie ein Handyfoto. 48 Testfotos, ein Befehl, und der Test weiß bei jedem, was gelesen werden muss. Skript und Bilder liegen auf GitHub; eine Version in vier Schritten steht bei den Beispielen (Barcode auf der Flasche).

Derselbe Ansatz liefert Trainings- und Evaluationsdaten für Bildverarbeitungs-Modelle und LLMs: Licht, Perspektive, Rauschen und Kompression über tausende Bilder variieren — die richtige Antwort gibt es gratis dazu.

Animationen und Hintergrundentfernung

Mehrbild-Animationen aus einem einzigen Skript bauen — Fade-Ins, Slide-Ins, Montagen — und als APNG oder animiertes WebP exportieren, das in jedem modernen Browser oder Image-Viewer nativ abgespielt wird. Der Animation-Container kümmert sich automatisch um Frames außerhalb der Leinwand, also brauchen Slide-from-Edge-Effekte keinen Sondercode.

const anim = Engine.animation(800, 600, { loop: 0 });
const src  = Engine.loadImage(HERO);
for (let i = 0; i < 20; i++) {
  const frame = src.clone().brightness(i / 19);
  anim.addFrame(frame, { delay: 50 });
  frame.free();
}
anim.saveWebP(OUTPUT, { lossy: true, quality: 85 });

Für die Hintergrundentfernung gibt es zwei komplementäre Wege:

  • rmbg — KI-gestütztes Freistellen für Foto-Motive. Das KI-Modell läuft direkt auf dem Gerät; keine Cloud-Anfragen, kein Upload, keine Kosten pro Bild. Das 4.4 MB grosse Modell (Apache-2.0) wird mit dem Binary mitgeliefert.
  • removeWhiteBackground() — für Skizzen und Strichzeichnungen auf weißem Papier, wo die KI kein klares Motiv findet. Drei Stellschrauben (Threshold, Feather, optionaler harter Schnitt), läuft in Millisekunden, kein Modell.

Plugin- und Extension-System

OpticScript hat zwei Erweiterungs-Schichten, beide ohne Engine- Recompile nutzbar:

KI schon dabei!

Mehrere Modelle, null Cloud-Kosten — OpticScript bringt die Intelligenz direkt auf deinen Rechner. Die Modelle sind optimiert, klein und laufen nativ:

  • rmbg: Präzises Freistellen von Objekten und Personen.
  • gfpgan-restore: Gesichtsrestaurierung — unscharfe, niedrig aufgelöste oder alte gescannte Gesichter wiederbeleben.
  • face-detect: Erkennt Gesichter für automatische Zensur oder Fokus-Effekte.
  • upscale: Rettet niedrig aufgelöste Bilder mit 4x ESRGAN-Power.

Du kannst auch unser Text-zu-Bild-Tool nativ anbinden.

Tool Plugins — beliebige CLIs einbinden

Ein Tool Plugin beschreibt ein externes Binary in einer manifest.json (Executable-Pfad, Input/Output-Slots, Parameter-Platzhalter) und die Engine spawnt es bei Bedarf. Bilddaten fließen durch ein Per-Call-Temp- Verzeichnis — jedes Programm, das Bilddateien liest/schreibt, wird zur skriptbar Funktion.

const cut = Engine.tool('rmbg').apply(img, { threshold: 0.0 });

Einsatzbereite Plugins — alle im Basis-Installer enthalten, sofern nicht anders gekennzeichnet:

  • rmbg — KI-gestützte Hintergrundentfernung (~5 MB Modell direkt auf dem Gerät, kein API-Key, kein Server, keine Netzwerkverbindung).
  • gfpgan-detect — Gesichtserkennung mit 3-Punkt-Landmarks (Augen + Nase). Partner-Tool für gfpgan-restore.
  • gfpgan-restore — GFPGAN-Gesichtsrestaurierung; unscharfe, niedrig aufgelöste oder alte gescannte Gesichter wiederbeleben. Keine Cloud, kein Upload. Im KI-Tools-Paket (~314 MB, Add-on unter Windows).
  • facedetect — schnelle Gesichtserkennung für Auto-Blur oder Fokus-Effekte.
  • mlcupscale — 4× Real-ESRGAN-Upscaling, Modelle ins Binary eingebettet — kein Vulkan, kein separater Modell-Download. Im KI-Tools-Paket (~314 MB, Add-on unter Windows).
  • stitch-gif — fügt mehrere Bilder mit einem einzigen Skript- Aufruf zu einem animierten GIF zusammen.
  • frame — minimales Referenz-Plugin als Vorlage für eigene Erweiterungen (~10 Zeilen Code).

Plus ein optionales:

  • mlcsd-txt2img — Bridge zu einem lokalen Stable-Diffusion- HTTP-Server (mlc-stablediffusion). Schickt den Prompt durch dessen OpenAI-kompatiblen Endpoint und füttert das erzeugte Bild direkt zurück ins Skript — Text-to-Image-Generation direkt in einer OpticScript-Pipeline:

    const sd = Engine.tool('mlcsd-txt2img').apply(
      { prompt: "ein Café im Regen bei Nacht, Neon-Reflexionen",
        model: "z-image-turbo", seed: 42 });
    sd.brightness(1.05).vignette(0.3).save(OUTPUT);
    

Engine-Extensions — interne JS-Module

Schwerere "Custom"-Mathematik oder Filter-Ketten können in TypeScript geschrieben und in die QuickJS-Runtime als Erweiterung( Engine-Extensions) geladen werden. Sie werden zu "First-Class-Methoden" auf Engine.* und sind von jedem Skript importierbar, ohne das Binary neu auszuliefern. Die mitgelieferte cube-Extension ist ein kleines Beispiel; der volle Authoring-Guide steht in docs/extensions/.

Beide Schichten sind beim Installer dokumentiert und im Playground über die Tools- / Extensions-Tabs entdeckbar.

Zwischen Raster und Vektor konvertieren

Jedes Rasterbild nach SVG umwandeln — mit voller Kontrolle über Farbanzahl, Pfadvereinfachung, Speckle-Filter und mehr. Umgekehrt SVG-Dateien in beliebiger Skalierung rendern.

// Raster → SVG
const svg = img.toSVG({ colorCount: 24, pathSimplify: "spline" });
Engine.writeSVG("OUTPUT_SVG", svg);

// SVG → Raster (2x Skalierung für Retina)
const rendered = Engine.loadSVG("logo.svg", 2.0);

Batch-Verarbeitung und Automatisierung

Das CLI-Tool mlcos verarbeitet Bilder in Skripten und CI-Pipelines. Der HTTP-Server mlcos-server stellt dieselbe Engine als REST-API bereit. Oder JavaScript in eine eigenständige Binary kompilieren mit mlcos-compile.

Modus Einsatzzweck
Desktop-Playground Interaktive Entwicklung, Vorschau, Parameter-Tuning
CLI (mlcos) Batch-Verarbeitung, Shell-Skripte, CI/CD
HTTP-Server (mlcos-server) Web-Apps, Microservices, Remote-Verarbeitung
Kompilierte Binary Standalone-Tools, Deployment ohne Runtime

Mit unseren eigenen Tools erstellt

Das Hero-Bild auf dieser Seite wurde vollständig mit MLC-Software erstellt:

  • Hintergrundszene — generiert mit Z-Image, unserem On-Device Text-zu-Bild-Modell auf Apple Silicon. Keine Cloud, kein API-Key.
  • Screenshot-Platzierung — der Playground-Screenshot wurde mit OpticScripts stampAt() Perspektiv-Transformation auf den Laptop-Bildschirm gewarpt, gesteuert per mlcos-run von der Kommandozeile.

Zwei Befehle. Das ist der Punkt.


Gebaut für Performance — mit Zahlen statt Adjektiven

Jede Pixel-Operation läuft in nativer Geschwindigkeit. Keine externen Programme werden gestartet, kein Python-Interpreter, keine Zwischendateien zwischen Tools.

Was das konkret heißt — gemessen auf zwei sehr unterschiedlichen Rechnern, damit die Zahlen eine Spanne und keinen Bestwert zeigen:

Bildgröße Weichzeichner Verkleinern auf 50 % Drehen um 30° Kette aus 8 Operationen
Apple M2 Ultra
800 × 600 (Screenshot) 6 ms 2 ms 4 ms 11 ms
1920 × 1080 24 ms 6 ms 15 ms 35 ms
3840 × 2160 (4K) 93 ms 21 ms 58 ms 109 ms
Xeon E5-2650 v2, Baujahr 2013
800 × 600 (Screenshot) 41 ms 6 ms 14 ms 49 ms
1920 × 1080 202 ms 60 ms 109 ms 280 ms
3840 × 2160 (4K) 748 ms 218 ms 355 ms 1,5 s

Auf aktueller Hardware durchläuft ein komplettes 4K-Bild acht Bearbeitungsschritte in einer Zehntelsekunde. Und selbst auf einem zwölf Jahre alten Server-Prozessor ist ein Screenshot in unter einer zwanzigstel Sekunde fertig — die untere Zeile ist bewusst da: was auf alter Hardware noch flüssig läuft, läuft überall.

Warum eine Kette aus zwanzig Schritten nichts verliert

Klassische Bildverarbeitung rechnet mit 8 Bit — 256 Stufen je Farbkanal. Jeder Schritt rundet, und die Fehler summieren sich. Nach mehreren Bearbeitungen reißen Farbverläufe sichtbar ab, das nennt sich Banding.

OpticScript hält jedes Bild intern als 32-Bit-Fließkommazahlen (RGBA). Zwischen zwei Operationen wird nichts gerundet und nichts abgeschnitten. Erst beim Speichern entsteht wieder eine 8-Bit-Datei.

Der Unterschied lässt sich messen. Wir haben zwanzig Schrittpaare gerechnet, die sich gegenseitig aufheben — heller und wieder dunkler, kontrastreicher und wieder flacher, vierzig Operationen insgesamt. Ein verlustfreier Weg muss am Ende beim Originalbild herauskommen:

Abweichung vom Original größter Fehler erhaltene Tonstufen
OpticScript (Fließkomma) 85,5 dB 0 von 255 240 von 256
8 Bit nach jedem Schritt 24,5 dB 46 von 255 208 von 256

Die 8-Bit-Kette driftet um bis zu 46 Helligkeitsstufen ab und verliert 32 Tonstufen — genau das ist Banding, in einer Zahl. OpticScript landet wieder beim Original.

Dazu kommt der Spielraum nach oben: Werte über 100 % Helligkeit überleben Zwischenschritte, statt unwiderruflich abgeschnitten zu werden. Wer ein Bild aufhellt und später wieder abdunkelt, bekommt seine Lichter zurück.

Die Zahlen sind auf Intel und Apple Silicon bis auf die zweite Nachkommastelle identisch — 85,51 gegen 24,49 dB auf beiden. Dieselbe Rechnung, dasselbe Ergebnis, egal auf welchem Rechner deine Pipeline läuft.

Beide Tabellen lassen sich nachrechnen: das mitgelieferte mlcos-analyze compare gibt genau diese Werte aus.

Format-Abdeckung auf einen Blick

Lesen Schreiben Animation Metadaten
PNG, JPEG, WebP, AVIF, TIFF, SVG PNG, JPEG, WebP, AVIF, TIFF, SVG Animiertes WebP, APNG, Multi-Page TIFF EXIF beim Laden gelesen · beim Speichern geschrieben — in allen vier Rasterformaten
  • Eine Binary, alle Formate. Keine System-Bibliotheken, keine System-Fonts, kein Python, kein Node. Die kompilierte .exe trägt alles (libwebp, libpng, libtiff, libavif, resvg, vtracer) statisch gelinkt mit sich.
  • EXIF-Round-Trip — meta.exif.* wird automatisch von Engine.loadImage() befüllt; die Werte bleiben über die ganze Kette erhalten und werden beim Speichern wieder eingestempelt — als EXIF in JPEG, WebP, AVIF und PNG, dazu ein XMP-Paket in PNG. Jedes Format auf seine übliche Art: APP1 im JPEG, RIFF-Chunk im WebP, Exif-Element im AVIF, komprimiertes Rohprofil im PNG. Nachprüfen mit mlcos-analyze exif <datei> — oder unter macOS mit sips -g all.
  • Animationen Frame für Frame bauen mit Engine.animation(w, h, { loop: 0 }), dann als einzelne APNG- / WebP- / TIFF-Datei exportieren — jeder moderne Browser und Bild-Viewer spielt sie nativ ab.
  • Vektor-Loop — beliebiges Raster mit vtracer nach SVG tracen, beliebiges SVG mit resvg zurück nach Raster rendern, alles ohne das Skript zu verlassen.