What's New
Added
NasalMorphometrymodule for computing nasal ratios from Varghaei et al. (2025)FacialSymmetrybilateral symmetry scoring via KDTree-based matchingFaceLandmarks.pixel_coords_at()for getting coordinates at any resolutionFaceLandmarks.rescale()for creating resolution-adjusted copiescollect_instagram_data.pyscript for curating public-domain training pairs- Competitive landscape table in README (9-method comparison)
Fixed
DisplacementModel.load()now raisesValueErroron corrupted/empty.npzfiles instead of returning zero-initialized model (#113)get_face_embedding()guards against near-zero ArcFace embeddings from occluded faces, preventing NaN similarity scores (#129)- CUDA OOM during inference now raises an informative
RuntimeErrorinstead of hanging (#105) pixel_coordsscale after image resize (#109)- Remaining
print()calls migrated tologgingmodule (#288)
Full Changelog: v0.2.2...v0.2.3
What's Changed
- Remove duplicate root-level doc files by @dreamlessx in #247
- Add Mermaid architecture diagram to README by @dreamlessx in #248
- Add social preview image by @dreamlessx in #249
- Add project logo by @dreamlessx in #250
- Add procedure comparison demo grids by @dreamlessx in #251
- Fix PyPI publish: decouple from test-pypi failure by @dreamlessx in #252
- Add pipeline demo images and codecov badge to README by @dreamlessx in #253
- Replace face-containing demo images with abstract visualizations by @dreamlessx in #254
- Replace face-containing demos with abstract visual assets by @dreamlessx in #255
- Restore face demos, polish logo and social preview, fix flaky test by @dreamlessx in #256
- Redesign logo with golden decagon matrix by @dreamlessx in #257
- Fix logo: use PNG for GitHub rendering by @dreamlessx in #258
- Redesign logo: clean theatrical mask by @dreamlessx in #259
- Center mask in logo by @dreamlessx in #260
- Replace logo with canonical face mesh wireframe by @dreamlessx in #261
- Remove unused logo.svg and fix README TOC by @dreamlessx in #262
- Sync docs version to 0.2.2 by @dreamlessx in #264
- Fix critical DDP training bugs by @dreamlessx in #265
- Add brow_lift and mentoplasty to all default procedure lists by @dreamlessx in #268
- Fix ruff format violation breaking CI by @dreamlessx in #266
- Polish repo metadata, fix CI, and enable GitHub Pages by @dreamlessx in #267
- Fix E501 lint violations from procedure list expansion by @dreamlessx in #270
- Align arcface architecture with InsightFace weights by @dreamlessx in #271
- Port critical bug fixes from private repo by @dreamlessx in #272
- Polish README with centered banner and improved layout by @dreamlessx in #273
- Improve CONTRIBUTING.md with clearer setup and PR checklist by @dreamlessx in #274
- test: add unit tests for histogram_match_skin boundary and edge cases by @lshariprasad in #263
- Fix indentation in histogram_match_skin tests by @dreamlessx in #275
- Upgrade CI workflows to Node.js 24 action versions by @dreamlessx in #276
- Add lshariprasad and dagangtj to contributors list by @dreamlessx in #278
- Add Docker GPU support and deployment docs by @dreamlessx in #279
- Port training infrastructure improvements by @dreamlessx in #280
- Improve test coverage for critical code paths by @dreamlessx in #281
- Improve code quality: logging, constants, exceptions by @dreamlessx in #282
- Use weights_only=True for all torch.load calls by @dreamlessx in #284
- Replace remaining print() with logger in run_inference by @dreamlessx in #286
- Port script improvements and clean up error handling by @dreamlessx in #287
- Migrate remaining print() calls to logging module by @dreamlessx in #288
- Add morphometry evaluation and competitive landscape by @dreamlessx in #289
- Validate displacement model on load by @dreamlessx in #290
- Add rescale support for FaceLandmarks by @dreamlessx in #291
- Guard against NaN ArcFace scores on occluded faces by @dreamlessx in #292
- Catch CUDA OOM with informative error message by @dreamlessx in #293
- Release v0.2.3 by @dreamlessx in #294
New Contributors
- @lshariprasad made their first contribution in #263
Full Changelog: v0.2.2...v0.2.3