How zengbohan0217/fadm works
This repository implements face reenactment: a user runs the documented demo to produce a reenacted result. The tree contains DECA face analysis and geometry, two motion-transfer model families (FOMM and Facevid), and a diffusion subsystem, plus training data support. Sampled code confirms selected internal model relationships, but the demo and training entrypoints were not sampled, so their wiring to these subsystems is not asserted. The README documents pretrained checkpoints and demo/training commands, not a detailed runtime sequence.
Main entry points: demo.py Reenactment demo · FLAME.py FLAME geometry · datasets.py Face input prep · deca.py DECA model
Components 22
Product entrypoints
- Reenactment demo
demo.py - Reenacted output
- Training entrypoint
train.py - Clip datasets
datasets.py - Frame datasets
frames_dataset.py
Face analysis
- Face input prep
modules/deca/decalib/datasets/datasets.py - Face detection
modules/deca/decalib/datasets/detectors.py - DECA model
modules/deca/decalib/deca.py - FLAME geometry
modules/deca/decalib/models/FLAME.py - Mesh skinning
modules/deca/decalib/models/lbs.py
Motion transfer
- FOMM keypoints
modules/FOMM/keypoint_detector.py - FOMM motion field
modules/FOMM/dense_motion.py - FOMM generator
modules/FOMM/generator.py - Facevid keypoints
modules/Facevid/keypoint_detector.py - Keypoint transform
modules/Facevid/keypoint_transform.py - Facevid motion field
modules/Facevid/dense_motion.py - Facevid generator
modules/Facevid/generator_facevid.py
Diffusion generation
- Diffusion generator
modules/diffusion/diffusion_generator.py - Condition processing
modules/diffusion/condition_deal.py - Denoising network
modules/diffusion/core_net.py - Gaussian diffusion
modules/diffusion/diffusion.py
Other components
- Demo user
Connections 7
- Demo user → Reenactment demo: runs demo
- Reenactment demo → Reenacted output: produces reenactment
- Facevid generator → Facevid motion field: calls motion network
- DECA model → FLAME geometry: uses geometry model
- FLAME geometry → Mesh skinning: uses skinning
- Face input prep → Face detection: runs face detector
- Gaussian diffusion → Denoising network: calls denoiser