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 :
| Type | Quand l'utiliser | Caractéristiques clés |
|---|---|---|
| Texte-vers-Monde | Pas d'image de départ, génération pure | visual_description_long complet dans le segment 0, sujet défini dans subject_list |
| Image-vers-Monde | L'utilisateur fournit une image de départ | Le 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ée | Orbite, suivi, ou chemin de caméra spécifique | Mouvements 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 interactive | Direction au clavier en temps réel | Virages courts de 1s, structure de prompt minimale, l'utilisateur dirige avec W/A/S/D |
| Multi-segments chaînés | Mondes 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.
-
Le premier segment reçoit
visual_description_long(80-200 mots décrivant la SCÈNE UNIQUEMENT, jamais le sujet). Tous les segments suivants utilisentdescription_changeà la place. -
description_changecommence 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." -
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|>. -
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. -
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. -
Longueurs des segments : 2-5 secondes fonctionnent bien. 24 ips, 4 trames vidéo par trame latente.
-
Les mouvements de caméra dans le texte utilisent des balises
<Camera1>...</Camera1>à l'intérieur dedescription_changeouvisual_description_long. Mais les nœuds Camera Keys/Recording dirigent beaucoup plus fiablement que les descriptions textuelles de caméra. -
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 danssubject_attributedoit correspondre à l'image. -
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
- 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 ?)
- Posez des questions de clarification si nécessaire : perspective, style, description du sujet, durée souhaitée, nombre de segments
- Générez le JSON complet en suivant exactement le schéma
- 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 ontdescription_change - Actions correctement balisées et numérotées
- Sujet référencé de manière cohérente comme
<|Subject1|>
- 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_longdans 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