Was macht Kobutai-Charakter?
Kobutai (小舞台) ist eine Browsererweiterung und Desktop-App: Eine kleine Chibi-Figur tritt auf der Seite auf, während Musik, Videos, Live-Streams oder Podcasts laufen. Dieses Skill verwandelt das Lieblingsbild eines Charakters (oder eine Beschreibung) in einen Charakter, den Kobutai importieren kann:
upload ─► character card ─► profile sheet + base pose ─► state GIFs ─► make_pack.py ─► pet.json + spritesheet.webp
Antworte in der Sprache des Benutzers (Deutsch, Englisch, 日本語 oder 中文). Behalte Bild-Prompts in Englisch.
Lies diese Dateien, wenn du den Schritt erreichst, der sie benötigt:
references/kobutai-contract.md– Blattgeometrie, welches GIF welchen Kobutai-Zustand ergibt, Import- und Freigaberegelnreferences/prompts.md– alle Bild-Prompts, die Stilblöcke und Aktionen pro Performancereferences/originality.md– was mit Drittanbieter-Charakteren, OCs, Haustieren und echten Personen zu tun ist
Bildgenerierung
Nutze die integrierte Bildgenerierung des Hosts für jedes Bild:
- Codex: Das
$imagegen-System-Skill (integriertesimage_gen-Tool). Verwende nicht die Image-API oder ein CLI, es sei denn, der Benutzer bittet explizit darum; dieser Pfad benötigt seinen API-Key. - ChatGPT: native Bildgenerierung.
Bilder 2.6 (Nov 2026) können animierte GIFs zurückgeben. Fordere ein GIF für jeden animierten Zustand an. Wenn der Host ein Standbild zurückgibt, die GIF-Ausgabe verweigert oder das GIF unbrauchbar ist, verwende den Grid-Fallback in references/prompts.md (8 Frames als 4x2-Raster-PNG); make_pack.py schneidet es zurecht.
Hänge bei jeder Zustandsgenerierung base.png (und den Benutzer-Upload, beschriftet als „identity reference only“) an. Ein ohne die Basis generierter Zustand ist ungültig: Generiere ihn neu.
Fortschrittsliste
Zeige und aktualisiere diese Checkliste (Aufgabenliste, falls der Host eine hat):
- Charakter lesen
- Profilblatt zeichnen
- Zustände animieren
- Für Kobutai packen
- Prüfen und ausliefern
Arbeitsablauf
1. Charakter lesen
Sieh dir jedes hochgeladene Bild an und schreibe RUN/character.json (RUN = kobutai-<id>/ im
Arbeitsbereich; in ChatGPT, /mnt/data/kobutai-<id>/). Felder und ein Beispiel findest du in
references/prompts.md § Charakterkarte. Entscheide:
- Modus –
original/own/personalgemäßreferences/originality.md. Standard für einen erkennbaren Drittanbieter-Charakter istoriginal: ein Originalcharakter, inspiriert von Stimmung, Farben und Rolle, keine Kopie. - Stil –
kobutai(Haus-Chibi-Stil, passend zum integrierten Cast; Standard) oderkeep(Behalte den Kunststil des Uploads, trotzdem kompakt und ganzkörper). - Szene – was der Charakter tut, während Inhalt läuft (singen, tanzen, DJ, Instrument spielen, gemütlich zuhören, zuschauen und reagieren, Notizen machen …). Wähle aus § Performanceszenen.
- Genres / Typ – vorgeschlagene Kobutai-Tags, später im Freigabe-Dialog der Erweiterung verwendet.
- Chroma –
#00FF00, oder#FF00FF, wenn der Charakter Grün enthält.
Sende dem Benutzer EINE kurze Nachricht mit der Karte (Name, Aussehen in einer Zeile, Modus, Stil, Szene, Tags) und bitte ihn, zu bestätigen oder etwas zu ändern. Fahre mit dem Standard fort, wenn er „los“ sagt oder es ihm egal ist. Wenn der Upload keinen eindeutigen einzelnen Charakter hat, frage, welcher gemeint ist.
2. Profilblatt und Grundpose
- Generiere
RUN/profile.pngmit § Profilblatt: Vorder-, Dreiviertel-, Seiten- und Rückansicht, vier Gesichtsausdrücke und ein Farbstreifen, kein Text. Dies ist das Modellblatt für den Benutzer; zeige es ihm. - Generiere
RUN/base.pngmit § Grundpose, hängeprofile.pngan: eine entspannte, vollständige Standpose in Dreiviertelansicht auf dem einfarbigen Chroma-Hintergrund. Jeder Zustand wird daraus gezeichnet.
Wenn die Identität nicht stimmt (Gesicht, Haare, Outfit, Palette), korrigiere es hier; jeder spätere Schritt kopiert base.png.
3. Zustände animieren
Generiere in RUN/states/, ein Auftrag pro Datei, jedes Mal mit base.png:
| Datei | Kobutai-Verwendung | Erforderlich |
|---|---|---|
idle.gif | Warten, nichts läuft | ja |
playing.gif | Performanceschleife während Inhaltswiedergabe (am wichtigsten) | ja |
paused.png | EINE stehende „Warte auf dich“-Pose (Kobutai hält einen einzelnen Frame) | empfohlen |
appear.gif | Auftritt, einmal abgespielt, wenn der Charakter gezeichnet wird | empfohlen |
click.gif | Reaktion bei Berührung, einmal abgespielt | empfohlen |
error.gif | verwirrte / traurige Schleife | optional |
walk.gif, review.gif | nur verwendet, wenn das Paket auch ein Codex-Pet ist | optional |
Verwende § Zustands-GIF mit der Aktionsliste für die gewählte Szene. Reihenfolge: zuerst idle und playing, prüfe sie, dann den Rest. Prüfe nach jeder Datei schnell: gleicher Charakter, etwa 8 verschiedene Frames, ein einfarbiger Hintergrund, ganzer Körper im Frame, Füße auf einer Grundlinie, kein Text, keine schwebenden Effekte. Generiere einen fehlschlagenden Zustand allein mit § Reparatur; starte nie den gesamten Durchlauf für einen schlechten Zustand neu.
Heruntergeladene GIFs/PNGs von ChatGPT oder $CODEX_HOME/generated_images/ müssen genau mit diesen Namen
in RUN/states/ kopiert werden.
4. Packen
python3 <skill_dir>/scripts/make_pack.py RUN # Kobutai (bis zu 8 Frames pro Zeile)
python3 <skill_dir>/scripts/make_pack.py RUN --target codex # exakte Codex-Pet-Frame-Anzahl
Benötigt Pillow + numpy (pip install pillow numpy, scipy optional). Das Skript entfernt den
Hintergrund (oder behält echte Transparenz), entfernt doppelte Frames, passt die Skalierung über GIFs hinweg an,
richtet Füße aus, schreibt das 1536 x 1872 Petdex/Codex-Blatt und validiert es exakt so, wie Kobutais Importer es tut.
Optionen: --grid playing=4x2 für ein Rasterbild mit einem anderen Layout, --scale click=0.9, wenn
eine Quelle zu groß oder zu klein wurde, --key-low/--key-high für einen hartnäckigen Hintergrund.
Exit-Code 2 bedeutet, dass die Validierung fehlgeschlagen ist; lies out/qa/report.json, korrigiere die Quelle und führe erneut aus.
Wenn der Host kein Python ausführen kann (manche ChatGPT-Setups), liefere profile.png, base.png, die Zustandsdateien
und character.json als ZIP und sage dem Benutzer, er solle denselben Befehl lokal ausführen.
5. Prüfen und ausliefern
Öffne out/qa/contact.png und out/qa/preview.gif und sieh sie dir an. Lehne ab und repariere, wenn:
- eine Zeile Gesicht, Haare, Outfit, Palette oder Requisiten ändert
- der Charakter in der Größe springt oder seitwärts zwischen Frames oder Zuständen hüpft
- eine Pose am Zellenrand abgeschnitten ist oder der Hintergrund einen farbigen Rand oder Flecken hinterlassen hat
- die Abspielschleife visuell statisch ist oder idle eine große Bewegung ist
- der Charakter bei etwa 120 Pixel Höhe (der Größe, in der Kobutai ihn anzeigt) nicht mehr erkennbar ist
Dann liefere aus:
kobutai-<id>.zipmit<id>/pet.json+<id>/spritesheet.webpprofile.pngundpreview.gifzum Anschauen und Teilen- Wie man es verwendet (aus
references/kobutai-contract.md§ Import): Kobutai → Import → wählepet.jsonundspritesheet.webpzusammen aus. Optional: Kopiere den Ordner nach~/.codex/pets/<id>/, um es auch als Codex-Pet zu verwenden. - Nur für Modus
originalundown: Der Benutzer kann es der wöchentlichen Community-Bibliothek aus der Erweiterung hinzufügen (Meine importierten Charaktere → Mit allen teilen, CC BY 4.0, Namensnennung erforderlich), mit den Genres aus der Karte. Sage für Moduspersonalklar, dass es nur für den eigenen Gebrauch bestimmt ist.
Behalte RUN/ (Karte, Profil, Basis, Zustände), damit ein späteres „mache den Tanz schneller“ oder „wiederhole Klick“
nur einen Zustand neu generiert.
Kosten
Ein vollständiger Durchlauf erfordert etwa 8 Bildgenerierungen (Profil, Basis, idle, playing, paused, appear, click, optional error) plus Reparaturen. Sage es dem Benutzer, bevor du einen zweiten vollständigen Durchlauf startest.