ComfyUI  >  Przepływy pracy  >  LivePortrait | Animuj Portrety | Img2Vid

LivePortrait | Animuj Portrety | Img2Vid

Ten workflow ComfyUI LivePortrait Img2Vid ożywia nieruchome obrazy portretowe, integrując wydajny framework LivePortrait. Umożliwia tworzenie bardzo realistycznych animowanych filmów z pełną kontrolą nad mimiką, ruchami głowy i drobnymi szczegółami, takimi jak oczy i usta.

ComfyUI LivePortrait Przepływ pracy

ComfyUI LivePortrait Workflow
Chcesz uruchomić ten przepływ pracy?
  • W pełni funkcjonalne przepływy pracy
  • Brak brakujących węzłów lub modeli
  • Brak wymaganego ręcznego ustawiania
  • Cechuje się oszałamiającymi wizualizacjami

ComfyUI LivePortrait Przykłady

ComfyUI LivePortrait Opis

Co to jest LivePortrait?

LivePortrait to wydajny framework do animacji portretów opracowany przez Kuaishou Technology, który ma na celu syntezę realistycznych filmów z jednego obrazu źródłowego. Wykorzystuje obraz źródłowy jako odniesienie wyglądu i wyprowadza ruch (mimikę i pozycję głowy) z filmu sterującego, dźwięku, tekstu lub generowania.

W przeciwieństwie do głównych metod opartych na dyfuzji, LivePortrait bada i rozszerza framework oparty na punktach kluczowych, aby skutecznie zrównoważyć wydajność obliczeniową i kontrolowalność. Skupia się na lepszej generalizacji, kontrolowalności i wydajności w praktycznym użytkowaniu. LivePortrait ma wysoką jakość generowania nawet w porównaniu z metodami dyfuzyjnymi, będąc jednocześnie niezwykle szybkim - około 12,8 ms na klatkę na GPU RTX 4090 z PyTorch.

Więcej szczegółów znajdziesz na

Jak działa LivePortrait

Na wysokim poziomie, LivePortrait przyjmuje obraz źródłowy i film sterujący jako wejścia. Wyodrębnia wygląd z obrazu źródłowego i ruch z filmu sterującego. Są one następnie łączone za pomocą modułów deformacji i generowania, aby zsyntetyzować animowany film portretowy, który zachowuje tożsamość obrazu źródłowego, ale podąża za ruchem i mimiką filmu sterującego.

Kluczowe komponenty w LivePortrait to:

  1. Ekstraktor Cech Wyglądu: Koduje tożsamość i informacje o wyglądzie z obrazu źródłowego.
  2. Ekstraktor Ruchu: Wyodrębnia cechy ruchu (punkty kluczowe twarzy) z klatek filmu sterującego.
  3. Moduł Deformacji: Wykorzystuje wyodrębniony ruch do deformacji cech obrazu źródłowego, dopasowując je do pozy i mimiki sterującej.
  4. Generator Obrazu: Przyjmuje zdeformowane cechy i syntetyzuje końcową fotorealistyczną animowaną klatkę.
  5. Moduł Łączenia i Przekierowania: Opcjonalnie łączy wygenerowany portret z powrotem na oryginalny obraz i pozwala kontrolować specyficzne obszary twarzy, takie jak oczy i usta.

Te moduły są wydajnie zaprojektowane i współpracują, aby umożliwić wysokiej jakości, kontrolowaną animację LivePortrait.

Jak używać ComfyUI LivePortrait

Dzięki węzłowi i workflow , tworzenie realistycznych animacji portretów w ComfyUI jest teraz łatwiejsze. Poniżej znajduje się podział kluczowych komponentów i parametrów workflow ComfyUI LivePortrait.

Kluczowe kroki workflow ComfyUI LivePortrait Img2Vid

1. Załaduj modele Live Portrait

  • Dodaj węzeł "DownloadAndLoadLivePortraitModels"
  • Ustaw precyzję na auto lub fp16 dla najlepszej wydajności

