Generated reference · ComfyUI workflow · Avatar & identity

Consistent Character Generator

Generate consistent character images across multiple poses and expressions using reference images

Avatar & identity15nodesGPU A5000out image~60sv1.0.0

On this page
15Graph nodes
13Node classes
16Inputs
6Models

Tags: characterconsistentidentityreferencemultiple_poses

Inputs (16)#

The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.

reference_imageimagerequired
Reference image of the character to maintain consistency
poseenumdefault front_facing
Target pose for the character
options: front_facingthree_quarterprofileback_viewfull_body_standingseatedmeditation_poseaction_posecustom
expressionenumdefault serene
Facial expression
options: neutralserenejoyfulcontemplativewisecompassionatedeterminedpeacefulmystical
settingenumdefault plain_background
Background setting
options: plain_backgroundmeditation_spacenaturetemplecosmicabstractstudio
lightingenumdefault soft_natural
Lighting style
options: soft_naturaldramaticrim_lightgolden_hourspiritual_glowstudiocandlelight
styleenumdefault realistic
Art style
options: realisticartisticpainterlyanimeillustratedethereal
consistency_strengthfloatdefault 0.8min 0.0max 1.0
How closely to match the reference (0.0-1.0)
seedintegerdefault -1
Random seed
widthintegerdefault 512
Output width
heightintegerdefault 512
Output height
stepsintegerdefault 40
Sampling steps
cfg_scalefloatdefault 7.0
CFG scale
hires_fixbooleandefault true
Two-pass detail refinement: 1.5x latent upscale + low-denoise second sampling pass
freeubooleandefault true
FreeU v2 backbone re-weighting (family-tuned b1/b2/s1/s2)
checkpointenumdefault dreamshaper_8
SD1.5 checkpoint: DreamShaper 8 finetune (default, baked VAE) or base 1.5
options: dreamshaper_8sd15_base
face_detailbooleandefault true
Impact FaceDetailer detect-and-inpaint refinement pass on detected faces

ComfyUI node graph (15)#

The executable ComfyUI prompt graph: 15 nodes across 13 distinct node classes, wired by 26 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.

flowchart TD n0["1: CheckpointLoaderSimple"] n1["2: LoadImage"] n2["3: IPAdapterUnifiedLoaderFaceID"] n3["4: IPAdapterFaceID"] n4["5: CLIPTextEncode"] n5["6: CLIPTextEncode"] n6["7: EmptyLatentImage"] n7["8: KSampler"] n8["9: VAEDecode"] n9["10: SaveImage"] n10["freeu: FreeU_V2"] n11["hires_upscale: LatentUpscaleBy"] n12["hires_sampler: KSampler"] n13["face_bbox: UltralyticsDetectorProvider"] n14["face_detailer: FaceDetailer"] n0 -->|model| n2 n2 -->|model| n3 n2 -->|ipadapter| n3 n1 -->|image| n3 n0 -->|clip| n4 n0 -->|clip| n5 n10 -->|model| n7 n4 -->|positive| n7 n5 -->|negative| n7 n6 -->|latent_image| n7 n12 -->|samples| n8 n0 -->|vae| n8 n14 -->|images| n9 n3 -->|model| n10 n7 -->|samples| n11 n10 -->|model| n12 n4 -->|positive| n12 n5 -->|negative| n12 n11 -->|latent_image| n12 n8 -->|image| n14 n10 -->|model| n14 n0 -->|clip| n14 n0 -->|vae| n14 n4 -->|positive| n14 n5 -->|negative| n14 n13 -->|bbox_detector| n14 classDef custom fill:#12b886,stroke:#0b6b4f,color:#04110c; class n2,n3,n13,n14 custom;
Data-flow DAG — scroll to zoom, drag to pan.

Nodes (15)#

