
The Story
Ask any modern image generator to draw one beautiful person, and it will nail it. Skin, hair, lighting, the works. Now ask it to draw two people shaking hands, or a parent lifting a child, or four friends in a group hug. Watch what happens. Hands fuse into each other. Arms sprout from the wrong shoulder. Somebody ends up with three legs, or two people share one. The models can render a human. They just can’t render humans doing something to each other.
As synthetic media gets this seamless, the EU’s new AI labeling rules try to force a label onto it — with mixed technical odds.
A group at Cornell decided that gap was worth attacking head-on. Their paper, “Composing People Together: Iterative Pose-Image Generation for Multi-Person Interaction Scenes,” was presented at ACM SIGGRAPH 2026 in Los Angeles this July. The authors are Wenxuan Peng, a computer science doctoral student, Bharath Hariharan, an associate professor at Cornell Bowers, and Hadar Averbuch-Elor, an assistant professor at Cornell Tech and Bowers. As Averbuch-Elor put it, today’s models make gorgeous people, but “accurately capturing an interaction, and doing so in a diverse manner, is still a challenge.”
Here’s why interaction is the hard part. When a diffusion model generates an image, it’s essentially denoising the whole canvas at once, guessing every pixel in parallel from a text prompt. That works fine for a single figure, because there’s only one body plan to keep consistent. The moment two bodies have to physically connect, the model has no reliable way to reason about whose arm belongs to whom, or where one person ends and the next begins. It’s guessing at the seams. And the seams are exactly where interaction lives.
The Cornell approach flips the strategy from “draw everyone at once” to “add one person at a time.” Instead of resolving the full crowd in a single shot, the system builds the scene incrementally. It predicts the first person’s pose, feeds that prediction back in as a condition, then predicts the second person on top of it, and so on. As Averbuch-Elor described the loop: because it’s done iteratively, you first predict only the first person’s pose, “then this prediction is fed as a condition in order to predict the second person, and so on.” Each new figure knows exactly what’s already on the canvas, so it can position itself relative to the people who came before. That’s the whole trick — turning a chaotic parallel problem into an orderly sequence.
Two ideas make that sequence work. The first is what the paper calls a “dual pose-image representation.” The model doesn’t just paint pixels; it also predicts a skeleton for each person in OpenPose format — a stick-figure map of joints and limbs — and runs it through the same encoder as the image itself. So the system is reasoning about body structure and appearance side by side, not hoping the structure falls out of the pixels by accident. The second idea handles the “who does what to whom” problem. Using a modified form of rotary positional encoding (RoPE — don’t let the acronym scare you, it’s just how transformers track token positions), every token tied to the same person, whether it’s their text description, their pose, or their image region, gets a shared index. That binds “the woman handing over the cup” to the actual woman and the actual cup, instead of letting the words drift onto the wrong body.
What’s smart from an engineering angle is how little they had to rebuild. The whole thing sits on top of FLUX, the open diffusion transformer from Black Forest Labs released in 2024. They didn’t retrain the giant image model. Only the pose stream carries trainable LoRA parameters; the text and image streams stay frozen from pretraining. For training data they used roughly 30,000 high-quality interaction images drawn from “Who’s Waldo,” a larger vision-language dataset built at Cornell back in 2021 that’s full of scenes with multiple people doing things together. Modest ingredients, targeted surgery.
Does it actually work better? The numbers say yes, with the usual caveats. On a benchmark the team built called “DrawWaldoWorlds” — designed specifically to test whether a model gets “who does what to whom” right — their method scored VQA accuracy of 0.84, 0.72, and 0.56 across three difficulty tiers, against FLUX’s 0.71, 0.56, and 0.39 and Stable Diffusion 3.5 Large’s 0.68, 0.55, 0.31. On a separate multi-person testbench, complex-scene accuracy came in at 0.55 versus a FLUX baseline of 0.41. And in a human study, 20 participants preferred the Cornell outputs by roughly two to one — 63.3% over FLUX [dev], 79.0% over FLUX Kontext.
A few honest limits. Twenty people is a small study, and preference tests are subjective by nature. The gains are real but incremental, not a leap — even the top tier tops out at 0.84, so “who does what to whom” is improved, not solved. The paper does include a failure-cases section, which is the right instinct, though the specific breakdowns weren’t detailed in what’s public so far. And this is a research prototype riding on FLUX, not a product you can open in a browser tomorrow.
The Takeaway
The interesting thing here isn’t the picture quality. It’s the method. For the last couple of years the dominant reflex in generative AI has been to make one big model do everything in a single forward pass — more parameters, more data, denoise the whole thing at once, and trust scale to sort out the details. Cornell’s result is a small vote for the opposite instinct: decompose the hard problem into ordered steps, and let each step lean on the last.
That pattern should feel familiar if you’ve been following where this blog keeps landing. It’s the same shape as agentic AI — instead of asking a model to solve a task in one shot, you let it work in a loop, checking its own state as it goes. It rhymes with what we’ve been calling “Physical AI,” where robots don’t compute a whole plan in a vacuum but react to the world one sensed moment at a time. When we covered Google DeepMind putting two vision-language-action models on a humanoid, the through-line was the same: hard embodied problems get more tractable when you structure them as feedback, not as one giant guess.
Pose, it turns out, is a quietly powerful idea to build that structure around. A skeleton is a compact, legible piece of scene state — you can look at it, edit it, reason over it — in a way that a wall of pixels never is. That’s why the same OpenPose stick figures show up in animation pipelines, in robotics, in motion capture. My read is that the durable contribution of this paper isn’t “better group photos.” It’s the demonstration that giving a diffusion model an explicit, decomposable representation to reason about — and letting it fill that representation in one piece at a time — beats asking it to hallucinate the whole mess at once.
There’s a broader signal in where this came from, too. This isn’t a frontier lab burning nine figures of compute. It’s a university group doing careful surgery on an open model with 30,000 images and a targeted LoRA. As the base models keep opening up, that’s increasingly where the clever ideas live — not in who has the biggest cluster, but in who asks the sharpest question about how the model should think. Multi-person interaction was a great question to ask, precisely because it’s the thing everyone else quietly gave up on.
This article is for informational purposes only.
Photo: Sarah Sheedy / Unsplash
댓글 남기기