Wat is PuLID?
PuLID (Pure and Lightning ID customization) is een nieuwe methode voor tuning-free identiteit (ID) aanpassing in tekst-naar-afbeelding generatie modellen. Het heeft als doel om een specifieke ID (bijv. het gezicht van een persoon) in een voorgetraind tekst-naar-afbeelding model te embedden zonder de oorspronkelijke mogelijkheden van het model te verstoren. Dit maakt het mogelijk om afbeeldingen van de specifieke persoon te genereren terwijl je nog steeds attributen, stijlen, achtergronden enz. kunt aanpassen met tekst prompts.
PuLID omvat twee belangrijke componenten:
- Een "Lightning T2I" tak die snel hoogwaardige afbeeldingen genereert op basis van de ID in slechts een paar denoising stappen, naast de standaard diffusietak. Dit maakt het mogelijk om een nauwkeurige ID-verlies te berekenen om de getrouwheid van het gegenereerde gezicht te verbeteren.
- Contrasterende uitlijning verliezen tussen de Lightning T2I paden met en zonder ID-conditionering. Dit instrueert het model hoe de ID-informatie te embedden zonder de oorspronkelijke prompt-volgende en afbeeldingsgeneratiecapaciteiten van het model te vervuilen.
Hoe werkt PuLID
De architectuur van PuLID bestaat uit een conventionele diffusietrainingstak en de nieuwe Lightning T2I tak:
- In de diffusietak volgt PuLID het standaard diffusietrainingsproces van iteratief denoising. De ID-voorwaarde wordt uitgesneden uit de doeltrainingsafbeelding.
- De Lightning T2I tak maakt gebruik van recente snelle sampling methoden om een hoogwaardige afbeelding te genereren op basis van de ID-prompt in slechts 4 denoising stappen, beginnend vanaf pure ruis.
- Binnen de Lightning T2I tak worden twee paden geconstrueerd - één alleen gebaseerd op de tekstprompt, de andere gebaseerd op zowel de ID als de tekstprompt. De UNET-functies van deze paden worden uitgelijnd met contrasterende verliezen:
- Een semantisch uitlijningsverlies zorgt ervoor dat de reactie van het model op de tekstprompt vergelijkbaar is met en zonder ID-conditionering. Dit behoudt de oorspronkelijke prompt-volgende mogelijkheid van het model.
- Een lay-out uitlijningsverlies behoudt de consistentie van de gegenereerde afbeeldingslay-out voor en na de ID-invoeging.
- De Lightning T2I tak maakt het mogelijk om een nauwkeurig ID-verlies te berekenen tussen de gegenereerde gezichtsembedding en de echte ID-embedding, aangezien het een schoon, gedenoised outputgezicht produceert. Dit verbetert de getrouwheid van de gegenereerde ID.
Hoe ComfyUI PuLID te gebruiken
Het gebruik van de ComfyUI PuLID workflow om ID-aanpassing toe te passen op een model omvat verschillende belangrijke parameters in de "Apply PuLID" node:
"Apply PuLID" Vereiste Invoeren:
- model: Het basis tekst-naar-afbeelding diffusie model om aan te passen met de specifieke ID. Dit is meestal een voorgetraind model zoals Stable Diffusion.
- pulid: De geladen PuLID modelgewichten, die bepalen hoe de ID-informatie in het basismodel wordt ingevoegd. Verschillende PuLID gewichtsbestanden kunnen worden getraind om ofwel ID-getrouwheid of het behoud van de oorspronkelijke generatie stijl van het model te prioriteren.
- eva_clip: Het geladen Eva-CLIP model voor het coderen van gelaatstrekken uit de ID-referentieafbeelding(en). Eva-CLIP produceert een betekenisvolle gezichtskenmerk embedding.
- face_analysis: Het geladen InsightFace model voor het herkennen en uitsnijden van het gezicht in de ID-referentieafbeelding(en). Dit zorgt ervoor dat alleen relevante gezichtskenmerken worden gecodeerd.
- image: De referentieafbeelding of afbeeldingen die de specifieke ID weergeven om in het model in te voegen. Meerdere afbeeldingen van dezelfde identiteit kunnen worden verstrekt om de ID-embedding te verbeteren.
- method: Selecteert de ID-invoegmethode, met opties "fidelity", "style" en "neutral". "fidelity" geeft prioriteit aan maximale gelijkenis met de ID-referentie, zelfs als de generatiekwaliteit afneemt. "style" richt zich op het behoud van de oorspronkelijke generatiecapaciteiten van het model met een lagere ID-getrouwheid. "neutral" balanceert de twee.
- weight: Bepaalt de sterkte van de ID-invoeging, van 0 (geen effect) tot 5 (extreem sterk). De standaardwaarde is 1. Een hogere gewicht verbetert de ID-getrouwheid, maar loopt het risico de oorspronkelijke generatie van het model te overschrijven.
- start_at: De denoising stap (als een percentage van 0 tot 1) om te beginnen met het toepassen van de PuLID ID-aanpassing. De standaardwaarde is 0, wat betekent dat de ID-invoeging begint vanaf de eerste denoising stap. Kan worden verhoogd om later in het denoising proces te beginnen met ID-invoeging.
- end_at: De denoising stap (als een percentage van 0 tot 1) om te stoppen met het toepassen van de PuLID ID-aanpassing. De standaardwaarde is 1, wat betekent dat de ID-invoeging wordt toegepast tot het einde van het denoising. Kan worden verminderd om de ID-invoeging te stoppen voor de laatste denoising stappen.
"Apply PuLID" Optionele Invoeren:
- attn_mask: Een optionele grijswaardenmasker afbeelding om ruimtelijk te bepalen waar de ID-aanpassing wordt toegepast. Witte gebieden van het masker ontvangen het volledige ID-invoegeffect, zwarte gebieden blijven onaangetast, grijze gebieden ontvangen een gedeeltelijk effect. Nuttig om de ID te lokaliseren naar alleen het gezichtgebied.
"Apply PuLID" Uitvoeren:
- MODEL: Het invoermodel met de PuLID ID-aanpassing toegepast. Dit aangepaste model kan worden gebruikt in andere ComfyUI nodes voor afbeeldingsgeneratie. De gegenereerde afbeeldingen zullen de ID weergeven terwijl ze nog steeds via prompt kunnen worden aangestuurd.
Het aanpassen van deze parameters stelt je in staat om de PuLID ID-invoeging fijn af te stemmen om de gewenste balans tussen ID-getrouwheid en generatiekwaliteit te bereiken. Over het algemeen biedt een gewicht van 1 met de methode "neutral" een betrouwbare startpunt, die vervolgens kan worden aangepast op basis van de resultaten. De start_at en end_at parameters bieden verdere controle over wanneer de ID effect krijgt in de denoising, met de optie om het effect te lokaliseren via een attn_mask.
Voor meer informatie, bezoek github