1CheckpointLoaderSimplecore
ckpt_name = {{checkpoint_files[checkpoint]}} tmpl
outputs: MODELCLIPVAE
2LoadImagecore
image = {{reference_image}} tmpl
outputs: IMAGEMASK
3IPAdapterUnifiedLoaderFaceIDcustom pack
model = ◂ node 1 · out[0]preset = FACEID PLUS V2lora_strength = 0.6provider = CPU
outputs: MODELIPADAPTER
4IPAdapterFaceIDcustom pack
model = ◂ node 3 · out[0]ipadapter = ◂ node 3 · out[1]image = ◂ node 2 · out[0]weight = {{consistency_strength}} tmplweight_faceidv2 = 1.0weight_type = linearcombine_embeds = concatstart_at = 0.0end_at = 1.0embeds_scaling = V only
outputs: MODELIMAGE
5CLIPTextEncodecore
text = {{constructed_prompt}} tmplclip = ◂ node 1 · out[1]
outputs: CONDITIONING
6CLIPTextEncodecore
text = ugly, deformed, disfigured, blurry, low quality, bad anatomy, wrong proportions, extra limbs, mutated, inconsistent features, different personclip = ◂ node 1 · out[1]
outputs: CONDITIONING
7EmptyLatentImagecore
width = {{width}} tmplheight = {{height}} tmplbatch_size = 1
outputs: LATENT
8KSamplercore
model = ◂ node freeu · out[0]positive = ◂ node 5 · out[0]negative = ◂ node 6 · out[0]latent_image = ◂ node 7 · out[0]seed = {{seed}} tmplsteps = {{steps}} tmplcfg = {{cfg_scale}} tmplsampler_name = dpmpp_2m_sdescheduler = karrasdenoise = 1.0
outputs: LATENT
9VAEDecodecore
samples = ◂ node hires_sampler · out[0]vae = ◂ node 1 · out[2]
outputs: IMAGE
10SaveImagecore
images = ◂ node face_detailer · out[0]filename_prefix = consistent_character
freeuFreeU_V2core
model = ◂ node 4 · out[0]b1 = 1.3b2 = 1.4s1 = 0.9s2 = 0.2
outputs: MODEL
hires_upscaleLatentUpscaleBycore
samples = ◂ node 8 · out[0]upscale_method = bislerpscale_by = 1.5
outputs: LATENT
hires_samplerKSamplercore
model = ◂ node freeu · out[0]positive = ◂ node 5 · out[0]negative = ◂ node 6 · out[0]latent_image = ◂ node hires_upscale · out[0]seed = {{seed}} tmplsteps = 14cfg = {{cfg_scale}} tmplsampler_name = dpmpp_2mscheduler = karrasdenoise = 0.45
outputs: LATENT
face_bboxUltralyticsDetectorProvidercustom pack
model_name = bbox/face_yolov8m.pt
outputs: BBOX_DETECTORSEGM_DETECTOR
face_detailerFaceDetailercustom pack
image = ◂ node 9 · out[0]model = ◂ node freeu · out[0]clip = ◂ node 1 · out[1]vae = ◂ node 1 · out[2]guide_size = 512.0guide_size_for = truemax_size = 1024.0seed = {{seed}} tmplsteps = 20cfg = 7.0sampler_name = dpmpp_2mscheduler = karraspositive = ◂ node 5 · out[0]negative = ◂ node 6 · out[0]denoise = 0.5feather = 5noise_mask = trueforce_inpaint = truebbox_threshold = 0.5bbox_dilation = 10bbox_crop_factor = 3.0sam_detection_hint = center-1sam_dilation = 0sam_threshold = 0.93sam_bbox_expansion = 0sam_mask_hint_threshold = 0.7sam_mask_hint_use_negative = Falsedrop_size = 10bbox_detector = ◂ node face_bbox · out[0]wildcard = cycle = 1
outputs: imagecropped_refinedcropped_enhanced_alphamaskdetailer_pipecnet_images

Prompt construction#

template
consistent character portrait, same person as reference, {pose_prompt}, {expression_prompt}, {setting_prompt}, {lighting_prompt}, {style_prompt}, maintaining identity, facial features preserved, highly detailed

Variables (5)#

pose_prompt
{{pose_prompts[pose]}} tmpl
expression_prompt
{{expression_prompts[expression]}} tmpl
setting_prompt
{{setting_prompts[setting]}} tmpl
lighting_prompt
{{lighting_prompts[lighting]}} tmpl
style_prompt
{{style_prompts[style]}} tmpl

