ComfyUI  >  Arbetsflöden  >  Konsekvent stilöverföring med Unsampling

Konsekvent stilöverföring med Unsampling

Detta arbetsflöde utforskar Unsampling som en metod för konsekvent stilöverföring i Stable Diffusion. Genom att kontrollera latent brus säkerställer Unsampling att videorörelse och komposition bevaras, vilket gör stilövergångar smidigare och mer konsekventa!

ComfyUI Unsampling Arbetsflöde

Consistent Style Transfer with Unsampling in Stable Diffusion
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 Unsampling Exempel

ComfyUI Unsampling Beskrivning

Denna Unsampling-guide, skriven av Inner-Reflections, bidrar stort till att utforska Unsampling-metoden för att uppnå dramatiskt konsekvent videostilöverföring.

1. Introduktion: Latent brus-kontroll med Unsampling

Latent brus är grunden för allt vi gör med Stable Diffusion. Det är fantastiskt att ta ett steg tillbaka och tänka på vad vi kan åstadkomma med detta. Men generellt sett är vi tvungna att använda ett slumpmässigt nummer för att generera bruset. Tänk om vi kunde kontrollera det?

Jag är inte den första som använder Unsampling. Det har funnits väldigt länge och har använts på flera olika sätt. Men hittills har jag generellt inte varit nöjd med resultaten. Jag har tillbringat flera månader med att hitta de bästa inställningarna och jag hoppas att du uppskattar denna guide.

Genom att använda samplingsprocessen med AnimateDiff/Hotshot kan vi hitta brus som representerar vår ursprungliga video och därför gör alla typer av stilöverföring enklare. Det är särskilt hjälpsamt att hålla Hotshot konsekvent med tanke på dess 8-ramars kontextfönster.

Denna unsampling-process omvandlar i huvudsak vår ingångsvideo till latent brus som bibehåller rörelsen och kompositionen av originalet. Vi kan sedan använda detta representativa brus som startpunkt för diffusionsprocessen istället för slumpmässigt brus. Detta låter AI:n applicera målstilen medan den håller saker temporärt konsekventa.

Denna guide förutsätter att du har installerat AnimateDiff och/eller Hotshot. Om du inte redan har gjort det, finns guiderna här:

AnimateDiff: https://civitai.com/articles/2379

Hotshot XL guide: https://civitai.com/articles/2601/

Länk till resurs - Om du vill posta videor på Civitai med detta arbetsflöde. https://civitai.com/models/544534

2. Systemkrav för detta arbetsflöde

En Windows-dator med ett NVIDIA-grafikkort som har minst 12GB VRAM rekommenderas. På RunComfy-plattformen, använd en Medium (16GB VRAM) eller högre-tier maskin. Denna process kräver inte mer VRAM än standard AnimateDiff eller Hotshot arbetsflöden, men det tar nästan dubbelt så lång tid, eftersom det i huvudsak kör diffusionsprocessen två gånger—en gång för upsampling och en gång för resampling med målstilen.

3. Noder Förklaringar och Inställningsguide

Nod: Custom Sampler

Unsampling: Custom Sampler

Huvuddelen av detta är att använda Custom Sampler som delar upp alla inställningar du vanligtvis ser i den vanliga KSampler i delar:

Detta är huvud-KSampler-noden - för unsampling har tillägg av brus/seed ingen effekt (som jag är medveten om). CFG spelar roll - generellt sett, ju högre CFG är i detta steg desto närmare kommer videon att se ut som din original. Högre CFG tvingar unsamplern att mer noggrant matcha ingången.

Nod: KSampler Select

Unsampling: KSampler Select

Det viktigaste är att använda en sampler som konvergerar! Det är därför vi använder euler över euler a eftersom den senare resulterar i mer slumpmässighet/instabilitet. Ancestrala samplers som lägger till brus vid varje steg förhindrar att unsampling rent konvergerar. Om du vill läsa mer om detta har jag alltid funnit  användbar. @spacepxl på reddit föreslår att DPM++ 2M Karras kanske är den mer exakta samplern beroende på användningsfall.

Nod: Align Your Step Scheduler

Unsampling: Align Your Step Scheduler

Vilken schemaläggare som helst fungerar bra här - Align Your Steps (AYS) får dock bra resultat med 16 steg så jag har valt att använda det för att minska beräkningstiden. Fler steg kommer att konvergera mer fullständigt men med avtagande avkastning.

Nod: Flip Sigma

Unsampling: Flip Sigma

Flip Sigma är den magiska noden som orsakar unsampling att ske! Genom att vända sigma-schemat, omvänds diffusionsprocessen för att gå från en ren ingångsbild till representativt brus.

Nod: Prompt

Unsampling: Prompt

Prompting spelar ganska stor roll i denna metod av någon anledning. En bra prompt kan verkligen förbättra sammanhållningen till videon, särskilt ju mer du vill driva transformationen. För detta exempel har jag matade samma konditionering till både unsamplern och resamplern. Det verkar fungera bra generellt - inget hindrar dig dock från att sätta tom konditionering i unsamplern - jag tycker att det hjälper att förbättra stilöverföringen, kanske med lite förlust av konsekvens.

Nod: Resampling

Unsampling: Resampling

För resampling är det viktigt att ha tilläggsbrus avstängt (även om tomt brus i AnimateDiff-sampleinställningarna har samma effekt - jag har gjort båda för mitt arbetsflöde). Om du lägger till brus under resampling får du ett inkonsekvent, brusigt resultat, åtminstone med standardinställningarna. Annars föreslår jag att börja med en ganska låg CFG kombinerat med svaga ControlNet-inställningar eftersom det verkar ge de mest konsekventa resultaten samtidigt som prompten fortfarande kan påverka stilen.

Andra Inställningar

Resten av mina inställningar är personliga preferenser. Jag har förenklat detta arbetsflöde så mycket som jag tror är möjligt medan jag fortfarande inkluderar de viktigaste komponenterna och inställningarna.

4. Arbetsflödesinformation

Standardarbetsflödet använder SD1.5-modellen. Du kan dock byta till SDXL genom att helt enkelt ändra checkpoint, VAE, AnimateDiff-modell, ControlNet-modell och stegschemaläggningsmodell till SDXL.

5. Viktiga Anmärkningar/Problem

  • Flimrande - Om du tittar på de avkodade och förhandsgranskade latenterna skapade av unsampling i mina arbetsflöden, kommer du att märka några med uppenbara färgavvikelser. Den exakta orsaken är oklar för mig, och generellt påverkar de inte slutresultaten. Dessa avvikelser är särskilt uppenbara med SDXL. De kan dock ibland orsaka flimrande i din video. Den främsta orsaken verkar vara relaterad till ControlNets - så att minska deras styrka kan hjälpa. Att ändra prompten eller till och med ändra schemaläggaren något kan också göra skillnad. Jag stöter fortfarande på detta problem ibland - om du har en lösning, låt mig veta!
    • DPM++ 2M kan ibland förbättra flimrande.

6. Vart ska man gå härifrån?

Detta känns som ett helt nytt sätt att kontrollera videokonsistens, så det finns mycket att utforska. Om du vill ha mina förslag:

  • Försök kombinera/maskera brus från flera källvideor.
  • Lägg till IPAdapter för konsekvent karaktärstransformation.

Om Författaren

Inner-Reflections

  • https://x.com/InnerRefle11312
  • https://civitai.com/user/Inner_Reflections_AI

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.