2
159 Comments

Why a small studio built a photo animator for family albums: the origin of Alive Photo by Inithouse

Most AI photo tools target social media. We went the other direction: family albums, old prints, grandparents who never got a video taken.

Alive Photo (called Živá Fotka in Czech) turns a static photo into a short living video. Upload a photo, wait about 60 seconds, get a video where the person blinks, smiles, turns their head slightly. It also colorizes black-and-white photos. No account needed, photos are deleted after processing.

We run it across five localized domains: zivafotka.cz (Czech), zivafotka.sk (Slovak), zywafotka.pl (Polish), alivephoto.online (English), and lebendigfoto.de (German). Same codebase, five front-ends.

Here's why we built it, what's hard about it, and what we still get wrong.

Why family albums specifically

The first version was a generic "animate any face" tool. Usage was scattered: memes, profile pics, random experiments. Nothing stuck.

Then we noticed a pattern in the photos people actually uploaded: old wedding photos, school portraits from the 1970s, grandparents holding babies. People weren't looking for a fun filter. They were trying to see someone move who they'd only known from a single still image.

That reframed everything. The product isn't "AI face animation." It's a way to bring a family photo to life. The difference matters for every decision downstream: what quality bar we set, how we handle faces, what we promise and what we don't.

Why five domains instead of one

We could have shipped alivephoto.online and called it done. Instead we registered country-specific domains in four languages.

The reasoning was straightforward: people searching for "oživení fotky" in Czech won't find an English-only product. And for something as personal as animating a photo of a deceased relative, language matters. The interface, the explanation of what happens to the photo, the reassurance that it gets deleted. All of that needs to be in the user's language, not behind a Google Translate layer.

The cost isn't the domains. It's maintaining five sets of translations, five GSC properties, five sets of SEO landing pages. We share one GA4 property across all five, which simplifies measurement but makes per-locale debugging harder.

What we learned: the Czech and Slovak versions consistently outperform on CTR (Czech campaigns around 13%, Slovak around 16%). The English domain gets broader traffic but lower engagement. German is the newest and still building traction. Polish sits in between.

Each locale also has its own search behavior. Czech users search for "oživení fotky" (photo revival). Polish users search "ożywienie zdjęcia." German users go for "Foto lebendig machen." These aren't translations of each other. They're different phrasings that emerged from actual search data. If we'd just translated the Czech keywords, we'd have missed the natural German phrasing entirely.

The hardest part: faces don't cooperate

Our animation pipeline tracks 68 points on a face: eyes, mouth corners, jawline, eyebrows, nose bridge. The model predicts micro-movements for each point and generates frames. Simple enough in theory.

In practice, face preservation is the hardest problem we deal with, and we haven't solved it.

The failure mode looks like this: someone uploads a clear, well-lit photo of their grandmother. The animation runs. The result has the right movements, a gentle smile, a slight head turn, but the face drifts. Skin tone shifts. Features blur or subtly reshape. The person in the video doesn't quite look like the person in the photo.

We track this with an internal quality rating. Our current score: 2.5 out of 5. That's across all processed photos. Roughly half the outputs meet our quality bar. The other half have some visible drift, sometimes minor (slight color shift), sometimes significant (face structure change, especially on older or lower-resolution photos).

We ship it anyway, because the alternative is shipping nothing. Users can see the result before paying and decide for themselves. But we're not going to pretend the technology is further along than it is.

The specific failure cases we're working on:

• Old, low-resolution scans: less facial detail means fewer reliable anchor points. The model fills in gaps with guesses, and guesses compound across frames.
• Black-and-white photos after colorization: the colorization step introduces its own artifacts, and the animation model inherits them. Two AI steps in sequence, each adding its own error margin.
• Non-frontal faces: profile shots, three-quarter angles. The 68-point model was trained mostly on frontal photos. Side angles have fewer visible landmarks.

We've processed over 10,000 photos. That's enough data to see the patterns but not enough to fix them all. Each failure category needs different work: better training data for side angles, a separate pipeline path for post-colorization animation, resolution upscaling before landmark detection for old scans.

What we'd do differently

Three things, looking back:

Start with fewer locales. We launched all five domains within weeks of each other. That spread our attention across five SEO pipelines, five translation review cycles, five sets of user feedback in different languages. If we were starting today, we'd launch Czech (our home market) and English, validate the product, then add languages one at a time based on search volume data.

