ComfyUI  >  Workflow  >  LivePortrait | Animujte portréty | Img2Vid

LivePortrait | Animujte portréty | Img2Vid

Tento ComfyUI LivePortrait Img2Vid workflow přináší statické portrétní obrázky k životu integrací efektivního rámce LivePortrait. Umožňuje vám vytvářet vysoce realistická animovaná videa s plnou kontrolou nad obličejovými výrazy, pohyby hlavy a jemnými detaily jako oči a ústa.

ComfyUI LivePortrait Pracovní postup

ComfyUI LivePortrait Workflow
Chcete spustit toto workflow?
  • Plně funkční workflow
  • Žádné chybějící uzly nebo modely
  • Není nutné žádné ruční nastavení
  • Obsahuje úchvatné vizuály

ComfyUI LivePortrait Příklady

ComfyUI LivePortrait Popis

Co je LivePortrait?

LivePortrait je efektivní rámec pro animaci portrétů vyvinutý společností Kuaishou Technology, který má za cíl syntetizovat realistická videa z jednoho zdrojového obrázku. Používá zdrojový obrázek jako referenci vzhledu a odvozuje pohyb (obličejové výrazy a pozici hlavy) z řídícího videa, audia, textu nebo generování.

Na rozdíl od mainstreamových metod založených na difuzi, LivePortrait zkoumá a rozšiřuje rámec založený na implicitním bodovém klíči, aby účinně vyvážil výpočetní efektivitu a ovladatelnost. Zaměřuje se na lepší generalizaci, ovladatelnost a efektivitu pro praktické použití. LivePortrait má vysokou kvalitu generování i ve srovnání s metodami difuze, přičemž je extrémně rychlý - asi 12,8 ms na snímek na RTX 4090 GPU s PyTorch.

Pro více informací navštivte

Jak LivePortrait funguje

Na vysoké úrovni, LivePortrait bere zdrojový obrázek a řídící video jako vstupy. Extrahuje vzhled ze zdrojového obrázku a pohyb z řídícího videa. Tyto jsou pak kombinovány pomocí modulů deformace a generování k syntéze animovaného portrétního videa, které zachovává identitu zdrojového obrázku, ale následuje pohyb a výrazy řídícího videa.

Klíčové komponenty v LivePortrait jsou:

  1. Extraktor vzhledových prvků: Kóduje identitu a informace o vzhledu ze zdrojového obrázku.
  2. Extraktor pohybu: Extrahuje pohybové prvky (klíčové body obličeje) z rámců řídícího videa.
  3. Modul deformace: Používá extrahovaný pohyb k deformaci prvků zdrojového obrázku, zarovnává je s pozicí a výrazy řídícího videa.
  4. Generátor obrázků: Bere deformované prvky a syntetizuje finální fotorealistický animovaný snímek.
  5. Modul pro šití a přesměrování: Volitelně šije generovaný portrét zpět na původní obrázek a umožňuje kontrolovat specifické obličejové oblasti jako oči a ústa.

Tyto moduly jsou efektivně navrženy a spolupracují, aby umožnily vysoce kvalitní, ovladatelnou animaci LivePortrait.

Jak používat ComfyUI LivePortrait

Díky  uzlu a workflow, je nyní snadnější vytvářet realistické animace portrétů v ComfyUI. Následuje rozpis klíčových komponent a parametrů jeho workflow ComfyUI LivePortrait.

Klíčové kroky workflow ComfyUI LivePortrait Img2Vid

1. Načtěte modely Live Portrait

  • Přidejte uzel "DownloadAndLoadLivePortraitModels"
  • Nastavte přesnost na auto nebo fp16 pro nejlepší výkon

2. Vyberte detektor obličeje pro LivePortrait

  • Máte na výběr mezi uzly "LivePortraitLoadCropper" (InsightFace) a "LivePortraitLoadMediaPipeCropper"
  • InsightFace je přesnější, ale má nekomerční licenci, zatímco MediaPipe je rychlejší na CPU, ale méně přesný
  • Oba výstupy jsou "cropper", který bude použit k detekci a oříznutí obličejů

3. Načtěte a předzpracujte zdrojový obrázek pro LivePortrait

  • Načtěte svůj zdrojový portrétní obrázek pomocí uzlu "Load Image"
  • Změňte jeho velikost na 512x512 pomocí uzlu "ImageResize"
  • Připojte změněný obrázek k uzlu "LivePortraitCropper"
  • Také připojte výstup "cropper" vašeho vybraného detektoru obličeje k tomuto uzlu
  • Klíčové parametry v uzlu "LivePortraitCropper"

"dsize": Nastavuje výstupní rozlišení oříznutého obrázku obličeje

  • Výchozí je 512, což znamená, že obličej bude oříznut na 512x512 pixelů
  • Vyšší hodnoty oříznou obličej ve vyšším rozlišení, ale mohou být pomalejší na zpracování
  • Nižší hodnoty budou rychlejší, ale mohou ztratit některé detaily

"scale": Řídí, jak blízko bude oříznutí obličeje

  • Výchozí je 2.3, vyšší hodnoty přiblíží blíže k obličeji, nižší hodnoty zahrnou více hlavy/pozadí
  • Chcete to upravit tak, aby oříznutí zahrnovalo celý obličej a část pozadí, ale ne příliš mnoho volného místa
  • Dobré oříznutí obličeje je důležité pro správný přenos pohybu
  • Typické hodnoty se pohybují od 1.8 do 2.5 v závislosti na rámování zdrojového obrázku

