Hy-Nomas ワールドプロンプトジェネレーター は何をしますか?
ComfyUI-Hy-Nomas を介して ComfyUI で動作する Tencent の Hy-Nomas ビデオワールドモデル用に、有効な構造化 JSON ワールドプロンプトを生成します。
構造化 JSON が重要な理由
Hy-Nomas は構造化された JSON キャプションでトレーニングされており、自由形式のテキストではトレーニングされていません。このモデルは JSON 構造から導出された per-action アテンションマスクを使用します。各アクションのビデオフレームは、そのアクションのテキストのみに注目します。簡易な平文プロンプトは最初のセグメント以降ほとんど無視され、被写体は同じ動作を続けるだけです。この形式に正確に従うことで、後続のセグメントが正しく機能します。
ビデオ生成タイプ
ユーザーが必要とするタイプを特定し、それに応じて生成します:
| タイプ | 使用タイミング | 主な特徴 |
|---|---|---|
| テキスト→ワールド | 開始画像なし、純粋な生成 | セグメント0に完全な visual_description_long、subject_list で被写体を定義 |
| 画像→ワールド | ユーザーが開始画像を提供 | セグメント0は画像を説明(1秒間、空の contained_actions)、セグメント1以降はそれから継続 |
| カメラ制御 | オービット、フォロー、特定のカメラパス | カメラは <Camera1> タグまたは外部 Camera Keys/Recording ノードで移動、description_change で新しい視点からのシーンを説明 |
| インタラクティブドライブ | リアルタイムキーボード操作 | 短い1秒のターン、最小限のプロンプト構造、ユーザーは W/A/S/D で操作 |
| マルチセグメント連鎖 | 長い連続ワールド(10〜20秒以上) | 複数のセグメントと description_change、重複しないタイミング指定のアクション |
コアJSONスキーマ
すべてのワールドプロンプトは、以下のトップレベルキーを持つ単一のJSONオブジェクトである必要があります:
{
"perspective_view": "third-person observer",
"Style": "CG",
"subject_list": [...],
"segments": [...]
}
必須フィールドリファレンス
完全なフィールド別仕様(許容値、フォーマットルール、エッジケースを含む)については、references/prompt-format-spec.md を参照してください。
クイックリファレンス
perspective_view(厳密な文字列):
"first-person"— カメラ = 被写体"second-person"— カメラは被写体と対面"third-person follow"— カメラは被写体の後ろ、動きを追跡"third-person observer"— 外部固定/独立カメラ
Style(厳密な文字列):
"real-world footage""animation/anime""CG""video game"
subject_list: ちょうど1つの被写体オブジェクトを含む配列。各オブジェクトは subject_id、display_name、subject_attribute を持ちます。
segments: start_time、end_time、および visual_description_long(最初のセグメントのみ)または description_change(それ以降の全セグメント)を持つセグメントオブジェクトの配列。
重要なルール
これらのルールは、モデルのトレーニング方法とアテンションマスクの動作方法に基づいています。違反すると、警告なしに失敗します。
-
最初のセグメントには
visual_description_long(80〜200語でシーンのみを説明。被写体は決して説明しない)を記述します。以降の全セグメントでは代わりにdescription_changeを使用します。 -
description_changeは常に「Compared to the previous segment, 」で始まります — 何も変わらない場合でも:"Compared to the previous segment, the visible scene, background, and other-object layout remain unchanged." -
アクションはXMLのようなタグを使用:
<Action1><|Subject1|> does something</Action1>.— 各セグメント内で1から順に番号を振り、常に<|Subject1|>で被写体を参照します。 -
アクションはセグメント内で時間的に重複してはいけません。各アクションには独自の
start_time/end_timeウィンドウが必要です。 -
タイムスタンプは
"MM:SS.mmm"形式:"00:00.000"、"00:05.000"、"00:07.500"。内部的にはセグメント相対時間に正規化されます。 -
セグメント長: 2〜5秒が適切です。24 fps、動画フレーム4つあたり1つの潜在フレーム。
-
テキスト内のカメラ移動は
description_changeまたはvisual_description_long内で<Camera1>...</Camera1>タグを使用します。ただし、Camera Keys/Recording ノードの方がテキストによるカメラ記述よりもはるかに確実に制御できます。 -
画像→ワールドの場合: セグメント0は約1秒にし、画像を忠実に説明し、空の
contained_actions: []を持たせます。subject_attribute内の被写体の外観は画像と一致している必要があります。 -
被写体属性には視点に関する定型文を含めます: 三人称フォローの場合:
"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."三人称観察者の場合:"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."一人称の場合:"The first-person operator is embodied by the camera, and has the same first-person viewpoint as the camera throughout the whole video."
ワークフロー
- 生成タイプを特定(ユーザーリクエストから: テキストのみ?画像あり?カメラ制御?ドライブモード?)
- 必要に応じて明確化の質問:視点、スタイル、被写体の説明、希望の長さ、セグメント数
- 完全なJSONを生成(スキーマに正確に従う)
- 提示前に検証:
- 有効なJSON(パース可能)
- すべての必須キーが存在
- タイムスタンプが正しい形式で重複なし
- 最初のセグメントに
visual_description_long、残りにdescription_change - アクションが適切にタグ付けされ番号付けされている
- 被写体が一貫して
<|Subject1|>で参照されている
- JSONをコードブロックで提示(ComfyUI の World Prompt ノードに貼り付ける準備ができた状態で)
よくある間違い
- アクション内で被写体を名前ではなく
<|Subject1|>で参照しない → モデルがアクションを無視 visual_description_longに被写体の説明を入れる → シーン説明は環境のみを記述すべきdescription_changeで「Compared to the previous segment, 」のプレフィックスが欠落 → ワールドの一貫性が崩れる- アクション時間が重複 → アテンションマスクで未定義動作
- セグメント1以降で
visual_description_longを使用 → パーサーにより削除される - 突然のグローバルシーン変更(例: 「大雪」)→ モデルはワールドの一貫性を維持、変更はセグメント内で徐々に発生
プロンプト例
すべての生成タイプをカバーする完全な動作例については、references/examples.md を参照してください。
技術詳細
- テキストエンコーダー: Qwen2.5-VL-7B(Qwen-Image と同じ)
- DiT: 32チャンネル DCAE-V latent、INT8 蒸留重み
- サンプリング: euler / simple / 8 steps / cfg 1
- 解像度: 1280×704 (720p) または 832×480
- FPS: 24
- 履歴: セグメントあたり18 latent フレーム保持
- ソース: ComfyUI-Hy-Nomas · Tencent Hy-Nomas