If you've tried generating a dance video from a text prompt, you probably know the feeling: you type "a woman dancing in a neon-lit street, hip-hop style," and get something that is technically a person moving, but nothing like the choreography in your head.
Text is a lossy way to describe movement. Timing, weight shifts, camera energy, the exact beat where an arm snaps out: none of that survives a one-sentence prompt.
That's why I've been paying attention to a different approach: motion transfer. Instead of asking a model to invent a dance, you give it two things:
- A portrait of the person or character who should appear in the video
- A short reference clip that contains the movement you want
The reference drives the motion. The portrait drives the identity.
I've been trying this workflow with Danceo, an AI dance video generator built around exactly this idea. Here's what I learned.
How the workflow works
The flow is simple enough to explain in three steps:
- Pick a move. Browse the showcase to find a movement and visual style you like.
- Add your inputs. Upload an authorized portrait and an authorized reference dance video (MP4 or MOV, up to 100 MB).
- Generate and download. Watch the result, download it, and find past renders in a "My videos" page.
What I like from a product-design perspective: the tool previews your inputs and quotes the credit cost before you generate, so there's no surprise spend. If a render fails, credits are restored.
Why reference-driven generation gives you more control
With a pure text-to-video model, you're negotiating with a black box. With motion transfer, you get a much more predictable contract:
| Text-to-video | Portrait + reference clip | |
|---|---|---|
| Choreography | Invented by the model | Taken from your reference |
| Timing & pacing | Hard to specify | Inherited from the clip |
| Camera movement | Prompt-dependent | Follows the reference |
| Subject identity | Often drifts from description | Anchored to your portrait |
| Iteration | Rewrite the prompt and hope | Swap one input, keep the other |
That last row is the one that matters most for experimentation. You can hold the portrait constant and swap only the reference clip to compare dance styles, or hold the reference constant and try different characters. It turns a creative guessing game into something closer to an A/B test.
Practical tips for better results
Most quality problems I've seen with this kind of tool trace back to the inputs, not the model. A few things that help:
For the portrait
- Use one clearly visible subject.
- Prefer a sharp, evenly lit image with a visible face and upper body.
- Match the portrait's orientation to the reference framing (vertical with vertical) so the composition is easier to review.
For the reference clip
- Pick steady framing with readable, full-body movement.
- Avoid sudden cuts, crowded backgrounds, and heavily obscured dancers. They give the model less useful information.
- Keep it short. You're typically working with clips in the ~10-30 second range.
For your process
- Generate a short test first.
- Check likeness, hands, clothing, and motion consistency across the whole clip.
- Only then render the version you plan to publish.
Hands and clothing are where I'd look first. They're the classic failure points in generated video.
Use cases that make sense
- Social content concepts: a short vertical dance clip for TikTok, Reels, or Shorts, or a before/after reveal.
- Fictional character motion: give an original character a performance reference without building an animation pipeline.
- Campaign prototypes: compare pacing, composition, and styling directions before committing to a bigger production.
The part you shouldn't skip: rights and responsibility
This is the least exciting section and the most important one.
Motion transfer makes it very easy to put a likeness into a performance, which means the responsibility sits with whoever uploads the inputs. A few ground rules worth following (and which Danceo's own guidelines emphasize):
- Only use photos of real people when you have clear permission to upload and publish them.
- Only use reference videos, performances, and soundtracks you're authorized to use. Rights to the generated video don't cover rights to the inputs.
- Don't use a real person's likeness to depict them as under 18. Any fictional minor characters must be non-sexual, fully clothed, and age-appropriate.
- Check the destination platform's rules before posting, and check the current plan and Terms before using output commercially.
If you're building anything on top of generative video, this is a good checklist to bake into your own product, too.
Limitations to keep in mind
- The tool is optimized for replacing one visible dancer with one portrait. If you need group choreography, you'll want a workflow that explicitly supports multiple subjects.
- Output quality depends heavily on your inputs, so expect to iterate.
- Free quota, watermark, and resolution details depend on the current plan, so check the live pricing page rather than relying on blog posts (including this one).
Try it
If you want to experiment with portrait + reference-clip motion transfer, you can try it at danceo.ai. Pick a showcase move, upload an authorized portrait, and run a short test render.
If you've been using text-to-video for choreography and getting frustrated, I'd be curious whether switching to a reference-driven approach changes your results. What's the most annoying failure mode you've hit with AI-generated motion? Let me know in the comments.