Image 2 Sculpt (Bild zu Skulptur)
Ein Bild hinein, eine Skulptur heraus, die du belegen kannst: Jede Oberfläche, die das Bild zeigt, wird an die eigenen Normalen, Kontur und Tiefe des Bildes in seiner eigenen Kamera angepasst. Jede verdeckte Oberfläche stammt aus generierten Ansichten, die sich zuerst miteinander abstimmen mussten, und jeder Schritt des Aufbaus wird in Blender aufgezeichnet und wiedergegeben.
Eingabe-Routing
Jede Eingabe landet im selben Case-Layout (i2s.py new CASE --input ...). Details: references/inputs.md.
| Eingabe | Vorgehen | Hinweise |
|---|---|---|
| Ein Charakter-/Kreaturen-/Objekt-Render oder KI-Bild | new → run | Der Hauptpfad |
| Ein Foto eines echten Objekts (Figur, Spielzeug, Produkt, Statue) | new --kind photo → run | MoGe liefert echte Brennweite und Tiefe |
| Ein ausgeschnittenes PNG mit Transparenz | new → run | Der Alphakanal ist die Maske; kein Maskenaufruf |
| Ein überladenes Bild mit mehreren Dingen | prep --select "der rote Drache" | SAM-3 wählt das Subjekt aus |
| Eine Zeichnung, Skizze oder flache Illustration | prep --restyle | Nano Banana wandelt es zuerst in einen 3D-Render um, wobei die Pose erhalten bleibt |
| Mehrere Fotos desselben Objekts | views --import VERZEICHNIS | Deine Fotos ersetzen generierte Ansichten; Winkel werden durch Registrierung ermittelt |
| Nur eine Idee | imagine OUT.png "Idee" → new | Ein sauberer Ganzkörper-Render als Ausgangspunkt |
| Kein API-Schlüssel | Ein ausgeschnittenes PNG (+ eigene Ansichten) | Nur-Front funktioniert auch: Die Silhouette wird aufgeblasen, die Tiefe dahinter ist eine Schätzung |
Arbeitsablauf
Poste bei jedem Kontrollpunkt ein beschriftetes Bild (checks/sheet_*.png, das Ansichtsblatt, ein Drehtellerbild): zuerst die Bilder, dann die Zahlen. Fehlerbehebungsrunden fügen Schritte hinzu; nichts Aufgezeichnetes wird jemals bearbeitet.
- Gerüst.
i2s.py new CASE --input BILD --subject "kurze Nominalphrase". Schau dir das Bild an und schreibe die Subjektphrase selbst ("stämmiger Cartoon-Troll", "keramische Eulenfigur"): Sie wird in jeden Ansichtsprompt eingefügt. Die Eingabe wird mit ihrem SHA256 kopiert und auf das nächstgelegene Generator-Seitenverhältnis aufgefüllt, sodass jede Ansicht eine Linse teilt. - Frontkarten.
i2s.py prep CASE(Maske, MoGe-3 Tiefe + Brennweite, Marigold-Normalen; Einheiten auf das Subjekt normalisiert). Überprüferef/front_mask.pngundref/front_normals.png, bevor du fortfährst. Falsches Subjekt ausgewählt →--select. Zeichnung →--restyle. - Ansichten.
i2s.py views CASE(9 Ansichten + 1 zurückgehaltene, geschätzt ~2 $;--set minimalfür 5). Schau dir jedes generierte Bild an: Eine veränderte Pose, ein zusätzliches Glied oder ein beschnittenes Subjekt sind schlechte Ansichten. Die Registrierung lehnt Ansichten ab, die nicht übereinstimmen (IoU < 0,80 gegen die Hülle der anderen), aber sage, was du gesehen hast. Regionen, die keine Ansicht sieht, benötigen neue Ansichten aus Winkeln, die in sie hineinschauen (--angles "-30:25"), nicht mehr Glättung (references/views.md). - Hülle.
i2s.py hull CASE: Registrierung jeder Ansicht (der angeforderte Winkel ist nur eine Priorität: Links-/Rechtsvertauschungen werden gefunden, vorne/hinten bleibt erhalten), Neuzentrierung, Screening, das aufgezeichnete Carving, Symmetrieerkennung. Lies die registrierten Winkel incase.json;i2s.py symmetry CASE on|offüberschreibt die erkannte Spiegelebene. - Anpassung.
i2s.py fit CASE --stage all(Formen → Oberfläche → Detail, 38 aufgezeichnete Durchgänge), danncut(öffnet Lücken zwischen Fingern, Beinen, Arm und Körper, die das Foto zeigt),smooth(entfernt Stege und Flecken),fit --stage polish.i2s.py run CASEführt Schritte 2-8 in dieser Reihenfolge mit diesem Standardplan aus (references/fitting.md). - Überprüfen und iterieren.
i2s.py check CASEschreibt ein Blatt pro Ansicht: Referenz, Referenznormalen, Skulptur, Normalenfehler, Silhouettenunterschied. Achte auf Beulen, Stege, fehlende Lücken, abgeflachte Merkmale. Zielen:parts CASE --prompt "Hände"dannfit --stage focus --region hands,cut --region hands,smooth --region box:...(references/checking.md). Belege niemals eine Korrektur ohne das Vorher/Nachher-Blatt. - Abschluss, Blender, Filme.
finish(Facettenglättung, OBJ/STL),blender(jeder Schritt wird von der Foto-Kamera aus wiedergegeben, 360° Drehteller, jede Ansicht,sculpt.blend, GLB),film(Zwei-Panel-Zeitraffer, der in der 360°-Drehung endet, Drehteller, Ansichtsblatt, Heldenbild) (references/blender-and-delivery.md). - Bericht und Stopp.
reportschreibtout/REPORT.md,out/index.htmlund das Schritt-für-Schritt-Diagramm. Präsentiere den Zeitraffer, das Ansichtsblatt und die gemessene Tabelle, sage, was schwach ist, und stoppe. Der Benutzer entscheidet, wie es weitergeht.
Harte Regeln
- Das Foto bestimmt, was es sieht. Generierte Ansichten füllen nur dort auf, wo das Foto nicht hinsieht; ihre Tiefe wird nie verwendet (sie weicht um Zentimeter zwischen den Ansichten ab). Mittelwerte generierter Ansichtsnormalen niemals über die des Fotos.
- Registriere jede Ansicht; vertraue niemals dem angeforderten Winkel. Generierte Ansichten lagen beim Troll um 20–155° daneben, meistens Links-/Rechtsvertauschungen. Die Suche erlaubt diese, behält aber Vorderansichten vorne und Rückansichten hinten (die Rückkontur eines symmetrischen Subjekts ähnelt seiner Vorderseite). Lies die registrierten Winkel in
case.json. - Screene, bevor du carve. Eine Ansicht, die nicht mit den anderen übereinstimmt, ist ein anderes Subjekt oder eine andere Pose: Lehn sie ab (und sage es), anstatt die Skulptur damit zu zerschneiden.
- Halte eine Ansicht zurück. Sie bewegt die Oberfläche nie; ihre Kamera wird vor der Anpassung eingefroren. Berichte sie getrennt von den Ansichten, die zum Anpassen verwendet wurden. Auch sie ist generiert, misst also Konsistenz, nicht Wahrheit.
- Messe, verlasse dich nicht nur auf das Auge. IoU, Konturabstand, Normalenwinkel, Rauheit im Vergleich zur eigenen Rauheit der Referenz, die Tiefe des Fotos. Eine einzelne Zahl steht nie für "Qualität": Berichte sie nebeneinander.
- Abstandsfelder bleiben exakt. Jede Operation verteilt das Gitter neu (exakte Dreiecksabstände in einem Band, EDT darüber hinaus). Das Verschieben eines ungenauen Feldes, das Spiegeln des Feldes selbst oder das Unschärfen von Normalenzielen erzeugten in dem Fall, aus dem dies aufgebaut wurde, Treppen, Moiré-Ringe und flache Nasen (
references/lessons.md). - Zeichne alles auf. Jeder Carve-, Pass-, Cut- und Glättungsschritt ist ein Schritt in
build/steps/undbuild/log.jsonl, wird in Blender wiedergegeben und im Zeitraffer gezeigt. Bearbeite niemals einen aufgezeichneten Schritt; füge einen neuen hinzu. - Bezahlte Aufrufe: Jeder fal-Aufruf durchläuft das Case-Budget (
settings.budget_usd), seine Anforderungs-ID wird incase.jsongespeichert, bevor gewartet wird, und nichts wird blind erneut gesendet.FAL_KEYwird niemals ausgegeben oder geschrieben. - Visuelles Feedback an jedem Kontrollpunkt, und Bild 0 jedes Films ist eine fertige Miniaturansicht.
- Sage, was erfunden ist. Die Rückseite eines nur von vorne gesehenen Subjekts ist eine Schätzung des Generators.
Referenzen
| Datei | Lesen, wenn |
|---|---|
references/inputs.md | Routing einer ungewöhnlichen Eingabe; Masken, Restyle, Select, importierte Fotos, Nur-Idee |
references/views.md | Generieren, Beurteilen, Registrieren, Screenen und Hinzufügen von Ansichten |
references/fitting.md | Was ein Pass tut, Stufen, Parameter, Cut/Smooth/Focus, der Standardplan |
references/checking.md | Lesen von Kartenblättern und Metriken, die zurückgehaltene Ansicht, was als nächstes zu beheben ist |
references/blender-and-delivery.md | Blender-Replay, Filme, Exporte, der Bericht, die Übersichtsseite |
references/conventions.md | Weltrahmen, Kameras, Einheiten, Dateiformate (zum Schreiben neuer Tools) |
references/lessons.md | Was bei den ersten Fällen schiefging und warum die obigen Regeln existieren |
Vorlagen: templates/CONTRACT.md (in jeden Fall kopiert), templates/acceptance.json (Ziele).