2. Wybierz detektor twarzy dla LivePortrait

  • Masz do wyboru węzły "LivePortraitLoadCropper" (InsightFace) i "LivePortraitLoadMediaPipeCropper"
  • InsightFace jest bardziej dokładny, ale ma licencję niekomercyjną, natomiast MediaPipe jest szybszy na CPU, ale mniej dokładny
  • Oba węzły wyjściowe "cropper" będą używane do wykrywania i kadrowania twarzy

3. Załaduj i przygotuj obraz źródłowy dla LivePortrait

  • Załaduj swój portret źródłowy za pomocą węzła "Load Image"
  • Zmień jego rozmiar na 512x512 za pomocą węzła "ImageResize"
  • Połącz zmieniony rozmiar obrazu z węzłem "LivePortraitCropper"
  • Połącz również wyjście "cropper" wybranego detektora twarzy z tym węzłem
  • Kluczowe parametry w węźle "LivePortraitCropper"

"dsize": Ustawia rozdzielczość wyjściową przyciętego obrazu twarzy

  • Domyślnie 512, co oznacza, że twarz zostanie przycięta do 512x512 pikseli
  • Wyższe wartości przycinają twarz w wyższej rozdzielczości, ale mogą być wolniejsze w przetwarzaniu
  • Niższe wartości będą szybsze, ale mogą stracić trochę szczegółów

"scale": Kontroluje, jak bardzo zbliżone będzie przycięcie twarzy

  • Domyślnie 2.3, wyższe wartości zbliżają bardziej twarz, niższe wartości obejmują więcej głowy/tła
  • Chcesz dostosować to tak, aby przycięcie obejmowało całą twarz i trochę tła, ale nie za dużo dodatkowej przestrzeni
  • Dobre przycięcie twarzy jest ważne, aby transfer ruchu działał dobrze
  • Typowe wartości wahają się od 1.8 do 2.5 w zależności od kadrowania obrazu źródłowego

"face_index": Jeśli w obrazie zostanie wykrytych wiele twarzy, ten parametr wybiera, którą przyciąć

  • Domyślnie 0, co wybiera pierwszą wykrytą twarz
  • Zwiększ to, jeśli chcesz wybrać inną twarz na obrazie
  • Wykryte twarze są uporządkowane na podstawie ustawienia "face_index_order" (domyślnie od największej do najmniejszej)

"vx_ratio" i "vy_ratio" (Opcjonalnie): Pozwalają na przesunięcie przycięcia pionowo (vy) lub poziomo (vx)

  • Wartości wahają się od -1 do 1
  • Na przykład ustawienie vy na 0.1 przesunie przycięcie w górę o 10% rozmiaru ramki
  • Może to pomóc, jeśli automatyczne przycięcie jest lekko niedopasowane

"face_index_order": Ustawia, jak wykryte twarze są uporządkowane przy wyborze za pomocą face_index

  • Domyślnie "large-small", co oznacza uporządkowanie od największej do najmniejszej twarzy
  • Może również uporządkować od lewej do prawej, od góry do dołu, itp.
  • Jest to istotne tylko wtedy, gdy masz wiele twarzy na obrazie

4. Załaduj i przygotuj film sterujący dla LivePortrait

  • Załaduj film sterujący za pomocą węzła "VHS_LoadVideo"
  • Dostosuj liczbę klatek za pomocą prymitywu "frame_load_cap"
  • Zmień rozmiar klatek filmu na 480x480 za pomocą węzła "GetImageSizeAndCount"
  • Opcjonalnie możesz przyciąć klatki filmu sterującego za pomocą innego węzła "LivePortraitCropper"

5. Zastosuj transfer ruchu dla LivePortrait

  • Dodaj węzeł "LivePortraitProcess"
  • Połącz załadowany pipeline, informacje o przycięciu obrazu źródłowego, przycięty obraz źródłowy oraz klatki sterujące z węzłem "LivePortraitProcess"
  • Kluczowe parametry w węźle "LivePortraitProcess"

