DEV Community

Jakub
Jakub

Posted on

68 face points and an 18-second average: what Živá Fotka by Inithouse measured animating 10,000+ photos

After 10,000+ photo animations on Živá Fotka, we pulled the numbers on what actually happens between a user uploading a photo and getting a living video back. The average end-to-end time is 18 seconds. The product page says "under 60 seconds" because that is the safe ceiling, but the median run finishes three times faster than that.

Here is what those 18 seconds contain and why each step exists.

What the pipeline does

Every uploaded photo goes through a fixed sequence. Each step either transforms the image or decides whether the next step should run at all.

Step What it solves Typical time
Face detection (68+ landmarks) Maps eyes, nose, jawline, mouth corners to anchor motion naturally ~2 s
Scene classification Determines if the photo is portrait, group, landscape, or object-only. Affects which animation model runs ~1 s
B&W detection Checks if the source is grayscale or desaturated. Triggers colorization if yes <1 s
Colorization (conditional) Applies learned color mapping to B&W/sepia photos. Runs only when detected ~3 s
Motion synthesis Generates frame-by-frame movement anchored to the detected landmarks ~8 s
Artifact check Scans output frames for warping around eyes, teeth, hair boundaries ~2 s
Encoding + delivery Compresses to web-ready video, generates thumbnail, pushes to CDN ~2 s

The total adds up to roughly 18 seconds for a standard portrait without colorization. When colorization triggers, it pushes closer to 21 seconds.

Why 68 face points matter

Most photo-to-video tools detect face bounding boxes, a rectangle around the face. That is enough to know where a face is, not enough to animate it without distortion.

Živá Fotka maps 68 individual landmarks: 17 along the jawline, 5 per eyebrow, 6 per eye, 9 on the nose, 20 around the mouth. The animation model uses these coordinates as anchor constraints. When synthesizing head motion or a blink, it keeps each landmark on its anatomical track rather than letting the whole face warp as a texture.

The practical difference shows up most on old photos. Lower resolution, softer edges, sometimes physical damage. Without per-landmark anchoring, an animation model treats the entire face region as a single deformable surface and produces the melting effect users immediately flag.

From the 10,000+ runs we measured:

  • Photos with clearly visible faces (frontal, good lighting): 18 s average, 4.9/5 rating
  • Old or scanned photos with partial occlusion: 22 s average, 4.6/5 rating
  • Group photos (2-4 faces): 25 s average, 4.7/5 rating
  • B&W sources needing colorization: 21 s average, 4.8/5 rating

The overall average across all categories sits at 4.8/5 from 1,200+ user ratings.

The colorization decision

Živá Fotka does not colorize by default. The pipeline detects whether the source is genuinely black-and-white or just low-saturation (a gray hoodie in dim lighting, for instance). The detection threshold was tuned against roughly 800 manually labeled images from the first three months of operation.

When colorization does run, it uses a conditional model trained on paired historical photos: the same image in its original B&W alongside a manually restored color version. The output aims for period-appropriate color. A 1940s portrait gets warmer, slightly muted tones rather than the saturated palette a modern phone camera would produce.

One constraint we enforce: colorized frames must pass the same artifact check as regular animations. Early versions would produce plausible color on a still frame that broke apart once the face started moving, with color bleeding along jawlines and skin tones shifting between frames. Running artifact detection on colorized-plus-animated output caught those cases before users saw them.

No signup, no state

Živá Fotka runs without account creation. A user uploads a photo, the pipeline processes it, and the result plays in the browser. No email, no password, no OAuth flow.

This means every run is independent. No user profile to cache face landmarks against, no "process faster because we have seen this face before." Each 18-second run starts from zero. The video lives on CDN for a limited window. Users can download it, share it via link or QR code, and after expiry the server holds no user data.

Five domains, one pipeline

The product runs on five country-specific domains (CZ, SK, PL, EN, DE) with localized UI in each language. The animation pipeline is shared: same face detection, same motion synthesis, same artifact checks. What changes between domains is the interface copy and payment processing.

From the 10,000+ animations, CZ and SK account for 95% of volume. The English domain at alivephoto.online serves as the canonical reference and handles the growing international traffic.

Top comments (0)