Communitygithub.com

avalner/living-paintings

Erstelle Videos, in denen sich eine Kamera einem gerahmten Gemälde in einem Raum nähert, die dargestellte Szene zum Leben erwacht und optional die Kamera wieder zurückzieht. Verwende dies für lebendige Gemälde (оживающие картины) und darauffolgende Videos der Paintings-Serie; nicht für allgemeine Filme oder eigenständige Bildbearbeitungen.

Was ist living-paintings?

Dieses Skill ermöglicht die Erstellung von Videos, in denen eine Kamera sich einem gerahmten Gemälde in einem Raum nähert, die Szene darin zum Leben erwacht und die Kamera sich optional wieder zurückzieht – und zwar in einer Weise, die den Eindruck vermittelt, in das Bild einzutauchen, ohne es zu verlassen. Es ist speziell für die „Living Paintings“-Serie gedacht und nicht für generische Filmproduktionen oder separate Bildbearbeitungen. Der Kern des Skills ist der `comfy-film`-Controller, der in mehreren Umgebungen (Codex, DeepSeek Harness, Claude Code) identisch ist und das Skript `$Tools/comfy-film/scripts/film.py` steuert. Die Unterschiede liegen nur in den Hilfswerkzeugen: Im Codex werden Browser-Panels und das Menü-Tool verwendet, während in DeepSeek Harness und Claude Code `ask_user_question` zur Abstimmung und `progress.py --serve` als Hintergrundprozess zum Einsatz kommen. Ein zentrales Prinzip ist die strikte Trennung von Kamerabewegung und Animation der Kunstwerke. Während des Heranzoommens bleibt das Kunstwerk statisch und wird deterministisch beschnitten und skaliert; die lebendige Szene startet dann von der exakten Endposition aus mit einem neuen I2VA-Durchlauf auf Basis eines Standbilds. Der Skill enthält spezifische Anleitungen, um den Übergang nahtlos zu gestalten (die ersten 12 Frames werden mit einer deterministischen Überblendung ersetzt) und typische Fehler wie Helligkeitssprünge oder Registrierungsnähte zu vermeiden. Für Wiederaufnahmen wird empfohlen, mit `film status --project PROJECT` den aktuellen Stand abzurufen und das `brief.md` zu lesen; technische Zustände sind in `film.json` dokumentiert. Der Skill endet mit detaillierten Review-Regeln, die sicherstellen, dass visuelle Artefakte wie Artefakte an Händen, unerwünschte Kamerabewegungen oder Detailverluste vor der Freigabe erkannt werden, und dass das finale Video mit `finalize_delivery.py --no-upscale` (optionales Upscaling) in H.264 yuv420p/AAC mit Faststart ausgegeben wird.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/avalner/comfy-film-kit/tree/HEAD/skills/living-paintings

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Lebendige Gemälde (Living Paintings)

Verwende dieses Skill für die visuelle Gestaltung und Compositing von Gemäldevideos. Nutze den installierten comfy-film-Controller für Generierung, Reviews, Wiederaufnahmen und finale Auslieferung. Es handelt sich um denselben Controller in jedem Agenten – Codex (~/.codex/skills/comfy-film/SKILL.md), DeepSeek Harness (~/.dsh/skills/comfy-film-dsh/SKILL.md) und Claude Code (~/.claude/skills/comfy-film-dsh/SKILL.md) – alle steuern dasselbe $Tools/comfy-film/scripts/film.py; nur die Umgebungswerkzeuge unterscheiden sich. Lese die relevanten Referenzen nach Bedarf; erstelle keine eigenen Controller. Für substanzielle H3-Aufforderungen verwende h3-prompt-writing.

Unterschiede der Umgebungen (Codex → DeepSeek Harness / Claude Code)

Codex-GewohnheitErsatzhandlung
Browser-Panel von Codex für die FortschrittsseiteStarte progress.py --serve als Hintergrundjob und veröffentliche die verifizierte URL aus .pipeline/progress-server.json
Menü-Tool für Akzeptieren/Ändern/Ablehnenask_user_question mit Zwei-Wort-Labeln; Links und Zahlen gehören in die Nachricht darüber
Bilder, die vertrauenswürdig im Chat gerendert werdenPfadlink in spitzen Klammern für Bilder/Dokumente; http://127.0.0.1:8199/watch/... für jeden Clip (Server: comfy-film-dsh/scripts/serve-media.py)
Texterstellung an einen Unteragenten delegiertErstelle im übergeordneten Agenten; DSH hat keine Delegierung für diese Filme
Endverarbeitungcomfy-film-dsh/scripts/finalize_delivery.py --input ... --no-upscale

