Most vendor comparisons are rigged. You pick the prompt your model is good at, cherry-pick the best of ten generations, and post the winner. We're doing the opposite: same prompt, one generation each, 30 seconds of output — and publishing the one where we lose.
Why? Because we ship linyan.io to real customers, and "we couldn't render the second character" is the single most useful bug report we can give ourselves in public. Along the way we also found something bigger than a bug: run the same prompt through Pika and you get our output back, near frame for frame. More on that below.
The setup
One prompt, unchanged, submitted to both engines. Default settings on both sides — no reference images, no character locking, no retries. 30-second target duration. The full prompt is below — it's long, because it's a scene-by-scene script, and that's exactly what makes it a good stress test: two named characters who must stay recognizable across six scenes, cuts, and a shared frame.
Show the full prompt (verbatim)
A necessary disclosure: the prompt depicts two real, living political leaders, and every line of dialogue in it is scripted fiction. Neither has said these words. The clips exist purely as a model stress test — recognizable faces are the hardest possible test of character consistency, which is the point of this post — and both are labeled as AI-generated where they're posted.
Versions matter, so on the record: linyan.io currently runs on Seedance 2.0; the comparison clip was generated with LTX-2.3 Pro. Both on default settings, both generated in June 2026. Rerun this in six months and the result may flip — that's the nature of this market.
The results, side by side
Watch on TikTok
Watch on TikTok
What we saw
We expected identity drift — faces wobbling between cuts, costumes changing color. What we got was worse and simpler: our pipeline could not render the second character at all. Not badly. Not inconsistently. Not at all.
The prompt is explicit. Scene 1 is two leaders entering from opposite sides and shaking hands. Scene 2 is a two-shot at a conference table. Scene 6 is a closing handshake. LTX-2.3 Pro delivered those beats — two distinct, recognizable people sharing the frame and staying themselves across cuts. Our Seedance 2.0 output never puts the second leader on screen. A prompt written for two characters came back as a one-character film, and every scene built on their interaction — the handshake, the exchange, the reaction shot — collapses with it.
That's a categorical failure, and it's worth being precise about why it's worse than drift. Drift you can sometimes rescue in the edit — cut around the bad frames, regenerate a shot. A character who never materializes kills the brief itself. There is no edit that saves a dialogue scene with one participant.
Two hypotheses — and we don't yet know which
Honest build logs name their unknowns, so here are the two explanations we can't yet separate.
Hypothesis one: multi-subject binding failure. Rendering two characters means holding two identity representations bound to two regions of the frame while both move, occlude each other, and survive cuts. When a model can't do this, it doesn't always blend the characters — often it collapses the scene to the single subject it can hold and quietly drops the other. That matches what we see, and it's a known weak point of current architectures.
Hypothesis two: a likeness filter, not a capability gap. Both characters in this prompt are real, heavily protected political figures. It's entirely possible the base model isn't failing to render the second leader — it's refusing to, silently, via a public-figure safety filter, while LTX-2.3 Pro applies looser rules. If that's the cause, our conclusion changes from "the model can't do two characters" to "the model won't do this face," which is a very different bug with a very different fix.
Either way the commercial reality stands: two-character scenes aren't an edge case. Dialogue is two people. Conflict is two people. Almost every story beat a client actually wants involves more than one character in frame — which is exactly what we learned the hard way on The Jade Tithe. A pipeline that silently returns one character for a two-character brief is not shippable for narrative work, whatever the underlying reason.
The Pika wrinkle
While we were at it, we ran the same prompt through Pika — and got output that is, for practical purposes, identical to ours. Same composition, same look, and the same missing second character. Two products producing near-identical video from one prompt isn't coincidence; it's the fingerprint of a shared underlying model — consistent with both running Seedance 2.0 under the hood.
We're saying this out loud because it reframes the finding. The character-capture failure in this post isn't a linyan.io bug — it's a limitation of the base model, and every product built on that model inherits it, whatever the brand on the front. If you're comparing tools in this space, test with your own prompt before paying: some of the "different" options on your shortlist are the same engine wearing different UI.
It also raises the bar for us. If the base model is shared, the model isn't the product — the pipeline around it is. That's where the fix has to come from.
What we're doing about it
Before promising a fix, we're isolating the cause — the two hypotheses above have opposite remedies, and guessing wrong wastes a quarter. Three diagnostics, all cheap:
Rerun with two fictional characters. Same six-scene structure, invented leaders, no real likenesses. If both characters render, the problem is a likeness filter, not multi-subject capacity. If the second character still vanishes, Seedance 2.0 genuinely can't hold two subjects at this length and the filter theory dies.
Rerun each real leader solo. If one of them fails to render even alone, we've found the filtered face, and the two-character framing was never the real variable.
If it's capacity, not filtering: the fix lives in the pipeline, not the prompt — per-character reference conditioning, or routing multi-character shots to an engine that can hold them and compositing back. If it's filtering, the fix is a product decision about what we render at all. We'll publish the diagnostic results either way, including if they make this post look wrong.
The caveat you should hold us to
This is one prompt and one generation per engine. It's a data point, not a benchmark. The Pika observation is an inference from output similarity, not something either vendor has confirmed. And we haven't yet separated "Seedance 2.0 can't render two subjects" from "Seedance 2.0 won't render this subject" — the diagnostics above will settle it. The finding we're confident in is the narrow one: on this two-character brief, as of June 2026, our output failed outright and LTX-2.3 Pro delivered — and we'd rather tell you that than have you find out mid-project.