Communitygithub.com

benjiyaya/hy-nomas-prompts

Generiere strukturierte JSON-Welt-Prompts für das Tencent Hy-Nomas Video-Weltmodell in ComfyUI. Nutze diese Fähigkeit, wenn der Benutzer Videoprompts für Hy-Nomas erstellen möchte, Hilfe bei der Formatierung von Weltbeschreibungen als JSON benötigt, „Hy-Nomas“, „Weltmodell“, „Segment-Prompts“ erwähnt oder Videos mit zeitgesteuerten Aktionen, Kamerasteuerung oder verketteten Segmenten generieren möchte.

Was ist hy-nomas-prompts?

Diese Fähigkeit generiert strukturierte JSON-Welt-Prompts für das Tencent Hy-Nomas Video-Weltmodell, das in ComfyUI über das ComfyUI-Hy-Nomas-Plugin läuft. Sie ist entscheidend, da Hy-Nomas auf strukturierten JSON-Beschriftungen trainiert wurde und Aktionen über Aufmerksamkeitsmasken verarbeitet, die auf der JSON-Struktur basieren. Die Fähigkeit unterstützt alle Generierungsmodi: Text-zu-Welt, Bild-zu-Welt, kameragesteuerte, interaktive Fahr- und mehrsegmentige verkettete Welten. Sie konvertiert lose textuelle Videoideen in das präzise JSON-Format, das Hy-Nomas benötigt, und hilft bei der Fehlersuche, wenn Prompts nicht wie erwartet funktionieren. Der Skill enthält eine detaillierte Referenz zum JSON-Schema, kritische Regeln, die für erfolgreiche Ergebnisse befolgt werden müssen (wie die Verwendung von XML-ähnlichen Aktionstags und die korrekte Formatierung von `description_change`), sowie eine Validierungs-Workflow-Anleitung, um die Prompt-Korrektheit sicherzustellen. Er deckt auch häufige Fallstricke ab, wie die Vermeidung von Subjektnamen in Aktionen oder überlappende Aktionszeiten.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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:

TypWann verwendenHauptmerkmale
Text-zu-WeltKein Startbild, reine GenerierungVollständige visual_description_long im Segment 0, Subjekt in subject_list definiert
Bild-zu-WeltBenutzer stellt ein Startbild bereitSegment 0 beschreibt das Bild (1s Dauer, leere contained_actions), Segmente 1+ setzen darauf auf
KameragesteuertOrbit, Verfolgung oder spezifischer KamerapfadKamerabewegungen über <Camera1>-Tags ODER externe Kamera-Keys/Recording-Nodes; description_change beschreibt die Szene aus neuer Perspektive
Interaktive FahrtEchtzeit-Lenkung per TastaturKurze 1s Kurven, minimale Prompt-Struktur, Benutzer steuert mit W/A/S/D
Mehrsegmentig VerkettetLange 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.

  1. 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 stattdessen description_change.

  2. description_change beginnt 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."

  3. Aktionen verwenden XML-ähnliche Tags: <Action1><|Subject1|> does something</Action1>. – innerhalb jedes Segments fortlaufend nummeriert (beginnend mit 1), das Subjekt immer mit <|Subject1|> referenzieren.

  4. Aktionen innerhalb eines Segments dürfen sich zeitlich nicht überschneiden. Jede Aktion erhält ihr eigenes start_time/end_time Fenster.

  5. Zeitstempel haben das Format "MM:SS.mmm": "00:00.000", "00:05.000", "00:07.500". Intern auf segmentspezifische Zeiten normalisiert.

  6. Segmentlängen: 2-5 Sekunden funktionieren gut. 24 fps, 4 Videobilder pro latentem Bild.

  7. Kamerabewegungen im Text verwenden <Camera1>...</Camera1> Tags innerhalb von description_change oder visual_description_long. Aber Kamera-Keys/Recording-Nodes steuern weitaus zuverlässiger als Text-Kamerabeschreibungen.

  8. 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 in subject_attribute muss mit dem Bild übereinstimmen.

  9. 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

  1. Generierungstyp identifizieren aus der Benutzeranfrage (reiner Text? Bild vorhanden? Kamerasteuerung? Fahrmodus?)
  2. Rückfragen stellen falls nötig: Perspektive, Stil, Subjektbeschreibung, gewünschte Dauer, Anzahl der Segmente
  3. Das vollständige JSON generieren unter genauer Einhaltung des Schemas
  4. 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 haben description_change
    • Aktionen korrekt getaggt und nummeriert
    • Subjekt durchgängig als <|Subject1|> referenziert
  5. 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_long platzieren → 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_long in 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

Verwandte Skills