Veröffentlichungs-, Review- und Montageregeln bleiben unverändert; sie befinden sich im comfy-film-Skill.

Starten oder Fortsetzen

  • Behalte Projekte unter $Paintings/<Englischer Name>. Speichere das originale Kunstwerk, Raumreferenzen, Aufforderungen, generierte Takes, Montageclips und finale Exporte innerhalb dieses Projekts. Vermeide Abhängigkeiten von Zwischenablage/Temp-Dateien oder dem Ausgabeordner eines anderen Projekts.
  • Führe bei Fortsetzung film status --project PROJECT aus und lese das aktuelle brief.md. Der technische Zustand ist in film.json gespeichert; Genehmigungen werden nicht aus der Existenz von Dateien abgeleitet.
  • Lese für ein neues Gemälde workflow.md vor dem Entwurf von Keyframes oder der Videogenerierung. Es enthält das getestete Rezept und spezifische Fehlschläge aus dem Living Cafe Painting.
  • Verwende die vom Benutzer bereitgestellten Voreinstellungen für Format, Timing, Ton und Kamerabewegungen. Der vorherige Film mit 5s Annäherung + 10s Animation + 5s Rückzug ist ein Beispiel, keine automatische Wahl für jedes Gemälde.

Trenne Raumbewegung von Kunstwerkanimation

  1. Entwerfe eine Raumreferenz mit dem gerahmten Gemälde von vorne und ausreichend Platz um das Bild herum für die geplante Annäherung. Behalte das originale hochauflösende Kunstwerk als separate Quelle.
  2. Wenn der Benutzer das Kunstwerk während der Annäherung statisch haben möchte, setze dieses originale Kunstwerk in das Bild ein und animiere einen deterministischen, gleichmäßigen planaren Ausschnitt/Skalierung. Bitte H3 nicht, die Bewegung vom Raum zur Straße zu erfinden: Im getesteten Projekt veränderte dies die innere Perspektive. Zoome nicht in das winzige eingebettete Gemälde im Raumbild: es wird unscharf.
  3. Rendere die Annäherung so, dass ihr letztes Bild vollständig innerhalb des Kunstwerks liegt. Überprüfe, ob das originale Kunstwerk genügend Pixel für den engsten Ausschnitt hat. Eine hochauflösende Raumleinwand hilft bei der Compositing-Genauigkeit, fügt aber keine Kunstwerkdetails hinzu; bewahre die Pixel der Originalquelle bis zur endgültigen Ausgabeabtastung.
  4. Starte die lebendige Szene vom tatsächlich akzeptierten Endpunkt der Annäherung aus. Dies ist bewusst eine neue Aktion aus einer stillen Pose heraus: Verwende I2VA mit diesem Standbild, anstatt den Raum/die Annäherung als bewegte Leitlinie fortzuführen. Der Standardleitfaden in comfy-film bleibt für die Fortsetzung einer bereits lebendigen Aktion geeignet, nicht für diesen Übergang.
  5. Verwende eine kurze affirmative Aufforderung, die den festen Straßen-/Landschaftsstandpunkt und einige wenige kleine Bewegungen innerhalb der dargestellten Szene beschreibt. Beschreibe nicht das Betreten oder Durchqueren des Gemäldes. Siehe das erfolgreiche Aufforderungsmuster in workflow.md.
  6. Friere für einen statischen Kunstwerk-Rückzug das tatsächlich ausgewählte letzte Bild der akzeptierten lebendigen Szene ein, registriere es in der hochauflösenden Raum-/Kunstwerk-Komposition und animiere die inverse planare Ausschnitt/Skalierung. Setze nicht auf die ursprünglichen Figurenposen des Originalkunstwerks an der Verbindungsstelle zurück. Überprüfe die Kanten auf Registrierungsnähte; verwende nur zurückhaltende Federung, wo angemessen.

