Communitygithub.com

GPT-Hand-Zeichen-Fähigkeit

Erstelle handgemalte Aquarell- und Tusche-Cartoon-Videos, kurze Animationen, Musikvideos, Lyric-Videos und animierte Loops mit der integrierten p5.js/p5.brush-Engine, headless Chrome und FFmpeg. Verwende diesen für diesen gemalten visuellen Stil oder explizite Anfragen zur gpt-hand-drawing-skill; normale Videobearbeitung und Remotion-Projekte sollten ihre eigenen Workflows nutzen.

Was ist GPT-Hand-Zeichen-Fähigkeit?

Die GPT-Hand-Zeichen-Fähigkeit für Codex ist ein spezialisiertes Tool, um animierte Videoprojekte mit einem unverwechselbaren handgemalten Aquarell- und Tusche-Stil zu erstellen. Sie arbeitet vollständig lokal: p5.brush rendert jeden Frame als deterministische Funktion der Zeit in einem headless Chrome-Browser, und FFmpeg kodiert die Sequenz in eine MP4-Datei. Es ist keine Claude-Laufzeit, keine kostenpflichtige API und kein Bildgenerierungsmodell erforderlich – alles läuft auf dem Desktop des Benutzers. Die Fähigkeit unterstützt verschiedene Projekttypen, darunter Kurzfilme, Musikvideos und Lyric-Videos, und enthält ein optionales Charakter- und Stilsystem (einschließlich des Built-in-Charakters „Clawd“), das über Vorlagen und Konfigurationsdateien gesteuert wird. Entwickler interagieren mit der Fähigkeit, indem sie ein neues Projekt initialisieren, Szenen in JavaScript mit der p5.brush-API schreiben, Storyboards gestalten und Rendering-Befehle ausführen, um Einzelbilder oder das endgültige Video zu überprüfen. Die Fähigkeit legt Wert auf deterministisches Rendering (keine zufälligen Seed-Werte), eine enge Integration mit einem kollaborativen Workflow (Storyboard-Review) und eine effiziente Fehlerbehebung durch Kontaktabzüge und Bewegungsstreifen.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/chao69782/gpt-hand-drawing-skill/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

GPT Hand-Zeichen-Fähigkeit für Codex

Erstelle ein funktionierendes Animationsprojekt und die angeforderte MP4-Datei oder Loop. Frames sind deterministische Funktionen der Zeit, gemalt von p5.brush in Chrome und kodiert von FFmpeg. Keine Claude-Laufzeit, keine kostenpflichtige API und kein Bildgenerierungsmodell erforderlich. Clawd ist ein optionaler Built-in-Charakter; folge der vom Benutzer gewählten Besetzung und dem gewählten Stil.

Ein Projekt starten

Ermittle das Verzeichnis dieser Fähigkeit aus dem geladenen SKILL.md-Pfad. Hardcore kein Claude-Verzeichnis. Führe aus:

python "<skill-dir>/scripts/new_project.py" "<project-dir>"

Der plattformübergreifende Initialisierer kopiert template/, trennt die Demo, installiert gesperrte Abhängigkeiten mit npm ci und meldet Werkzeuge. Verwende --keep-demo nur für eine Demo oder Engine-Überprüfung, --skip-install nur für das Gerüst, oder --npm-cli /path/to/npm-cli.js, wenn Node verfügbar ist, npm aber nicht im PATH liegt. NPM_CLI_JS ist ein gleichwertiger Umgebungs-Override. Er überschreibt kein nicht leeres Projekt.

Lies die generierte ANIMATION_GUIDE.md vollständig, bevor du entwirfst. Überprüfe docs/emotions.jpg und docs/views.jpg mit einem verfügbaren Bildbetrachter (z. B. view_image über die Ausführungswerkzeuge). Die Anleitung enthält die Engine- und Charakter-API. Lies references/music-video.md für MVs oder Videos länger als etwa 20 Sekunden. Lies references/codex-runtime.md für Laufzeitprobleme, Plattformbefehle und Renderer-Einschränkungen.

Planen und bauen

Verwende die vorhandenen Entscheidungen des Benutzers. Frage nur nach fehlenden Informationen, die die Arbeit maßgeblich beeinflussen; wiederhole keine beantworteten Fragen. Sammle für ein MV die Audio- und Timing-Quelle. Ein Lyric-Video benötigt bereitgestellte Liedtexte mit LRC oder äquivalenten Zeitstempeln; erfinde keine fehlenden Liedtexte. Ein instrumentales MV benötigt kein LRC. Wenn die kreative Richtung fehlt, kann eine optionale Frage Story, Stimmung, wiederkehrende Bilder und Dinge, die vermieden werden sollten, abdecken. Wenn der Benutzer die Regie delegiert, schlage eine kohärente Interpretation vor und fahre damit fort.

Messe Musik mit python "<skill-dir>/scripts/beat_grid.py" song.mp3 --from=0 --to=30 --lrc=song.lrc (erfordert NumPy und FFmpeg). Behandle das Tempo als Schätzung mit Halb-/Doppelzeit-Mehrdeutigkeit; bereitgestelltes Audio und Zeitstempel definieren das Timing. LRC timt normalerweise Zeilen, daher ist die karaokeartige zeichenweise Füllung eine Annäherung, sofern keine Wort-für-Wort-Timings bereitgestellt werden. Gib keine erzwungene Ausrichtung an.

