Generador de Prompts de Mundo Hy-Nomas
Genera prompts JSON estructurados válidos para el modelo de video world model Hy-Nomas de Tencent ejecutándose en ComfyUI a través de ComfyUI-Hy-Nomas.
Por qué es importante el JSON estructurado
Hy-Nomas fue entrenado con subtítulos JSON estructurados, no con texto libre. El modelo utiliza máscaras de atención por acción derivadas de la estructura JSON — los fotogramas de video de cada acción solo atienden al texto de esa acción. Los prompts sueltos en inglés sencillo son ignorados en su mayoría después del primer segmento; el sujeto simplemente sigue haciendo lo que hacía. Seguir este formato exactamente es lo que hace que los segmentos subsiguientes funcionen.
Tipos de generación de video
Identifica qué tipo necesita el usuario y genera en consecuencia:
| Tipo | Cuándo usarlo | Características clave |
|---|---|---|
| Texto-a-Mundo | Sin imagen inicial, generación pura | visual_description_long completo en el segmento 0, sujeto definido en subject_list |
| Imagen-a-Mundo | El usuario proporciona una imagen inicial | El segmento 0 describe la imagen (duración de 1s, contained_actions vacío), los segmentos 1+ continúan a partir de ella |
| Cámara Controlada | Órbita, seguimiento o ruta de cámara específica | Movimientos de cámara mediante etiquetas <Camera1> O nodos externos de Camera Keys/Recording; description_change describe la escena desde el nuevo punto de vista |
| Conducción Interactiva | Dirección por teclado en tiempo real | Giros cortos de 1s, estructura de prompt mínima, el usuario dirige con W/A/S/D |
| Segmentos Encadenados Múltiples | Mundos continuos largos (10-20s+) | Múltiples segmentos con description_change, acciones temporizadas no superpuestas |
Esquema JSON principal
Cada prompt de mundo debe ser un único objeto JSON con estas claves exactas de nivel superior:
{
"perspective_view": "third-person observer",
"Style": "CG",
"subject_list": [...],
"segments": [...]
}
Referencia de campos obligatorios
Para la especificación completa campo por campo, incluidos valores permitidos, reglas de formato y casos límite, lee references/prompt-format-spec.md.
Referencia rápida
perspective_view (cadenas exactas):
"first-person"— La cámara ES el sujeto"second-person"— La cámara mira al sujeto"third-person follow"— Cámara detrás del sujeto, sigue su movimiento"third-person observer"— Cámara externa fija/independiente
Style (cadenas exactas):
"real-world footage""animation/anime""CG""video game"
subject_list: Array con exactamente un objeto de sujeto que contiene subject_id, display_name, subject_attribute.
segments: Array de objetos de segmento con start_time, end_time, y ya sea visual_description_long (solo el primer segmento) o description_change (todos los segmentos posteriores).
Reglas críticas
Estas reglas provienen de cómo fue entrenado el modelo y cómo funcionan las máscaras de atención. Violarlas causa fallos silenciosos.
-
El primer segmento recibe
visual_description_long(80-200 palabras que describen SOLO LA ESCENA, nunca el sujeto). Todos los segmentos posteriores usandescription_changeen su lugar. -
description_changesiempre comienza con "Compared to the previous segment, " — incluso cuando no cambia nada:"Compared to the previous segment, the visible scene, background, and other-object layout remain unchanged." -
Las acciones usan etiquetas tipo XML:
<Action1><|Subject1|> hace algo</Action1>.— numeradas secuencialmente desde 1 dentro de cada segmento, siempre refiriéndose al sujeto con<|Subject1|>. -
Las acciones no deben superponerse en el tiempo dentro de un segmento. Cada acción tiene su propia ventana
start_time/end_time. -
Las marcas de tiempo tienen formato
"MM:SS.mmm":"00:00.000","00:05.000","00:07.500". Internamente se normalizan a tiempos relativos al segmento. -
Longitudes de segmento: 2-5 segundos funciona bien. 24 fps, 4 fotogramas de video por fotograma latente.
-
Los movimientos de cámara en texto usan etiquetas
<Camera1>...</Camera1>dentro dedescription_changeovisual_description_long. Pero los nodos de Camera Keys/Recording dirigen de manera mucho más fiable que las descripciones de cámara en texto. -
Para imagen-a-mundo: El segmento 0 debe durar ~1 segundo, describir la imagen fielmente, tener
contained_actions: []vacío. La apariencia del sujeto ensubject_attributedebe coincidir con la imagen. -
El atributo del sujeto incluye texto estándar de perspectiva: Para tercera persona de seguimiento:
"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."Para tercera persona observador:"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."Para primera persona:"The first-person operator is embodied by the camera, and has the same first-person viewpoint as the camera throughout the whole video."
Flujo de trabajo
- Identificar el tipo de generación a partir de la solicitud del usuario (¿solo texto? ¿tiene imagen? ¿control de cámara? ¿modo de conducción?)
- Hacer preguntas aclaratorias si es necesario: perspectiva, estilo, descripción del sujeto, duración deseada, número de segmentos
- Generar el JSON completo siguiendo el esquema exactamente
- Validar antes de presentar:
- JSON válido (analizable)
- Todas las claves requeridas presentes
- Marcas de tiempo en formato correcto y sin superposición
- El primer segmento tiene
visual_description_long, el resto tienedescription_change - Acciones correctamente etiquetadas y numeradas
- Sujeto referenciado consistentemente como
<|Subject1|>
- Presentar el JSON en un bloque de código listo para pegar en el nodo World Prompt de ComfyUI
Errores comunes
- Nombrar al sujeto por su nombre en lugar de
<|Subject1|>en las acciones → el modelo ignora la acción - Poner la descripción del sujeto en
visual_description_long→ la descripción de la escena debe ser solo del entorno - Falta el prefijo "Compared to the previous segment, " en
description_change→ continuidad inconsistente del mundo - Tiempos de acción superpuestos → comportamiento indefinido en las máscaras de atención
- Usar
visual_description_longen el segmento 1+ → el analizador lo elimina de todos modos - Cambios globales repentinos de escena (por ejemplo, "fuerte tormenta de nieve") → el modelo mantiene la consistencia del mundo; los cambios ocurren gradualmente dentro de los segmentos
Prompts de ejemplo
Para ejemplos completos y funcionales que cubren todos los tipos de generación, lee references/examples.md.
Detalles técnicos
- Codificador de texto: Qwen2.5-VL-7B (el mismo que Qwen-Image)
- DiT: Latente DCAE-V de 32 canales, pesos destilados INT8
- Muestreo: euler / simple / 8 pasos / cfg 1
- Resolución: 1280×704 (720p) o 832×480
- FPS: 24
- Historial: Se conservan 18 fotogramas latentes por segmento
- Fuente: ComfyUI-Hy-Nomas · Tencent Hy-Nomas