FilmForge Frame QA
Nichts kommt in den Film als Miniaturansicht. Jedes Gemälde wird in voller Größe gegen seine Blätter gelesen, mit den Werkzeugen gemessen, bewertet und erhält eines von drei Urteilen. Das Urteil sagt immer, was als Nächstes passiert und was es kostet: Akzeptieren (kostenlos), Korrektur per Code (kostenlos, mit dem genauen Aufruf) oder Neu malen (2,75 Credits, mit dem korrigierten Prompt).
Pfade: scripts/, templates/ und config/ unten sind Ordner innerhalb dieser Fähigkeit (das Basisverzeichnis, das angezeigt wird, wenn sie geladen wird), die von ./install.sh dort abgelegt wurden. Bei Arbeiten aus einem Klon des Repositorys befinden sie sich als tools/, templates/ und config/ in dessen Stammverzeichnis.
Das Verfahren
- Kontaktabzug der Charge, um sie als Sequenz zu sehen (passen benachbarte Einstellungen zusammen?):
python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg - Vollansicht jedes Gemäldes (lies das Bild selbst, nicht das Blatt).
- 100 %-Ausschnitte von dem, was wichtig ist: Gesichter, Hände, das maßstabsrelevante Motiv, alles Kleine.
python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2oder--box x0,y0,x1,y1. Ein Bildleser verkleinert große Bilder; Ausschnitte zeigen die echten Pixel. - Messen von Farbregeln, Palette und Belichtung:
python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yamlEs meldet für jedes Gemälde seine Palette, seinen Abstand (delta E) vom Farbskript der Szene, den Anteil jedes verbotenen Farbe an der Bildebene sowie Belichtungssprünge in Blendenstufen zwischen benachbarten Einstellungen einer Szene. - Bewerten des Rasters (unten): neun Kriterien, 0 bis 2.
- Entscheiden des Urteils nach den untenstehenden Regeln.
- Schreiben des Eintrags in
qa.yaml(Format unten), dann Neuerstellung des Kontaktabzugs mit--qa qa.yamlfür Abzeichen. - Bericht: die Urteile zählen, jede Korrektur und jedes Neumalen in einer Zeile, Credits, die ein Neumalen kosten würde.
Das Raster (templates/qa-rubric.md enthält die Bewertungsanker)
| Kriterium | Was du prüfst |
|---|---|
| identity | Gesichter und Kostümmerkmale anhand der Blätter |
| anatomy | Hände, Augen, Gliedmaßen des Fokussubjekts |
| scale | jede Maßstabsfestlegung und jede Anzahl (Pixel in den Ausschnitten messen) |
| style | die Look-Festlegung: Medium, Linie, Farbe, Textur |
| colour | das Farbskript und die Verbotsregeln (von ledger.py palette) und Belichtung im Vergleich zu benachbarten Einstellungen |
| continuity | jedes Requisit und jeden Zustand, den das Protokoll für diese Einstellung auflistet, und nichts außerhalb seines Bereichs |
| story | der Beat liest sich in zwei Sekunden |
| composition | Bildausschnitt wie aufgeführt, das Auge landet auf dem Motiv, der Textbereich ruhig |
| clean | keine gemalten Texte, Wasserzeichen, Verschmierungen oder fremde Figuren |
Maßstab messen: in einem Ausschnitt das Motiv und seine Referenz in Pixeln messen und das Verhältnis mit der Maßstabsfestlegung vergleichen. Das Beispiel der Engine: die Motte erstreckt sich über 20 px auf einem 60 px langen Finger, wo ihre Festlegung eine ganze offene Hand sagt (120 px oder mehr bei diesem Bildausschnitt): ein Sechstel ihrer Größe, Maßstab 0, neu malen.
Die Urteilsregeln
- accept: kein Kriterium bei 0, insgesamt 15 von 18 oder mehr, keine gemessene Verletzung.
- fix: jeder Fehler hat eine Code-Korrektur (Tabelle unten) und nichts bei 0 bei Identität, Maßstab oder Story.
- repaint: Identität, Maßstab oder Story bei 0; Anatomie bei 0 beim Fokussubjekt; Stil bei 0; oder drei oder mehr Fehler.
Korrektur per Code vor Credits (painted-film-pipeline Module)
| Fehler | Modul und Aufruf |
|---|---|
| Ein Objekt in einer falschen Farbe (ein Schal, der eine Nebenfigur wie den Helden lesen lässt) | grade.py IN OUT recolor:x0:y0:x1:y1:lo:hi:new_hue:sat |
| Eine verbotene Farbe, die durchschimmert (Blau vor dem Ende) | grade.py IN OUT blue:0.3 (zieht das Band in Richtung Silber; keep=0.3) oder recolor zu einem erlaubten Farbton |
| Eine fremde Figur in einem sauberen Bereich | Ein Patch aus einer verschobenen sauberen Region (das fix_s22.py-Muster) |
| Schlechter Bildausschnitt, Tangente, falscher Kopfraum | Der crop: [x0, y0, x1, y1] der Einstellung in Quellpixeln |
| Belichtung oder Kontrast weicht von benachbarten Einstellungen ab | Automatisch: die angepasste Gradation ordnet die 0,5- und 99,5-Perzentil-Luminanz jedes Bildes gemeinsamen Zielen zu |
| Weiche Details | Automatisch: Lanczos 4K-Hochskalierung mit Schärfung nur auf Kanten |
| Ein lebloser Frame | Bewegung per Code (forge-motion), niemals neu malen |
Jede Korrektur schreibt eine neue Datei (_g), wird erneut gemessen und erhält done: true erst, wenn die Messung bestanden wird.
Details und Parameterbedeutungen: references/code-fixes.md.
Neu malen: Diagnose, dann korrigieren
Gib die Ursache als Prompt-Platzhalter oder Referenz an: „Maßstabsfestlegung fehlt in Slot 4