Running Kontext ReferenceLatent conditioning through standard PuLID throws an error about
unexpected conditioning format. Fix: patch pulidflux.py to add timestep_zero_index kwarg
support and generation-token-only injection mode. Full patch instructions in the linked Article.
━━━ HARDWARE REQUIREMENTS ━━━
• Minimum: 16GB VRAM (will be slow, may need to reduce steps/resolution)
• Recommended: 24GB+ VRAM (RTX 3090/4090)
• Ideal: 48–96GB VRAM (A100, H100, RTX 6000 Ada)
• RAM: 32GB+ system RAM
• Storage: ~22GB for all models + 5–10GB per batch run output
━━━ REQUIRED MODELS ━━━
Place in the specified ComfyUI subdirectory:
• models/unet/ — flux1-dev-kontext_fp8_scaled.safetensors (~17GB) [HuggingFace: black-forest-labs]
• models/vae/ — ae.safetensors (~335MB) [HuggingFace: black-forest-labs/FLUX.1-dev]
• models/clip/ — clip_l.safetensors (~246MB) + t5xxl_fp8_e4m3fn_scaled.safetensors (~4.7GB)
• models/loras/ — flux_realism_lora.safetensors (XLabs — CivitAI)
• models/loras/ — fluxRealSkin_v2.safetensors (CivitAI)
• models/pulid/ — pulid_flux_v0.9.0.safetensors
InsightFace weights download automatically on first run (internet required for first execution only).
━━━ REQUIRED CUSTOM NODES ━━━
• ComfyUI-PuLID-Flux (with pulidflux.py patch — see Article)
• ComfyUI-Detail-Daemon
• ComfyUI-Kontext (ReferenceLatent + FluxKontextImageScale — built into recent ComfyUI)
━━━ TO USE ━━━
1. Place 3 reference images in ComfyUI/input/:
— Node 4: full/3-quarter body reference
— Node 30: head+shoulders face reference
— Node 20: tight face crop for PuLID (face fills 70%+ of frame, near-frontal angle)
2. Edit CLIPTextEncode (Node 7) with your character description
3. Run a single image first to verify setup, then queue the full batch
━━━ KEY PARAMETERS ━━━
PuLID — Node 24:
weight 0.73 (0.35–0.75 useful range) — higher = stronger identity, lower = more variation
start_at 0.05 — leave at 0.05; lets structure form before identity locks
end_at 0.72 — lower if skin looks plastic; releases final texture passes from PuLID constraint
Detail Daemon — Node 50:
detail_amount 0.40 (0.20–0.55 range) — sweet spot; 0.50+ = over-sharpened
start 0.25 / end 0.80 — active across mid-sampling where detail resolves
LoRA strengths:
XLabs Realism (Node 40): 0.60 (0.35–0.75 useful range)
FluxRealSkin v2 (Node 41): 0.45 (0.25–0.55 useful range)
Note: these two compound — if you raise one, slightly lower the other
Sampling: 25 steps, euler_ancestral, simple scheduler, guidance 2.5
━━━ FILES INCLUDED ━━━
• workflow_ui_format.json — import directly into ComfyUI
Generates 164 photorealistic identity-consistent images from 3 reference photos.
Built for high-quality synthetic training datasets for Wan 2.2 / HunyuanVideo character
LoRAs — but outputs are also great standalone character content. Developed across 16
test iterations for maximum photorealism, identity consistency, and anatomical accuracy.
━━━ WHAT IT DOES ━━━
Combines three techniques that individually exist in the community but haven't been
documented together in a single production-ready batch pipeline:
• Flux Kontext DUAL reference chain — body ref + face ref simultaneously, stronger than single ref
• PuLID Flux face identity injection — biometric-level face locking via InsightFace embeddings
• Detail Daemon sampler augmentation — forces skin pores, hair strands, iris texture to resolve
• XLabs Flux Realism LoRA + FluxRealSkin v2 stacked for photographic skin rendering
━━━ OUTPUT ━━━
82 prompts × 2 seeds = 164 images:
• 10 extreme close-ups (frontal, 90° profile left/right, dutch tilt, high angle, low angle, head down)
• 15 portraits head+shoulders (laughing, looking away, over-shoulder, near-profile, editorial, candid)
• 15 medium waist-up shots
• 12 full body — 768×1152 PORTRAIT canvas so subjects look tall, not short
• 12 revealing/fashion outfits
• 12 lifestyle/candid
• 6 lighting moods (golden hour, dramatic shadow, neon night, overcast, backlit, morning window)
━━━ KEY TECHNICAL FINDINGS ━━━
1. PuLID must be applied AFTER LoRAs — LoRAs define rendering style first, PuLID locks face into it
2. Detail Daemon wraps the SAMPLER output of KSamplerSelect, NOT the sigmas — wrong wiring = 400 error
3. SamplerCustomAdvanced + BasicGuider is REQUIRED when using PuLID (standard KSampler won't work)
4. 768×1152 portrait canvas for full body — square 1024×1024 makes subjects look short/wide
━━━ COMPATIBILITY WARNING — READ BEFORE INSTALLING ━━━
The standard ComfyUI-PuLID-Flux node is NOT compatible with Flux Kontext out of the box.
Running Kontext ReferenceLatent conditioning through standard PuLID throws an error about
unexpected conditioning format. Fix: patch pulidflux.py to add timestep_zero_index kwarg
support and generation-token-only injection mode. Full patch instructions in the linked Article.
━━━ HARDWARE REQUIREMENTS ━━━
• Minimum: 16GB VRAM (will be slow, may need to reduce steps/resolution)
• Recommended: 24GB+ VRAM (RTX 3090/4090)
• Ideal: 48–96GB VRAM (A100, H100, RTX 6000 Ada)
• RAM: 32GB+ system RAM
• Storage: ~22GB for all models + 5–10GB per batch run output
━━━ REQUIRED MODELS ━━━
Place in the specified ComfyUI subdirectory:
• models/unet/ — flux1-dev-kontext_fp8_scaled.safetensors (~17GB) [HuggingFace: black-forest-labs]
• models/vae/ — ae.safetensors (~335MB) [HuggingFace: black-forest-labs/FLUX.1-dev]
• models/clip/ — clip_l.safetensors (~246MB) + t5xxl_fp8_e4m3fn_scaled.safetensors (~4.7GB)
• models/loras/ — flux_realism_lora.safetensors (XLabs — CivitAI)
• models/loras/ — fluxRealSkin_v2.safetensors (CivitAI)
• models/pulid/ — pulid_flux_v0.9.0.safetensors
InsightFace weights download automatically on first run (internet required for first execution only).
━━━ REQUIRED CUSTOM NODES ━━━
• ComfyUI-PuLID-Flux (with pulidflux.py patch — see Article)
• ComfyUI-Detail-Daemon
• ComfyUI-Kontext (ReferenceLatent + FluxKontextImageScale — built into recent ComfyUI)
━━━ TO USE ━━━
1. Place 3 reference images in ComfyUI/input/:
— Node 4: full/3-quarter body reference
— Node 30: head+shoulders face reference
— Node 20: tight face crop for PuLID (face fills 70%+ of frame, near-frontal angle)
2. Edit CLIPTextEncode (Node 7) with your character description
3. Run a single image first to verify setup, then queue the full batch
━━━ KEY PARAMETERS ━━━
PuLID — Node 24:
weight 0.73 (0.35–0.75 useful range) — higher = stronger identity, lower = more variation
start_at 0.05 — leave at 0.05; lets structure form before identity locks
end_at 0.72 — lower if skin looks plastic; releases final texture passes from PuLID constraint
Detail Daemon — Node 50:
detail_amount 0.40 (0.20–0.55 range) — sweet spot; 0.50+ = over-sharpened
start 0.25 / end 0.80 — active across mid-sampling where detail resolves
LoRA strengths:
XLabs Realism (Node 40): 0.60 (0.35–0.75 useful range)
FluxRealSkin v2 (Node 41): 0.45 (0.25–0.55 useful range)
Note: these two compound — if you raise one, slightly lower the other
Sampling: 25 steps, euler_ancestral, simple scheduler, guidance 2.5
━━━ FILES INCLUDED ━━━
• workflow_ui_format.json — import directly into ComfyUI





