Que fait Personnage Kobutai ?
Kobutai (小舞台) est une extension de navigateur et une application desktop : un petit personnage chibi se produit sur la page pendant que la musique, les vidéos, les streams ou les podcasts jouent. Ce skill transforme l'image du personnage préféré de l'utilisateur (ou une description) en un personnage que Kobutai peut importer :
upload ─► fiche personnage ─► planche de profil + pose de base ─► GIFs d'état ─► make_pack.py ─► pet.json + spritesheet.webp
Répondre dans la langue de l'utilisateur (anglais, 日本語 ou 中文). Conserver les prompts d'images en anglais.
Lire ces fichiers lorsque vous arrivez à l'étape qui en a besoin :
references/kobutai-contract.md- géométrie de la planche, quel GIF correspond à quel état Kobutai, règles d'import et de partagereferences/prompts.md- chaque prompt d'image, les blocs de style, et les listes d'actions par performancereferences/originality.md- que faire avec les personnages tiers, les OC, les animaux de compagnie et les vraies personnes
Génération d'images
Utiliser la génération d'images intégrée de l'hôte pour chaque image :
- Codex : le skill système
$imagegen(outilimage_genintégré). Ne pas appeler l'API Image ou une CLI à moins que l'utilisateur ne le demande explicitement ; ce chemin nécessite sa clé API. - ChatGPT : génération d'images native.
Les images 2.6 (Nov 2026) peuvent retourner des GIFs animés. Demander un GIF pour chaque état animé. Si l'hôte renvoie une image fixe, refuse la sortie GIF, ou le GIF est inutilisable, utiliser le plan de secours de la grille dans references/prompts.md (8 trames sous forme de PNG en grille 4 x 2) ; make_pack.py le découpe.
Attacher base.png (et l'upload de l'utilisateur, étiqueté "référence d'identité uniquement") à chaque génération d'état. Un état généré sans la base attachée est invalide : le régénérer.
Liste de progression
Afficher et mettre à jour cette liste de contrôle (liste de tâches si l'hôte en a une) :
- Lecture de votre personnage
- Dessin de la planche de profil
- Animation des états
- Empaquetage pour Kobutai
- Vérification et livraison
Flux de travail
1. Lire le personnage
Regarder chaque image téléchargée et écrire RUN/character.json (RUN = kobutai-<id>/ dans l'espace de travail ; dans ChatGPT, /mnt/data/kobutai-<id>/). Les champs et un exemple sont dans references/prompts.md § Fiche personnage. Décider :
- mode -
original/own/personalselonreferences/originality.md. Par défaut pour un personnage tiers reconnaissable :original: un personnage original inspiré de son humeur, ses couleurs et son rôle, pas une copie. - style -
kobutai(style chibi maison, correspond au casting intégré ; par défaut) oukeep(conserver le style artistique de l'upload, toujours compact et en pied). - scene - ce que le personnage fait pendant que le contenu joue (chanter, danser, DJ, jouer d'un instrument, écouter confortablement, regarder et réagir, prendre des notes...). Choisir dans § Scènes de performance.
- genres / type - tags Kobutai suggérés, utilisés plus tard dans la boîte de dialogue de partage de l'extension.
- chroma -
#00FF00, ou#FF00FFlorsque le personnage a du vert dedans.
Envoyer à l'utilisateur UN SEUL message court avec la fiche (nom, apparence en une ligne, mode, style, scène, tags) et lui demander de confirmer ou de modifier quoi que ce soit. Procéder avec les valeurs par défaut s'il dit "va" ou s'il ne s'en soucie pas. Si l'upload n'a pas de personnage unique clair, demander lequel.
2. Planche de profil et pose de base
- Générer
RUN/profile.pngavec § Planche de profil : vues de face, trois-quarts, profil et dos, quatre expressions et une bande de palette, sans texte. C'est la feuille de modèle de l'utilisateur ; la lui montrer. - Générer
RUN/base.pngavec § Pose de base, en attachantprofile.png: une pose debout détendue en pied, vue trois-quarts, sur fond chroma uni. Chaque état est dessiné à partir de celle-ci.
Si l'identité est erronée (visage, cheveux, tenue, palette), la corriger ici ; chaque étape ultérieure copie base.png.
3. Animer les états
Générer dans RUN/states/, un travail par fichier, base.png attaché à chaque fois :
| Fichier | Utilisation Kobutai | Requis |
|---|---|---|
idle.gif | en attente, rien ne joue | oui |
playing.gif | la boucle de performance pendant que le contenu joue (le plus important) | oui |
paused.png | UNE pose figée "en attente" (Kobutai tient une seule image) | recommandé |
appear.gif | entrée, jouée une fois lorsque le personnage est dessiné | recommandé |
click.gif | réaction lorsqu'on le tapote, jouée une fois | recommandé |
error.gif | boucle confuse / triste | optionnel |
walk.gif, review.gif | utilisés uniquement lorsque le pack est aussi un pet Codex | optionnel |
Utiliser § État GIF avec la liste d'actions pour la scène choisie. Ordre : idle et playing en premier, les vérifier, puis le reste. Après chaque fichier, vérifier rapidement : même personnage, environ 8 trames distinctes, un fond uni, corps entier dans le cadre, pieds sur une même ligne de base, pas de texte, pas d'effets flottants. Régénérer un état défaillant seul avec § Réparation ; ne jamais redémarrer tout le run pour un mauvais état.
Les GIFs/PNGs téléchargés depuis ChatGPT ou $CODEX_HOME/generated_images/ doivent être copiés dans RUN/states/ avec exactement ces noms.
4. Empaqueter
python3 <skill_dir>/scripts/make_pack.py RUN # Kobutai (jusqu'à 8 trames par ligne)
python3 <skill_dir>/scripts/make_pack.py RUN --target codex # comptes exacts de trames pour pet Codex
Nécessite Pillow + numpy (pip install pillow numpy, scipy optionnel). Le script supprime le fond (ou conserve la transparence réelle), supprime les trames en double, harmonise l'échelle entre les GIFs, aligne les pieds, écrit la feuille 1536 x 1872 Petdex/Codex et la valide exactement comme le fait l'importateur Kobutai. Options : --grid playing=4x2 pour une image en grille avec une autre disposition, --scale click=0.9 lorsqu'une source est trop grande ou trop petite, --key-low/--key-high pour un fond tenace.
Le code de sortie 2 signifie que la validation a échoué ; lire out/qa/report.json, corriger la source, relancer.
Si l'hôte ne peut pas exécuter Python (certaines configurations ChatGPT), livrer profile.png, base.png, les fichiers d'état et character.json sous forme de zip et dire à l'utilisateur d'exécuter la même commande localement.
5. Vérifier et livrer
Ouvrir out/qa/contact.png et out/qa/preview.gif et regarder. Rejeter et réparer quand :
- une ligne change le visage, les cheveux, la tenue, la palette ou les accessoires
- le personnage change de taille ou saute latéralement entre les trames ou entre les états
- une pose est coupée au bord de la cellule, ou le fond a laissé une frange colorée ou des points
- la boucle de jeu est visuellement statique, ou idle est un grand mouvement
- à environ 120 px de haut (la taille d'affichage de Kobutai) le personnage n'est plus reconnaissable
Puis livrer :
kobutai-<id>.zipcontenant<id>/pet.json+<id>/spritesheet.webpprofile.pngetpreview.gifpour regarder et partager- Comment l'utiliser (depuis
references/kobutai-contract.md§ Import) : Kobutai → Importer → choisirpet.jsonetspritesheet.webpensemble. Optionnel : copier le dossier dans~/.codex/pets/<id>/pour l'utiliser aussi comme pet Codex. - Uniquement pour les modes
originaletown: ils peuvent le soumettre à la bibliothèque communautaire hebdomadaire depuis l'extension (Mes personnages importés → Partager avec tout le monde, CC BY 4.0, nom de crédit requis), avec les genres de la fiche. Pour le modepersonaldire clairement qu'il est pour leur usage personnel uniquement.
Conserver RUN/ (fiche, profil, base, états) afin qu'un futur "rendre la danse plus rapide" ou "refaire le clic" ne régénère qu'un seul état.
Coût
Un run complet représente environ 8 générations d'images (profil, base, idle, playing, paused, appear, click, error optionnel) plus les réparations. Informer l'utilisateur avant de démarrer un second run complet.