Schreibe STORYBOARD.md: Logline, Welt- und Palettenbogen, visuelles Motiv, emotionaler Bogen und Einstellungen mit Zeitbereichen, Aktion, Betrachterwahrnehmung und Übergängen. Teile die Richtung zur Überprüfung, wenn nützlich; wenn der Benutzer dich gebeten hat, fortzufahren, mache weiter. Das vollständige Arbeitsbeispiel ist examples/xiaozhen/STORYBOARD.md, mit den dazugehörigen Szenendateien.

Setze duration, bpm, offset und optional audio in src/config.js. Implementiere Szenen als IIFEs in src/scenes/, registriere shots([[t0, fn], ...]) und binde ihre Skripte in studio.html ein. Blockiere zuerst lesbare Posen. Verwende eine gemeinsame Besetzung, Palette und wiederkehrende Motive über die Einstellungen hinweg.

Rendern und überprüfen

Rendere vom Projektverzeichnis aus bei Bedarf ausgewählte Frames, einen kurzen Bewegungsstreifen und Details:

node render.mjs --sheet=0.1,0.8,1.6,2.4 --cols=4 --w=480 --out=out/check/poses.jpg
node render.mjs --strip=2.1:2.6 --out=out/check/motion.jpg
node render.mjs --sheet=2.3 --crop=760,420,500,400 --w=500 --out=out/check/face.jpg

Öffne die generierten Bilder. Überprüfe das Ereignis und die Lesezeit jeder Einstellung, Gesichter, Requisitenkontakt, Charaktergröße, Übergänge und Palette. Überprüfe die Bewegung um Schlüsselaktionen und Nähte. Behebe beobachtete Probleme und überprüfe dann die betroffenen Frames erneut. Ein Kontaktbogen überprüft Posen und Kontinuität; überprüfe eine kurze codierte Vorschau auf wichtiges Bewegungs-Timing. Behaupete keine visuelle Überprüfung allein aus dem Quellcode.

Verwende gemessene ms/Frame und Frame-Anzahl, um die endgültigen Kosten abzuschätzen. Diese Desktop-Umgebung ist lokal: Eine Anfrage zum Erstellen eines Videos autorisiert normalerweise das lokale Rendern. Respektiere eine explizite lokale/Cloud-Wahl; füge kein obligatorisches Standortgenehmigungsgate hinzu und verwende keinen kostenpflichtigen/Cloud-Dienst ohne Autorisierung. Wenn die Arbeit tatsächlich remote ist und der Renderort wesentlich ist, kläre dies vor einem vollständigen Render. Bewahre ein ausführbares Projekt und Vorschauen auf, wenn der Benutzer nur Quellcode oder lokale Befehle anfordert.

node render.mjs --clip --out=out/video.mp4
node render.mjs --frames --workers=4
node render.mjs --encode --audio=assets/song.mp3 --out=out/video.mp4

Verwende die gleichen --fps beim Frame-Rendering und der Kodierung. Framedateien sind fortsetzbar, aber zwischengespeicherte Frames müssen für geänderte Zeitbereiche vor dem erneuten Rendern entfernt werden. --encode verbraucht ab Null beginnende Frames; ein Teilbereich, der später beginnt, benötigt seine eigene FFmpeg-Startnummer und passenden Audio-Trim (siehe Laufzeitreferenz).

Überprüfe die codierte Dauer, Auflösung, fps und Audio mit ffprobe und überprüfe das Ergebnis. Gib die Video- und Projektpfade, gemessene Leistung und alle realen Einschränkungen zurück. Halte node_modules, Frame-Caches und temporäre Dateien aus portablen Quellarchiven heraus.

Visuelle und Engine-Invarianten

  • Male mit paint() und inkLine(); verwende glow() für additives Licht. Flache 2D gezeichnete Schlüsselansichten, weiche Palette, kochende Tinte. Dies sind Stilstandardeinstellungen; explizite Benutzeranforderungen haben Vorrang.
  • Vermeide unnötigen Text; Lyric-Karaoke und angeforderte Beschriftung werden unterstützt. Lade src/karaoke.js nach timeline.js, fülle LY und halte die Aktion über dem unteren Bereich. Überprüfe die tatsächliche Schriftart und chinesische Zeichen.
  • Jede Einstellung benötigt ein Ereignis, Ursache gefolgt von Reaktion und eine lesbare gehaltene Bedeutung. Anime Gesichter durch emotions() und Leerlauf durch feel(). Passe Übergänge an die Geschichte an und verbinde gegebenenfalls das Ende mit dem Anfang.
  • Jeder Frame ist eine reine Funktion von t: keine akkumulierte Simulation, kein ungeseeder Math.random() und keine Abhängigkeit von der Render-Reihenfolge. Verwende hash() für stabile Variation und boilSeed(key) pro unabhängigem Element.
  • Halte Helfer in Szenen-IIFEs, um p5-globale Namenskollisionen zu vermeiden. Schütze vor degenerierter Geometrie und NaN. Maskiere Tür-/Fensterinhalte mit Vordergrundrahmen; reduziere das Konturgewicht bei engem Zoom.
  • Die Leistung hängt von Pinselfüllungen und Strichen ab. Messe einige repräsentative Frames, bevor die Auflösung erhöht wird; reduziere übermäßige Geometrie und Worker-Anzahl, wenn der GPU-Speicher knapp wird. --soft-gl ist ein langsamer Fallback, keine Standardoptimierung.
  • Implementiere Kapitel sequenziell, es sei denn, der Benutzer fragt explizit nach Agenten. Parallele Render-Worker sind ein Renderer-Feature und erfordern keine Unteragenten.

Quelle und Lizenz: references/upstream.md. Behalte beide gebündelten MIT-Hinweise bei der Weiterverteilung der Engine oder Fähigkeit.

Verwandte Skills