NikoDemon80/ComfyUI-H3-Motion-Context

Clip chaining for MiniMax H3 in ComfyUI - motion and audio genuinely continue across joins

H3 모션 컨텍스트 – ComfyUI의 MiniMax‑H3용 원활한 체이닝

기능

  • MiniMax‑H3 비디오+오디오 생성을 체인하여 모션과 사운드가 한 클립에서 다음 클립으로 부드럽게 이어지도록 하는 커스텀 노드 세트를 추가합니다.
  • 이전 클립은 픽셀로 디코딩하고 다시 인코딩하는 대신 잠재 표현(비디오 프레임과 오디오의 내부 표현)으로 전달됩니다. 이로 인해 각 링크 후에 일반적으로 나타나는 색상 드리프트, 블러 및 "소프트닝"이 제거됩니다.
  • 오디오가 올바르게 앵커됩니다. 이전 클립의 끝 사운드가 다음 클립의 타임라인에 복사되어 대부분의 H3 워크플로우에서 발생하는 들리는 "재시작"을 방지합니다.

존재 이유

  • 내장된 Add Guide 노드는 정지 또는 짧은 클립을 앵커할 수 있지만, 일련의 클립을 생성할 때 모션/오디오 연속성을 유지하지 않습니다.
  • 일반적인 체이닝은 모든 조인에 대해 디코드-리사이즈-인코드 왕복을 강제하여 시각적 품질을 저하시키고 미묘한 오디오 틱을 유발합니다.
  • 이 팩은 잠재 표현을 직접 슬라이스하고 고정 오디오를 새 클립이 시작되는 정확한 프레임에 배치하여 두 문제를 모두 해결합니다.

설치

폴더를 ComfyUI/custom_nodes/에 넣고 ComfyUI를 다시 시작하세요.

노드가 등록되고 레이아웃 검사가 통과되었음을 확인하는 콘솔 메시지가 표시됩니다. 다른 구성은 필요 없습니다.


핵심 노드 및 연결

노드 목적 연결 방법
H3 모션 컨텍스트 현재 생성, 이전 클립의 잠재 표현을 받아 모션/오디오를 계속하는 새 클립을 생성합니다. 일반 MiniMax‑H3 생성기를 왼쪽 입력에 연결하고, 이전 클립 잠재 표현(저장/로드 쌍에서)을 오른쪽 context_latent 입력에 연결합니다.
H3 모션 컨텍스트 저장 잠재 표현 현재 클립의 잠재 표현(비디오+오디오)을 파일(clip_XXXXX.safetensors)에 씁니다. 샘플러 뒤에 배치합니다. clip_index를 저장하려는 번호로 설정합니다(예: 첫 번째 클립은 1).
H3 모션 컨텍스트 로드 잠재 표현 이전에 저장된 잠재 표현을 읽고 다음 실행의 context_latent에 공급합니다. 모션 컨텍스트 노드 앞에 배치합니다. clip_index를 계속할 클립으로 설정합니다(예: 첫 번째 실행은 0, 두 번째는 1).
H3 모션 컨텍스트 트림 출력에서 고정된 헤드 프레임을 제거하여 새 클립을 이전 클립 뒤에 연결할 수 있게 합니다. 모션 컨텍스트 노드의 trim_frames를 이 트림 노드에 연결한 다음, 트림된 비디오/오디오를 최종 디코더 또는 비디오 저장 노드에 공급합니다.
H3 모션 컨텍스트 체인 로드/저장 인덱스를 자동으로 진행하고 다음 클립을 자동으로 큐에 넣는 편의 노드(장기 실행 체인용). 로드, 저장 및 체인을 캔버스 그룹으로 묶고 체인을 눌러 중지할 때까지 클립을 계속 생성합니다.

일반적인 흐름

MiniMaxH3 → H3 모션 컨텍스트 ← 로드 잠재 표현
          → 샘플러 → 저장 잠재 표현 → (출력 비디오/오디오)
          → 트림 → 비디오 생성

첫 번째 클립의 경우 로드 잠재 표현 인덱스 0은 아무것도 읽지 않습니다. 노드는 여전히 trim_frames = 0을 보고하므로 활성화된 상태로 둘 수 있습니다.


