Projekte ai-image-generator

ai-image-generator

Live · nur mit Zugang

Weboberfläche und Schnittstelle für FLUX und GPT Image, mit einem Archiv für alle Bilder. Ein Claude-Skill bedient sie direkt aus dem Chat.

Die Eingabemaske: Beschreibung, Modellwahl mit FLUX.2, Seitenverhältnis, Qualität, Anzahl, Format und bis zu vier Referenzbilder.
Zeitraum
2022 – heute
Rolle
Allein, Konzept bis Betrieb
Zustand
Live, hinter dem Single Sign-on
Code
Code ansehen →

Angefangen hat es mit zwei Konsolen, eine je Anbieter. Was ich dort erzeugte, war flüchtig: Ein Bild blieb dort liegen, wo es entstanden war, und vom nächsten Gerät aus kam ich nicht mehr heran. Irgendwann hat mich das genug gestört.

Der ai-image-generator legt beide Anbieter hinter dieselbe Oberfläche und dieselbe Schnittstelle. Ich wähle das Modell, setze Seitenverhältnis und Qualitätsstufe und gebe wahlweise Referenzbilder mit, an denen sich das Ergebnis orientieren soll. Der Bestand ist über die Beschreibungen durchsuchbar und nach Modell, Verhältnis und Favorit filterbar. Was ein Bild gekostet hat, liefern beide Anbieter selbst mit; der Betrag wird aufgehoben und lässt sich nach Monat und Modell aufschlüsseln.

Inzwischen öffne ich die Oberfläche meistens nicht mal mehr. Ein Claude-Skill reicht Beschreibung und Referenzbilder direkt an meine Schnittstelle weiter, und wenn ich in die Sitzung zurückkomme, liegt das fertige Bild schon da. Als Plugin installiert, kann er alles, was die Oberfläche auch kann.

Stack
TypeScriptExpressTailwind CSSBFL FLUXOpenAI GPT ImageVitestDockerGitHub Actions

Entscheidungen

Die Seite fragt nach, sobald sie wieder zu sehen ist

Legt man die installierte Web-App auf dem Handy in den Hintergrund, friert das Betriebssystem die laufende Anfrage ein und bricht sie ab. Der Server rechnete unbeirrt weiter und legte das fertige Bild ab, die Oberfläche meldete trotzdem einen Fehler. Jeder Auftrag bekommt deshalb eine selbst vergebene Kennung, unter der die Seite nachfragt, sobald sie wieder sichtbar wird.

Eine einzige Datei als Bestand, aber atomar geschrieben

Der gesamte Bestand samt aller Bildbeschreibungen liegt in einer JSON-Datei. Wurde der Container mitten im Schreiben gestoppt (also bei jeder Auslieferung während einer laufenden Generierung), blieb eine halbe Datei zurück, und damit war alles weg. Geschrieben wird deshalb erst daneben und dann umbenannt; eine unlesbare Datei wird beim Start beiseitegelegt statt überschrieben, damit die Anwendung nicht in einer Neustartschleife endet.

Guthaben und Dollar bleiben getrennt

Der eine Anbieter rechnet in eigenen Guthabenpunkten ab, der andere in Dollar. Beides zu einer Summe zusammenzuziehen hieße, einen Umrechnungskurs zu erfinden und eine Zahl zu zeigen, der man nicht trauen kann. Die Kosten stehen deshalb je Anbieter getrennt, und was vor dieser Änderung entstanden ist, wird als „unbekannt“ ausgewiesen statt geschätzt.

Die ganze Seite in einem anderen Design

Gleiche Inhalte, andere Gestaltung. Es geht auf der Startseite los, alle Links bleiben im gewählten Design.

Was ist das? Über diese Seite →