Parameter banks (5)#

The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.

pose_prompts (9)#

front_facing
front facing portrait, looking at camera, direct gaze, centered composition
three_quarter
three-quarter view, slight turn, elegant angle, flattering perspective
profile
profile view, side portrait, silhouette quality, noble bearing
back_view
back view, shoulders visible, turned away, mysterious pose
full_body_standing
full body standing pose, complete figure, confident stance, balanced posture
seated
seated pose, relaxed position, grounded, comfortable posture
meditation_pose
meditation lotus pose, crossed legs, hands in mudra, peaceful seated
action_pose
dynamic action pose, movement implied, energy visible, active stance
custom
custom character pose

expression_prompts (9)#

neutral
neutral calm expression, relaxed features, natural face
serene
serene peaceful expression, inner calm visible, tranquil face
joyful
joyful happy expression, genuine smile, warm eyes, radiating joy
contemplative
contemplative thoughtful expression, deep in thought, reflective gaze
wise
wise knowing expression, ancient wisdom visible, profound understanding
compassionate
compassionate caring expression, loving kindness, empathetic face
determined
determined focused expression, strong will, purposeful gaze
peaceful
deeply peaceful expression, at one with universe, ultimate calm
mystical
mystical enigmatic expression, otherworldly quality, transcendent awareness

setting_prompts (7)#

plain_background
clean plain background, solid neutral color, focus on character
meditation_space
meditation room background, cushions and candles, peaceful interior
nature
natural outdoor setting, trees and sky, organic environment
temple
ancient temple background, sacred architecture, spiritual setting
cosmic
cosmic space background, stars and nebulae, universal context
abstract
abstract artistic background, flowing colors, non-representational
studio
professional studio background, photography setup, clean lighting

lighting_prompts (7)#

soft_natural
soft natural lighting, diffused daylight, gentle shadows, flattering
dramatic
dramatic lighting, strong shadows, high contrast, theatrical
rim_light
rim lighting effect, backlit glow, edge definition, halo effect
golden_hour
golden hour warm light, sunset tones, magical lighting, warm glow
spiritual_glow
spiritual ethereal glow, inner light visible, divine radiance
studio
studio lighting setup, multiple lights, professional quality, even illumination
candlelight
warm candlelight, flickering soft light, intimate atmosphere, warm shadows

style_prompts (6)#

realistic
photorealistic style, lifelike detail, believable appearance, high fidelity
artistic
artistic interpretation, creative license, expressive style
painterly
painterly style, visible brushstrokes, oil painting quality, fine art
anime
anime style, large expressive eyes, stylized features, Japanese animation
illustrated
illustrated style, clean lines, graphic novel quality, drawn appearance
ethereal
ethereal otherworldly style, dreamlike quality, soft focus, mystical

Models & dependencies#

Custom node packs (4)#

The non-core ComfyUI node classes this graph requires; the RunPod worker image the workflow runs on must bake or install a pack that provides every one of them.

FaceDetailerIPAdapterFaceIDIPAdapterUnifiedLoaderFaceIDUltralyticsDetectorProvider

Checkpoint aliases (2)#

dreamshaper_8
DreamShaper_8_pruned.safetensors
sd15_base
v1-5-pruned-emaonly.safetensors

Models required (6)#

CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors
DreamShaper_8_pruned.safetensors
bbox/face_yolov8m.pt
ip-adapter-faceid-plusv2_sd15.bin
ip-adapter-faceid-plusv2_sd15_lora.safetensors
v1-5-pruned-emaonly.safetensors

Output contract#

What a successful run of this workflow returns.

type
image
format
png
channels
4

Taxonomy & routing#

How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.

assetFamily
social-avatar-banner-identity-pack
outputPackageProfile
image-single-profile
controlModalities
camera-lockcolor-script-lockcontrolnet-posedepth-constraintfaceididentity-adapteridentity-lockinstantidipadapter-faceipadapter-stylelatent-reusemodel-lockpalette-lockpose-constraintprompt-template-lockreference-ensemble +7 more
consistencyDimensions
identitywardrobelightingcolor-script
notes
Auto-mapped from avatar defaults