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.
<video src="https://cdn.runcomfy.net/workflow_assets/1095/readme02.mp4" alt="PuLID Beispiele" width="750"/>
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)