"lip_zero": Po włączeniu, wyzeruje parametry ust, jeśli spadną poniżej określonego progu

  • Może to pomóc zmniejszyć nienaturalne ruchy ust i poprawić synchronizację ust
  • Zalecane włączenie, chyba że chcesz zachować wszystkie ruchy ust

"lip_zero_threshold": Ustawia próg, poniżej którego parametry ust będą wyzerowane, gdy "lip_zero" jest włączone

  • Domyślnie 0.03, wyższe wartości wyzerują więcej ruchu ust, niższe wartości zachowają więcej
  • Dostosuj to, jeśli chcesz zmienić, jak dużo ruchu ust jest tłumione

"stitching": Po włączeniu, będzie łączyć animowaną twarz z powrotem na oryginalny obraz za pomocą procesu łączenia

  • Może to pomóc stworzyć bardziej płynne przejście między animowaną twarzą a tłem
  • Zalecane włączenie dla najbardziej naturalnych wyników

"delta_multiplier": Skaluje parametry ruchu przez mnożnik

  • Domyślnie 1.0, wyższe wartości wyolbrzymiają ruch, niższe wartości go redukują
  • Może być używane do dostosowania ogólnej intensywności ruchu twarzy
  • Typowe wartości wahają się od 0.8 do 1.5 w zależności od pożądanego efektu

"mismatch_method": Ustawia, jak workflow radzi sobie z niedopasowaniami między liczbą klatek źródłowych a sterujących

  • Opcje to "constant", "cycle", "mirror" i "cut"
  • "constant" utrzymuje ostatnią klatkę, "cycle" zapętla, "mirror" odtwarza do przodu, a potem do tyłu, "cut" zatrzymuje
  • Domyślnie "constant", zmień to, jeśli chcesz innego zachowania, gdy film sterujący jest dłuższy lub krótszy od źródłowego

"relative_motion_mode": Kontroluje, jak ruch jest przenoszony z filmu sterującego na obraz źródłowy

  • Opcje to "relative", "source_video_smoothed", "relative_rotation_only", "single_frame" i "off"
  • "relative" jest domyślne i używa względnego transferu ruchu
  • "off" wyłącza transfer ruchu całkowicie
  • Eksperymentuj z różnymi trybami, aby zobaczyć, który daje najlepsze wyniki dla twojego konkretnego przypadku użycia

"driving_smooth_observation_variance": Kontroluje płynność ruchu sterującego przy użyciu trybu ruchu "source_video_smoothed"

  • Wyższe wartości wygładzają ruch bardziej, niższe wartości zachowują więcej oryginalnego ruchu
  • Domyślnie 0.000003, dostosuj to, jeśli chcesz zmienić płynność przenoszonego ruchu

6. Kompozycja wyniku (Opcjonalnie) dla LivePortrait

  • Aby skomponować animowaną twarz z powrotem na obraz źródłowy, użyj węzła "LivePortraitComposite"
  • Połącz oryginalny obraz źródłowy, przycięty animowany obraz, dane wyjściowe LivePortrait oraz opcjonalną maskę
  • To wyjście pełne klatki z animowaną twarzą wkomponowaną

7. Skonfiguruj przekierowanie (Opcjonalnie) dla LivePortrait

  • Dla dokładniejszej kontroli nad oczami i ustami, użyj węzła "LivePortraitRetargeting"
  • Włącz przekierowanie oczu i/lub ust i dostosuj ich mnożniki
  • Połącz informacje o przekierowaniu z "LivePortraitProcess"

Należy pamiętać, że model Insightface jest wymagany w tym workflow. Model Insightface (https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip) ma licencję niekomercyjną.

Jeśli jesteś zainteresowany LivePortrait Vid2Vid, użyj

Chcesz więcej przepływów pracy ComfyUI?

RunComfy

© Prawa autorskie 2024 RunComfy. Wszelkie prawa zastrzeżone.

RunComfy jest wiodącą ComfyUI platformą, oferującą ComfyUI online środowisko i usługi, wraz z przepływami pracy ComfyUI cechującymi się oszałamiającymi wizualizacjami.