WAN 2.2 FLF With SVI For Perfecter Infinite Loopage
세부 정보
파일 다운로드
이 버전에 대해
모델 설명
저는 무한 루프를 진정으로 매끄럽게 만드는 여정을 계속하고 있습니다. 진전은 때로는 천천히, 때로는 후퇴하며 이루어집니다. SVI는 올바른 방향으로 주는 놀라운 밀어주기입니다. 들어오는 움직임은 모든 면에서 해결되었습니다. 다른 쪽 끝은 여전히 개선이 필요하지만, 움직임과 색상 모두에서 큰 진전이 있습니다.
좋습니다, 이 작업 방식을 설명해 드리겠습니다. SVI는 자신의 작업을 수행하고 들어오는 움직임을 보존하기 위해 잠재 프레임이 필요합니다. 따라서 소스 비디오의 마지막 16프레임을 인코딩하여 prev_samples로 사용합니다. 소스의 시작 프레임 하나를 앵커로 사용합니다. SVI 노드에서 얻은 임베딩은 소스를 다시 살펴보는 WAN 인코더의 임베딩과 결합됩니다. 단, WAN 인코더는 양 끝의 각각 한 프레임만 사용합니다. 따라서 시작 프레임, 끝 프레임, 그리고 몇 가지 특별한 마법 임베딩을 갖추고 추론을 수행합니다. 이제 결과가 디코딩 직후 제가 기대했던 것과 정확히 일치하지는 않지만, 매우 가깝습니다. 주요 문제는 끝부분에 항상 몇 프레임의 쓰레기 프레임이 발생한다는 점입니다. 네이티브 노드에서는 프레임 규칙을 어기고 49, 73 등(4의 배수 +1)처럼 행동할 때 이런 일이 발생합니다. 그런데 SVI가 실제로 프레임 수를 조정한다는 것이 밝혀졌습니다. 예를 들어 73프레임을 요청하면 실제로 77프레임이 생성됩니다. 이는 나쁜 숫자입니다. 안타깝게도, 69프레임을 요청해 더 똑똑하게 행동하려 해도, 73프레임을 만들도록 속였음에도 불구하고 여전히 끝부분에 쓰레기가 생깁니다. 그래서 더 똑똑해져야겠다고 스스로에게 말했습니다. 쓰레기를 피할 수 없다면, 그것을 예측 가능하게 만들자고요. 그래서 이 설정에 포함된 복제기입니다. 소스에 4프레임의 정지 구간을 추가하여, 움직임을 일찍 느리게 하도록 유도합니다. 그리고 이 경우 잠재 프레임과 일반 프레임을 상관관계로 연결할 수 있으므로, 쓰레기가 존재하는 위치에서 최종 출력에서 정확히 4프레임을 잘라냅니다. 이해되셨나요? 여러분이 생각하는 건, “추가 프레임이 잘못된 쪽에 붙어 있잖아”라고 하실 겁니다. 맞나요? 아니요. 사실은 맞습니다. 왜 그런지는 저도 모르겠습니다. 괜찮죠?
이제 움직임은 대체로 해결했으므로, 색상에 주목합니다. 제가 알아야 할 것은 마법의 색은 옥타린(Octarine)이라는 점입니다. 물론 저는 지금까지 알 수 있는 모든 노드에서 이 색을 찾을 수 없습니다. 그래서 mkl 색상 매칭을 사용합니다. 하지만 함정이 있습니다. 비디오의 시작 뿐만 아니라 끝부분도 매칭해야 합니다. 왜냐하면, 우리가 아는 대로, 색상은 흐릅니다. SVI로 인해 기본 생성 프레임 수가 약 300프레임에 이르기 때문에, 그 흐림은 더 심해졌습니다. 이때 등장하는 것이 페이드 마스크입니다. 비디오를 두 번 매칭합니다. 한 번은 시작부분에, 한 번은 끝부분에. 마스크는 끝부분에 매칭된 비디오와 시작부분에 매칭된 비디오 사이에 부드러운 크로스페이드를 제공합니다. 물론 때로는 하나의 위젯만으로는 부족합니다. 그래서 그레이딩 그룹이 등장합니다. 저는 일반적으로 끝부분에서만 필요하다는 것을 발견했고, 따라서 하나의 그룹만 존재하며 기본적으로 비활성화되어 있습니다. 당신의 공이 받는 빛에 따라 직접 조정해야 합니다. 이건 오해하기 쉬울 수 있지만, 그것이 현실입니다. 눈으로 보정량을 추정하는 것은 어렵습니다. *_게으르지 않고 편안함을 벗어나 효과를 달성하려는 분들께는 히스토그램과 벡터스코프가 매우 유용합니다. 비교 보기 또는 겹쳐 보기로 루마 히스토그램을 살펴보고, 사용 가능한 위젯(예: 대비, 밝기, 오프셋 등)을 이용해 루마를 압축하거나 확장해 보세요. 색상도 마찬가지로 컬러 벡터를 사용하세요. 물론 출력물을 편집기로 가져가면 편집기에서 색상 보정을 하는 것이 더 나을 수도 있습니다. 하지만 편집기에서 수행한 보정을 comfy 노드로 변환하여 몇 가지 사전 설정을 만들어두는 것이 도움이 됩니다. 올바른 방향으로 유도하기 위함입니다.*
저는 /model/2053259?modelVersionId=2477539를 사용하여 테스트를 진행했습니다. 가장 순종적인 모델이었습니다. 로더에는 디스틸레이션 LoRA가 포함되어 있지만, 사전 디스틸레이션된 모델과 함께 사용해서는 안 됩니다. SVI Pro 설정은 제가 가장 잘 작동한다고 판단한 설정입니다.
병합 단계에서는, 다리만 저장하거나 전체를 병합하여 저장하거나 둘 다 저장할 수 있습니다. 현재는 보간 및 업스케일 단계는 제외했습니다. 이제 기능 길이의 생성이 가능해지면서 메모리 관리가 매우 복잡해졌고, 300프레임 가량과 새로운 FLF 다리를 업스케일하고 보간하는 것은, 그 상자 안에서 빛나고 뜨거운 공기를 불어내는 그 ‘무언가’에게 즐거운 일이 아닙니다. 마이크로칩 RAM 같은 것 말이죠.
처음에는 기존의 FLF를 다단계 SVI 워크플로우의 끝에 붙이려 했지만, 이 방법은 큰 고통을 주었습니다. 아마도 동시에 워퍼 노드로 전환하려고 시도했기 때문인 것 같습니다. 그래서 우선 전환 작업을 완료하고, SVI만을 사용하도록 적응시킨 후, 메인 빌드에 추가하기로 결정했습니다. 만약 잘 통합되지 않는다면, SVI 워크플로우를 별도로 게시하겠습니다. 저는 충분히 수정을 가했고, 그 이유는 주로 프롬프트 세트를 인덱스로 선택하는 자동 전환 기능 때문입니다. 4단계의 프롬프트를 수행해야 하고, 서로 잘 어울려야 할 때 매우 유용합니다. 또한 모델/샘플러 설정 위젯을 통합했습니다. 이렇게 많은 단계가 있으면, 서브그래프를 계속 왔다 갔다 하며 설정을 바꾸는 게 악몽입니다. 하지만 궁극적으로는 4단계로 구성된 일반적인 스테이지드 설정이며, 약 300프레임을 출력합니다.
.zip 파일에는 두 버전이 있습니다. 하나는 드래그 앤 드롭 비디오 로더에서 경로와 파일명을 추출할 수 있는 제 커스텀 노드를 사용합니다. 이 노드는 경로 로더 위젯에 연결됩니다. 왜냐하면 현재 S&R 기능이 저에게 작동하지 않기 때문입니다. 이유는 모르겠습니다. 이 프로세스에서 입력 파일명을 연결하지 않으면 길을 잃거나, 매번 수동으로 입력하는 데 지루해질 수 있습니다. 노드 참조가 잘 작동한다면 필요 없습니다. 노드를 사용하려면 폴더를 커스텀 노드 폴더에 넣고 comfy를 재시작하세요. 의존성은 전혀 필요 없고, 단지 몇 줄의 파이썬 코드입니다.
지금은 하나의 예시만 있습니다... 더 만들었어야 했는데요. 음, 사실 엄청나게 많긴 합니다만, 제가 만든 쓰레기 모든 것을 업로드해야 한다고 느끼는 타입은 아닙니다. 저는 제 쓰레기를 선택합니다. 클릭 한 번으로 만들 수 있는 것보다 더 많은 노력이 들어간 무언가가 있어야 합니다. 그리고 소리가 있어야 합니다. 소리 없는 영상은 그 어떤 것보다 무의미합니다. 소리만 있고 영상이 없는 것도 아마도 별로일 겁니다. 핵심은, 저는 화려한 결과물을 만드는 것보다, 이 도구들을 제가 원하는 방향으로 만드는 기술에 훨씬 더 관심이 많다는 것입니다. 더 투명할수록 좋습니다. 그래서 SVI가 그토록 뛰어난 것입니다. 거의 다 왔습니다. 매끄러움에 거의 도달했습니다. 그 맛이 느껴집니다.