Halte Kamerabewegung und dargestellte Bewegung unabhängig voneinander steuerbar. Generative Kamerafahrten können verwendet werden, wenn der Benutzer Perspektivwechsel wünscht; die Flachkunstwerk-Methode gilt für das Konzept des statischen Kunstwerks.

Die Verbindung zum lebendigen Take ist die Stelle, an der das Auge einen Sprung bemerkt

H3 kopiert sein Konditionierungs-Standbild nicht: es rendert seine ersten Bilder neu, die flacher und ein paar Luma-Stufen dunkler ausfallen, mit einem neu gezeichneten Himmel. Gegen den scharfen, compositierten Annäherungsrahmen erscheint dies als Helligkeitssprung am Schnitt, selbst wenn Skalierung und Offset exakt übereinstimmen. In Living Tulip Balloons trug der Schnitt den größten Einzelbild-Luma-Schritt des Films (-2,04), während die Verbindung einen Shift von 0 und eine Skalierung von 1,000 maß.

Messe es, rate nicht: Dekodiere den zusammengesetzten Schnitt einmal und gib die mittlere Luma pro Bild aus; der Verbindungspunkt darf nicht der größte Schritt im Film sein. Wenn er es ist, ersetze die ersten 12 Bilder des Takes durch eine deterministische Überblendung, die mit dem tatsächlich letzten Bild der Annäherung beginnt und zu den eigenen Bildern des Takes konvergiert (Gewicht k/12). Nichts wird neu getimt, nichts wird erfunden, und das erste gezeigte Bild des Takes ist exakt das Bild, bei dem die Kamera angehalten hat. Rezept und Zahlen: workflow.md.

Reviews und Fertigstellung

  • Folge den comfy-film-Gates für Einzelbilder, Clips und Endreview. Deterministische Anpassung genehmigter Quellen und Endpunkt-Extraktion erben deren Quellengenehmigung; eine neue generative Raum- oder Kunstwerk-Neugestaltung benötigt ihr eigenes Review.
  • Überprüfe vor dem Zeigen eines Animationskandidaten dessen gesamte Timeline auf Hände im Vordergrund, sich öffnende Paneele/Fenster, unerwünschte Kamerabewegung, Layout-Drift, Figuren-Artefakte und Detailverlust. Erfolgreiche Dekodierung allein ist keine visuelle Genehmigung. Bei Fehlschlag lege ihn offen und befolge die autorisierten Wiederholungsregeln von comfy-film.
  • Verwende die tatsächlich beschnittenen Endpunkte für Verbindungen. H3 rundet die Dauer; entferne nur die erforderlichen überschüssigen Bilder, um dem ausgewählten Plan zu entsprechen. Bewahre akzeptierte Quellclips und Versionen auf.
  • Bei bereitgestellter Musik halte das Video nach Möglichkeit unverändert; speichere eine neue finale Version. Setze das Gleichgewicht zwischen Musik und Atmosphäre sowie die Überblendungen für den bereitgestellten Titel ein, anstatt blind den Mix des ersten Films wiederzuverwenden.
  • Finales Upscaling ist optional: Verwende finalize_delivery.py --no-upscale, es sei denn, es wird ausdrücklich angefordert. Produziere H.264 yuv420p/AAC mit Faststart und überprüfe die Dekodierung. Gib einen anklickbaren, lokalen MP4-Link an; ein Inline-Video allein war im getesteten Chat für den Benutzer nicht sichtbar.
  • Speichere die ausgewählte Geometrie, Quellversionen, Aufforderungen, akzeptierte Takes, Trims, Mix und finalen Review-Status in brief.md. Halte nur dann eine neue wiederverwendbare Lektion fest, wenn sie zukünftige Entscheidungen ändert; belasse einmalige Koordinaten im Projekt.

Vorhandenes Beispiel

$Paintings/Living Cafe Painting ist das getestete Beispiel. Sein brief.md bewahrt Entscheidungen und abgelehnte Varianten; clips/ enthält akzeptierte Segmente; .pipeline/drafts/prompts/part2-v4.txt ist die erfolgreiche Aufforderung für die lebendige Szene. Die finale v2 enthält die Musik des Benutzers und wartet noch auf ausdrückliche Endfreigabe des Films. Diese Tatsachen genehmigen keine zukünftigen Filme oder autorisieren eine Veröffentlichung.

Verwandte Skills