Separate the colorization and animation products. Right now, colorization is a feature inside Alive Photo. Users can colorize a black-and-white photo and then animate it. But running two AI models in sequence multiplies errors. A standalone colorization tool would let us optimize each model independently and give users cleaner results on both fronts.

Set the quality bar before launching. We didn't have our internal rating system when we launched. We added it after seeing too many outputs that didn't meet the bar. Having a scoring rubric from day one, even a rough one, would have caught drift patterns earlier and saved us from shipping results we later regretted.

Where it stands now

Alive Photo processes photos in about 60 seconds, works across five languages, handles both color and black-and-white inputs, and generates short animated videos. It's one of 15 products in our portfolio at Inithouse.

The face preservation problem is our current focus. We're tracking improvement on a per-category basis (old scans, post-colorization, non-frontal) and measuring against our internal quality score. The goal is to get from 2.5/5 to 3.5/5 by the end of the year. That's not a marketing target. It's a technical milestone tied to specific pipeline changes.

If you're building something where the AI output quality is visibly below where you want it, the honest path is to ship with transparency, track the gap, and work on it in the open. Hiding behind a vague "powered by AI" label helps nobody.

You can try Alive Photo at alivephoto.online.

on September 24, 2026
  1. 1

    What made you pick this stack over the alternatives?

  2. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  3. 1

    How did you decide this was worth building in the first place?

  4. 1

    What made you pick this stack over the alternatives?

  5. 1

    How did you decide this was worth building in the first place?

  6. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  7. 1

    How did you decide this was worth building in the first place?

  8. 1

    Good point. Did you test that with users before committing to it?

  9. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  10. 1

    What made you pick this stack over the alternatives?

  11. 1

    What made you pick this stack over the alternatives?

  12. 1

    How did you decide this was worth building in the first place?

  13. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  14. 1

    Good point. Did you test that with users before committing to it?

  15. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  16. 1

    What made you pick this stack over the alternatives?

  17. 1

    How did you decide this was worth building in the first place?

  18. 1

    What made you pick this stack over the alternatives?

  19. 1

    How did you decide this was worth building in the first place?

  20. 1

    Good point. Did you test that with users before committing to it?

  21. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  22. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  23. 1

    How did you decide this was worth building in the first place?

  24. 1

    What made you pick this stack over the alternatives?

  25. 1

    Good point. Did you test that with users before committing to it?

  26. 1

    How did you decide this was worth building in the first place?

  27. 1

    Good point. Did you test that with users before committing to it?

  28. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  29. 1

    What made you pick this stack over the alternatives?

  30. 1

    What made you pick this stack over the alternatives?

  31. 1

    Good point. Did you test that with users before committing to it?

  32. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  33. 1

    How did you decide this was worth building in the first place?

  34. 1

    How did you decide this was worth building in the first place?

  35. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  36. 1

    Good point. Did you test that with users before committing to it?

  37. 1

    What made you pick this stack over the alternatives?

  38. 1

    Good point. Did you test that with users before committing to it?

  39. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  40. 1

    How did you decide this was worth building in the first place?

  41. 1

    What made you pick this stack over the alternatives?

  42. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  43. 1

    How did you decide this was worth building in the first place?

  44. 1

    What made you pick this stack over the alternatives?

  45. 1

    Good point. Did you test that with users before committing to it?

  46. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  47. 1

    How did you decide this was worth building in the first place?

  48. 1

    What made you pick this stack over the alternatives?

  49. 1

    How did you decide this was worth building in the first place?

  50. 1

    What made you pick this stack over the alternatives?

  51. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  52. 1

    Good point. Did you test that with users before committing to it?

  53. 1

    How did you decide this was worth building in the first place?

  54. 1

    What made you pick this stack over the alternatives?

  55. 1

    What made you pick this stack over the alternatives?

  56. 1

    How did you decide this was worth building in the first place?

  57. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  58. 1

    Good point. Did you test that with users before committing to it?

  59. 1

    What made you pick this stack over the alternatives?

  60. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  61. 1

    Good point. Did you test that with users before committing to it?

  62. 1

    How did you decide this was worth building in the first place?

  63. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  64. 1

    How did you decide this was worth building in the first place?

  65. 1

    What made you pick this stack over the alternatives?

  66. 1

    Good point. Did you test that with users before committing to it?

  67. 1

    How did you decide this was worth building in the first place?

  68. 1

    What made you pick this stack over the alternatives?

  69. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  70. 1

    Good point. Did you test that with users before committing to it?

  71. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  72. 1

    How did you decide this was worth building in the first place?

  73. 1

    Good point. Did you test that with users before committing to it?

  74. 1

    What made you pick this stack over the alternatives?

  75. 1

    How did you decide this was worth building in the first place?

  76. 1

    Good point. Did you test that with users before committing to it?

  77. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  78. 1

    What made you pick this stack over the alternatives?

  79. 1

    How did you decide this was worth building in the first place?

  80. 1

    Good point. Did you test that with users before committing to it?

  81. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  82. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  83. 1

    What made you pick this stack over the alternatives?

  84. 1

    Good point. Did you test that with users before committing to it?

  85. 1

    How did you decide this was worth building in the first place?

  86. 1

    Clear and practical, thanks. Did anything surprise you along the way?

  87. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  88. 1

    An old family photo can be blurry and faded, but one slightly wrong facial expression can make it feel like a different person. I'd show the original photo beside the animated version, focusing on how faithfully it preserves the person's face.

    For families bringing back memories of loved ones, that resemblance matters far more than flashy animation.

  89. 1

    How did you decide this was worth building in the first place?

  90. 1

    Good point. Did you test that with users before committing to it?

  91. 1

    What made you pick this stack over the alternatives?

  92. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  93. 1

    How did you decide this was worth building in the first place?

  94. 1

    What made you pick this stack over the alternatives?

  95. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  96. 1

    Good point. Did you test that with users before committing to it?

  97. 1

    Good point. Did you test that with users before committing to it?

  98. 1

    What made you pick this stack over the alternatives?

  99. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  100. 1

    How did you decide this was worth building in the first place?

  101. 1

    How did you decide this was worth building in the first place?

  102. 1

    What made you pick this stack over the alternatives?

  103. 1

    Good point. Did you test that with users before committing to it?

  104. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  105. 1

    How did you decide this was worth building in the first place?

  106. 1

    What made you pick this stack over the alternatives?

  107. 1

    Good point. Did you test that with users before committing to it?

  108. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  109. 1

    Solid lesson. Which channel has worked best for you so far?

  110. 1

    Curious how long it took before you saw the first real results?

  111. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  112. 1

    Interesting approach. What was the hardest part to get right?

  113. 1

    Really relatable. How much time do you put into this each week?

  114. 1

    Nice progress. What is the next thing you are focusing on?

  115. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  116. 1

    What made you pick this stack over the alternatives?

  117. 1

    How did you decide this was worth building in the first place?

  118. 1

    Good point. Did you test that with users before committing to it?

  119. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  120. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  121. 1

    Good point. Did you test that with users before committing to it?

  122. 1

    What made you pick this stack over the alternatives?

  123. 1

    How did you decide this was worth building in the first place?

  124. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  125. 1

    How did you decide this was worth building in the first place?

  126. 1

    What made you pick this stack over the alternatives?

  127. 1

    Good point. Did you test that with users before committing to it?

  128. 1

    Good point. Did you test that with users before committing to it?

  129. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  130. 1

    How did you decide this was worth building in the first place?

  131. 1

    What made you pick this stack over the alternatives?

  132. 1

    Interesting. How are you measuring whether it is working?

  133. 1

    How did you decide this was worth building in the first place?

  134. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  135. 1

    This is useful. How are you finding your first users so far?

  136. 1

    Makes sense. Are you planning to charge for it, or keep it free for now?

  137. 1

    This is useful. How are you finding your first users so far?

  138. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  139. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  140. 1

    What made you pick this stack over the alternatives?

  141. 1

    Good point. Did you test that with users before committing to it?

  142. 1

    How did you decide this was worth building in the first place?

  143. 1

    Love this angle. Building Xstream4K right now so this hits close to home — what made you look into it in the first place?

  144. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  145. 1

    What made you pick this stack over the alternatives?

  146. 1

    Good point. Did you test that with users before committing to it?

  147. 1

    How did you decide this was worth building in the first place?

  148. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  149. 1

    How did you decide this was worth building in the first place?

  150. 1

    What made you pick this stack over the alternatives?

  151. 1

    Good point. Did you test that with users before committing to it?

  152. 1

    How did you decide this was worth building in the first place?

  153. 1

    What made you pick this stack over the alternatives?

  154. 1

    Interesting take. Would you still recommend this approach to someone starting today?

  155. 1

    Good point. Did you test that with users before committing to it?

  156. 1

    What made you pick this stack over the alternatives?

  157. 1

    How did you decide this was worth building in the first place?

  158. 1

    Good point. Did you test that with users before committing to it?

  159. 1

    Interesting take. Would you still recommend this approach to someone starting today?