ComfyUI Extension: comfyui-portrait-master
ComfyUI Portrait Master. A node designed to help AI image creators to generate prompts for human portraits.
Custom Nodes (425)
- ACEPlusFFTConditioning~
- ACEPlusFFTProcessor~
- ACEPlusFFTLoader~
- ACEPlusLoraConditioning~
- ACEPlusLoraProcessor~
- AddNoise
- Adaptive Projected Guidance
- Audio Adjust Volume
- Audio Concat
- Audio Merge
- BasicGuider
- BasicScheduler
- BetaSamplingScheduler
- ByteDance First-Last-Frame to Video
- ByteDance Image Edit
- ByteDance Image
- ByteDance Reference Images to Video
- ByteDance Image to Video
- ByteDance Seedream 4
- ByteDance Text to Video
- Case Converter
- CFGGuider
- Load Checkpoint With Config (DEPRECATED)
- Load Checkpoint
- Save Checkpoint
- Load CLIP
- CLIPMergeAdd
- CLIPMergeSimple
- CLIPMergeSubtract
- CLIPSave
- CLIP Set Last Layer
- CLIP Text Encode (Prompt)
- CLIPTextEncodeFlux
- CLIPTextEncodeHunyuanDiT
- CLIP Text Encode for Lumina2
- CLIPTextEncodeSD3
- CLIP Vision Encode
- Load CLIP Vision
- Combine Hooks [2]
- Combine Hooks [4]
- Combine Hooks [8]
- ConditioningAverage
- Conditioning (Combine)
- Conditioning (Concat)
- Conditioning (Set Area)
- Conditioning (Set Area with Percentage)
- ConditioningSetAreaPercentageVideo
- ConditioningSetAreaStrength
- Cond Set Default Combine
- Conditioning (Set Mask)
- Cond Set Props
- Cond Set Props Combine
- ConditioningSetTimestepRange
- ConditioningStableAudio
- Timesteps Range
- ConditioningZeroOut
- Context Windows (Manual)
- Apply ControlNet (OLD)
- Apply ControlNet
- Apply Controlnet with VAE
- ControlNetInpaintingAliMamaApply
- Load ControlNet Model
- Create Hook Keyframe
- Create Hook Keyframes From Floats
- Create Hook Keyframes Interp.
- Create Hook LoRA
- Create Hook LoRA (MO)
- Create Hook Model as LoRA
- Create Hook Model as LoRA (MO)
- Create Video
- CropMask
- Load ControlNet Model (diff)
- Differential Diffusion
- DiffusersLoader
- DisableNoise
- DualCFGGuider
- DualCLIPLoader
- EasyCache
- Empty Audio
- EmptyHunyuanImageLatent
- EmptyHunyuanLatentVideo
- EmptyImage
- Empty Latent Audio
- EmptyLatentHunyuan3Dv2
- Empty Latent Image
- EmptySD3LatentImage
- ExponentialScheduler
- ExtendIntermediateSigmas
- FeatherMask
- FlipSigmas
- FluxDisableGuidance
- FluxGuidance
- FluxKontextImageScale
- Flux.1 Kontext [max] Image
- FluxKontextMultiReferenceLatentMethod
- Flux.1 Kontext [pro] Image
- Flux.1 Canny Control Image
- Flux.1 Depth Control Image
- Flux.1 Expand Image
- Flux.1 Fill Image
- Flux 1.1 [pro] Ultra Image
- FreeU
- FreeU_V2
- FreSca
- Google Gemini Image
- Gemini Input Files
- Google Gemini
- Get Image Size
- Get Video Components
- GLIGENLoader
- GLIGENTextBoxApply
- GrowMask
- Hunyuan3Dv2Conditioning
- Hunyuan3Dv2ConditioningMultiView
- HunyuanImageToVideo
- HunyuanRefinerLatent
- HypernetworkLoader
- Ideogram V1
- Ideogram V2
- Ideogram V3
- ImageAddNoise
- Batch Images
- ImageColorToMask
- ImageCompositeMasked
- Image Crop
- ImageFlip
- ImageFromBatch
- Invert Image
- Image Only Checkpoint Loader (img2vid model)
- ImageOnlyCheckpointSave
- Pad Image for Outpainting
- ImageRotate
- Upscale Image
- Upscale Image By
- ImageScaleToMaxDimension
- Image Stitch
- Convert Image to Mask
- Upscale Image (using Model)
- InpaintModelConditioning
- InvertMask
- Join Image with Alpha
- KarrasScheduler
- Kling Image to Video (Camera Control)
- Kling Camera Controls
- Kling Text to Video (Camera Control)
- Kling Dual Character Video Effects
- Kling Image to Video
- Kling Image Generation
- Kling Lip Sync Video with Audio
- Kling Lip Sync Video with Text
- Kling Video Effects
- Kling Start-End Frame to Video
- Kling Text to Video
- Kling Video Extend
- Kling Virtual Try On
- KSampler
- KSampler (Advanced)
- KSamplerSelect
- LaplaceScheduler
- LatentAdd
- LatentApplyOperation
- LatentApplyOperationCFG
- LatentBatch
- LatentBatchSeedBehavior
- Latent Blend
- Latent Composite
- LatentCompositeMasked
- LatentConcat
- Crop Latent
- LatentCut
- Flip Latent
- Latent From Batch
- LatentInterpolate
- LatentMultiply
- LatentOperationSharpen
- LatentOperationTonemapReinhard
- Rotate Latent
- LatentSubtract
- Upscale Latent
- Upscale Latent By
- LazyCache
- Load 3D
- Load 3D - Animation
- Load Audio
- Load Image
- Load Image (as Mask)
- Load Image (from Outputs)
- Load Image Dataset from Folder
- Load Image and Text Dataset from Folder
- LoadLatent
- Load Video
- Load LoRA
- LoraLoaderModelOnly
- Load LoRA Model
- Extract and Save Lora
- Plot Loss Graph
- Luma Concepts
- Luma Image to Image
- Luma Text to Image
- Luma Image to Video
- Luma Reference
- Luma Text to Video
- Mahiro is so cute that she deserves a better guidance function!! (。・ω・。)
- MaskComposite
- MaskPreview
- Convert Mask to Image
- MiniMax Hailuo Video
- MiniMax Image to Video
- MiniMax Text to Video
- ModelComputeDtype
- ModelMergeAdd
- ModelMergeAuraflow
- ModelMergeBlocks
- ModelMergeCosmos14B
- ModelMergeCosmos7B
- ModelMergeCosmosPredict2_14B
- ModelMergeCosmosPredict2_2B
- ModelMergeFlux1
- ModelMergeLTXV
- ModelMergeMochiPreview
- ModelMergeQwenImage
- ModelMergeSD1
- ModelMergeSD2
- ModelMergeSD3_2B
- ModelMergeSD35_Large
- ModelMergeSDXL
- ModelMergeSimple
- ModelMergeSubtract
- ModelMergeWAN2_1
- ModelPatchLoader
- ModelSamplingAuraFlow
- ModelSamplingContinuousEDM
- ModelSamplingContinuousV
- ModelSamplingDiscrete
- ModelSamplingFlux
- ModelSamplingSD3
- ModelSamplingStableCascade
- ModelSave
- Moonvalley Marey Image to Video
- Moonvalley Marey Text to Video
- Moonvalley Marey Video to Video
- ImageMorphology
- OpenAI ChatGPT Advanced Options
- OpenAI ChatGPT
- OpenAI DALL·E 2
- OpenAI DALL·E 3
- OpenAI GPT Image 1
- OpenAI ChatGPT Input Files
- OpenAI Sora - Video
- Cond Pair Combine
- Cond Pair Set Default Combine
- Cond Pair Set Props
- Cond Pair Set Props Combine
- PatchModelAddDownscale (Kohya Deep Shrink)
- Perp-Neg (DEPRECATED by PerpNegGuider)
- Pikadditions (Video Object Insertion)
- Pikaffects (Video Effects)
- Pika Image to Video
- Pika Scenes (Video Image Composition)
- Pika Start and End Frame to Video
- Pika Swaps (Video Object Replacement)
- Pika Text to Video
- PixVerse Image to Video
- PixVerse Template
- PixVerse Text to Video
- PixVerse Transition Video
- PolyexponentialScheduler
- Porter-Duff Image Composite
- Portrait Master 2.9.2 (Legacy)
- Portrait Master: Base Character
- Portrait Master: Face Generator
- Portrait Master: Make-up
- Portrait Master: Prompt Styler
- Portrait Master: Skin Details
- Portrait Master: Style & Pose
- Preview 3D
- Preview 3D - Animation
- Preview Any
- Preview Audio
- Preview Image
- Boolean
- Float
- Int
- String
- String (Multiline)
- QwenImageDiffsynthControlnet
- RandomNoise
- Rebatch Images
- Rebatch Latents
- Record Audio
- Recraft Color RGB
- Recraft Controls
- Recraft Creative Upscale Image
- Recraft Crisp Upscale Image
- Recraft Image Inpainting
- Recraft Image to Image
- Recraft Remove Background
- Recraft Replace Background
- Recraft Style - Digital Illustration
- Recraft Style - Infinite Style Library
- Recraft Style - Logo Raster
- Recraft Style - Realistic Image
- Recraft Text to Image
- Recraft Text to Vector
- Recraft Vectorize Image
- Regex Extract
- Regex Match
- Regex Replace
- RepeatImageBatch
- Repeat Latent Batch
- RescaleCFG
- ResizeAndPadImage
- Rodin 3D Generate - Detail Generate
- Rodin 3D Generate - Gen-2 Generate
- Rodin 3D Generate - Regular Generate
- Rodin 3D Generate - Sketch Generate
- Rodin 3D Generate - Smooth Generate
- Runway First-Last-Frame to Video
- Runway Image to Video (Gen3a Turbo)
- Runway Image to Video (Gen4 Turbo)
- Runway Text to Image
- SamplerCustom
- SamplerCustomAdvanced
- SamplerDPMAdaptative
- SamplerDPMPP_2M_SDE
- SamplerDPMPP_2S_Ancestral
- SamplerDPMPP_3M_SDE
- SamplerDPMPP_SDE
- SamplerER_SDE
- SamplerEulerAncestral
- SamplerEulerAncestralCFG++
- SamplerEulerCFG++
- SamplerLMS
- SamplerSASolver
- SamplingPercentToSigma
- SaveAnimatedPNG
- SaveAnimatedWEBP
- Save Audio (FLAC)
- Save Audio (MP3)
- Save Audio (Opus)
- SaveGLB
- Save Image
- SaveLatent
- Save LoRA Weights
- SaveSVGNode
- Save Video
- SDTurboScheduler
- Self-Attention Guidance
- Set CLIP Hooks
- SetFirstSigma
- Set Hook Keyframes
- Set Latent Noise Mask
- SetUnionControlNetType
- SkipLayerGuidanceDiT
- SkipLayerGuidanceDiTSimple
- SkipLayerGuidanceSD3
- SolidMask
- Split Audio Channels
- Split Image with Alpha
- SplitSigmas
- SplitSigmasDenoise
- Stability AI Audio Inpaint
- Stability AI Audio To Audio
- Stability AI Stable Diffusion 3.5 Image
- Stability AI Stable Image Ultra
- Stability AI Text To Audio
- Stability AI Upscale Conservative
- Stability AI Upscale Creative
- Stability AI Upscale Fast
- Compare
- Concatenate
- Contains
- Length
- Replace
- Substring
- Trim
- Apply Style Model
- Load Style Model
- SVD_img2vid_Conditioning
- Tangential Damping CFG
- TextEncodeHunyuanVideo_ImageToVideo
- ThresholdMask
- Train LoRA
- Trim Audio Duration
- TripleCLIPLoader
- Tripo: Convert model
- Tripo: Image to Model
- Tripo: Multiview to Model
- Tripo: Refine Draft model
- Tripo: Retarget rigged model
- Tripo: Rig model
- Tripo: Text to Model
- Tripo: Texture model
- unCLIPCheckpointLoader
- unCLIPConditioning
- Load Diffusion Model
- Load Upscale Model
- USOStyleReference
- VAE Decode
- VAE Decode Audio
- VAEDecodeHunyuan3D
- VAE Decode (Tiled)
- VAE Encode
- VAE Encode Audio
- VAE Encode (for Inpainting)
- VAE Encode (Tiled)
- Load VAE
- VAESave
- Google Veo 3 Video Generation
- Google Veo 2 Video Generation
- VideoLinearCFGGuidance
- VideoTriangleCFGGuidance
- Vidu Image To Video Generation
- Vidu Reference To Video Generation
- Vidu Start End To Video Generation
- Vidu Text To Video Generation
- VoxelToMesh
- VoxelToMeshBasic
- VPScheduler
- WAN Context Windows (Manual)
- Wan Image to Image
- Wan Image to Video
- Wan Text to Image
- Wan Text to Video
- Webcam Capture
README
ComfyUI Portrait Master
A comprehensive custom node for ComfyUI designed to help AI image creators generate detailed and professional prompts for human portraits. This powerful tool provides modular control over every aspect of portrait generation, from basic character features to advanced skin details and styling options.
🌟 Features
Modular Node System
- Portrait Master: Base Character - Core character attributes (gender, age, nationality, body type, facial features)
- Portrait Master: Skin Details - Advanced skin rendering controls (pores, imperfections, natural skin effects)
- Portrait Master: Style & Pose - Lighting, poses, clothing, and artistic styles
- Portrait Master: Make-up - Comprehensive makeup options with color controls
- Portrait Master: Face Generator - Simplified face generation for quick results
- Portrait Master: Prompt Styler - Converts weighted prompts to conversational style for modern models
Advanced Features
- Preset System - Save and load your favorite configurations across all nodes
- Random Generation - Built-in randomization for creative exploration
- Weight Control - Fine-tune the influence of each parameter
- Nationality Mixing - Blend multiple ethnicities with precise control
- Comprehensive Lists - Over 1000+ options across all categories
Extensive Options Library
- 192 Nationalities - Complete global coverage
- 65+ Artistic Styles - From vintage photography to modern effects
- 100+ Hair Styles - Comprehensive hair options
- 70+ Lighting Types - Professional lighting setups
- 87+ Model Poses - Diverse pose library
- And much more - Eyes, lips, makeup, clothing, expressions, and body types
📋 Requirements
- ComfyUI - Latest version recommended
- Python 3.8+ - Required for ComfyUI
- Compatible Models - Works with SD1.5, SDXL, Flux, and other modern checkpoints
- Optional Dependencies:
- ComfyUI Manager - For easy installation
- ComfyUI Prompt Control - For nationality mixing syntax
🚀 Installation
Method 1: ComfyUI Manager (Recommended)
- Open ComfyUI Manager
- Search for
florestefano1975in the search bar - Click the install button for "ComfyUI Portrait Master"
- Restart ComfyUI
Method 2: Manual Installation
- Navigate to your ComfyUI
custom_nodesfolder - Open terminal/command prompt in this directory
- Run:
git clone https://github.com/florestefano1975/comfyui-portrait-master - Restart ComfyUI
Method 3: Manual Update
To update an existing installation:
- Navigate to the
comfyui-portrait-masterfolder - Run:
git pull - Restart ComfyUI
⚠️ Warning: The update command will overwrite any custom modifications you've made to the files.
📖 Usage Guide
Basic Workflow
- Add Base Character Node - Start with
PortraitMasterBaseCharacterfor core features - Chain Additional Nodes - Connect
PortraitMasterSkinDetails,PortraitMasterStylePose, etc. - Configure Parameters - Adjust sliders and dropdowns to your preferences
- Connect to Prompt - Link the final output to your
CLIPTextEncodenode - Generate - Run your workflow to create detailed portrait prompts
Node Descriptions
Portrait Master: Base Character
Controls fundamental character attributes:
- Shot Types: Head portrait, full body, close-up, etc.
- Demographics: Gender, age, nationality with mixing support
- Physical Features: Body type, breast/butt size, facial features
- Hair & Beard: Style, color, length options
- Facial Details: Expression, face shape, asymmetry controls
Portrait Master: Skin Details
Advanced skin rendering controls:
- Skin Quality: Natural skin, bare face, washed/dried effects
- Details: Skin pores, imperfections, acne, tanned skin
- Features: Dimples, freckles, moles, wrinkles
- Eyes: Detailed eye rendering, iris details, pupil shape
Portrait Master: Style & Pose
Environmental and artistic controls:
- Poses: 87+ model poses from the pose library
- Clothing: General clothing and female lingerie options
- Lighting: 70+ professional lighting setups with direction control
- Styles: 65+ artistic styles from vintage to modern
- Enhancement: Photorealism improvement toggle
Portrait Master: Make-up
Comprehensive makeup system:
- Styles: Various makeup styles and color schemes
- Individual Elements: Eyeshadow, eyeliner, mascara, blush, lipstick, lip gloss
- Color Control: Specific makeup color selection
Portrait Master: Face Generator
Simplified face generation for quick results:
- Optimized Settings: Pre-configured for frontal, symmetrical faces
- Essential Controls: Gender, age, nationality, basic features
- Clean Output: Neutral expressions with professional lighting
Portrait Master: Prompt Styler
Converts traditional weighted prompts to conversational style:
- Style Options: Descriptive, cinematic, illustrative, artistic, documentary, fashion
- Modern Compatibility: Optimized for Flux, Sana, HiDream, and similar models
- Clean Conversion: Removes SD1.5/SDXL weight syntax
🎛️ Preset System
Saving Presets
- Configure all parameters in a node to your desired settings
- Scroll to the
--- PRESETS ---section at the bottom - Enter a descriptive name in the
save_preset_asfield (e.g., "Cyberpunk Hero") - Toggle
save_presettoTrue - Queue the prompt to save the preset
- Turn
save_presetback toFalse
Loading Presets
- Use the
load_presetdropdown menu - Select from your saved presets for that specific node
- Queue the prompt to apply the preset settings
Preset Storage
Presets are stored in comfyui-portrait-master/presets/ with separate subdirectories for each node type:
presets/BaseCharacter/presets/SkinDetails/presets/StylePose/presets/Makeup/presets/FaceGenerator/
🎲 Random Generation
Enable creative exploration with built-in randomization:
- Random Option: Select "random 🎲" from any dropdown
- Seed Control: Connect a seed input for reproducible randomization
- Weight Control: Use sliders to control the influence of random selections
📊 Available Parameters
Core Parameters
| Parameter | Description | Options |
|-----------|-------------|---------|
| shot | Portrait framing type | 8 options (Head portrait, Full body, etc.) |
| gender | Character gender | Man, Woman |
| age | Character age | Multiple age ranges |
| nationality_1 & nationality_2 | Ethnicity options | 192 nationalities |
| body_type | Body build | Multiple body types |
| eyes_color | Eye color | 10+ color options |
| hair_style | Hairstyle | 100+ styles |
| hair_color | Hair color | 21 color options |
Advanced Controls
- Weight Parameters: Fine-tune influence with decimal precision (0.00-2.00)
- Nationality Mixing: Blend ethnicities using
nationality_mixslider (0.0-1.0) - Facial Asymmetry: Add realistic facial variations
- Skin Details: Control pores, imperfections, and natural skin effects
- Lighting Direction: Professional lighting setups with directional control
🖼️ Model Pose Library
The model_pose option provides 87+ predefined poses:
- Disable ControlNet when using pose library
- Adjust framing with the
shotparameter - Poses are optimized for portrait generation

