Communitygithub.com

Générateur de prompts Hy-Nomas

Générez des prompts JSON structurés pour le modèle de monde vidéo Hy-Nomas de Tencent dans ComfyUI. Utilisez cette compétence pour créer des prompts vidéo, formater des descriptions de monde en JSON, ou déboguer des prompts Hy-Nomas.

Qu'est-ce que Générateur de prompts Hy-Nomas ?

Cette compétence génère des prompts JSON structurés pour le modèle de monde vidéo Hy-Nomas de Tencent, exécuté dans ComfyUI via le plugin ComfyUI-Hy-Nomas. Elle est essentielle car Hy-Nomas a été entraîné sur des légendes JSON structurées et non sur du texte libre ; chaque action utilise des masques d'attention dérivés de la structure JSON. La compétence couvre tous les modes de génération : texte-vers-monde, image-vers-monde, contrôle caméra, conduite interactive, et mondes chaînés multi-segments. En suivant le schéma précis, elle garantit que les actions et les changements de scène sont correctement interprétés, évitant les échecs silencieux comme l'ignorance des actions ou la perte de continuité du monde.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/benjiyaya/hy-nomas-prompts/tree/HEAD

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Générateur de prompts de monde Hy-Nomas

Générez des prompts JSON structurés valides pour le modèle de monde vidéo Hy-Nomas de Tencent, exécuté dans ComfyUI via ComfyUI-Hy-Nomas.

Pourquoi le JSON structuré est important

Hy-Nomas a été entraîné sur des légendes JSON structurées, et non sur du texte libre. Le modèle utilise des masques d'attention par action dérivés de la structure JSON — les trames vidéo de chaque action n'accordent leur attention qu'au texte de cette action. Les prompts en langage naturel lâches sont largement ignorés après le premier segment ; le sujet continue simplement de faire ce qu'il faisait. Suivre ce format exactement est ce qui permet aux segments suivants de fonctionner.

Types de génération vidéo

Identifiez le type dont l'utilisateur a besoin et générez en conséquence :

TypeQuand l'utiliserCaractéristiques clés
Texte-vers-MondePas d'image de départ, génération purevisual_description_long complet dans le segment 0, sujet défini dans subject_list
Image-vers-MondeL'utilisateur fournit une image de départLe segment 0 décrit l'image (durée de 1s, contained_actions vide), les segments 1+ continuent à partir de celle-ci
Caméra contrôléeOrbite, suivi, ou chemin de caméra spécifiqueMouvements de caméra via des balises <Camera1> OU des nœuds externes Camera Keys/Recording ; description_change décrit la scène depuis le nouveau point de vue
Conduite interactiveDirection au clavier en temps réelVirages courts de 1s, structure de prompt minimale, l'utilisateur dirige avec W/A/S/D
Multi-segments chaînésMondes continus longs (10-20s+)Plusieurs segments avec description_change, actions chronométrées non chevauchantes

Schéma JSON de base

Chaque prompt de monde doit être un seul objet JSON avec ces clés de niveau supérieur exactes :

{
  "perspective_view": "third-person observer",
  "Style": "CG",
  "subject_list": [...],
  "segments": [...]
}

Référence des champs obligatoires

Pour la spécification complète champ par champ, y compris les valeurs autorisées, les règles de formatage et les cas limites, lisez references/prompt-format-spec.md.

Référence rapide

perspective_view (chaînes exactes) :

  • "first-person" — La caméra EST le sujet
  • "second-person" — La caméra fait face au sujet
  • "third-person follow" — Caméra derrière le sujet, suit le mouvement
  • "third-person observer" — Caméra externe fixe/indépendante

Style (chaînes exactes) :

  • "real-world footage"
  • "animation/anime"
  • "CG"
  • "video game"

subject_list : Tableau avec exactement un objet sujet contenant subject_id, display_name, subject_attribute.

segments : Tableau d'objets de segment avec start_time, end_time, et soit visual_description_long (premier segment uniquement) soit description_change (tous les segments suivants).

Règles critiques

