This is the last leg of the mission that began with a stick figure in a CCTV alley. The single word "Dance!" passes through a bag of words to become a stick-figure dance, and that dance becomes a pose map that takes on the Assistant’s appearance. We open the real video frame by frame and work out what the "motion match score 76.5%" floating on the screen tells us, and what it does not.
Up to 5-4, the stick figure understood words and danced. But it is still only a skeleton. The last mission is to dress this skeleton in a human appearance and turn it into a video. The model will be the Assistant.
Click a box to see that step explained. Steps 1–4 are calculations built in this series; steps 5–6 are shown by the given video.
| Step | Input | Output | Part of this series |
|---|---|---|---|
| 1–2 Text funnel | "Dance!" | One point on the shared map (8 values) | 5-4 sections 2·3 |
| 3 Motion generation | A point on the map | Stick-figure motion (frames × 13 joints) | 5-3 section 6, 5-4 section 5 |
| 4 Pose map | Joint coordinates | Colored-bar drawing on a black background (per frame) | The reverse direction of 5-1 section 3 |
| 5 Pose-guided generation | Reference image + pose map | A frame of the Assistant in that pose | Section 3 of this part |
| 6 Video | Frames | Dance video | Section 4 of this part |
Most pose-guided video generation models are diffusion models. They start from random noise and strip a little of it away at each step, guided by two conditions: "look like the reference image, pose like the pose map." Move the slider to strip away the noise.
| Appearance encoder | Extracts features of the face, hair and clothes from the reference image and keeps referring to them while drawing (ReferenceNet-style) |
| Pose guider | Folds the pose map with a small convolutional neural network and adds it on top of the noise. "An arm goes here" is fixed from the very start |
| Temporal layers | Lets neighboring frames refer to each other so clothing colors and hair do not flicker |
This screen mixes noise in proportion into a finished frame (the Assistant from the video) to show "the share of the original signal left at each step" (the √ᾱ values follow a real diffusion model’s schedule). Real models handle noise in a latent space where the image is folded small, and at each step they predict "this much here is noise" and subtract it [R1]. A representative family of architectures that moves a person using a reference image and poses is Animate Anyone [R2]. The video does not state which model or settings were used to make it.
The video joins the two dances one after the other, not side by side (0–4.96 s stick figure, 4.96–10 s Assistant). Press "Side-by-side view" to load the same file in two screens and compare the same moments. Shift the offset of the right screen to find the moment when the two dances line up.
The sound is off at first. Use "Sound on" to hear the music. In side-by-side view, try moving the offset to around 0.9 s.
First we check what the number in the video is, then we measure a match score ourselves. Even for the same dance, the number changes a lot depending on how you measure.
| What we checked (Code 2) | Result | Meaning |
|---|---|---|
| Does the number box change from frame to frame? | Max pixel difference from the first frame: 0.07 | It stays at 76.5% for all 240 frames. It is not a value recalculated for each frame |
| Match-score boxes in the first and second scenes | Mean difference at the same time points: 0.16 | The same overlay was played once over each scene. The swaying pink bars at the bottom are just decoration too |
| Calculation method stated | None | From the video alone you cannot tell what was compared with what, or with which score |
On the left is a 5-second choreography (wave → point → arms out with a knee lift → both arms up); on the right is the same choreography followed late. The joint distance score aligns the pelvis, then averages exp(−distance²/2·0.1²) over the joints; the limb direction score is the average cosine similarity of the directions of 8 bones.
| Case | Joint distance score | Limb direction score |
|---|---|---|
| Same dance, same time | 100.0% | 100.0% |
| Following 0.33 s late | 90.8% | 96.4% |
| Following 1.0 s late | 77.6% | 87.8% |
| Mirrored dance | 82.5% | 88.6% |
| 1.0 s late + mirrored | 78.7% | 86.5% |
| The 1.0 s late dance shifted 15 frames earlier to align | 100.0% | — |
| Aligned with dynamic time warping (DTW) | 99.6% | — |
| Mirrored dance too: timing aligned only / mirroring undone as well | 79.6% / 100.0% | — |
A single stick figure in a CCTV alley became features, became material for generation, was folded and unfolded, was paired with words, and finally became the Assistant’s dance. Click a card to go to that part.
6 million on-screen numbers → 26 joint numbers → 4 features → verdict
Wrist-speed rule → 4 features + learning
5-2 GenerationFrom recognizing to makingFlip the arrow and you learn a distribution, not an answer
Bone-length error: coordinate dice → knob (latent variable) sampling
5-3 CompressionEncoder · decoderFold 1,196 numbers into 16 and unfold them again
Motion held in 16 numbers
5-4 TextFrom words to motionContrastive learning puts words and motions on the same map
Pair-matching loss, 400 steps
5-5 FinalFrom "Dance!" to a dance videoDress the pose map as the Assistant and make a video
Match score shown in the video (calculation method not stated)
Both code notebooks use only libraries preinstalled in Colab. After "Download notebook (.ipynb)", open it in Colab via File → Upload notebook, or copy the code and paste it into a new notebook cell.
Builds a 5-second choreography and compares it, with two kinds of score, against versions followed late or mirrored left-right. Timing alignment and dynamic time warping (DTW) are included too. To use your own data, instead of dance_seq, put joint coordinates (frames, 13, 2) extracted from two videos by pose estimation into A and B.
Measures the video’s resolution and length, the scene change, changes in the match-score number box, and the time offset between the two scenes. The video-analysis numbers in sections 4·5 come from here. Upload match_score_video.mp4, the same file included on this page, to Colab and use it.
These are prompts to paste into AI assistants such as ChatGPT, Qwen, or Claude. When you press "Copy," the selected code is attached after the prompt. Just replace the parts in 〔 〕 with your own situation.
The AI's answer is only a starting point. Always verify suggested papers, figures, and library functions against the original sources and official documentation. When using footage of real people, first check filming consent and personal data processing rules.
The same dictionary as the yellow dotted underlines in the text. Click a section name to jump to where the term first appears.
Analogies are a first step toward understanding, but they can also plant misconceptions. Analogies to human perception are marked by strength. Direct there is evidence that it actually does the same thing · Partial only some properties are similar · None no known counterpart
| Concept | Everyday analogy | Human perception analogy | Where the analogy breaks |
|---|---|---|---|
| Pose-guided generation | Posing a mannequin, dressing it, and taking a photo | Partly A person seeing a motion and picturing a specific person doing it | A mannequin keeps the same clothes, but a generative model redraws the clothes and face every frame, so they can vary a little |
| Reference image | An actor’s profile photo | None | The model invents the back view and fingers that are not in the profile photo. The invented parts may differ from the real person |
| Pose map | Dance notation (a written record of choreography) | None | People read and interpret dance notation, but a pose map holds only joint positions. Facial expressions, fingers and rhythm are left out |
| Motion match score | A karaoke score | None | As with a karaoke score, when the calculation is hidden you cannot tell from the number alone whether it was good. What was compared with what, and how, comes first |
| Time alignment (DTW) | Re-editing two people’s off-beat dance videos so they match the beat | Partly People recognize it as "the same dance" even when the beat is a little off | DTW only stretches and squeezes time; it never changes the order. It cannot align a dance whose moves come in a different order |
E-1 About the author · E-2 Academic references · E-3 Sources of figures and numbers
An operating guide for instructors, on-the-job trainers and tutors. Times are estimates, so adjust them to your actual class. This part also works as a wrap-up class for the series.
| Audience | University students and working adults who have finished 5-1 to 5-4. Planners and practitioners who deal with generated videos and "AI scores" at work |
|---|---|
| Prerequisites | Pose estimation from 5-1, words → motion from 5-4, the basic idea of diffusion models (removing noise) |
| Learning goals | ① Explain the six steps from prompt to video in order ② Say what the reference image and the pose map each determine ③ When looking at a number like a match score, ask "what was compared, and how?", and give an example of how a time offset changes the score |
| Estimated time | Reading 30–40 min · video demo 20 min · Colab practice 25 min (Code 1 12 min, Code 2 13 min) |
Intro 5 min (section 1) → section 2, six steps, 10 min → section 4, side-by-side video, 10 min → section 5, match-score experiment, 12 min → section 6, series map, 8 min → check questions 5 min.
Sections 4·5, 25 min → each team picks one "AI score in our work" and traces back what was compared and how, 25 min → measuring the video directly with Code 2, 20 min → discussion of labeling generated content and consent, based on the outfit difference in section 3, 20 min.
Beginners: sections 2·4·6 only. Have intermediate learners compute score_dist by hand for just one frame and follow DTW’s table filling on a 3 × 3 grid.
| Section | Question to pause and ask | Hands-on tip |
|---|---|---|
| 2 In one line | "Which of these steps were computed directly in this series, and which come from the given video?" | Click the boxes one by one and read the last sentence of the explanation below |
| 3 Drawing the Assistant | "The reference image shows a lab coat, so why is the video an idol outfit?" | Drag the step from 0 → 25 and compare with the solo 12 cuts below |
| 4 Video | "At what second does the spin happen in each of the two dances?" | In side-by-side view, move the offset from 0 → 0.9 s |
| 5 Match score | "It is the same dance, so why 77.6%? How do you make it 100%?" | At a lag of 1.0 s, press "Align timing" |
| 6 Recap | "If you had to pick the single most important number from the five parts, which would it be?" | Click a card to go back to that part |
| Misconception | Correct explanation | Scene to show |
|---|---|---|
| Say "Dance!" and the AI understands dancing and makes the video | It is a flow of several steps handing numbers along. Words → a point on the map → joint coordinates → pose map → frames | Section 2 |
| The match score shown in the video is a reliable measurement | This video’s 76.5% is the same value for all 240 frames, and its calculation method is not stated | Section 5, upper table |
| A low match score means the dance was not followed well | The same dance scores 77.6% if it is 1 second late. Align the timing and the left-right and it becomes 100% | Section 5, "Measure it yourself" |
| The reference image’s appearance comes out exactly as is | That is the principle, but parts not in the reference (such as the back view) are invented, and the outfit can differ, as in this video | Section 3, note below |
| With just a pose map anyone can be made to dance, so there is no problem | When making a video with a real person’s appearance, you need that person’s consent and a label marking it as generated | Section 6, "The human part" |
24 × 10 = 240 frames. 119 ÷ 24 ≈ 4.96 s.
exp(−0.01 / 0.02) = exp(−0.5) ≈ 0.607. When the distance is as large as σ, that joint scores about 61 points.
77.6% as is, 100.0% when shifted to align. The lag was being counted as "wrong".
The pixels of the number box stayed almost the same as the first frame for all 240 frames (max difference 0.07), and the match-score boxes of the two scenes were almost identical at the same time points (mean difference 0.16). The same overlay was played twice.
The reference image sets the appearance (face, hair, clothes); the pose map sets the pose. Early in denoising (big outlines) the pose map does most of the work; later on (face, accessories, patterns) the reference image does.
In Code 1, change σ to 0.05, 0.1 and 0.2 and compare the joint distance scores for "Following 1.0 s late". Write two sentences on how σ affects the score and why σ should also be reported when you present a match score.
Extract joint coordinates from both scenes of this video with MediaPipe (also record the frames where it fails on the Assistant scene), then compute the actual match score with score_dist and best_shift from Code 1. Report the scores before and after timing alignment and with the mirroring undone, compared with 76.5%.
| Beginners | The side-by-side view in section 4 and the single "Align timing" button in section 5 are enough to get the core of this part |
|---|---|
| Advanced | Have learners present the architecture diagram of the Animate Anyone paper matched to the table in section 3 (appearance encoder · pose guider · temporal layers) |
| Series review | Have learners explain in one line each what the five card numbers in section 6 measured (60.7% → 99.7%, 44.2% → 0.0%, 99.8%, 1.90 → 0.01, 76.5%) |
With “5-5 From "Dance!" to a Dance Video”, you have completed all five missions. Here are the last words from the lab crew.