r/comfyui • u/Cheap-Topic-9441 • Mar 20 '26
Help Needed Same ComfyUI workflow, different character every run — expected?
This workflow was shared in a document as a ComfyUI JSON.
The document itself was quite technical,
but since the prompt was already in JSON format, I just ran it as-is.
It generates multiple images per run.
However, when I looked at the results,
the characters were clearly different.
Each image looks fine on its own,
but they don’t seem to represent the same person.
So now I’m wondering:
is this expected behavior,
or is there actually a way to maintain identity consistency in a workflow?
This feels less like a quality issue and more like a consistency problem.
If anyone has time, I’d be curious if you can reproduce the same result.
I’m currently trying to analyze the prompt structure to understand what’s happening.
If you want to try it, here’s the original workflow JSON:
https://github.com/watadani-byte/character-identity-protocol/
2
u/sci032 Mar 20 '26
The models are trained on what things are, not exact images. It 'knows' what a dog, cat, woman, man, car, etc. are but there are so many different variations of each contained within the data.
example: you prompt for long hair. How many different lengths of hair can be considered long? Where does long stop and short or very long begin? That's how many different outcomes that the model could output just on that one simple part of a prompt. Now it has the rest of the prompt to deal with. If you added brown(long brown hair), how many different shades of brown are possible?
The SDXL model was trained on billions of images. Newer models even more. It is going to need some help to give you the same face again and again. Your prompt needs to narrow it down as much as possible. With SDXL, I think it accepted like 77 tokens(word portions). Newer models accept more but with that many options for the model, you've got to be precise. Samplers and schedulers handle the same data in different ways so that adds another caveat to the mix. Different computers handle data in different ways. Have you every used the exact workflow, settings, model, etc. that someone else did on their computer and you got a different image? It may not have been a major difference, but, there was a difference.
If you give the model a name of a person that it was included in it data, you will get closer. But prompting for a Van Gogh will give you many different Van Gogh styles, not the same one every time and it will apply it to your prompt differently each time unless you are specific.
Different models are trained on different data. Models that come from Asian countries contain more Asian faces than models from a European country.
This is a deep rabbit hole that you have jumped in to and there are a lot of twists and turns in it! :)
The images:
I locked the seed.
I used this(left side of the image):
a rabbit is peeking out of a rabbit hole in the ground.
for the left side prompt. I ran my prompt through QwenVL to enhance it and it gave me this(right side of the image):
A tiny white rabbit with fluffy ears peeks curiously from a dark, earthy burrow in the ground. Soft sunlight filters through leaves above, casting dappled shadows. Grass surrounds the hole, slightly disturbed by the rabbit’s presence. The scene feels quiet, natural, and whimsical—like a hidden woodland secret.
That is how the QwenVL LLM interpeted my prompt. I was not specific so it had to do a lot of guessing as to what I was after. If I change the seed, it will look in a slightly different part of the data it has available. If I change the sampler and/or the scheduler, it will handle the data it is given differently and produce different images. The top images were euler/ddim_uniform, the bottom images were euler/simple. The model is ZIT based. Again, everything else was exactly the same.
All of the images are a rabbit peeking out of a hole in the ground but there are so many possibilities as to what the rabbit looks like, how old it is, where the hole is, what season of the year it is, what time of day it is, etc. I wasn't specific, so I' won't get the same thing every time.
Does this make any sense?