Skip to content

Product Design: AI Portrait Apps — Custom Template Management

About 507 wordsAbout 2 min

AI Face SwapOpen SourceSystem Design

2024-10-08

You may have heard of Miaoya Camera and EPIK yearbooks in Western markets — apps that generate artistic portraits via AI face swap.

Our client kicked off an AI face-swap product in May 2023, first on domestic mini programs, then an international App Store build, but consumer-side ops did not take off.

Facing that challenge, I combined competitor analysis with the client’s real ops pain points and redesigned a customizable template system for fast-changing market needs. We also open-sourced what we believe is the industry’s first enterprise AI face-swap portrait solution.

Model definitions

User image: the photo the user uploads

Target image: the image onto which the user’s face should be swapped

Result image: 1 user image + 1 target image = 1 face-swap result

Template: the smallest selectable unit of a generation goal

Two types:

  1. Single template: 1 target image
  2. Collection template:
  • Multiple target images form a sub-template library
  • Users cannot pick a specific target; the system randomly chooses n targets from the sub-library

Template group: a combination of multiple templates

Usually for style separation — e.g. classic swordsman, men’s ID photo, women’s executive portrait

Play strategy: a combination of multiple template groups

For custom plays such as AI blind-box portraits, one-to-one face swap, group photos, etc.

Model abstraction diagramModel abstraction diagram

Prototypes

Prototype 1

Prototype 2

Delivered results

Admin console

Face-swap test
Template management
Template groups
Generation tasks

Mini program

AI portrait blind box

Digital twin

Generation waiting page

AI face swap

Face-swap result — New Year doll

Movie still portrait

Try it

Mini program demo

100k+ HD portrait templates built in: Admin demo

Enterprise AI face-swap solution: Learn more

Changelog

8/27/26, 2:39 PM
View All Changelog
  • 68955-Translate all 14 blog posts to English for Plume i18n.on
  • b7b2c-启用文章变更历史并升级主题配置。on
  • 525f9-补充开源项目卡片,并取消全部博客置顶on
  • edd67-chore: 置顶 AI 写真和终端设计文章,隐藏阶梯降频轮询文章on
  • b19ea-重构: 将文章迁移至 blog 目录,更新配置on
  • 5cafa-upon
  • d1a1c-upon
  • 1963f-upon
  • 2db15-upon
  • a10e0-upon