1 Punkte von GN⁺ 2 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • Underdrawing ist ein deterministischer Ansatz, bei dem zunächst ein Grundrissbild mit den Positionen von Zahlen und Text erstellt wird; anschließend legt ein Bildgenerierungsmodell den visuellen Stil darüber, um die Genauigkeit zu erhöhen
  • Bei der Aufgabe, 50 Trittsteine spiralförmig anzuordnen und mit den Zahlen 1 bis 50 zu versehen, konnten Gemini 3 Pro und ChatGPT Images 2 ohne Underdrawing Zahlen und Reihenfolge nicht stabil korrekt einhalten
  • Gemini 3.0 Pro mit zusätzlichem Underdrawing erzeugte bei derselben Aufgabe ein Ergebnis, bei dem Nummerierung, Anzahl und Reihenfolge der Steine sowie die Spiralform stimmten
  • Die Umsetzung ist möglich, indem mit Werkzeugen wie SVG/HTML Zahlen und Text an den gewünschten Positionen und in der gewünschten Ausrichtung platziert, dann als Bild exportiert und dieses zusammen mit einem Text-Prompt in ein multimodales Bildmodell gegeben wird
  • Der Ansatz ist nicht jedes Mal perfekt, erlaubt aber bei der Bildgenerierung mit wichtiger Text- und Zahlenplatzierung eine Aufteilung zwischen deterministischem Layout und der visuellen Ausdrucksstärke generativer Modelle

Kernaussage und Umsetzungsweise

  • Das Muster entstand beim Versuch, ein Bild eines 100-stufigen Abenteuer-Spielbretts zu erzeugen, und lässt sich als „eine Kontur vorgeben und darüber ausmalen lassen“ zusammenfassen
  • Deterministische Ebene

    • SVG/HTML wirkt visuell eher trocken, ist aber stark bei mathematischer Anordnung und Präzision
    • Zahlen und Text werden an den gewünschten Positionen und in der gewünschten Ausrichtung platziert und dann als Bild exportiert, das die entsprechenden Pixel enthält
    • Als Format oder Werkzeug können unter anderem SVG, Python oder Mermaid verwendet werden
  • Generative Ebene

    • Bildgenerierungsmodelle liefern visuell starke Ergebnisse, sind bei Mathematik und Text aber weniger zuverlässig
    • In ein multimodales Bildmodell wie Gemini 3.0 Pro, das Bild und Text als Eingabe annehmen und ein Bild ausgeben kann, werden das Underdrawing-Bild und der Text-Prompt gemeinsam eingespeist
    • Der Beispiel-Prompt für Schritt 1 lässt ein SVG erzeugen, das 50 Trittsteine in einer gegen den Uhrzeigersinn verlaufenden inneren Spirale anordnet und jeden Stein fortlaufend von 1 bis 50 nummeriert
    • Der Beispiel-Prompt für Schritt 2 lässt dieses Bild in ein fotorealistisches Claymation-Diorama aus einer niedrig angesetzten, leicht gekippten Perspektive umwandeln, in dem handwerklich gefertigte Schokolade und Bonbons entlang eines spiralförmigen Pfads angeordnet sind
  • Automatisierung und Grenzen

    • Claude Code oder Codex können die einzelnen Schritte übernehmen
    • Die Ergebnisse sind gut, aber nicht immer perfekt; selbst im Endergebnis ist „71“ nicht sichtbar

