CivArchive
    Consistent Characters - Face and Body - NSFW / Chroma / IPAdapter / PuLID / ClipVision - v1.0
    NSFW
    Preview 83086606
    Preview 83086860
    Preview 83114869
    Preview 83086656
    Preview 83086799
    Preview 83086801

    I built this workflow because I wanted to have consistent characters in terms of both face and body.

    The technique consists of using PuLID to determine the character's face and IpAdapter together with ClipVision (in UnClipConditioning) at maximum power to determine the body.

    You can test it in your own way to get your results, I recommend using a portrait photo so that the "Prep Image to ClipVision" crop only the body for it, you can also modify and load the face and body separately if it makes things easier for you.

    The requirements are:

    Chroma GGUF:

    https://huggingface.co/silveroxides/Chroma-GGUF/tree/main

    Lora - Hyper Chroma Low Step:

    https://huggingface.co/silveroxides/Chroma-LoRA-Experiments/blob/main/Hyper-Chroma-low-step-LoRA.safetensors

    t5xxl_fp16:

    https://huggingface.co/comfyanonymous/flux_text_encoders/blob/main/t5xxl_fp16.safetensors

    IpAdapter:

    https://huggingface.co/XLabs-AI/flux-ip-adapter/blob/main/ip_adapter.safetensors

    IpAdapter ClipVision:

    https://huggingface.co/openai/clip-vit-large-patch14/blob/main/model.safetensors

    ClipVision to AdvancedVision (google/siglip2-so400m-patch16-512):

    https://huggingface.co/google/siglip2-so400m-patch16-512/blob/main/model.safetensors

    Pulid: (v0.9.0 return better results):

    https://huggingface.co/guozinan/PuLID/blob/main/pulid_flux_v0.9.0.safetensors

    Nodes:

    ComfyUI-easy-use:

    https://github.com/yolain/ComfyUI-Easy-Use

    ComfyUI-MultiGPU:

    https://github.com/pollockjj/ComfyUI-MultiGPU

    ComfyUI-TinyTerraNodes:

    https://github.com/TinyTerra/ComfyUI_tinyterraNodes

    X-Flux-ComfyUI:

    https://github.com/XLabs-AI/x-flux-comfyui

    PuLID-Flux-Chroma:

    https://github.com/PaoloC68/ComfyUI-PuLID-Flux-Chroma

    ComfyUI_ipadapter_plus_v2:

    https://github.com/chflame163/ComfyUI_IPAdapter_plus_V2

    Advanced Vision:

    https://github.com/ostris/ComfyUI-Advanced-Vision

    Description

    FAQ

    Comments (91)

    fmodJun 18, 2025· 1 reaction
    CivitAI

    Got this error:
    ApplyPulidFlux

    ApplyPulidFlux.apply_pulid_flux() got an unexpected keyword argument 'prior_image'

    jeankassiocheib813
    Author
    Jun 18, 2025· 1 reaction

    I added a print to the images, check node by node if you have the correct node.

    deestovelJun 18, 2025

    same

    jeankassiocheib813
    Author
    Jun 18, 2025

    @deestovel Check the print when I posted now in images.

    deestovelJun 18, 2025

    @jeankassiocheib813 shit dont work bro. wtf is prior image?

    fmodJun 18, 2025· 10 reactions

    In the ComfyUI Manager I disabled "ComfyUl_PuLID_Flux_II" and "ComfyUl-PuLID-Flux-Enhanced" nodes. They were conflicting with the new "ComfyUI-PuLID-Flux-Chroma" node. Then the workflow worked fine.

    jeankassiocheib813
    Author
    Jun 18, 2025

    @deestovel Image to trainer

    earlsansburyAug 5, 2025

    jeankassiocheib813 I downloaded the json file and when I ran it, this was the same error I saw. I am using a fresh Comfyui portable and only have ComfyUI-PuLID-Flux-Chroma this PuLID node installed. How to fix it? Thanks

    james_bondageAug 26, 2025

    @fmod nice! worked for me

    Learning2026Jun 18, 2025
    CivitAI

    Resemblance is zero. What a waste of time, and bandwidth downloading the models, your workflow, and researching the PulID problem. Have some decency.

    jeankassiocheib813
    Author
    Jun 18, 2025· 4 reactions

    If you don't know how to use ComfyUI, it's not my fault

    jeankassiocheib813
    Author
    Jun 18, 2025· 6 reactions

    Don't just download things, READ the tutorial I wrote, the links I left to download and, most importantly, check that everything is correct. Everyone who has used it so far has succeeded, many people were impressed because they knew how to use it. Before criticizing, check that it's not you who is doing everything wrong.

    Learning2025Jun 19, 2025· 4 reactions

    @jeankassiocheib813 I criticized because I used your workflow without change. I used your exact method. The final result was a completely different person. You said consistent character, for your information, a simpler Flux PulID workflow yields close to 95% likeness. Your workflow, using your exact settings yielded 0% likeness. The workflow including models and settings were exactly yours, no change made to it, and the result was 0% likeness. I apologize for saying "have some decency", I admit, I was furious and should not have said that, you did put effort that instead should be thanked for. Maybe your work environment is different than mine, or that your version of ComfyUI yields different results. I'll read other comments and see what others did to make the results come out perfect as you said. But just to be clear, I used your exact workflow, exact models, exact settings, and the image that appeared in the last node, was a different person, I don't know how else to stress my point.

    Learning2025Jun 19, 2025· 4 reactions

    @jeankassiocheib813 I must point out that I've been using ComfyUI since about it came out. I think I do know who to use it. I create my own custom nodes, and just published one ComfyUI community use. I also shared many workflows on OpenArt, and they all are about character consistencies. Much simpler workflows, that actually work and yield close to 100% face likeness. What draw my attention to your workflow is that you said it also yields body likeness, mimicking the work of a LoRA, that was the attraction point for me. I have made many LoRAs for the sole purpose of body likeness. Your workflow - had it worked - would have been great, but it didn't.

    93dcmomi802Jun 19, 2025
    CivitAI

    How to solve this error?

    ApplyPulidFlux

    ApplyPulidFlux.apply_pulid_flux() got an unexpected keyword argument 'prior_image'

    RoboticeyeJun 19, 2025· 1 reaction

    go through your nodes list and disable every flux one except the ones he showed you.

    earlsansburyJul 2, 2025

    I only have the nodes he listed. Still this error showed up. Any ideas?

    milt68Jul 24, 2025

    What solved it for me was going into the custom nodes folder and renaming every folder with the strings Pulid and Flux. Actually I cut and pasted them in a differnt location.

    myprivacy27091991221Jun 19, 2025· 3 reactions
    CivitAI

    Error in SamplerCustomAdvanced

    'Chroma' object has no attribute 'time_in'

    jeankassiocheib813
    Author
    Jun 19, 2025

    Disable the others flux and ipadapters, it has conflited

    @jeankassiocheib813 tried, but same error.

    DaxamurJun 20, 2025· 3 reactions

    @jeankassiocheib813 Nice looking flow, but hitting this same issue, are you suggesting we bypass the "Load Flux IPAdapter" and the "Apply Advanced Flux IPAdapter"? If so, disabling this does not resolve the issue in my case. Same with the inverse (disabling all PuLID nodes and leaving the IPAdapter nodes enabled).

    Solution: ComfyUI points to "ComfyUI-PuLID-Flux-Enhanced" by default to fulfill the custom_node dependency. If you hit this issue, make sure you delete ComfyUI-PuLID-Flux-Enhanced, and manually install ComfyUI-PuLID-Flux-Chroma

    earlsansburyJul 3, 2025

    @Daxamur I only have the nodes he listed. I'm still facing the same error. Any ideas?

    milt68Jul 24, 2025

    What solved it for me was going into the custom nodes folder and renaming every folder with the strings Pulid and Flux. Actually I cut and pasted them in a differnt location.

    beepbopbipJun 19, 2025
    CivitAI

    Keep getting this error when trying to apply PulID?

    "FutureWarning: rcond parameter will change to the default of machine precision times ``max(M, N)`` where M and N are the input matrix dimensions.

    To use the future default and silence this warning we advise to pass rcond=None, to keep using the old, explicitly pass rcond=-1.

    P = np.linalg.lstsq(X_homo, Y)[0].T # Affine matrix. 3 x 4"

    jeankassiocheib813
    Author
    Jun 19, 2025

    This error never occurred to me, first time I see it, it may probably be having a conflict with some other node that you installed.

    beepbopbipJun 19, 2025

    @jeankassiocheib813 It shows conflict in the manager but with nodes that have also been installed with this workflow (that I never had before) so what gives? I disabled one of the clashing nodes and it gave me the error above, I disabled the other one and then it gives me the 'prior_image' error, i disable them both and it gives me an error that those nodes are completely missing?

    ComfyUI_PuLID_Flux_ll and ComfyUI-PuLID-Flux-Enhanced are both clashing with each other, remove one it gives one error, remove the other i get another error, remove both, the nodes are missing from the workflow ... or do i need to do more than just disable and actually remove them? (I am of course restarting the Ui each time I toggle their enable/disable status)

    jeankassiocheib813
    Author
    Jun 19, 2025

    @beepbopbip You have to disable these two and install what I put in the project description here on Civitai.

    beepbopbipJun 19, 2025

    @jeankassiocheib813 Ok thanks, got it generating now! I'm wondering if one wants to use it with Flux is it as simple as changing what options are set to chroma, to flux and then going back to the old nodes?

    Also I notice a low step lora in the chain yet the default steps you have set are 50? Is that an error and we should lower it?

    Thanks.

    jeankassiocheib813
    Author
    Jun 20, 2025

    @beepbopbip This Lora can work with 12~20 steps, but for more realistic results, Chroma requires 28+ steps. I left 50 steps because they were my best results.

    beepbopbipJun 20, 2025

    @jeankassiocheib813 Ok thanks what about the Flux? How easy would it be to use Flux with this workflow? What would need to be changed or do you by any chance happen to have a Flux workflow like this?

    Thanks

    jasonflyJun 19, 2025
    CivitAI

    I have models right from the list yet I get this error:
    "The size of tensor a (196) must match the size of tensor b (1024) at non-singleton dimension 1".

    I'm stuck. Help-

    beepbopbipJun 19, 2025

    check my post, I had the same issue at one point(can't recall what caused it as i had multiple errors), make sure you've installed everything in the post, disable both the flux nodes and you should have the chroma needs appearing in the workflow

    jasonflyJun 19, 2025

    @beepbopbip I did what you had in your post. Uninstalled 2 modules and installed one provided. Unfortunately I have still same problem. Nonetheless thank you for trying :)

    beepbopbipJun 20, 2025

    @jasonfly I can assure you it is possible to get it working, make sure you have the right models loaded, I had ended up making a mess of it somehow and ended up loading the original workflow from here back in after double checking I had all the nodes installed and the models in the right folders, please double check everything, I think I had tried to skip downloading one of the clips because I thought I could use one i already had etc, not saying you've done this but just checking to make sure you've got all the parts.

    I remember having that specific error but it was when I had changed a specific thing but it didn't last long as I undid what I had done.

    What part of the workflow is red or does the proecss stop at when the error shows up?

    I don't think this is what caused it for me but I didn't have the upscaler in the workflow so it wasn't loading and for some reason I thought it would still generate but it didn't, It's the only thing i used a different upscaler with but once I had picked the upscaler it worked and I had been struggling to find the upscaler box but it was but its on the hard right of the work flow. Not sure if that's what it could be but make sure you have a model selected.

    jeankassiocheib813
    Author
    Jun 20, 2025· 2 reactions

    @jasonfly Some of the custom nodes conflict with other nodes, so it is important to disable the others.

    Check which ipadapter and clipvision models are being loaded, if they are the same as the ones I demonstrate here.

    Or if you want to wait, in the next few days I will release a new version, using PuLID and InfiniteYou

    MuhHoJun 19, 2025· 3 reactions
    CivitAI

    great job man, thanks for your effort. Appreciated a lot

    jeankassiocheib813
    Author
    Jun 20, 2025· 1 reaction

    Thanks

    giorgioosn367Jun 24, 2025
    CivitAI

    for most people that had to disconnect the Comfy Pulid Flux 2 for this to work, how did your generations come out? Mine is like 60% resemblance, and for the OP can you fix the conflicting Apply Flux Pulid node?

    beepbopbipJun 27, 2025
    CivitAI

    Is it possible to convert this to be used with Flux if and if so what would need to be done, is it just a case of replacing the pulid nodes with the flux nodes and all chroma related settings to flux?

    I like this workflow and what it does, all the Flux workflows I've found don't seem to be as advanced and I'm kind of a comfy noob so I'd rather attempt to try and modify this than add everything manually to another workflow but what do you think would be the easier way?

    Thanks.

    Also if you can advise, what is the best way to learn comfy, there are so many nodes and every workflow creator tends to use different nodes for the same thing..is it better to just reverse engineer workflows? copy and paste elements from workflows into your own (I tried this but like I mentioned people are often using incompatible nodes that often don't line up with other nodes) ..ahh i digress

    Any advice appreciated, thanks. I want to learn. How long did it take you to learn to make a workflow like this?

    Aurora_xoJun 27, 2025· 3 reactions
    CivitAI

    For anyone struggling to make it work with the Pulid nodes - You got to delete the flux pulid node from your custom_nodes folder and download the chroma pulid node linked in the description

    orisioJun 29, 2025
    CivitAI

    Could there be a possibility that I could add flux loras to futher enhance the images, I also don't seem to get good results, body and face doesn't match to image uploaded

    jeankassiocheib813
    Author
    Jul 1, 2025· 2 reactions

    I will soon release version 2, which will fix some things and make it easier

    earlsansburyJul 2, 2025
    CivitAI

    It says AdvancedVisionLoader is missing. I did git https://github.com/ostris/ComfyUI-Advanced-Vision to custom_nodes. What am I missing? Thanks!

    [Edit] Sorry. I was testing it on an older Comfyui. The latest Comfyui doesn't have this issue.

    PepitoPalotesJul 2, 2025

    I do have the latest comfy and I'm still facing the same issue. 🤷
    The latest stable version, I mean.
    Edit: I solved it by installing in the manager from the git url.

    earlsansburyJul 2, 2025

    @PepitoPalotes Now, I'm facing

    ApplyPulidFlux.apply_pulid_flux() got an unexpected keyword argument 'prior_image'

    I'm testing it in a fresh latest Comfyui portable.

    Vixxii2780Oct 21, 2025

    Same issue. Latest version. AdvancedVisionLoader doesn't exist. Downloaded via git and when I look for it in search on comfy, it doesn't even show up.

    shibasantra04528Jul 8, 2025
    CivitAI

    Failed to validate prompt for output 433:

    * LoadFluxIPAdapter 421:

    - Value not in list: ipadatper: 'ip_adapter.safetensors' not in []

    Output will be ignored

    Failed to validate prompt for output 178:

    Output will be ignored

    Prompt executed in 0.01 seconds

    colin544Jul 10, 2025· 1 reaction

    put it in models/xlabs/ipadapters

    aurasquad1Jul 22, 2025

    colin544 thanks it worked for me!

    14julia2894Jul 9, 2025· 3 reactions
    CivitAI

    Is the sampler extremely slow for anyone else? I am getting ~6 seconds/iteration on a 5090 so each generation takes around 5 min.

    EDIT: I tried setting the virtual_vram_gb to 0 in the unet loader and that brought it down to 1 min generations.

    14julia2894Jul 9, 2025· 1 reaction
    CivitAI

    I noticed the "prepare image for ClipVision V2" node resizes the image to 224x224, however, that

    Google siglip2 vision model can handle 512x512. That might give an improvement.

    milt68Jul 26, 2025

    I think that will be a definite improvement in the output quality.

    giusparsifalJul 20, 2025
    CivitAI

    Hi and thanks, I get this error:
    AttributeError: 'Chroma' object has no attribute 'time_in'. Did you mean: 'img_in'?

    NefliAug 9, 2025· 2 reactions

    Don't change the "Apply PuLID Flux" node. Install custom node "PuLID-Flux-Chroma".
    Disable custom nodes: ComfyUI_PuLID_Flux_ll, ComfyUI-PuLID-Flux-Enhanced, ...
    Open custom nodes manager, search for PuLID, disable those with conflicts.

    ProblemassJul 28, 2025
    CivitAI

    Hello

    Can you tell which chroma gguf you used to do it?

    earlsansburyJul 29, 2025
    CivitAI

    ApplyPulidFlux.apply_pulid_flux() got an unexpected keyword argument 'prior_image'

    Has anyone encountered the same issue?

    zeus_onlAug 3, 2025

    Same Error -.-

    zeus_onlAug 3, 2025· 1 reaction

    Change the Apply PuLID Flux Node. Prior Image is not aviable. Next Problem Chroma :D

    earlsansburyAug 4, 2025

    zorrox Hi, did you mean that I would need to change the node in the workflow? How did you fix it? Can you please let me know? Thanks

    zeus_onlAug 4, 2025

    earlsansbury Next Problem is the SamplerCustomAdvanced "KeyError: 'transformer_options'"

    aurasquad1Aug 6, 2025

    zorrox change it with what?

    Thanks in advanced!

    zeus_onlAug 6, 2025· 1 reaction

    aurasquad1 Apply PuLID Flux with the new version of Apply PuLID Flux Node. Double Klick and search "Apply PuLID Flux" change.

    NefliAug 9, 2025· 3 reactions

    Don't change the "Apply PuLID Flux" node. Install custom node "PuLID-Flux-Chroma".
    Disable custom nodes: ComfyUI_PuLID_Flux_ll, ComfyUI-PuLID-Flux-Enhanced, ...
    Open custom nodes manager, search for PuLID, disable those with conflicts.

    zeus_onlAug 9, 2025

    Nefli Thank You

    aurasquad1Aug 11, 2025

    Nefli appreciate that!

    NefliAug 9, 2025· 8 reactions
    CivitAI

    Don't change the "Apply PuLID Flux" node. Install custom node "PuLID-Flux-Chroma".
    Disable custom nodes: ComfyUI_PuLID_Flux_ll, ComfyUI-PuLID-Flux-Enhanced, ...
    Open custom nodes manager, search for PuLID, disable those with conflicts.

    aurasquad1Aug 11, 2025

    is there a reason I dont see PuLID-Flux-Chroma in custom node manager

    IvanBuSep 12, 2025

    cannot find PuLID-Flux-Chroma in the custom node manager neither the link do download anywhere else

    animewrongdoer157Sep 14, 2025· 2 reactions

    PuLID-Flux-Chrome is one of the hyperlinks listed above: https://github.com/PaoloC68/ComfyUI-PuLID-Flux-Chroma

    fedupscribe687Nov 9, 2025

    You are a legend

    saffffAug 11, 2025
    CivitAI

    For those who are not getting similarity in this workflow, try bypassing ip_adapter related nodes would help

    james_bondageAug 26, 2025
    CivitAI

    Got it working after a little troubleshooting, thanks to everyone in the comments!

    lopezd20Sep 11, 2025
    CivitAI

    Helloo I m having an issue with face and body consistency , the only thing that I did different was using chroma detailled v48 instead of 37 like in the workflow you provided, I did try to bypass the idapter node like someone mentionned and it does seem to work a bit better . I can definitly see some similarities but it s still far off , ant tips would be great , thanks !

    wrjfjayxvufoywlppo625Sep 25, 2025· 4 reactions
    CivitAI

    UnetLoaderGGUFAdvancedDisTorchMultiGPU missing nod what do i do ?

    pundormeqcnqigjkdd704Sep 26, 2025
    CivitAI

    I am a newbie in comfy i did all there is to do follow the tutorial but the image is stuck at preview and dont generate further

    GooodisOct 16, 2025
    CivitAI

    COuld you do a pip list for me? I have everything setup just like you(besides that Lora that doesnt exist anymore) but I get non identical results to my input image. It has to be some dependency that's funky on my side.

    grayburnerNov 1, 2025
    CivitAI

    It seems like the link for Hyper-Chroma-low-step-LoRA.safetensors doesn't work anymore. do you have another alternative place to download it? I've been searching and it seems like the author removed that link. Thanks!

    grayburnerNov 1, 2025· 2 reactions

    NVM. found one. fortunately, someone backed it up. Here's the link to the file. Hyper-Chroma-low-step-LoRA.safetensors · Vinzou/Chroma-LoRA-Experiments at main

    Here's the comment that confirms it is the same Hyper-Chroma-low-step-Lora from Silveroxides: https://huggingface.co/lodestones/Chroma1-Flash/discussions/2#68d8b9358d7a8657b5a927d5

    gwshdudeNov 23, 2025· 11 reactions
    CivitAI

    IPadapter doesnt work for chroma for me. When it gets to the xflux nodes I get "ApplyAdvancedFluxIPAdapter

    'DoubleStreamBlock' object has no attribute 'img_mod'"

    YoSomeoneGTDNov 30, 2025

    did you find a fix?

    gwshdudeDec 4, 2025

    @YoSomeoneGTD no

    Vizlar2Jan 3, 2026· 4 reactions

    you need to fix ComfyUI\custom_nodes\x-flux-comfyui-main\utils.py , https://drive.google.com/drive/folders/14BXhRIYQu3jZqRyi_OosQrUVsgXjxGt6?usp=drive_link Here's a modification I made

    lucatfpv273Jan 8, 2026
    CivitAI

    I get "SamplerCustomAdvanced

    too many values to unpack (expected 4)"

    could anyone help?

    atofael10434Feb 17, 2026· 1 reaction
    CivitAI

    one after another, issues coming. now at SamplerCustomAdvanced 'Chroma' object has no attribute 'time_in'. I wish Developer would kindly make a simple guide with this workflow with red note

    atofael10434Feb 18, 2026

    solved now.

    jshephard1977753Feb 19, 2026· 4 reactions

    how did you solve it?

    informedviewzFeb 21, 2026
    CivitAI

    Thanks for the great work. Both the workflow developer and the community support and tips

    kydiosdios298Mar 7, 2026
    CivitAI

    the workflow is dead, I tested it on 24 ram and 84 vram, the same result, it doesn't work. thanks for the time wasted

    wuakobwuangel126Apr 11, 2026
    CivitAI

    I finally got the workflow to work, but honestly, the output face doesn't really look like the input face (after several tries).

    Workflows
    Flux.1 D

    Details

    Downloads
    8,017
    Platform
    CivitAI
    Platform Status
    Available
    Created
    6/18/2025
    Updated
    7/25/2026
    Deleted
    -

    Files

    consistentCharactersFaceAndBody_v10.zip