Hier sieht man mal, was die AI zu leisten im Stande ist:
(Das Bild ist 30x gezoomt)
Hier sieht man mal, was die AI zu leisten im Stande ist:
(Das Bild ist 30x gezoomt)
Kleiner Zwischenstand zur neuen Super-Resolution-Funktion:
Momentan passiert bei einem 12-MP-Bild vereinfacht Folgendes: Die App zerlegt ein Foto mit 4032 × 3024 Pixeln in rund 48 einzelne Tiles. Jedes dieser 512er-Tiles wird vom aktuellen Real-ESRGAN-x4plus-Modell zunächst auf 2048 × 2048 Pixel hochgerechnet. Anschließend reduziert die App das Ergebnis wieder auf 1024 × 1024 Pixel und setzt daraus das vollständige 2×-Bild zusammen.
Die KI berechnet momentan also erheblich mehr Pixel, als für das fertige Bild überhaupt benötigt werden. Das funktioniert qualitativ bereits hervorragend, erklärt aber auch, warum die Verarbeitung eines 12-MP-Fotos selbst auf meinem M4-iPad rund fünf Minuten dauert und das SoC dabei ordentlich arbeiten und entsprechend warm werden kann.
Genau deshalb überarbeite ich gerade noch einmal das verwendete AI-Modell und die Verarbeitungspipeline. Ziel ist eine echte native 2×-Berechnung: Die KI soll direkt aus einem 512er-Tile ein 1024er-Tile erzeugen, ohne den Umweg über 2048 × 2048 Pixel.
Die Bildqualität stimmt also schon – jetzt geht es an die Performance und Effizienz. Deswegen dauert der Release noch einen Moment. Ich hoffe, ich sitze hier nicht noch, wenn es schon hell wird 😂
Und täglich grüßt das Murmeltier. Bug bei der neuen Funktion im schwarz/weiß Theme.
Noch ein kleiner Verbesserungsvorschlag. Ein Button nach Abschluss der zum Startbildschirm führt wie bei „ Bilder vergleichen „
Argh. Danke! Ich vergesse immer den Style, da ich den gar nicht nutze 😂
Ich nochmal😜
War das jetzt auch in der aktuellen 47er?
Warum ae, oe anstatt ä,ö ?
Fehler gefunden!
Gleich kommt Build 48. Da habe ich heute Nacht noch dran gesessen. 😂
Der bekommt einen komplett neuen „Workspace“ auf iPad / Mac. Also ein eigenes Layout. Da habe ich gerade die Buttons noch mal korrigiert.
Odin.666 ich code ASCII Konform, und auf englisch. Nur so kann ich die Apps später in allen Sprachen anbieten.
Zitat von Dan
Hab mir schon gedacht! Für mich eigentlich schrecklich anstrengend 😄
Hello again. Der alte bug das man nicht scrollen kann ist wieder da. Build 48
Ist es möglich GPS Daten & EXIF Daten entfernen auf einmal zu integrieren ?
Also quasi per one click alle Bilder von jeglichen Informationen zu befreien ?
Danke für die Rückmeldungen!
Der Scroll-Bug sollte mit Build 49 wieder behoben sein. Technisch lag es daran, dass sich durch den Umbau der Startseite wieder eine Höhenbegrenzung eingeschlichen hatte. Dadurch wurde der Inhalt auf kleinen iPhones an den sichtbaren Bereich gekoppelt und SwiftUI hat die darunterliegenden Kacheln nicht mehr korrekt als scrollbaren Inhalt behandelt.
Und danke auch für den Tipp mit den Metadaten! Die Batch-Verarbeitung wurde entsprechend erweitert. Man kann jetzt mehrere Bilder auswählen und GPS-, EXIF- und weitere eingebettete Metadaten in einem Schritt komplett entfernen.
Und ich habe eine komplett neue iPad / Mac UI implementiert.
Die steht nur zur Verfügung, wenn ein iPad oder Mac erkannt wurde. Gerne mal testen! Da bin ich fast sicher, dass ich noch das ein oder andere Mal an Details ran muss.
Und weil es ja immer so schön ist, damit Entwickelr auch immer was zu tun haben, hat sich wieder ein Bug eingeschlichen, der eigentlich schon einmal vor 7 Builds beseitigt war.
Gleich kommt Build 50 online
Ich arbeite gerade an der nächsten Optimierung für Build 51 – diesmal geht es noch einmal gezielt um die Performance der Super Resolution.
Real-ESRGAN läuft bereits über Apples Core ML mit computeUnits = .all. Dadurch kann Core ML selbst entscheiden, ob einzelne Berechnungen auf CPU, GPU oder Neural Engine ausgeführt werden. Einfach nur „mehr CPU-Kerne“ zu verwenden, wäre deshalb nicht unbedingt schneller.
Interessant ist aber die Verarbeitung der einzelnen Bildbereiche. Ein großes Foto wird für die Super Resolution in viele kleinere Tiles zerlegt, die momentan im Wesentlichen nacheinander durch das KI-Modell geschickt werden.
Für Build 51 experimentiere ich deshalb mit einer parallelen Tile-Verarbeitung. Statt immer nur einen Bildbereich zu berechnen, sollen beispielsweise zwei Tiles gleichzeitig durch Real-ESRGAN verarbeitet werden. Core ML kann die eigentliche Berechnung weiterhin selbst optimal auf die vorhandene Hardware verteilen.
Dabei gilt allerdings nicht automatisch „mehr parallel = schneller“. Zu viele gleichzeitige KI-Berechnungen können RAM, Speicherbandbreite, GPU und Neural Engine gleichzeitig auslasten und zu stärkerer Erwärmung bzw. Thermal Throttling führen.
Deshalb soll es zunächst zwei Modi geben:
Standard – die bisherige serielle und sehr stabile Verarbeitung.
Parallel – zwei Real-ESRGAN-Tiles werden gleichzeitig verarbeitet.
Damit kann ich dasselbe Bild auf verschiedenen Geräten direkt vergleichen und messen, wie groß der tatsächliche Geschwindigkeitsgewinn ist. Gerade auf Geräten wie einem M4-iPad oder aktuellen Pro-iPhones dürfte interessant werden, wie viel zusätzliche Leistung sich aus der Hardware noch herausholen lässt.
Die Bildqualität selbst soll sich dabei natürlich nicht verändern. Bei Build 51 geht es ausschließlich darum, die vorhandene Super-Resolution-Pipeline schneller und effizienter zu machen.
Ich muss sagen, auf die Super Resolution in My Media Tools bin ich inzwischen wirklich ein bisschen stolz. Was ursprünglich als Experiment angefangen hat, ist mittlerweile eine ziemlich beeindruckende Machine-Learning-Image-Pipeline geworden.
Die eigentliche Detailrekonstruktion läuft vollständig lokal auf dem Gerät über Core ML und Real-ESRGAN. Das Bild wird dabei in einzelne Tiles zerlegt, vom ML-Modell mit 2× Auflösung rekonstruiert und anschließend wieder zu einem hochauflösenden Gesamtbild zusammengesetzt. Metadaten werden dabei soweit möglich übernommen und das Original bleibt vollständig erhalten – außer man entscheidet sich anschließend bewusst dafür, es zu löschen.
Inzwischen habe ich die Image Pipeline zusätzlich parallelisiert: Zwei Tiles können gleichzeitig durch Core ML verarbeitet werden. Core ML verteilt die eigentliche Inferenz wiederum selbst auf die verfügbare Hardware wie CPU, GPU und Neural Engine. Gerade auf leistungsfähigen Apple-Silicon-Geräten macht sich das bei der Verarbeitungszeit deutlich bemerkbar.
Das Ganze läuft ohne Cloud, ohne Upload und ohne externen Server direkt auf iPhone und iPad.
Wenn ich mir überlege, was da inzwischen im Hintergrund passiert, bin ich schon ziemlich stolz darauf, so eine Technologie selbst in meine App integriert und auf die Geräte optimiert zu haben.
Beim Start der Konvertierung sieht das „Fortfahren“ etwas seltsam
Das Ergebnis bei meinem schlechten Ultra Weitwinkelbild mit dem 15 Pro Max sieht irgendwie aus wie das Original:
Bei Deinem Bild sieht es viel besser aus.
Hast du die letzte Version geladen? Da hatte ich genau diese beiden Fehler wo behoben.
Wichtig ist auch, dass die ML mit jedem Bild dazu lernt, weil alles komplett lokal stattfindet, lernt es nicht von externen Bildern
Hast du die letzte Version geladen?
Ja jetzt kam sie, der Button ist jetzt richtig.
Gestern Abend noch diese Funktion eingebaut: Direkter Bildvergleich.
Zwei Bilder lassen sich jetzt ohne Analyse direkt nebeneinander oder im 50:50-Modus vergleichen.
Zoomt oder verschiebt man eines der Bilder, bewegt sich das andere exakt synchron mit.
Gerade um feine Unterschiede oder die Ergebnisse der Super Resolution zu vergleichen, ist das richtig praktisch.
Also bei „ fleischwunden „ muss die ki auch noch lernen😜 aber sonst ist die app echt super geworden
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!