ComfyUI  >  Arbetsflöden  >  LivePortrait | Animerade Porträtt | Img2Vid

LivePortrait | Animerade Porträtt | Img2Vid

Detta ComfyUI LivePortrait Img2Vid arbetsflöde ger liv åt stillbilder genom att integrera den effektiva LivePortrait-ramverket. Det gör att du kan skapa mycket realistiska animerade videor med full kontroll över ansiktsuttryck, huvudrörelser och fina detaljer som ögon och mun.

ComfyUI LivePortrait Arbetsflöde

ComfyUI LivePortrait Workflow
Vill du köra detta arbetsflöde?
  • Fullt operativa arbetsflöden
  • Inga saknade noder eller modeller
  • Inga manuella inställningar krävs
  • Innehåller fantastiska visuella

ComfyUI LivePortrait Exempel

ComfyUI LivePortrait Beskrivning

Vad är LivePortrait?

LivePortrait är ett effektivt porträttanimationsramverk utvecklat av Kuaishou Technology som syftar till att skapa livliga videor från en enda källbild. Det använder källbilden som en utseendereferens och härleder rörelse (ansiktsuttryck och huvudposition) från en drivvideo, ljud, text eller generering.

Till skillnad från vanliga diffusionsbaserade metoder utforskar och utökar LivePortrait ett implicit-nyckelpunktsbaserat ramverk för att effektivt balansera beräkningsprestanda och kontrollbarhet. Det fokuserar på bättre generalisering, kontrollbarhet och effektivitet för praktisk användning. LivePortrait har hög genereringskvalitet även jämfört med diffusionsmetoder, samtidigt som det är extremt snabbt - cirka 12,8 ms per bildruta på en RTX 4090 GPU med PyTorch.

För mer detaljer, besök

Hur LivePortrait Fungerar

På en hög nivå tar LivePortrait en källbild och en drivvideo som indata. Det extraherar utseendet från källbilden och rörelsen från drivvideon. Dessa kombineras sedan med hjälp av warping- och genereringsmoduler för att skapa en animerad porträttvideo som behåller identiteten från källbilden men följer rörelsen och uttrycken från drivvideon.

De viktigaste komponenterna i LivePortrait är:

  1. Utseendefunktionsextraktor: Kodar identitets- och utseendeinformation från källbilden.
  2. Rörelseextraktor: Extraherar rörelsefunktioner (ansiktsnyckelpunkter) från drivvideons bildrutor.
  3. Warpingmodul: Använder den extraherade rörelsen för att förvränga källbildens funktioner och anpassa dem till drivpositionen och uttrycket.
  4. Bildgenerator: Tar de förvrängda funktionerna och syntetiserar den slutliga fotorealistiska animerade bildrutan.
  5. Sömning & Omdirigeringsmodul: Sömmar valfritt den genererade porträttet tillbaka på den ursprungliga bilden och tillåter kontroll av specifika ansiktsregioner som ögon och mun.

Dessa moduler är effektivt utformade och arbetar tillsammans för att möjliggöra högkvalitativ, kontrollerbar LivePortrait-animation.

Hur man Använder ComfyUI LivePortrait

Tack vare  nod och arbetsflöde är det nu enklare att skapa realistiska porträttanimationer i ComfyUI. Följande är en översikt över de viktigaste komponenterna och parametrarna i hans ComfyUI LivePortrait arbetsflöde.

Viktiga Steg i ComfyUI LivePortrait Img2Vid Arbetsflöde

1. Ladda Live Portrait Modellerna

  • Lägg till "DownloadAndLoadLivePortraitModels" noden
  • Ställ in precision till auto eller fp16 för bästa prestanda

2. Välj Ansiktsdetektor för LivePortrait

  • Du har ett val mellan "LivePortraitLoadCropper" (InsightFace) och "LivePortraitLoadMediaPipeCropper" noder
  • InsightFace är mer noggrann men har en icke-kommersiell licens, medan MediaPipe är snabbare på CPU men mindre noggrann
  • Båda ger ut en "cropper" som kommer att användas för att upptäcka och beskära ansikten

3. Ladda och Förbehandla Källbild för LivePortrait

  • Ladda din källporträttbild med "Load Image" noden
  • Ändra storlek till 512x512 med "ImageResize" noden
  • Anslut den ändrade bilden till en "LivePortraitCropper" nod
  • Anslut också din valda ansiktsdetektors "cropper" utdata till denna nod
  • Nyckelparametrar i "LivePortraitCropper" Nod

"dsize": Detta ställer in utgångsupplösningen för den beskurna ansiktsbilden

  • Standard är 512, vilket innebär att ansiktet kommer att beskäras till 512x512 pixlar
  • Högre värden kommer att beskära ansiktet i högre upplösning, men kan vara långsammare att bearbeta
  • Lägre värden kommer att vara snabbare men kan förlora vissa detaljer

"scale": Detta styr hur inzoomad ansiktsbeskärningen kommer att vara

  • Standard är 2.3, högre värden zoomar närmare ansiktet, lägre värden inkluderar mer av huvudet/bakgrunden
  • Du vill justera detta så att beskärningen inkluderar hela ansiktet och en del av bakgrunden, men inte för mycket extra utrymme
  • En bra ansiktsbeskärning är viktig för att rörelseöverföringen ska fungera bra
  • Typiska värden sträcker sig från 1.8 till 2.5 beroende på inramningen av källbilden

