Squish - One Hand Only! - Wan2.2 i2v 14b
세부 정보
파일 다운로드
모델 설명
스퀴시 - 한 손만! - Wan2.2 i2v 14b
이 LoRA는 객체를 카메라 근처로 끌어올릴 때만이 아니라, 먼 거리에서도 압축할 수 있게 해줍니다! 기존 스퀴시와 달리, 별도의 상세한 프롬프트 없이도 한 손만으로 충분히 사용 가능합니다!
프롬프트 형식 및 요약
프롬프트:
동영상에서 [객체]가 제시됩니다. 한 사람이 오른쪽에서 긴 오른팔을 내밀어 [객체]까지 뻗어나가 [객체]를 잡습니다. [객체]는 사람의 오른손에 잡힌 채 멀리 떨어진 곳에 있습니다. 그 후 사람은 [객체]를 누르며 sq41sh 압축 효과를 발생시킵니다. 사람은 계속 [객체]를 누르고, sq41sh 압축 효과가 더 뚜렷해집니다.
내 사용 설정은 간단합니다: CFG 3.5, shift 8.0(기본값), dpm++-sde 스케줄러, 25(13+12) 스텝. 속도 향상이나 기타 추가 LoRA는 사용하지 않았습니다. Kijai의 래퍼로 제작했습니다.
비디오 품질을 약간 향상시키기 위해 10번째 블록의 uncond 스킵(SLG)을 사용했습니다. 갤러리 생성에는 다른 향상 기법을 적용하지 않았습니다. 512x512, 640p, 720p에서 모두 잘 작동합니다.
자세한 내용은 동영상 메타데이터의 워크플로우 또는 GitHub上的 복사본을 참조하세요.
이제 요약입니다. 아래에는 이 LoRA를 만드는 과정에서 저에게 발생한 어려움을 설명합니다. 이 내용은 다른 LoRA 트레이너 및 기술 사용자들에게도 유용할 수 있을 것입니다.
문제점
왜 나는 이 LoRA를 만들려고 했을까요?
기존의 Squish LoRA와 그 합성 디스틸레이션은 객체를 양쪽에서 둘러싸는 두 손과 그 손가락들에 강한 편향을 가지고 있습니다. 게다가 객체는 원래 공간적 위치에서 떼어내어 카메라 근처로 이동되기 때문에 몰입감이 떨어집니다. 제가 생각한 멋진 아이디어는 객체를 끌어당기는 것뿐만 아니라, 먼저 팔을 뻗어 객체에 도달하는 것입니다!
단지 한 손만 나타나게 하는 것은 프롬프트 엔지니어링, LoRA 강도, 그리고 Comfy에서의 조건화 산술 측면에서 악몽이었습니다(적어도 저에게는요). 그래서 이 세밀한 미세 조정을 만들기로 결정했습니다.
방법론
편향 때문에 원시 객체 데이터에서 "수정" 데이터셋을 얻는 것은 불가능했습니다. 그래서 시작 프레임을 객체 옆에 서 있는 손으로 변경했더니 성공률이 상승했습니다. 그러나 아니었습니다—왼손이 자주 개입하여 객체를 카메라 쪽으로 끌어당기고, 모든 진전을 무색하게 만들었습니다. 수많은 시간을 프롬프트 수정, LoRA 강도 조정, 그리고 ComfyUI의 계수를 이용한 조건화 평균에 쏟은 끝에, 마침내 적절한 사전 설정을 찾을 수 있었습니다.
보정용 데이터셋을 구성하기 위해, 다양한 장소에 있는 다양한 물건을 만지는 손들의 이미지를 수집한 후, 마지막 프레임을 가져와 보정된 Wan2.2의 이미지2비디오 및 squish LoRA로 이어붙였습니다.
병합 전, "실제" 프래그먼트를 Wan의 VAE를 통과시켜 현실감을 높였습니다. 이 해상도에서는 오른쪽 가장자리에 얇은 황금색 수직 선이 보였고, 모든 비디오에 동일한 해상도를 적용하여 수동으로 "vibe-coded" 프로그램을 통해 이 선을 제거했습니다. 이로 인해 다양한 비율 버킷이 생성되지 않도록 했습니다.
데이터셋은 다음과 같이 구성되었습니다:
10개의 수작업으로 만든 스퀴시 시나리오(두 부분 비디오: 먼저 손이 객체에 도달 + 손이 객체를 압축), 2개의 합성 스퀴시(손이 객체에 닿는 장면 — "도달" 부분을 생략한 단순한 이미지에서 비디오로 변환).
정규화: Omni-VFX 데이터셋에서 추출한 18개의 고품질 RemadeAI 합성 샘플.
제가 말했듯이, 성공률은 극히 낮았고, 데이터셋도 매우 작았습니다.
데이터 혼합은 에포크당 수작업 데이터셋 4회 반복 + 정규화 샘플 1회로 구성되었습니다.
squish LoRA의 미세 조정은 고임계 노이즈에는 6 에포크, 저임계 노이즈에는 4 에포크를 사용하여, 이중 GPU(5090 + 4090, 데이터 병렬 + diffusion-pipe)로 하루 밤 동안 진행했습니다.
학습에는 Prodigy 최적화기를 사용했고, 손실 함수로는 허버 상수 0.5를 사용한 _가상 허버 손실_을 실험적으로 적용했습니다.
사용 설정
사용 설정은 간단합니다: CFG 3.5, shift 8.0(기본값), dpm++-sde 스케줄러, 25(13+12) 스텝. 속도 향상이나 추가 LoRA는 사용하지 않았습니다.
비디오 품질을 약간 향상시키기 위해 10번째 블록의 uncond 스킵(SLG)을 사용했습니다. 갤러리 생성에는 다른 향상 기법을 적용하지 않았습니다.
학습 해상도는 최대 너비/높이 < 512였으나, 이제 편향이 제거되었으므로 더 긴 해상도도 시도해 볼 수 있습니다. 512, 640은 잘 작동하며, 720p에서도 결과를 얻을 수 있습니다!(LoRA가 너무 많이 학습되었기 때문이죠, 하하!) 갤러리 예시는 720p로 제작되어 보여줍니다 :0
학습 프레임 수는 81개(16fps 기준 약 5초, 24fps 기준 약 3초)이며, 이 수치를 권장합니다. 65 프레임에서도 작동하지만, 다른 수치는 테스트하지 않았습니다.
Kijai의 ComfyUI 래퍼를 사용했습니다. 네이티브 워크플로우는 약간의 조정이 필요할 수 있습니다. 워크플로우는 동영상 메타데이터에 첨부되어 있습니다. 접근이 어려우면, 이 GitHub Gist 링크에서 JSON 형식으로 확인할 수 있습니다.
갤러리 시작 이미지는 Qwen, SDXL 및 Flux로 생성했으며, Edit 및 Kontext도 포함되었습니다.
제한사항
편향을 빠르게 제거하기 위해 오른손을 중심으로 학습했으므로, 왼손잡이 분들에게는 적합하지 않을 수 있습니다 :)
대부분 합성 데이터로 학습되었기 때문에, 프레임 오른쪽 가장자리에 얇은 황금색 선이 나타날 수 있습니다. 데이터셋 준비 시 최대한 이를 자르려 노력했지만, 여전히 일부 잔여 흔적이 남아 있습니다. (더 자세히 보면, 이 흔적은 Wan2.2의 특성상 LoRA 없이도 생성물에서 나타날 수 있습니다.) 이 흔적은 더 높은 해상도에서는 사라집니다.
데이터셋을 만들 때, 위에 언급된 방법들을 사용해도 높은 해상도에서 프롬프트를 정확히 맞추는 것은 거의 불가능했고, 결국 낮은 해상도(<512 최대 치수)로 학습해야 했습니다. 이로 인해 미세한 흐릿함이 발생할 수 있습니다.
기존 스퀴시와 마찬가지로, 가끔 등장인물의 다리가 사라지는 현상이 발생합니다. 정규화 데이터셋에서 이러한 사례를 제거하려 최선을 다했지만, 여전히 발생하며 원인은 알 수 없습니다. :( 아마도 Wan 학습의 한계일 수 있습니다. (프롬프트에 다리 및 신발을 명시해보세요.)
객체가 카메라에 너무 가까우면, 기본 동작이 트리거되어 두 번째 손이 생성될 수 있으므로, 명확히 멀리 떨어진 객체를 사용하는 것이 좋습니다.
마무리
이 LoRA는 스퀴시의 두 손 편향을 제거하고, 먼 거리에서 물체를 압축함으로써 더 현실감 있고 충격적인 효과를 내기 위해 제작되었습니다. 재미있고 유용하길 바라는 마음으로 만들었습니다.
제가 받을 수 있는 최고의 선물은, 여러분이 갤러리에 이 LoRA를 사용한 예시를 공유해주시는 것입니다(평가가 낮아도 괜찮습니다!) :)
물론 문제점이 있다면, 댓글로 알려주세요.
초기 개념 제공자 RemadeAI에게 감사드립니다 :3
