Build-Log · On-Device-KI

Wie ich Hintergrundentfernung in einem Windows-Tool gebaut habe — und warum nichts deinen Rechner verlässt.

Jedes „Hintergrund entfernen"-Tool, das ich probiert habe, lädt dein Bild erst auf einen Server. Für ein Screenshot-Tool ist das verkehrt herum — deine Screenshots sind das Privateste auf deinem Bildschirm. Also habe ich meins so gebaut, dass es zu 100% auf deinem Rechner läuft. Hier ist, wie — und der ehrliche Teil: die KI ist nicht der schwierige Part.

Was niemand über „KI-Hintergrundentfernung" sagt

Die meisten Tools, die einen Hintergrund freistellen, schicken dein Bild an ihren Server, rechnen das Modell dort und schicken das Ergebnis zurück. Für ein Stockfoto okay. Für einen Screenshot nicht — der ist meistens ein halbfertiges Feature, Kundendaten, ein API-Key, den du zu schwärzen vergessen hast, oder eine DM, die nur für eine Person gedacht war. Ich wollte nicht, dass irgendetwas davon den Rechner verlässt. Also läuft die Freistellung in ShotsGlow lokal, auf deiner eigenen Hardware. Nichts wird hochgeladen. Es gibt gar keinen Server, an den man es überhaupt schicken könnte.

Der ehrliche Teil: das Modell ist nicht meins

Lass mich das „proprietäre KI"-Ding gleich abräumen. Das Modell ist BiRefNet — ein offenes Freisteller-Modell, das jeder herunterladen kann. Eine Handvoll andere lokale Tools nutzen exakt dasselbe. Würde ich dir erzählen, die KI sei meine Geheimzutat, hättest du recht, den Tab zuzumachen.

Die eigentliche Arbeit war der unglamouröse Teil: dieses Modell nativ in einer Windows-App laufen zu lassen, im Capture-Flow, ohne dass etwas den Rechner verlässt — und dafür zu sorgen, dass es auf einem normalen PC funktioniert, nicht nur auf meiner Dev-Maschine.

Wie es tatsächlich läuft

  • ONNX Runtime, auf der CPU. Keine GPU-Beschleunigung — und das ist eine bewusste, hart erarbeitete Entscheidung (die nächste Sektion ist die ganze Geschichte). Es läuft auf dem Prozessor, den jeder Rechner ohnehin hat.
  • Das Modell lädt einmal beim ersten Start (~890 MB), passend zu deinem PC. Statt eine riesige Datei für alle auszuliefern, prüft die App deinen RAM und holt die Variante, die passt — volle Auflösung auf einer großzügigen Maschine, eine leichtere auf einem 4–8-GB-Laptop — damit es einen bescheidenen PC nicht erstickt. Ein dicker Download, einmal; danach ist es für immer lokal. (Der Installer selbst bleibt klein, ~100 MB.)
  • Keine NPU-Behauptungen. Ich habe Support für die Copilot+-Neural-Chips angelegt und dann ausgeschaltet gelassen, weil er noch nicht ausgeliefert wird. Was ausgeliefert wird, ist reine CPU. Lieber untertreiben, als eine Angabe auf die Schachtel schreiben, die nicht stimmt.

Und weil kein Server in der Schleife hängt, läuft es auch mit ausgeschaltetem WLAN (nach diesem einmaligen Download). Hier mit Flugmodus an — dieselbe Ein-Klick-Freistellung, nichts hochgeladen, weil es nirgendwohin zu laden gibt:

Der Teil, den ich erst falsch gemacht habe: ich hab es auf der GPU geshippt

Hier die ehrliche Version. Ich habe die Freistellung erst auf der GPU geshippt (über DirectML), mit einem CPU-Fallback. Auf meiner Maschine war es schneller. Dann ist es auf den Maschinen anderer Leute kaputtgegangen: integrierte GPUs, die mitten in der Inferenz hingen, Treiber, die eine verkorkste Maske zurückgaben, Laptops mit wenig RAM, denen schlicht der Speicher ausging. „Schnell auf meinem" ist wertlos, wenn es auf dem Surface eines Reviewers oder dem fünf Jahre alten Laptop eines Kunden kaputt ist.

Also habe ich den GPU-Pfad rausgerissen und bin CPU-only gegangen. Langsamer — ein paar Sekunden, mehr auf einem schwachen Chip — aber es liefert das gleiche Ergebnis auf jedem Windows-Rechner, den ich finden konnte, runter bis zu einem 4-GB-Atom-Tablet. Dann habe ich das Modell an den Speicher der Maschine angepasst, damit die schwächsten PCs nicht ersticken. „Läuft überall" schlug „schnell auf meinem", und nicht knapp.

Warum „lokal" auch der Grund ist, dass es einmalig 9 $ kostet

Den Teil habe ich nicht kommen sehen. On-device zu gehen hat nicht nur die Privatsphäre gelöst — es ist der ganze Grund, warum ich das einmal verkaufen kann, statt es dir für immer zu vermieten.

Cloud-KI heißt GPU-Server. GPU-Server heißt eine Rechnung jeden Monat, solange irgendwer das Feature nutzt. Die einzige Art, die zu decken, ist ein Abo — und genau deshalb fängt jedes Cloud-Tool irgendwann an, sich dir zu vermieten.

On-device macht deine Hardware die Arbeit. Kein Server, also keine Monatsrechnung, also muss ich dir nichts monatlich berechnen. Die Privatsphäre-Entscheidung und die Preis-Entscheidung waren am Ende dieselbe Entscheidung: lass es auf deinem Rechner — und „9 $ einmalig, kein Abo" ist kein Marketing-Spruch mehr, sondern einfach die Rechnung.

Wenn du dasselbe baust

  • Lade das Modell beim ersten Start und sei ehrlich über die Größe, statt eine ~900-MB- Überraschung zu verstecken — oder, wenn du es bündelst, steh zur Installer-Größe. So oder so: tu nicht, als wäre es klein.
  • DirectML sieht aus wie der pragmatische Windows-Weg — bis du es an Fremde ausspielst. Auf echter Hardware ist es eine Lotterie: integrierte GPUs hängen, Treiber liefern Müll, Maschinen mit wenig RAM laufen über. Wenn das Feature für alle funktionieren muss, ist CPU-only zuverlässiger als GPU-schnell. (Und jag der NPU nicht hinterher, bis sie für genug Leute real ist.)
  • Das Modell ist Massenware. Das Produkt ist alles drumherum — die native Aufnahme, der Editor, die Schwärzung, die einen Crop übersteht, die Export-Formate. Da steckt die Arbeit, und der eigentliche Moat.

Ich habe das in ShotsGlow eingebaut — ein natives Windows-Screenshot-Tool, das aufnimmt, gestaltet, beschriftet, schwärzt und Hintergründe lokal freistellt und dann in 30 Formate für Social und App Store exportiert. 9 $ einmalig, kein Abo, nichts wird hochgeladen. Ich baue es öffentlich als Solo-Windows-Entwickler — wenn du den Rest der Geschichte willst, die Startseite hat sie.