"face_index": Pokud je na obrázku detekováno více obličejů, toto vybere, který z nich oříznout

  • Výchozí je 0, což vybere první detekovaný obličej
  • Zvýšíte-li toto, vyberete jiný obličej na obrázku
  • Detekované obličeje jsou seřazeny na základě nastavení "face_index_order" (výchozí je od největšího k nejmenšímu)

"vx_ratio" a "vy_ratio" (volitelné): Tyto umožňují posunout oříznutí vertikálně (vy) nebo horizontálně (vx)

  • Hodnoty se pohybují od -1 do 1
  • Například nastavení vy na 0.1 posune oříznutí nahoru o 10% velikosti rámu
  • To může pomoci, pokud je automatické oříznutí mírně nesprávně zarovnáno

"face_index_order": Toto nastavuje, jak jsou detekované obličeje seřazeny při výběru pomocí face_index

  • Výchozí je "large-small", což řadí od největšího k nejmenšímu obličeji
  • Může také řadit zleva doprava, shora dolů, atd.
  • Toto je relevantní pouze pokud máte na obrázku více obličejů

4. Načtěte a předzpracujte řídící video pro LivePortrait

  • Načtěte své řídící video pomocí uzlu "VHS_LoadVideo"
  • Upravte num_frames pomocí primitivy "frame_load_cap"
  • Změňte velikost snímků videa na 480x480 pomocí uzlu "GetImageSizeAndCount"
  • Můžete volitelně oříznout snímky řídícího videa pomocí dalšího uzlu "LivePortraitCropper"

5. Aplikujte přenos pohybu pro LivePortrait

  • Přidejte uzel "LivePortraitProcess"
  • Připojte načtený pipeline, informace o oříznutí zdrojového obrázku, oříznutý zdrojový obrázek a snímky řídícího videa k uzlu "LivePortraitProcess"
  • Klíčové parametry v uzlu "LivePortraitProcess"

"lip_zero": Když je povoleno, toto vynuluje parametry rtů, pokud klesnou pod určitý práh

  • Toto může pomoci snížit nepřirozené pohyby rtů a zlepšit synchronizaci rtů
  • Doporučeno povolit, pokud konkrétně nechcete zachovat veškerý pohyb rtů

"lip_zero_threshold": Toto nastavuje práh, pod který budou parametry rtů vynulovány, když je povoleno "lip_zero"

  • Výchozí je 0.03, vyšší hodnoty vynulují více pohybu rtů, nižší hodnoty zachovají více pohybu
  • Upravte toto, pokud chcete změnit, kolik pohybu rtů je potlačeno

"stitching": Když je povoleno, toto smíchá animovaný obličej zpět do původního obrázku pomocí procesu šití

  • Toto může pomoci vytvořit plynulejší přechod mezi animovaným obličejem a pozadím
  • Doporučeno povolit pro nejpřirozenější výsledky

"delta_multiplier": Toto škáluje parametry pohybu pomocí multiplikátoru

  • Výchozí je 1.0, vyšší hodnoty zveličí pohyb, nižší hodnoty ho sníží
  • Může být použito k úpravě celkové intenzity obličejového pohybu
  • Typické hodnoty se pohybují od 0.8 do 1.5 v závislosti na požadovaném efektu

"mismatch_method": Toto nastavuje, jak workflow řeší nesoulady mezi počtem zdrojových a řídících rámců

  • Možnosti jsou "constant", "cycle", "mirror" a "cut"
  • "constant" bude držet na posledním rámu, "cycle" bude smyčka, "mirror" bude hrát dopředu a pak zpět, "cut" zastaví
  • Výchozí je "constant", změňte toto, pokud chcete jiné chování, když je řídící video delší nebo kratší než zdroj

"relative_motion_mode": Toto řídí, jak je pohyb přenášen z řídícího videa na zdrojový obrázek

  • Možnosti jsou "relative", "source_video_smoothed", "relative_rotation_only", "single_frame" a "off"
  • "relative" je výchozí a používá relativní přenos pohybu
  • "off" zcela zakáže přenos pohybu
  • Experimentujte s různými režimy, abyste zjistili, který poskytuje nejlepší výsledky pro váš konkrétní případ použití

"driving_smooth_observation_variance": Toto řídí plynulost pohybu řídícího videa při použití režimu přenosu pohybu "source_video_smoothed"

  • Vyšší hodnoty více vyhladí pohyb, nižší hodnoty zachovají více původního pohybu
  • Výchozí je 0.000003, upravte toto, pokud chcete změnit plynulost přenášeného pohybu

6. Složit výsledek (volitelné) pro LivePortrait

  • Chcete-li složit animovaný obličej zpět do zdrojového obrázku, použijte uzel "LivePortraitComposite"
  • Připojte původní zdrojový obrázek, oříznutý animovaný obrázek, výstupní data LivePortrait a volitelnou masku
  • Toto bude výstupovat plné snímky s animovaným obličejem smíchaným dovnitř

7. Nakonfigurujte přesměrování (volitelné) pro LivePortrait

  • Pro jemnější kontrolu nad očima a rty použijte uzel "LivePortraitRetargeting"
  • Povolte přesměrování očí a/nebo rtů a upravte jejich multiplikátory
  • Připojte informace o přesměrování k uzlu "LivePortraitProcess"

Upozorňujeme, že v tomto workflow je vyžadován model Insightface. Model Insightface (https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip) má nekomerční licenci.

Pokud máte zájem o LivePortrait Vid2Vid, použijte

Chcete více workflow pro ComfyUI?

RunComfy

© Autorská práva 2024 RunComfy. Všechna práva vyhrazena.

RunComfy je přední ComfyUI platforma, nabízející ComfyUI online prostředí a služby, spolu s workflow ComfyUI s úchvatnými vizuály.