Communitygithub.com

Hy-Nomas 월드 프롬프트 생성기

ComfyUI에서 Tencent Hy-Nomas 비디오 월드 모델을 위한 구조화된 JSON 월드 프롬프트를 생성합니다. 사용자가 Hy-Nomas용 비디오 프롬프트를 만들거나, 월드 설명을 JSON으로 형식화해야 하거나, 'Hy-Nomas', '월드 모델', '세그먼트 프롬프트'를 언급하거나, 시간 기반 액션, 카메라 제어 또는 연결된 세그먼트가 포함된 비디오를 생성하려는 경우 이 스킬을 사용하세요.

Hy-Nomas 월드 프롬프트 생성기란 무엇인가요?

이 스킬은 Tencent의 Hy-Nomas 비디오 월드 모델을 위한 구조화된 JSON 월드 프롬프트를 생성하는 방법을 설명합니다. Hy-Nomas는 구조화된 JSON 캡션으로 훈련되었기 때문에, 자유 형식의 텍스트가 아닌 정확한 JSON 형식이 필요합니다. JSON 구조는 각 액션의 비디오 프레임이 해당 액션의 텍스트에만 주의를 기울이도록 하는 퍼-액션(per-action) 어텐션 마스크를 생성하는 데 사용됩니다. 이 스킬은 텍스트-투-월드, 이미지-투-월드, 카메라 제어, 인터랙티브 드라이브 및 멀티-세그먼트 체인드 비디오 생성 유형을 모두 지원합니다. 주의할 점은 첫 번째 세그먼트에만 `visual_description_long`을 사용하고 이후 세그먼트에는 `description_change`를 사용해야 하며, 액션 태그(`<Action1>`)와 피사체 참조(`<|Subject1|>`)를 올바르게 사용해야 한다는 것입니다. 이 스킬은 ComfyUI 환경에서만 작동하며, ComfyUI-Hy-Nomas 커스텀 노드와 함께 사용됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/benjiyaya/hy-nomas-prompts/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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를 가진 세그먼트 객체 배열.

중요 규칙

이 규칙들은 모델이 훈련된 방식과 어텐션 마스크가 작동하는 방식에서 비롯됩니다. 위반하면 무음 오류가 발생합니다.

  1. 첫 번째 세그먼트는 visual_description_long을 사용합니다 (장면만 설명하는 80-200 단어, 피사체는 절대 안 됨). 이후 모든 세그먼트는 대신 description_change를 사용합니다.

  2. description_change는 항상 "Compared to the previous segment, "로 시작합니다 — 아무것도 변하지 않아도 마찬가지입니다: "Compared to the previous segment, the visible scene, background, and other-object layout remain unchanged."

  3. 액션은 XML 유사 태그를 사용합니다: <Action1><|Subject1|> does something</Action1>. — 각 세그먼트 내에서 1부터 순차적으로 번호가 매겨지며, 항상 <|Subject1|>로 피사체를 참조합니다.

  4. 액션은 세그먼트 내에서 시간적으로 겹치면 안 됩니다. 각 액션은 고유한 start_time/end_time 윈도우를 받습니다.

  5. 타임스탬프는 "MM:SS.mmm" 형식입니다: "00:00.000", "00:05.000", "00:07.500". 내부적으로 세그먼트 상대 시간으로 정규화됩니다.

  6. 세그먼트 길이: 2-5초가 적합합니다. 24fps, 잠재 프레임당 4개의 비디오 프레임.

  7. 텍스트의 카메라 이동은 description_change 또는 visual_description_long 내부에서 <Camera1>...</Camera1> 태그를 사용합니다. 하지만 Camera Keys/Recording 노드가 텍스트 카메라 설명보다 훨씬 안정적으로 조종합니다.

  8. 이미지-투-월드의 경우: 세그먼트 0은 약 1초여야 하며, 이미지를 충실히 설명하고, 빈 contained_actions: []를 가져야 합니다. subject_attribute의 피사체 모습은 이미지와 일치해야 합니다.

  9. 피사체 속성에는 시점 보일러플레이트가 포함됩니다: 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."

워크플로우

  1. 생성 유형 식별 (텍스트 전용? 이미지 있음? 카메라 제어? 드라이브 모드?)
  2. 필요한 경우 명확한 질문: 시점, 스타일, 피사체 설명, 원하는 지속 시간, 세그먼트 수
  3. 스키마를 정확히 따라 완전한 JSON 생성
  4. 제시하기 전에 검증:
    • 유효한 JSON (파싱 가능)
    • 모든 필수 키 존재
    • 타임스탬프가 올바른 형식이고 겹치지 않음
    • 첫 번째 세그먼트에 visual_description_long이 있고, 나머지에 description_change가 있음
    • 액션이 올바르게 태그되고 번호가 매겨짐
    • 피사체가 일관되게 <|Subject1|>로 참조됨
  5. 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

관련 스킬