ComfyUI 핵심 블록 희소 어텐션 노드 및 Comfy Compiler 추가
Kijai 의 블록 희소 어텐션이 MiniMax H3 를 위한 세 가지 백엔드로 ComfyUI 코어에 탑재되었으며, VRAM 낭비를 줄이고 긴 H3 실행 속도를 높이는 새로운 메모리 컴파이어가 추가되었습니다.
블록 희소 어텐션: 하나의 노드, 세 가지 백엔드
새로운 블록 희소 어텐션 노드 (카테고리 advanced/model, 실험적 표시됨) 는 comfy_extras/nodes_sparse_attention.py 에 위치하며 각 쿼리 블록을 선택된 키 블록의 하위 집합으로 라우팅합니다. 상대적인 속도 향상은 시퀀스 길이에 따라 증가하며, 이는 정확히 10 초 H3 클립의 영역입니다. min_tokens 가드 는 짧은 시퀀스를 자동으로 밀집 상태로 유지합니다.
동일한 노드에 세 가지 선택 모드가 포함되어 있습니다:
- Sol-Attn (적응형 tau): 점수 분포 시그마 당 헤드별 적응형 임계값입니다.
tau1.0 은 약 16% 의 키 블록을 정확하게 유지하고, 1.5 는 약 7%, 2.0 은 약 2.7% 를 유지합니다. 이는 특별히 학습된 가중치 없이 작동하는 모드입니다. - top-k (SLA): 모든 곳에서 고정된
keep_percent의 키 블록입니다. 이는 lightx2v SLA 스타일 터보 LoRA 가 증류되는 대상과 일치하므로 해당 학습된 가중치와 함께 사용할 것을 권장합니다. - VSA (FastVideo): 조밀한 압축 브랜치가 있는 큐브 타일링으로, 10% 유지율의 FastH3-VSA 학습 설정과 일치합니다. 존재할 경우 모델의
to_gate_compress레이어를 사용합니다.
일정 창 (start_percent / end_percent, 기본값 0.2 에서 1.0) 은 초기 디노이즈 단계를 밀집 상태로 유지하며, 두 가지 H3 전용 고급 옵션이 조건화를 처리합니다: sink_conditioning 은 패킹된 텍스트/오디오/참조 행을 정확히 어텐션하여 (~3% 비용) 프롬프트와 오디오가 저하되지 않도록 하고, extra_tokens 은 선택된 블록 이상의 최고 점수 토큰을 추가하여 밀집 상태에 더 가깝게 유지합니다.
지금까지 이 기능은 별도의 커뮤니티 노드 팩으로만 존재했으며, 커뮤니티 테스트는 LoRA 만으로는 매칭되는 스파스 백엔드가 없으면 아무것도 하지 않는다는 것을 보여주었습니다. 핵심 노드는 세 가지 접근 방식을 하나의 인터페이스 뒤로 통합하여 단일 워크플로는 콤보 박스 하나를 변경하여 Sol-Attn, SLA 및 VSA 간에 전환할 수 있습니다.
PR #15861 의 Comfy Compiler 벤치마크: RTX 5060 에서 158 프레임의 MiniMax H3 720p 는 메모리 컴파이어가 활성화되면 안정적인 VRAM 발자국과 훨씬 높은 반복 속도를 보여줍니다.
Comfy Compiler: 더 적은 할당, 더 빠른 단계
Comfy Compiler (PR #15861) 는 두 층 컴파일 프로세스입니다:
- aimdo 메모리 컴파이어 (comfy-aimdo 0.5.0 내) 는 메모리 할당을 사전에 계산하고 최소화하여 CUDA 할당 호출을 일회성 설정으로 줄이고 추론 메모리를 안정적이고 일정하게 유지합니다. PR 에 따르면 이는 할당자 스래시를 제거하고 동적 VRAM 압력과 CUDA 의 보고된 숫자 사이의 경주를 방지하며, 해제된 할당이 캐시에 머무르는 대신 물리적 VRAM 피크가 논리적 할당 피크와 일치하도록 보장합니다.
- 그 위에 CUDA 그래프 레이어가 있습니다. 메모리 컴파이어에서 생성된 안정적인 가상 주소는 그래프 녹화가 안전하도록 하는 요소이며, 동기화는 첫 번째 트랜스포머 블록에서만 필요합니다.
실제 효과는 PR 벤치마크에서 나타납니다: 이전에는 진행 없이 멈췄던 RTX 5060 에서의 MiniMax H3 720p 158 프레임 실행이 변경 후 단계당 약 43 초로 완료되며, 같은 카드에서 MiniMax Music 3 AR 샘플링은 단계 처리량이 약 35% 향상됩니다.
프리페처를 사용하는 모든 모델과 MiniMax H3 는 초기 병합에서 변환됩니다. WAN 은 향후 작업으로 나열되어 있으며, 이는 동일한 방식으로 최대 가능한 생성 크기를 높일 것입니다.
이전: H3 실행은 19.9 GB 의 스테이지된 가중치를 준비한 후 몇 분 동안 침묵합니다. 변경 후, 동일한 실행은 꾸준한 단계별 진전을 보여줍니다.
주의 사항: 초기 OOM 및 취소 충돌
Banodoco Discord 의 커뮤니티 테스트는 처음 며칠 동안 두 가지 거친 부분을 검토 대상으로 표시했습니다. Comfy Compiler 도 활성 상태일 때 스파스 실행은 OOM 될 수 있으며, 스파스 노드가 로드된 상태에서 실행을 취소하면 ComfyUI 가 충돌할 수 있습니다. 후속 커밋 (#16148, "긴 생명주기의 스파스 할당을 위해 Comfy 컴파일러 일시 중지") 은 이미 상호 작용을 해결했으며, --disable-comfy-compiler 는 대체 플래그로 계속 사용 가능합니다. 노드의 밀집 대체 경로는 시퀀스가 일정 창 바깥에 있거나 min_tokens 아래인 경우 일반 밀집 백엔드를 재배선 없이 단순히 실행한다는 의미입니다.
제공 여부
두 기능 모두 현재 ComfyUI 빌드에 포함되어 있습니다: 블록 희소 어텐션 노드는 comfy-kitchen 0.2.33 이 필요하며 (이미 requirements.txt 포함), Comfy Compiler 는 comfy-aimdo 0.5.2 와 함께 코어의 일부입니다. 최신 설치에서는 추가 설치 단계가 필요하지 않습니다. MiniMax H3 워크플로우 사용자는 모델 로더와 샘플러 사이에 노드를 배치하기만 하면 됩니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.