"face_index": Om det finns flera ansikten upptäckta i bilden, väljer detta vilket som ska beskäras

  • Standard är 0, vilket väljer det första upptäckta ansiktet
  • Öka detta om du vill välja ett annat ansikte i bilden
  • Upptäckta ansikten är ordnade baserat på "face_index_order" inställningen (standard är största till minsta)

"vx_ratio" och "vy_ratio" (Valfritt): Dessa tillåter dig att förskjuta beskärningen vertikalt (vy) eller horisontellt (vx)

  • Värden sträcker sig från -1 till 1
  • Till exempel, att ställa in vy till 0.1 kommer att förskjuta beskärningen uppåt med 10% av ramstorleken
  • Detta kan hjälpa om den automatiska beskärningen är något feljusterad

"face_index_order": Detta ställer in hur upptäckta ansikten ordnas när man väljer med face_index

  • Standard är "large-small" vilket ordnar från största till minsta ansikte
  • Kan också ordnas från vänster till höger, uppifrån och ner, etc.
  • Detta är endast relevant om du har flera ansikten i din bild

4. Ladda och Förbehandla Drivvideo för LivePortrait

  • Ladda din drivvideo med "VHS_LoadVideo" noden
  • Justera num_frames med "frame_load_cap" primitiv
  • Ändra storlek på videoramarna till 480x480 med en "GetImageSizeAndCount" nod
  • Du kan valfritt beskära drivvideoramarna med en annan "LivePortraitCropper" nod

5. Använd Rörelseöverföring för LivePortrait

  • Lägg till "LivePortraitProcess" noden
  • Anslut den laddade pipelinen, källbildens crop_info, beskurna källbilden och drivramarna till "LivePortraitProcess" noden
  • Nyckelparametrar i "LivePortraitProcess" Nod

"lip_zero": När aktiverat, kommer detta att nollställa läppparametrarna om de faller under en viss tröskel

  • Detta kan hjälpa till att minska onaturliga läpprörelser och förbättra läppsynkronisering
  • Rekommenderas att aktivera detta om du inte specifikt vill bevara all läpprörelse

"lip_zero_threshold": Detta ställer in tröskeln under vilken läppparametrarna kommer att nollställas när "lip_zero" är aktiverat

  • Standard är 0.03, högre värden kommer att nollställa mer läpprörelse, lägre värden kommer att bevara mer
  • Justera detta om du vill ändra hur mycket läpprörelse som undertrycks

"stitching": När aktiverat, kommer detta att blanda den animerade ansiktet tillbaka i den ursprungliga bilden med en sömningsprocess

  • Detta kan hjälpa till att skapa en mer sömlös övergång mellan det animerade ansiktet och bakgrunden
  • Rekommenderas att aktivera detta för de mest naturliga resultaten

"delta_multiplier": Detta skalar rörelseparametrarna med en multiplikator

  • Standard är 1.0, högre värden kommer att överdriva rörelsen, lägre värden kommer att minska den
  • Kan användas för att justera den övergripande intensiteten av ansiktsrörelsen
  • Typiska värden sträcker sig från 0.8 till 1.5 beroende på önskad effekt

"mismatch_method": Detta ställer in hur arbetsflödet hanterar missmatchningar mellan antalet käll- och drivramar

  • Alternativen är "constant", "cycle", "mirror", och "cut"
  • "constant" kommer att hålla på den sista ramen, "cycle" kommer att loopa, "mirror" kommer att spela framåt och sedan bakåt, "cut" kommer att stoppa
  • Standard är "constant", ändra detta om du vill ha ett annat beteende när drivvideon är längre eller kortare än källan

"relative_motion_mode": Detta kontrollerar hur rörelse överförs från drivvideon till källbilden

  • Alternativen är "relative", "source_video_smoothed", "relative_rotation_only", "single_frame", och "off"
  • "relative" är standard och använder relativ rörelseöverföring
  • "off" kommer att inaktivera rörelseöverföring helt
  • Experimentera med olika lägen för att se vilket som ger de bästa resultaten för ditt specifika användningsfall

"driving_smooth_observation_variance": Detta kontrollerar jämnheten i drivrörelsen när "source_video_smoothed" rörelseläge används

  • Högre värden kommer att jämna ut rörelsen mer, lägre värden kommer att bevara mer av den ursprungliga rörelsen
  • Standard är 0.000003, justera detta om du vill ändra jämnheten i den överförda rörelsen

6. Kompositera Resultatet (Valfritt) för LivePortrait

  • För att kompositera det animerade ansiktet tillbaka i källbilden, använd "LivePortraitComposite" noden
  • Anslut den ursprungliga källbilden, den beskurna animerade bilden, LivePortrait utdata och en valfri mask
  • Detta kommer att ge ut fullständiga ramar med det animerade ansiktet blandat in

7. Konfigurera Omdirigering (Valfritt) för LivePortrait

  • För finare kontroll över ögon och läppar, använd "LivePortraitRetargeting" noden
  • Aktivera ögon- och/eller läppomdirigering och justera deras multiplikatorer
  • Anslut omdirigeringsinformationen till "LivePortraitProcess"

Observera att Insightface-modellen krävs i detta arbetsflöde. Insightface-modellen (https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip) licens är icke-kommersiell till sin natur.

Om du är intresserad av LivePortrait Vid2Vid, använd

Vill du ha fler ComfyUI arbetsflöden?

RunComfy

© Copyright 2024 RunComfy. Alla Rättigheter Förbehållna.

RunComfy är den främsta ComfyUI plattform, som erbjuder ComfyUI online miljö och tjänster, tillsammans med ComfyUI arbetsflöden med fantastiska visuella.