1 Kommentare

 
GN⁺ 2 시간 전
Hacker-News-Kommentare
  • Es ist erfreulich, dass wir immer besser verstehen, was LLMs grundsätzlich gut können und was nicht – nicht dass es unmöglich wäre, sondern dass die Erfolgsaussichten wegen grundlegender Beschränkungen gering sind
    Das ähnelt dem Ansatz, bei dem Menschen die Softwarearchitektur festlegen und die Implementierung von Funktionen dem LLM überlassen, oder bei dem man statt der eigentlichen Datenanalyse SQL-Abfragen schreiben lässt
    Es wäre gut, wenn es eine klarere Taxonomie von Aufgaben und mehr Forschung dazu gäbe, welche Arbeitseinheiten gut zu LLMs passen und welche nicht; intuitiv entwickelt sich da zwar langsam etwas, aber ich sehe noch immer viele Leute, die genau daran oft scheitern

    • Der Ansatz „Menschen legen die Architektur fest, LLMs schreiben die Funktionen“ war bis vor Kurzem genau die empfohlene Nutzung früher Anwender von LLM-Coding-Assistenten
      Man ließ zuerst eine Gliederung erstellen und dann jede Funktion einzeln implementieren; Blogposts, die diesen Ansatz mit einem aus der Animationsarbeit übernommenen Begriff beschrieben, tauchten auf HN mehrfach auf
    • Im Zusammenhang mit LLMs fällt oft der Ausdruck grundlegende Beschränkungen, aber einen strengen Beweis dafür, dass solche Beschränkungen existieren, gibt es bisher keinen
      Noch vor zwei Jahren galten Aufgaben wie Zeichen zählen oder phonemische Verarbeitung wegen solcher „grundlegenden Beschränkungen“ als unmöglich, heute funktionieren sie oft auch ohne Werkzeuge problemlos
  • Jedes Mal, wenn ich Prompts für Bildgenerierung lese, fallen mir sehr konkrete Details auf, die das Modell offensichtlich ignoriert hat
    Auch hier wirken die Schokoladen/Bonbons in den letzten beiden Bildern weit entfernt von handwerklicher Manufaktur und vielmehr wie zu sterile Massenprodukte, außerdem stimmt die Perspektive nicht genau
    Wenn das Modell den Großteil ignoriert, frage ich mich, warum man dann so ausufernde Prompts schreibt

    • Mir gefiel das Beispiel, in dem auf die Anfrage nach „Studiobeleuchtung“ hin das Bild einfach mit Studiolicht-Equipment vollgestopft wurde
    • Die Bonbons sollen in Wirklichkeit gar nicht handwerklich aussehen, sondern eher Bildern entsprechen, die in den Trainingsdaten von Firmen als artisanal beworben und entsprechend gelabelt wurden
      Ausdrücke wie rustic, homemade oder amateur könnten besser zu den Tags passen
    • Auch als ich Bildgenerierung ein paarmal benutzt habe, scheiterte es immer wieder genau an solchen Punkten
      Anfangs hielt ich das für meine mangelnden Prompting-Fähigkeiten, aber sobald man auf solche Diskrepanzen achtet, springen sie ziemlich häufig ins Auge
    • Die meisten ausführlichen Prompts sind wohl von KI erzeugt
    • Ich frage mich, wie lange es gedauert hat, sich all das auszudenken
      Wenn man wie im letzten Beispiel ein Bild wollte, in dem kleine „Knöpfe“ spiralig angeordnet sind, hätte man das wohl an einem Nachmittag in Blender bauen können, selbst wenn man mit Blender nicht besonders gut ist, auch wenn es dann nicht wie Bonbons aussehen würde
  • Ich habe eine einfache Technik gefunden, um in KI-generierten Bildern zuverlässig Text und Zahlen zu bekommen
    Es hat mich überrascht, dass Bildmodelle das nicht ohnehin schon so machen, und ich fand es so nützlich, dass ich es teilen wollte

    • In mancher Hinsicht ähnelt das der Nutzung von ControlNet
      Ich verwende seit einiger Zeit dieselbe Technik, nur mit SVG als Ausgangsbild, und das funktioniert gut
    • Sehr beeindruckend, einfach und robust
      Ich kann mir gut vorstellen, dass Bildgenerierungs-Labs das bald übernehmen
    • Das ist vielleicht eine Art Chain of Thought, also ähnlich wie https://arxiv.org/abs/2201.11903
      Statt das Modell ein Problem im 0-shot-Modus lösen zu lassen, hilft der Nutzer ihm mit 1-shot oder k-shot beim Lösungsweg
      Ich habe ähnliche Techniken sehr wirkungsvoll eingesetzt, und weil das Feld noch so neu ist und sich so schnell bewegt, fehlt es offenbar noch an gemeinsamer Terminologie; deshalb sind der Blogpost und die Beispiele sehr nützlich
      Es wirkt allerdings auch plausibel, dass dieses Phänomen in kleineren Communities oder unter anderen Namen bereits beobachtet und verstanden wurde
    • Kurz gesagt erstellt man zunächst per SVG die korrekten Konturen und schickt dieses Bild dann zusammen mit einem Textprompt an Gemini 3.0 Pro, damit es mit den richtigen Zahlen und dem richtigen Text gerendert wird
  • Das ist einfach img2img, bei dem das erste Bild mit der richtigen Struktur per Code erzeugt wurde

    • Ja, genau so ist es
      Wer schon seit den frühen Tagen von Stable Diffusion mit generativen Modellen arbeitet, kennt das als ziemlich verbreitete und nützliche Technik: Man verwendet eine Skizze (SVG, Handzeichnung usw.) als provisorisches ControlNet, um die Ausgabe des generativen Modells zu steuern
      Früher nutzte ich einen ähnlichen Ansatz beim Platzieren architektonischer Visualisierungen
      Wenn man Sofas, Stühle oder andere Möbel an bestimmte Positionen setzen wollte, konnte man mit einem Tool wie Poser eine einfache Szene bauen, in der die wichtigsten „Set Pieces“ grob platziert waren, daraus eine Tiefenkarte erzeugen und diese dann in ein generatives Modell wie das damalige SDXL einspeisen, um die Objektplatzierung zu lenken
    • Im Großen und Ganzen ist das genau das, was der Autor sagt; es ist eher etwas zusätzlicher Kontext für Einsteiger
    • Stimmt, aber beim Erstellen dieses Codes kann man ein anderes Codegenerierungsmodell verwenden
  • Dieser Hack ist eindeutig von der Sorte „Ach so, warum bin ich nicht selbst darauf gekommen?“
    Schön, beim nächsten Mal, wenn die Bildgenerierung hinter den Erwartungen zurückbleibt, so etwas in der Hinterhand zu haben

    • Die ursprünglichen Stable-Diffusion-Apps hatten bereits image-to-image
      Die Qualität war damals nur noch nicht so gut wie heute, deshalb verstehe ich nicht ganz, warum das als neu gilt
  • Der Standard-Einwand lautet: Wenn ein LLM wirklich intelligent wäre, warum findet es dann nicht selbst heraus, dass dieser zweistufige Prozess bessere Ergebnisse liefert?

    • Auf Basisebene ist ein Bildmodell nur eine Struktur, die Text-Token als Eingabe nimmt und Bild-Token ausgibt
      Um Strategien zu entwickeln, Ergebnisse zu überprüfen und neue Versuche zu starten, braucht es darüber einen agentischen Prozess
      Bei Nano Banana und gpt-image-2 scheint etwas davon bereits eingebaut zu sein, aber das ist ähnlich wie der Unterschied zwischen einem Modell, das Code in einem Durchgang schreiben soll, und einem Agent-Harness mit Werkzeugen, das den Prozess übernimmt
      Selbst ein sehr einfacher Agent kann besseren Code erzeugen als ChatGPT allein
    • Weil LLMs meist hart verdrahtet sind, um Prompts der Art „mach ein Bild“ nur leicht umzuschreiben und dann an ein separates Modell weiterzugeben
    • Was man nicht weiß, weiß man nicht
    • Weil es tatsächlich nicht intelligent ist
    • Niemand hat es darum gebeten
  • So etwas macht man schon lange; es ähnelt der Steuerung von Silhouetten über Tiefenkarten oder Line-Art

  • Mir gefiel der Ton im Fazit: dieses „Es funktioniert, aber eigentlich auch wieder nicht“
    Ganz im Stil des LLM-/GenAI-Hypes zeigt der ganze Text, wie viel komplexe Mühe investiert wird, um ein einziges sehr enges Beispiel zu treffen, das fast klappt, aber am Ende eben doch nicht richtig

    • Wenn es auch nur teilweise funktioniert, ist es nützlich
      Für Menschen ist es leicht zu prüfen, ob die Zahlen stimmen, und wenn nicht, generiert man das Bild einfach neu
      Es ist um einige Größenordnungen einfacher, als das Bild ohne Modell von Grund auf selbst zu erstellen
  • Bei der häufigen Aufgabe „ein SVG eines Pelikans auf einem Fahrrad“ könnte man vielleicht den umgekehrten Ansatz probieren
    Wenn man das SVG direkt ausgeben lässt, ist die Qualität erwartbar schlecht
    Bildgenerierung kann aber leicht ein überzeugendes fotorealistisches Bild erzeugen, daher könnte man zuerst ein Bild generieren und das Modell dieses dann nachzeichnen lassen, um ein brauchbares Fahrrad-Pelikan-SVG zu erhalten
    Letztlich erstellt auch ein Mensch selten SVG-Kunstwerke, indem er einfach nur Zahlen in einen Texteditor eingibt; der Kern bleibt, das Ganze als Bild zu sehen und darüber nachzudenken

  • Das scheint auch dem zu ähneln, wie Menschen etwas präzise machen würden
    Wenn man einen Künstler ohne Korrekturen oder Skizzen bittet, in einem Zug einen großen kreisförmigen Steinsatz samt fortlaufender Nummerierung zu zeichnen, wären Platzierungsfehler kaum überraschend