FaceSWAP / web_app.py

Commit History

Add scene-harmonisation final pass: match the photo's grain + colour cast over the swapped head so the GAN-smooth face/hair stop looking synthetic/pasted and read as photographed with the scene
4b38f72
Running

aditya-rAj19 commited on

Hair swap: run Laplacian blend BEFORE hair (it was overwriting transferred hair with target's); opaque core + soft edge + recolour residual old hair for a seamless blend, both genders
e8b68af

aditya-rAj19 commited on

Skin tone: single uniform LAB offset over whole skin (no gate/per-region) -> no patches; verified clean across 10 tones light-to-dark, strength 0.92
8478059

aditya-rAj19 commited on

Skin tone: recolour face-skin + body to SOURCE complexion (sampled from clean parsed skin, lips/eyes excluded, relative luminance gate) — clean on normal faces
ddb96a3

aditya-rAj19 commited on

Move skin-tone match to final pipeline step so the Laplacian blend can't undo it (output skin now matches source across whole body); strength 0.9
5b7670e

aditya-rAj19 commited on

Fix close-up selfie detection: pad margin so face-fills-frame photos are found (0 faces -> crude paste was the no-hair/skin bug)
f0e4246

aditya-rAj19 commited on

Fix hair composite: widen parse crop + region clamp so long hair transfers into scene (re-enable hair by default)
1940cda

aditya-rAj19 commited on

Hair swap back to opt-in: in-scene hair composite loses the hair (verified)
d189e1b

aditya-rAj19 commited on

Enable source hair+neck transfer by default (HairFastGAN on GPU, BiSeNet fallback)
8bcbc72

aditya-rAj19 commited on

Tighten skin-tone match 0.75 -> 0.85 (closer to source; glasses transfer already on)
85ce30c

aditya-rAj19 commited on

Default to the clean face swap; make head-swap & hair-swap opt-in
ca509be

aditya-rAj19 commited on

Auto de-roll tilted source faces (eye-line alignment) before swap
8eed89d

aditya-rAj19 commited on

Wire HairFastGAN (GPU) into the swap pipeline for realistic hair transfer
75fd366

aditya-rAj19 commited on

GPU: 1536px working res on CUDA + GPU deploy files (Dockerfile.gpu, requirements-gpu.txt)
136db11

aditya-rAj19 commited on

Swap only the main subject + always run face swap (fixes the mess)
4a2b4cf

aditya-rAj19 commited on

Revert swap-quality regressions: skin 0.92->0.75, glasses face-swap-path only
7d36805

aditya-rAj19 commited on

Custom per-location result messages + unique defaults; remove em-dashes & "4K"
0550cee

aditya-rAj19 commited on

Role permissions + tablet-width 2-col layout
a2ad15e

aditya-rAj19 commited on

Redesign Generate page (centered single-column + header), stronger skin-tone match
25bb132

aditya-rAj19 commited on

Fix core swap: auto-download InsightFace buffalo_l + glasses in both paths
6ce5ccf

aditya-rAj19 commited on

Always sync locations: no-store on fetch + backend, lighter cards
1a2c6fa

aditya-rAj19 commited on

Set the 3 real Control Panel owner emails (Aditya, Nishith, C D Parmar)
d1e0a12

aditya-rAj19 commited on

Control Panel: Google sign-in restricted to a 3-email allowlist
e18e557

aditya-rAj19 commited on

Store target images in Supabase (table + Storage) with local FS fallback
27af323

aditya-rAj19 commited on

New flow: user picks gender + location instead of uploading target
e2d08c4

aditya-rAj19 commited on

Fix NoneType error: exif_transpose can return None in some Pillow versions
50783f8

aditya-rAj19 commited on

Fix dependency conflict, Laplacian blend arg order, pyrightconfig
0c9db2d

aditya-rAj19 commited on

Improve face-neck-hair pipeline per 7-step checklist
4f2819a

aditya-rAj19 commited on

Fix all listed technical challenges across detection, landmarks, segmentation
f4995df

aditya-rAj19 commited on

fix: apply EXIF orientation on upload (explicit, consistent across builds)
c1dcbf3

aditya-rAj19 commited on

feat: head swap — keep the SOURCE's face shape (not just identity)
82f3589

aditya-rAj19 commited on

refactor: don't store swap outputs on the server — download is client-side
33a1e64

aditya-rAj19 commited on

feat: swapped face takes the SOURCE skin tone + previews show the whole face
3854af9

aditya-rAj19 commited on

fix: download works on the HuggingFace site (inline data-URI, not file round-trip)
c198f03

aditya-rAj19 commited on

fix: natural 4K upscale + hair/glasses on by default (toggles hidden)
1d042b5

aditya-rAj19 commited on

fix: fair naturalness (face-region) + make hair/glasses toggles visible
3828d71

aditya-rAj19 commited on

feat: make source-glasses transfer an opt-in toggle (default off)
9091f39

aditya-rAj19 commited on

fix: stop double-GFPGAN making faces look plastic/unnatural
07e234c

aditya-rAj19 commited on

fix: hair paste-back + transfer source glasses onto the swap
6ca2728

aditya-rAj19 commited on

feat: enhance uploads before the pipeline + real alignment metric
1467d95

aditya-rAj19 commited on

fix: match swapped face+neck to TARGET tone, not source (no washed-out face)
033f363

aditya-rAj19 commited on

feat: high-quality hair transfer via hosted HairFastGAN Space (opt-in)
ccb3885

aditya-rAj19 commited on

fix: match face AND neck to source tone (kill the pasted-jaw seam)
f98b2ba

aditya-rAj19 commited on

feat: experimental hair/head swap (opt-in)
1eb6757

aditya-rAj19 commited on

feat: match swapped face complexion to the source
732cb77

aditya-rAj19 commited on

fix: GFPGAN face restoration removes swap blur; simplify pipeline; GPU 4K
ce89434

aditya-rAj19 commited on

fix: sharp output, source skin tone preservation, 4K upscaling pipeline
f1b722f

aditya-rAj19 commited on

fix: remove match_skin_tone (was pushing toward target tone), source skin tone preserved by InsightFace
31a44c6

aditya-rAj19 commited on

feat: restore hair-to-neck blend pipeline on top of InsightFace swap
93e83cc

aditya-rAj19 commited on

perf: strip heavy post-processing pipeline, trust InsightFace output directly
d6300c5

aditya-rAj19 commited on