Ces règles proviennent de la manière dont le modèle a été entraîné et du fonctionnement des masques d'attention. Leur violation entraîne des échecs silencieux.

  1. Le premier segment reçoit visual_description_long (80-200 mots décrivant la SCÈNE UNIQUEMENT, jamais le sujet). Tous les segments suivants utilisent description_change à la place.

  2. description_change commence toujours par "Compared to the previous segment, " — même quand rien ne change : "Compared to the previous segment, the visible scene, background, and other-object layout remain unchanged."

  3. Les actions utilisent des balises de type XML : <Action1><|Subject1|> fait quelque chose</Action1>. — numérotées séquentiellement à partir de 1 dans chaque segment, référençant toujours le sujet par <|Subject1|>.

  4. Les actions ne doivent pas se chevaucher dans le temps au sein d'un segment. Chaque action a sa propre fenêtre start_time/end_time.

  5. Les horodatages sont au format "MM:SS.mmm" : "00:00.000", "00:05.000", "00:07.500". Normalisés en interne en temps relatifs au segment.

  6. Longueurs des segments : 2-5 secondes fonctionnent bien. 24 ips, 4 trames vidéo par trame latente.

  7. Les mouvements de caméra dans le texte utilisent des balises <Camera1>...</Camera1> à l'intérieur de description_change ou visual_description_long. Mais les nœuds Camera Keys/Recording dirigent beaucoup plus fiablement que les descriptions textuelles de caméra.

  8. Pour l'image-vers-monde : Le segment 0 doit durer environ 1 seconde, décrire l'image fidèlement, avoir contained_actions: [] vide. L'apparence du sujet dans subject_attribute doit correspondre à l'image.

  9. L'attribut du sujet inclut le texte passe-partout de perspective : Pour le suivi à la troisième personne : "The camera is placed behind the X, and follows the X throughout the whole video. The camera is tracking the X and the X should be placed in the center of the video." Pour l'observateur à la troisième personne : "The camera films the X from an external position, and the X is visible in the video. The framing of the video from the camera is independent of the X, and does not follow the movement of the X." Pour la première personne : "The first-person operator is embodied by the camera, and has the same first-person viewpoint as the camera throughout the whole video."

Flux de travail

  1. Identifiez le type de génération à partir de la demande de l'utilisateur (texte uniquement ? a une image ? contrôle caméra ? mode conduite ?)
  2. Posez des questions de clarification si nécessaire : perspective, style, description du sujet, durée souhaitée, nombre de segments
  3. Générez le JSON complet en suivant exactement le schéma
  4. Validez avant de présenter :
    • JSON valide (analysable)
    • Toutes les clés requises présentes
    • Horodatages au format correct et non chevauchants
    • Le premier segment a visual_description_long, les autres ont description_change
    • Actions correctement balisées et numérotées
    • Sujet référencé de manière cohérente comme <|Subject1|>
  5. Présentez le JSON dans un bloc de code prêt à être collé dans le nœud World Prompt de ComfyUI

Pièges courants

  • Nommer le sujet par son nom au lieu de <|Subject1|> dans les actions → le modèle ignore l'action
  • Mettre la description du sujet dans visual_description_long → la description de la scène doit être uniquement l'environnement
  • Omettre le préfixe "Compared to the previous segment, " dans description_change → continuité du monde incohérente
  • Temps d'action qui se chevauchent → comportement indéfini dans les masques d'attention
  • Utiliser visual_description_long dans le segment 1+ → de toute façon supprimé par l'analyseur
  • Changements soudains de scène globale (par exemple, "tempête de neige intense") → le modèle maintient la cohérence du monde ; les changements se produisent progressivement dans les segments

Exemples de prompts

Pour des exemples complets fonctionnels couvrant tous les types de génération, lisez references/examples.md.

Détails techniques

  • Encodeur de texte : Qwen2.5-VL-7B (identique à Qwen-Image)
  • DiT : latent DCAE-V 32 canaux, poids distillés INT8
  • Échantillonnage : euler / simple / 8 étapes / cfg 1
  • Résolution : 1280×704 (720p) ou 832×480
  • FPS : 24
  • Historique : 18 trames latentes conservées par segment
  • Source : ComfyUI-Hy-Nomas · Tencent Hy-Nomas

Skills associés