💡 Tips & Best Practices
Optimal Settings
- Skin Details: High values may override shot settings - reduce if needed
- Eye Details: Balance with shot type to avoid conflicts
- Negative Prompts: Add
(closeup, close up, close-up:1.5)if detail parameters interfere - Model Selection: Use high-quality checkpoints for best results
Recommended Models
- FormulaXL 2.0 - Excellent for photorealistic portraits
- SDXL Models - Generally provide superior portrait quality
- Flux Models - Use with Prompt Styler for optimal results
Workflow Integration
- Compatible with Prompt Composer
- Chain multiple Portrait Master nodes for complex character creation
- Use presets to maintain consistency across projects
🔧 Troubleshooting
Common Issues
Node not appearing in ComfyUI
- Ensure ComfyUI is restarted after installation
- Check that files are in the correct
custom_nodesdirectory - Verify no Python errors in the console
Random options not working
- Connect a seed input to enable randomization
- Ensure "random 🎲" is selected in dropdown menus
- Check that the seed is properly connected
Preset system not working
- Verify write permissions in the ComfyUI directory
- Check that the
presetsfolder is created automatically - Ensure preset names don't contain invalid characters
Nationality mixing not working
- Install ComfyUI Prompt Control for full syntax support
- Use the format:
[nationality_1:nationality_2:mix_value] - This feature is experimental and may not work with all models
Output prompts too complex
- Use the Prompt Styler node to simplify for modern models
- Reduce weight values for subtle effects
- Set unused parameters to "-" to exclude them
Performance Issues
- Large workflows: Consider using fewer nodes simultaneously
- Memory usage: High detail settings may increase VRAM requirements
- Generation speed: Complex prompts may slow down inference
📝 Version History
Version 3.5.0 (Latest)
- ✨ New: Face Generator node for simplified face creation
- ✨ Enhanced: Base Character node with breast and butt size options
- 🔧 Improved: Overall code performance and stability
Version 3.4.0
- ✨ New: Comprehensive preset system across all nodes
- ✨ New: Prompt Styler node for modern model compatibility
- 🔄 Restructured: Split into five specialized modules
- 🔧 Improved: Code optimization and performance enhancements
Previous Versions
See CHANGELOG.md for complete version history.
🤝 Contributing
We welcome contributions to improve Portrait Master:
- Bug Reports: Use GitHub Issues for bug reports
- Feature Requests: Suggest new features via GitHub Issues
- Code Contributions: Submit pull requests with improvements
- Documentation: Help improve documentation and examples
📄 License
This project is licensed under the terms specified in the LICENSE file.
💖 Support the Project
If you find Portrait Master useful, please consider supporting the developer:
Your support helps maintain and improve this project for the entire community.
🔗 Related Projects
- ComfyUI Prompt Composer - Advanced prompt composition tools
- ComfyUI HiDiffusion - High-resolution diffusion enhancements
📚 Additional Resources
- Legacy Documentation - Documentation for Portrait Master 2.9.2
- Example Workflows - Sample workflows for different use cases
- Developer Website - More projects and resources
Created by AI Wiz Art (Stefano Flore)
Version 3.5.0 | GitHub Repository