Hy-Nomas Welt-Prompt Generator
Generiere gültige strukturierte JSON-Welt-Prompts für das Tencent Hy-Nomas Video-Weltmodell, das in ComfyUI über ComfyUI-Hy-Nomas läuft.
Warum strukturiertes JSON wichtig ist
Hy-Nomas wurde mit strukturierten JSON-Beschriftungen trainiert, nicht mit Freitext. Das Modell verwendet pro-Aktion Aufmerksamkeitsmasken, die aus der JSON-Struktur abgeleitet sind – die Videobilder jeder Aktion konzentrieren sich nur auf den Text dieser Aktion. Lose, in einfachem Englisch gehaltene Prompts werden nach dem ersten Segment meist ignoriert; das Subjekt führt einfach die vorherige Aktion fort. Die genaue Einhaltung dieses Formats ist der Schlüssel dafür, dass nachfolgende Segmente funktionieren.
Video-Generierungstypen
Identifiziere, welchen Typ der Benutzer benötigt, und generiere entsprechend:
| Typ | Wann verwenden | Hauptmerkmale |
|---|---|---|
| Text-zu-Welt | Kein Startbild, reine Generierung | Vollständige visual_description_long im Segment 0, Subjekt in subject_list definiert |
| Bild-zu-Welt | Benutzer stellt ein Startbild bereit | Segment 0 beschreibt das Bild (1s Dauer, leere contained_actions), Segmente 1+ setzen darauf auf |
| Kameragesteuert | Orbit, Verfolgung oder spezifischer Kamerapfad | Kamerabewegungen über <Camera1>-Tags ODER externe Kamera-Keys/Recording-Nodes; description_change beschreibt die Szene aus neuer Perspektive |
| Interaktive Fahrt | Echtzeit-Lenkung per Tastatur | Kurze 1s Kurven, minimale Prompt-Struktur, Benutzer steuert mit W/A/S/D |
| Mehrsegmentig Verkettet | Lange kontinuierliche Welten (10-20s+) | Mehrere Segmente mit description_change, nicht überlappende, zeitgesteuerte Aktionen |
Kern-JSON-Schema
Jeder Welt-Prompt muss ein einzelnes JSON-Objekt mit diesen exakten Top-Level-Schlüsseln sein:
{
"perspective_view": "third-person observer",
"Style": "CG",
"subject_list": [...],
"segments": [...]
}
Referenz der Pflichtfelder
Für die vollständige feldweise Spezifikation inklusive erlaubter Werte, Formatierungsregeln und Randfällen lies references/prompt-format-spec.md.
Kurzreferenz
perspective_view (exakte Zeichenfolgen):
"first-person"— Kamera IST das Subjekt"second-person"— Kamera schaut auf das Subjekt"third-person follow"— Kamera hinter dem Subjekt, verfolgt die Bewegung"third-person observer"— Externe feste/unabhängige Kamera
Style (exakte Zeichenfolgen):
"real-world footage""animation/anime""CG""video game"
subject_list: Array mit genau einem Subjektobjekt mit subject_id, display_name, subject_attribute.
segments: Array von Segmentobjekten mit start_time, end_time und entweder visual_description_long (nur erstes Segment) oder description_change (alle nachfolgenden Segmente).
Kritische Regeln
Diese Regeln stammen aus der Art und Weise, wie das Modell trainiert wurde und wie die Aufmerksamkeitsmasken funktionieren. Verstöße führen zu stillen Fehlschlägen.
-
Das erste Segment erhält
visual_description_long(80-200 Wörter, die NUR die SZENE beschreiben, niemals das Subjekt). Alle späteren Segmente verwenden stattdessendescription_change. -
description_changebeginnt immer mit „Compared to the previous segment, " – auch wenn sich nichts ändert:"Compared to the previous segment, the visible scene, background, and other-object layout remain unchanged." -
Aktionen verwenden XML-ähnliche Tags:
<Action1><|Subject1|> does something</Action1>.– innerhalb jedes Segments fortlaufend nummeriert (beginnend mit 1), das Subjekt immer mit<|Subject1|>referenzieren. -
Aktionen innerhalb eines Segments dürfen sich zeitlich nicht überschneiden. Jede Aktion erhält ihr eigenes
start_time/end_timeFenster. -
Zeitstempel haben das Format
"MM:SS.mmm":"00:00.000","00:05.000","00:07.500". Intern auf segmentspezifische Zeiten normalisiert. -
Segmentlängen: 2-5 Sekunden funktionieren gut. 24 fps, 4 Videobilder pro latentem Bild.
-
Kamerabewegungen im Text verwenden
<Camera1>...</Camera1>Tags innerhalb vondescription_changeodervisual_description_long. Aber Kamera-Keys/Recording-Nodes steuern weitaus zuverlässiger als Text-Kamerabeschreibungen. -
Für Bild-zu-Welt: Segment 0 sollte etwa 1 Sekunde lang sein, das Bild getreu beschreiben, leere
contained_actions: []haben. Das Erscheinungsbild des Subjekts insubject_attributemuss mit dem Bild übereinstimmen. -
Subjektattribut enthält Perspektiven-Boilerplate: Für Third-Person Follow:
"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."Für Third-Person Observer:"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."Für First-Person:"The first-person operator is embodied by the camera, and has the same first-person viewpoint as the camera throughout the whole video."
Arbeitsablauf
- Generierungstyp identifizieren aus der Benutzeranfrage (reiner Text? Bild vorhanden? Kamerasteuerung? Fahrmodus?)
- Rückfragen stellen falls nötig: Perspektive, Stil, Subjektbeschreibung, gewünschte Dauer, Anzahl der Segmente
- Das vollständige JSON generieren unter genauer Einhaltung des Schemas
- Vor der Präsentation validieren:
- Gültiges JSON (parsbar)
- Alle erforderlichen Schlüssel vorhanden
- Zeitstempel im korrekten Format und nicht überlappend
- Erstes Segment hat
visual_description_long, restliche habendescription_change - Aktionen korrekt getaggt und nummeriert
- Subjekt durchgängig als
<|Subject1|>referenziert
- Das JSON präsentieren in einem Codeblock, bereit zum Einfügen in den World Prompt Node von ComfyUI
Häufige Fallstricke
- Subjekt mit Namen statt
<|Subject1|>in Aktionen bezeichnen → Modell ignoriert die Aktion - Subjektbeschreibung in
visual_description_longplatzieren → Szenenbeschreibung sollte nur die Umgebung sein - Fehlendes Präfix „Compared to the previous segment, " in
description_change→ inkonsistente Weltkontinuität - Überlappende Aktionszeiten → undefiniertes Verhalten in den Aufmerksamkeitsmasken
- Verwendung von
visual_description_longin Segment 1+ → wird ohnehin vom Parser entfernt - Plötzliche globale Szenenänderungen (z.B. „heftiger Schneesturm“) → Modell erhält Weltkonsistenz; Änderungen erfolgen schrittweise innerhalb von Segmenten
Beispiel-Prompts
Für vollständige funktionierende Beispiele aller Generierungstypen lies references/examples.md.
Technische Details
- Text-Encoder: Qwen2.5-VL-7B (identisch mit Qwen-Image)
- DiT: 32-Kanal DCAE-V latent, INT8 destillierte Gewichte
- Sampling: euler / simple / 8 Schritte / cfg 1
- Auflösung: 1280×704 (720p) oder 832×480
- FPS: 24
- Verlauf: 18 latente Bilder pro Segment beibehalten
- Quelle: ComfyUI-Hy-Nomas · Tencent Hy-Nomas