Hy-Nomas 월드 프롬프트 생성기은(는) 무엇을 하나요?
ComfyUI-Hy-Nomas를 통해 ComfyUI에서 실행되는 Tencent의 Hy-Nomas 비디오 월드 모델을 위한 유효한 구조화된 JSON 월드 프롬프트를 생성합니다.
구조화된 JSON이 중요한 이유
Hy-Nomas는 구조화된 JSON 캡션으로 훈련되었으며, 자유 형식의 텍스트가 아닙니다. 모델은 JSON 구조에서 파생된 퍼-액션 어텐션 마스크를 사용합니다. 각 액션의 비디오 프레임은 해당 액션의 텍스트에만 주의를 기울입니다. 느슨한 일반 영어 프롬프트는 첫 번째 세그먼트 이후에는 대부분 무시됩니다. 피사체는 이전에 하던 일을 계속할 뿐입니다. 이 형식을 정확히 따르는 것이 후속 세그먼트가 작동하게 만드는 핵심입니다.
비디오 생성 유형
사용자가 필요한 유형을 식별하고 그에 따라 생성하세요:
| 유형 | 사용 시기 | 주요 특징 |
|---|---|---|
| 텍스트-투-월드 | 시작 이미지 없음, 순수 생성 | 세그먼트 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: 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초가 적합합니다. 24fps, 잠재 프레임당 4개의 비디오 프레임.
-
텍스트의 카메라 이동은
description_change또는visual_description_long내부에서<Camera1>...</Camera1>태그를 사용합니다. 하지만 Camera Keys/Recording 노드가 텍스트 카메라 설명보다 훨씬 안정적으로 조종합니다. -
이미지-투-월드의 경우: 세그먼트 0은 약 1초여야 하며, 이미지를 충실히 설명하고, 빈
contained_actions: []를 가져야 합니다.subject_attribute의 피사체 모습은 이미지와 일치해야 합니다. -
피사체 속성에는 시점 보일러플레이트가 포함됩니다: 3인칭 추적의 경우:
"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."3인칭 관찰자의 경우:"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."1인칭의 경우:"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사용 → 파서가 어차피 제거함 - 갑작스러운 전체 장면 변화 (예: "heavy snowstorm") → 모델이 월드 일관성을 유지함; 변화는 세그먼트 내에서 점진적으로 발생
예시 프롬프트
모든 생성 유형을 다루는 완전한 작동 예시는 references/examples.md를 읽으세요.
기술 세부 사항
- 텍스트 인코더: Qwen2.5-VL-7B (Qwen-Image와 동일)
- DiT: 32채널 DCAE-V 잠재, INT8 증류 가중치
- 샘플링: euler / simple / 8 스텝 / cfg 1
- 해상도: 1280×704 (720p) 또는 832×480
- FPS: 24
- 히스토리: 세그먼트당 18개의 잠재 프레임 유지
- 출처: ComfyUI-Hy-Nomas · Tencent Hy-Nomas