주요 설정

  • context_length – 이전 비디오의 고정 프레임 수(옵션: 5, 22, 39, 56). 원활한 모양을 위해 22 권장.
  • audio_context_length – 고정할 테일 오디오 프레임 수(3의 배수여야 함). 연속성과 뭉개짐의 균형을 위해 18 권장.
  • match_tail(트림 노드에서) – 활성화된 상태로 유지합니다. 오디오 그리드를 정렬하여 조인이 약 8ms 이내가 되도록 합니다.

다른 모든 매개변수는 노드 코드에 고정되어 있습니다. 정말 필요한 경우에만 nodes.py를 편집하여 조정할 수 있습니다.


실험적 드리프트 감소 헬퍼(선택 사항)

노드 기능
H3 리파인 블렌드 참조를 다시 읽는 빠른 두 번째 패스를 실행한 다음 고정 프레임 후에 결과를 블렌드합니다.
H3 조인 매치 이전 클립의 마지막 프레임과 새 클립의 첫 프레임 사이의 밝기/대비/세부 사항을 조정합니다.
H3 시그마 테일 드리프트를 강조할 수 있는 추가 선명도를 줄이기 위해 최종 노이즈 스케줄을 조정합니다.

이들을 로드/저장/체인과 동일한 캔버스 그룹에 배치하여 체인과 동기화되도록 합니다.


제한 사항 및 주의 사항

  • 품질 손실 누적 – 각 링크는 이전 잠재 표현에서 클립을 다시 생성하므로 시각적 아티팩트, 특히 고주파 오디오 손실이 여러 클립에 걸쳐 누적됩니다.
  • 오디오 오프셋 – 이전 버전에는 약 8ms 지연이 있었습니다. 이제 모델의 40Hz 오디오 그리드에 스냅되지만 오프셋은 여전히 존재합니다(미세하며 일반적으로 들리지 않음).
  • 샘플 레이트 – H3는 32kHz 오디오를 출력합니다. 48kHz가 필요한 경우 연결 후 리샘플링해야 합니다.
  • 해상도 고정 – 잠재 표현은 크기를 조정할 수 없으므로 체인의 모든 클립은 동일한 해상도를 공유해야 합니다.
  • Turbo LoRA / Spectrum – 이러한 속도 향상 샘플러는 오디오 품질도 저하시킵니다. 체이닝 시 끄십시오.
  • 프롬프트 설계 – 고정 프레임은 제안이 아닙니다. 고정 프레임과 모순되는 프롬프트는 고정 콘텐츠에 추가로 렌더링되어 원치 않는 합성이 자주 생성됩니다. 다음 프롬프트는 고정 프레임 후부터 시작하도록 작성하십시오(예: 짧은 "홀드" 후 새 동작).

빠른 시작 체크리스트

  1. ComfyUI/custom_nodes/ 아래에 폴더를 설치하고 다시 시작합니다.
  2. 로드 잠재 표현, 모션 컨텍스트, 저장 잠재 표현 및 선택적으로 체인을 포함하는 캔버스 그룹을 만듭니다.
  3. 로드 인덱스 0, 저장 인덱스 1을 설정하고 그래프를 실행합니다 – 클립 1을 얻습니다.
  4. 승인(또는 자동 루프의 체인)을 눌러 인덱스를 진행하고 클립 2를 생성합니다.
  5. 트림 노드를 사용하여 클립을 연결하기 전에 고정 헤드를 잘라냅니다.
  6. (선택 사항) 드리프트 감소를 위해 리파인 블렌드 / 조인 매치를 추가합니다.

TL;DR

H3 모션 컨텍스트는 잠재 표현을 직접 전달하고, 고정 헤드를 트림하고, 자동 체이닝 및 드리프트 감소를 위한 헬퍼 노드를 제공하여 연속적인 모션과 오디오를 가진 길고 일관된 MiniMax‑H3 비디오를 생성할 수 있게 하는 ComfyUI용 작지만 강력한 애드온입니다. ComfyUI 0.34+(또는 이전 빌드용 호환 버전 0.3.1)에서 작동합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트