Was ist PuLID?
PuLID (Pure and Lightning ID customization) ist eine neuartige Methode zur abstimmungsfreien Identitäts- (ID-) Anpassung in Text-zu-Bild-Generierungsmodellen. Es zielt darauf ab, eine bestimmte ID (z. B. das Gesicht einer Person) in ein vortrainiertes Text-zu-Bild-Modell einzubetten, ohne die ursprünglichen Fähigkeiten des Modells zu stören. Dies ermöglicht die Generierung von Bildern der bestimmten Person, während Attribute, Stile, Hintergründe usw. weiterhin mittels Textanweisungen modifiziert werden können.
PuLID beinhaltet zwei Hauptkomponenten:
- Einen "Lightning T2I"-Zweig, der in nur wenigen Entrauschungsschritten zusammen mit dem Standarddiffusionszweig schnell hochwertige Bilder erzeugt, die auf die ID abgestimmt sind. Dies ermöglicht die Berechnung eines genauen ID-Verlusts, um die Wiedergabetreue des generierten Gesichts zu verbessern.
- Kontrastive Ausrichtungsverluste zwischen den Lightning T2I-Pfaden mit und ohne ID-Bedingung. Dies weist das Modell an, wie es die ID-Informationen einbetten kann, ohne die ursprünglichen Fähigkeiten des Modells zur Aufforderungsbefolgung und Bildgenerierung zu beeinträchtigen.
Wie PuLID funktioniert
PuLIDs Architektur besteht aus einem herkömmlichen Diffusionstrainingszweig und dem neuartigen Lightning T2I-Zweig:
- Im Diffusionszweig folgt PuLID dem Standardprozess des Diffusionstrainings mit iterativer Entrauschung. Die ID-Bedingung wird aus dem Zieltrainingsbild zugeschnitten.
- Der Lightning T2I-Zweig nutzt die jüngsten schnellen Abtastmethoden, um in nur 4 Entrauschungsschritten ein hochwertiges Bild zu generieren, das auf die ID-Aufforderung abgestimmt ist, beginnend mit reinem Rauschen.
- Innerhalb des Lightning T2I-Zweigs werden zwei Pfade konstruiert - einer, der nur auf die Textaufforderung bedingt ist, der andere, der sowohl auf die ID als auch auf die Textaufforderung bedingt ist. Die UNET-Merkmale dieser Pfade werden mit kontrastiven Verlusten ausgerichtet:
- Ein semantischer Ausrichtungsverlust stellt sicher, dass die Reaktion des Modells auf die Textaufforderung mit und ohne ID-Konditionierung ähnlich ist. Dies bewahrt die ursprüngliche Fähigkeit des Modells, Aufforderungen zu folgen.
- Ein Layout-Ausrichtungsverlust sorgt für Konsistenz des generierten Bildlayouts vor und nach dem Einfügen der ID.
- Der Lightning T2I-Zweig ermöglicht die Berechnung eines genauen ID-Verlusts zwischen dem generierten Gesichtseinbettung und der realen ID-Einbettung, da er ein sauberes, entrauschtes Ausgangsgesicht erzeugt. Dies verbessert die Wiedergabetreue der generierten ID.
Wie man ComfyUI PuLID verwendet
Die Verwendung des ComfyUI PuLID-Workflows zur Anwendung der ID-Anpassung auf ein Modell beinhaltet mehrere Schlüsselparameter im "Apply PuLID"-Node:
"Apply PuLID" Erforderliche Eingaben:
- model: Das Text-zu-Bild-Diffusionsgrundmodell, das mit der spezifischen ID angepasst werden soll. Dies ist typischerweise ein vortrainiertes Modell wie Stable Diffusion.
- pulid: Die geladenen PuLID-Modellgewichte, die definieren, wie die ID-Informationen in das Basismodell eingefügt werden. Verschiedene PuLID-Gewichtsdateien können trainiert werden, um entweder die ID-Wiedergabetreue oder die Beibehaltung des ursprünglichen Generierungsstils des Modells zu priorisieren.
- eva_clip: Das geladene Eva-CLIP-Modell zur Kodierung von Gesichtsmerkmalen aus dem/den ID-Referenzbild(ern). Eva-CLIP erzeugt eine aussagekräftige Gesichtsmerkmal-Einbettung.
- face_analysis: Das geladene InsightFace-Modell zur Erkennung und Zuschneiden des Gesichts im/in den ID-Referenzbild(ern). Dadurch wird sichergestellt, dass nur relevante Gesichtsmerkmale kodiert werden.
- image: Das Referenzbild oder die Bilder, die die spezifische ID darstellen, die in das Modell eingefügt werden soll. Es können mehrere Bilder derselben Identität bereitgestellt werden, um die ID-Einbettung zu verbessern.
- method: Wählt die ID-Einfügemethode mit den Optionen "fidelity", "style" und "neutral". "fidelity" priorisiert maximale Ähnlichkeit mit der ID-Referenz, auch wenn die Generierungsqualität abnimmt. "style" konzentriert sich auf die Beibehaltung der ursprünglichen Generierungsfähigkeiten des Modells mit einer ID mit geringerer Wiedergabetreue. "neutral" gleicht die beiden aus.
- weight: Steuert die Stärke der ID-Einfügung von 0 (keine Wirkung) bis 5 (extrem stark). Standard ist 1. Ein höheres Gewicht verbessert die ID-Wiedergabetreue, riskiert aber, die ursprüngliche Generierung des Modells zu überschreiben.
- start_at: Der Entrauschungsschritt (als Prozentsatz von 0 bis 1), ab dem die PuLID-ID-Anpassung angewendet wird. Standard ist 0, d.h. die ID-Einfügung beginnt mit dem ersten Entrauschungsschritt. Kann erhöht werden, um die ID-Einfügung später im Entrauschungsprozess zu starten.
- end_at: Der Entrauschungsschritt (als Prozentsatz von 0 bis 1), um die PuLID-ID-Anpassung zu stoppen. Standard ist 1, d.h. die ID-Einfügung wird bis zum Ende der Entrauschung angewendet. Kann reduziert werden, um die ID-Einfügung vor den letzten Entrauschungsschritten zu stoppen.
"Apply PuLID" Optionale Eingaben:
- attn_mask: Eine optionale Graustufenmaske, um räumlich zu steuern, wo die ID-Anpassung angewendet wird. Weiße Bereiche der Maske erhalten die volle ID-Einfügewirkung, schwarze Bereiche bleiben unbeeinflusst, graue Bereiche erhalten eine teilweise Wirkung. Nützlich, um die ID nur auf den Gesichtsbereich zu lokalisieren.
"Apply PuLID" Ausgaben:
- MODEL: Das Eingabemodell mit angewandter PuLID-ID-Anpassung. Dieses angepasste Modell kann in anderen ComfyUI-Nodes zur Bilderzeugung verwendet werden. Die generierten Bilder stellen die ID dar und können dennoch über Prompts gesteuert werden.
Durch Anpassung dieser Parameter kann die PuLID-ID-Einfügung feinabgestimmt werden, um das gewünschte Gleichgewicht zwischen ID-Wiedergabetreue und Generierungsqualität zu erreichen. Im Allgemeinen bietet ein Gewicht von 1 mit der Methode "neutral" einen zuverlässigen Ausgangspunkt, der dann basierend auf den Ergebnissen angepasst werden kann. Die Parameter start_at und end_at bieten weitere Kontrolle darüber, wann die ID während der Entrauschung wirksam wird, mit der Option, den Effekt über eine attn_mask zu lokalisieren.
Für weitere Informationen besuchen Sie bitte [github] (https://github.com/cubiq/PuLID_ComfyUI)