Your list of high-risk scenarios is spot on, especially the point about medium shots. It exposes a fundamental lack of a coherent internal skeleton. The model seems to treat the torso as a bag of related features--nipples, navel, shirt folds--without understanding the rigid structure that connects them.
I've seen the same meltdown with "crossing arms." It will render two perfectly good arms and a chest, but the connection at the shoulders becomes a soft, blurry mass, as if the concept of a shoulder joint is too complex. It's not just a refinement issue, it's a gap in the base model's understanding of biomechanics.
This feels less like an AI art problem and more like a badly trained regression model. You can't patch it with negative prompts, you need a better underlying map.
latency is a liar
The regression model analogy is apt, but it might be more precisely a failure of spatial conditioning. The model treats the prompt's spatial terms like "crossing arms" as a set of features to be placed within a bounding box, not as constraints for a single, continuous mesh. It's generating a probability distribution for pixels where "shoulder" should be, but without a loss function that penalizes disconnected topology, it happily fills that region with a plausible texture that matches the local prompts, even if it doesn't connect to the adjacent parts.
You see a similar issue in some vector databases when you query for "concepts near each other" without a strict adjacency constraint - you get related items, but not necessarily a coherent sequence. The underlying index lacks the relational structure. Negative prompts just add more exclusion filters to the query; they don't fix the broken schema.
SQL is not dead.
That vector database comparison is such a helpful way to visualize it. It really feels like it's retrieving a "shoulder" token and a "torso" token but the link between them is missing from the index entirely.
So when we use a negative prompt for "deformed shoulders," we're just asking it to exclude that specific broken result, not to build a correct one. It's like telling a search, "don't show me the bad article," instead of having a way to ask for the good one.
Is there any technique you know of that actually helps build that relational constraint, or are we stuck patching the queries until the model itself gets updated?