https://github.com/roycho87/clown_context_suite/blob/main/example_workflows/clowns_for_picard.json .98 MP No Upscaler 5090에서 약 한 시간이 걸렸습니다. keystone과 capstone을 사용하려면 약 14개의 추가 단계를 렌더링해야 하므로 약간 더 느리지만, 결과물은 매우 놀랍습니다. 이 워크플로우는 keystone과 capstone을 사용하여 각 컨텍스트 모션의 전체 8단계를 렌더링함으로써 전반에 걸쳐 거의 완벽한 일관성을 유지하는 것이 가능하며, 이를 통해 다음 연결 부분이 완전히 노이즈가 제거된(denoised) 섹션을 기반으로 구축될 수 있습니다. 그런 다음 모든 창에서 상위 2개 단계를 버리고 2개의 컨텍스트 창 패스(context window passes)를 수행합니다. 최종 결과물은 극도로 긴 길이로도 만들 수 있는, 전반에 걸쳐 완벽하게 일관되고 손실이 없는 비디오입니다.
https://github.com/roycho87/clown_context_suite Clowntext Hybrid Windows 크레딧 이 노드는 제가 만든 것이 아닙니다. 이는 kijai의 MiniMax H3 context windows를 기반으로 하며, 현재 ComfyUI에 포함되어 있습니다 (PR #17425). 또한 JalenBrunson의 ComfyUI-HybridWindows가 하는 방식(Rolling Diffusion paper 기반)으로 작동합니다. 모든 공로는 그들에게 돌아갑니다. 저는 단지 keystone과 capstone 기능을 추가하여 모두가 손실 없이 더 긴 비디오를 만들 수 있도록 도왔을 뿐입니다.
작동 방식: 클립들을 연결하는 대신, 전체 비디오를 겹치는 창(overlapping windows)으로 한 번에 렌더링하기 때문에 메모리가 하나의 창에 머무릅니다. Window 1은 첫 번째 switch_step 단계를 렌더링하고 스냅샷을 저장합니다. Window 1은 마지막 단계까지 진행하여 완성된 첫 프레임(keystone)과 마지막 단일 프레임의 잠재 공간(latent, capstone)만 얻습니다. 이 마무리는 버려지고 Window 1은 다시 스냅샷으로 돌아갑니다. Window 2, 3 등 이후 창들은 첫 번째 switch_step 단계를 하나씩 렌더링합니다. 각 창이 이전 창과 겹치는 부분(overlap)은 해당 창의 결과물에 고정됩니다. keystone은 각 창의 첫 슬롯에 고정되고, capstone은 capstone_step부터 그 뒤에 붙고 (다시 잘립니다). 마지막 단계들은 전체 비디오에 걸쳐 혼합된 컨텍스트 창(blended context windows)으로 실행되어 연결 부위를 부드럽게 만듭니다.
Keystone과 Capstone을 끄면 일반적인 하이브리드 창(hybrid windows)처럼 작동합니다. 제 테스트(60초 렌더링, 17개 창, 동일 시드)에서 순수 버전은 끝에 이르면서 디테일을 많이 잃었지만, keystone + capstone 버전을 사용했을 때 훨씬 더 디테일을 잘 유지했습니다.
모델을 통과시키세요(model in, 가이더로 나가는 model out to the guider). 이 기능을 사용하려면 MiniMax H3 컨텍스트 창을 가진 ComfyUI가 필요합니다: 노드가 누락된 경우 ComfyUI를 업데이트하세요.
설정 의미:
context_length / context_overlap: 창 크기와 프레임별 오버랩(17n + 5). 124 / 39는 창당 약 5초에 해당합니다.
switch_step: 각 창이 블렌딩된 마무리 단계 이전에 자체적으로 렌더링하는 스텝 수. 8단계 중 6단계는 16단계가 창별로 진행되고, 78단계는 블렌딩됩니다.
keystone_swap: 첫 번째 창(Window 1)의 완성된 첫 프레임이 이후 모든 창의 첫 슬롯에 고정됩니다.
back_capstone: 첫 번째 창(Window 1)의 완성된 마지막 단일 프레임 잠재값(latent)이 이후 모든 창의 뒤쪽에 추가됩니다.
finished_handoff: 켜기(On) 시: 모든 창이 마지막 단계까지 렌더링되며, 다음 창의 오버랩은 이 완성된 프레임에 고정됩니다. 모든 창은 블렌딩 마무리 전의 switch_step 스냅샷으로 돌아갑니다. 창당 마지막 단계를 한 번 더 소모합니다.
capstone_step: Capstone이 적용되기 전의 스텝 수. 이를 switch_step보다 낮게 유지해야 합니다(6단계 중 4단계는 5~6단계에 적용됨). 그렇지 않으면 Capstone이 적용되지 않습니다.
fuse_method: 블렌딩된 스텝들이 창들을 평균화하는 방식(피라미드).
freenoise: 첫 번째 창의 노이즈를 모든 창에서 재사용합니다: 일관성은 높지만 움직임이 반복될 수 있습니다. 비활성화(Off)하면 더 많은 다양성을 얻을 수 있습니다.
split_conds_to_windows: 각 창에 고유한 프롬프트를 부여합니다(아래 참조).
detail_latent: 선택 사항: Window 1의 Keystone 대신 이 잠재값(latent)의 첫 프레임을 사용합니다.
sound_first: 기본적으로 비활성화(Off)되어 있습니다. 활성화(On) 시: 먼저 사운드를 자체적으로 렌더링한 후(64x64의 이미지로), 이를 고정하고 이미지를 렌더링합니다.
창당 하나의 프롬프트: 각 창마다 프롬프트 노드를 하나 만들고, ComfyUI의 Conditioning Combine을 사용하여 순서대로 연결합니다(두 개보다 많으면 체인으로 연결). 그 결과를 가이더에 연결하고 split_conds_to_windows를 켭니다.
각 창(window)은 자신의 중앙에 해당하는 비디오 부분의 프롬프트를 가져옵니다. 따라서 창의 개수만큼 프롬프트가 주어지면, 창 1은 프롬프트 1을, 창 2는 프롬프트 2를 받고, 이런 식으로 진행됩니다. 전체 1분 동안 하나의 프롬프트를 사용하면 모든 창이 그 내용을 구현하려고 시도하므로 움직임이 반복됩니다.
제출자: /u/roychodraws [링크] [댓글]