TL;DR

ComfyUI_PuLID_Flux_ll là custom node ComfyUI do lldacing phát triển, giải quyết triệt để vấn đề model pollution trong các implementation PuLID Flux trước đó. Plugin tích hợp FaceNet như lựa chọn thay thế thương mại cho InsightFace - không bị ràng buộc giấy phép ArcFace. Dựa trên nền tảng PuLID (NeurIPS 2024), đây là công cụ bảo toàn nhận dạng khuôn mặt (face identity preservation) đáng tin cậy nhất hiện có trong hệ sinh thái ComfyUI.

PuLID Flux workflow với TeaCache speedup trong ComfyUI

Workflow PuLID Flux với TeaCache tăng tốc - kết quả 4 ảnh nhất quán từ cùng 1 khuôn mặt tham chiếu

Vấn đề cần giải quyết

Các implementation PuLID Flux trước đây (balazik, zhangp365) gặp hai vấn đề nghiêm trọng mà bất kỳ ai dùng lâu đều nhận ra:

  • Model pollution: khi áp dụng face identity, đồng thời làm biến đổi style, ánh sáng, và bố cục của ảnh gốc. Nhân vật được chèn vào đúng, nhưng cả bức ảnh lại trở nên méo mó - phá vỡ hoàn toàn ý đồ sáng tác ban đầu.

  • InsightFace ArcFace license: thư viện ArcFace nằm trong InsightFace không được phép sử dụng cho mục đích thương mại. Điều này khiến các creator muốn kiếm tiền từ nội dung sinh ra bị đặt vào vùng xám pháp lý.

ComfyUI_PuLID_Flux_ll giải quyết cả hai bằng kiến trúc ApplyPulidFlux được thiết kế lại và FaceNet như face analyzer thay thế mà không cần phụ thuộc thêm.

Kiến trúc hoạt động

PuLID - viết tắt của Pure and Lightning ID - được chấp nhận tại hội nghị NeurIPS 2024, sử dụng hai nhánh song song trong quá trình diffusion:

  • Nhánh Lightning T2I: xử lý identity embedding nhanh, trích xuất đặc trưng khuôn mặt từ ảnh tham chiếu

  • Nhánh standard diffusion: giữ nguyên toàn bộ behavior gốc của FLUX model

Hai loss function được dùng đồng thời - contrastive alignment lossaccurate ID loss - buộc model học cách chèn face identity mà không làm ô nhiễm các tham số style và layout. ID encoder được nâng cấp từ kiến trúc MLP lên Transformer, với cross-attention blocks chèn vào mỗi vài DIT blocks, lấy cảm hứng từ kiến trúc Flamingo.

Phiên bản PuLID-FLUX-v0.9.1 (tháng 10/2024) cải thiện ID fidelity thêm khoảng 5 điểm phần trăm so với v0.9.0 nhờ cải tiến quá trình training. Người dùng có thể kiểm soát mức độ ưu tiên fidelity vs editability qua tham số thời điểm chèn ID: giá trị thấp (gần 0) cho fidelity tối đa, giá trị cao hơn cho phép model điều chỉnh linh hoạt hơn.

Các node chính

Plugin cung cấp 6 node với chức năng rõ ràng, phân tách theo vai trò:

  • PulidFluxModelLoader: tải PuLID Flux pre-trained model từ ComfyUI/models/pulid/

  • PulidFluxFaceNetLoader: tải FaceNet cho commercial workflows - tự động download khoảng 550MB, không cần cài thêm gì

  • PulidFluxInsightFaceLoader: tải InsightFace với AntelopeV2 cho workflow truyền thống (non-commercial)

  • ApplyPulidFlux: node cốt lõi, áp dụng face identity vào quá trình generation, giải quyết model pollution

  • PulidFluxFaceDetector: debug và visualize khuôn mặt được phát hiện trong ảnh tham chiếu

  • PulidFluxOptions: cấu hình chi tiết - thứ tự face, alignment mode (legacy vs consistent embedding), và face indexing khi có nhiều khuôn mặt

Workflow PuLID Flux với attention mask trong ComfyUI

Attention mask workflow - áp dụng face identity chỉ cho vùng được chọn, giữ nguyên background và style

Cài đặt nhanh

Yêu cầu tối thiểu: ComfyUI phiên bản ≥ 0.3.7, CUDA compute ≥ v8.0 (tương đương RTX 20-series trở lên), VRAM tối thiểu 8GB.

  1. Gỡ cài đặt hoặc disable tất cả PuLID-Flux node khác (balazik, zhangp365, sipie800) trước khi cài

  2. Clone repo vào ComfyUI/custom_nodes/ComfyUI_PuLID_Flux_ll

  3. Chạy pip install -r requirements.txt

  4. Chạy pip install facenet-pytorch --no-deps để dùng FaceNet mode (commercial-friendly)

  5. Download PuLID Flux model vào ComfyUI/models/pulid/ - EVA02-CLIP-L-14-336 tự động tải khi chạy lần đầu

Lựa chọn VRAM theo cấu hình GPU:

  • 8GB: dùng 8-bit GGUF hoặc FP8 model

  • 16GB: fp8 + offload cho < 15GB (chất lượng khuôn mặt gần tương đương, tốc độ thấp hơn)

  • 24GB+: bf16 đầy đủ cho chất lượng tối ưu

Để tăng tốc inference, plugin hỗ trợ TeaCache (cần cài thêm ComfyUI_Patches_ll), Comfy-WaveSpeed với fp8_e5m2, và First Block Cache cho use case đơn giản nhất.

Workflow chọn nhiều khuôn mặt tham chiếu trong PuLID Flux

Multi-face reference workflow - chọn từng khuôn mặt trong ảnh nhóm làm tham chiếu độc lập

So sánh với các implementation khác

Plugin

Model pollution

License thương mại

Multi-face ref

Acceleration

balazik/ComfyUI-PuLID-Flux

Chưa sửa

InsightFace (ArcFace)

Không

Hạn chế

zhangp365/ComfyUI-PuLID-Flux

Chưa sửa

InsightFace (ArcFace)

Không

Hạn chế

lldacing/ComfyUI_PuLID_Flux_ll

Đã khắc phục

FaceNet (miễn phí)

Có (từ 2/2025)

TeaCache + WaveSpeed

Giới hạn cần biết

  • Node ApplyPulidFlux không hoạt động trên GPU CUDA compute < v8.0 - GTX 10-series và cũ hơn không được hỗ trợ

  • fp8 quantization cho chi tiết khuôn mặt kém hơn một chút so với bf16, dù bố cục tổng thể tương tự

  • ID fidelity với một số khuôn mặt nam giới thấp hơn so với nữ giới - developer đang cải thiện trong phiên bản tiếp theo

  • Không thể cài song song với các PuLID-Flux plugin khác - phải chọn một trong số chúng

Kết

ComfyUI_PuLID_Flux_ll là lựa chọn mạnh nhất hiện tại cho face identity preservation trong hệ sinh thái FLUX. FaceNet thay thế InsightFace giải quyết hoàn toàn vấn đề license thương mại, trong khi kiến trúc mới loại bỏ model pollution - vốn là điểm yếu lớn nhất của các implementation cũ. Nếu bạn đang xây dựng workflow tạo nhân vật nhất quán hoặc dịch vụ sinh ảnh thương mại, đây là plugin không thể thiếu.

Via: lldacing/ComfyUI_PuLID_Flux_ll · PuLID paper (NeurIPS 2024) · PuLID official repo (ToTheBeginning)