Skip to content

Build face swap image generator for Android#514

Closed
cliffhop23 wants to merge 3 commits intomicrosoft:mainfrom
cliffhop23:claude/android-face-swap-app-wpUbq
Closed

Build face swap image generator for Android#514
cliffhop23 wants to merge 3 commits intomicrosoft:mainfrom
cliffhop23:claude/android-face-swap-app-wpUbq

Conversation

@cliffhop23
Copy link
Copy Markdown

Complete Android/Kotlin application that swaps faces between two user-selected photos using on-device ML Kit Face Detection:

  • FaceDetectionHelper: coroutine-wrapped ML Kit client (ACCURATE mode, all landmarks + contours enabled)
  • FaceSwapEngine: similarity transform (eye-aligned scale/rotate/ translate), feathered contour/ellipse mask, DST_IN alpha blend
  • ImageUtils: EXIF-correcting bitmap loader with 1280 px scale cap
  • MainActivity: gallery picker, progress UI, MediaStore save
  • Material 3 UI with side-by-side pickers, result card, save/reset

https://claude.ai/code/session_01RwA7nEh9vRhCwdCoDiPRbH

Complete Android/Kotlin application that swaps faces between two
user-selected photos using on-device ML Kit Face Detection:

- FaceDetectionHelper: coroutine-wrapped ML Kit client (ACCURATE
  mode, all landmarks + contours enabled)
- FaceSwapEngine: similarity transform (eye-aligned scale/rotate/
  translate), feathered contour/ellipse mask, DST_IN alpha blend
- ImageUtils: EXIF-correcting bitmap loader with 1280 px scale cap
- MainActivity: gallery picker, progress UI, MediaStore save
- Material 3 UI with side-by-side pickers, result card, save/reset

https://claude.ai/code/session_01RwA7nEh9vRhCwdCoDiPRbH
@github-actions
Copy link
Copy Markdown
Contributor

👋 Thanks for contributing @cliffhop23! We will review the pull request and get back to you soon.

claude added 2 commits April 13, 2026 00:26
- Add comprehensive README.md with setup, architecture diagram,
  dependency table, and usage tips
- Rename project from "FaceSwapApp" to "Android Face Swap App" in
  settings.gradle.kts
- Update app_name to "AI Face Swap" and subtitle to reflect AI usage

https://claude.ai/code/session_01RwA7nEh9vRhCwdCoDiPRbH
- Fix getString() called on Dispatchers.Default (must be on Main thread)
- Remove redundant toInt().toFloat() casts in FaceSwapEngine
- Rename project from "Android Face Swap App" to "AndroidFaceSwapApp"
  (spaces in project names can cause Gradle issues)
- Bump compileSdk/targetSdk 34 → 35 (Android 15)
- Add generated gradlew / gradlew.bat / gradle-wrapper.jar so the app
  builds out-of-the-box with `./gradlew assembleDebug`
- Update .gitignore to track wrapper jar and exclude .gradle/ cache

https://claude.ai/code/session_01RwA7nEh9vRhCwdCoDiPRbH
@koreyspace koreyspace closed this Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants