FaceSWAP / core

Commit History

  1. Revert this session's changes back to the last known-good version⁠

    f4e824d
  2. Refuse a head swap when the two heads face different ways, and say so⁠

    f008eb7
  3. Stop the seam blend from erasing the head swap⁠

    0ab4ea6
  4. Fix the empty hair matte, and stop pasting hair when HairFastGAN is unavailable⁠

    74dd70d

  1. Super-resolve the head only, which makes real SR affordable on CPU⁠

    ddb0022
  2. Confine scene grain to the parsed head instead of a box around it⁠

    9e549b6
  3. Fix scene-harmonisation regressions: quality scores, skin-tone reversal, long-hair gap⁠

    27bac33

  1. 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
  2. Hair robustness (100-img batch): lighting match only DARKENS hair (no grey wash on bright bg) + conservative grey-edge trim that won't cut lit/highlighted hair

    1addd52

  1. Fix facial discolour patches: restrict the neck/body skin pass to strictly below the chin (it was recolouring lips + cheek-ring -> patches on the face)

    c5fbe15
  2. Hair edge: soft strand edge for both paths (loosen clamp) + remove portrait grey crown by COLOUR not cropping -> no website grey line AND no hard cut-out, local/HF identical

    5f1915f
  3. Fix website grey hair line: raise scene-fill threshold + clamp matte to confident-hair extent (kills the faint grey crown haze); drop guided filter for local/HF parity (no ximgproc on HF)

    2cf928a
  4. Hair/forehead high-precision edge via guided filter (edge-aware matte) + gentle neck/body skin pass; opencv-contrib-headless on HF for ximgproc

    1544cc7
  5. Hair edge: composite with BiSeNet SOFTMAX hair matte (soft strand alpha) instead of a feathered binary mask -> real wispy hair edges, no cut-paste look, both genders

    6ae45af
  6. Hair edge: smoother feather (0.025) for natural soft edges both genders, no hard cut-off; gentler lighting keeps it grey-free

    324e77e
  7. Hair edge: crisper feather + erode-to-solid + gentler lighting match -> natural hairline, no grey fringe on dark hair

    0d2a722
  8. Hair blend: fill portrait grey padding with the scene before feathering (kills the blurry pasted halo) + tighter edge feather -> natural hair edges

    34e8dd6

  1. 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
  2. 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
  3. 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
  4. Skin tone: leave face untouched (swap already source-toned), only lift neck/arms/hands to match face — fixes blue/blotchy face patch

    e711814
  5. Skin tone: drive face+neck+body to SOURCE complexion (per-region delta), with luminance gate so beard/brows don't go blue

    e3164c8
  6. Skin tone: blend across whole body (face+neck+arms+hands) via adaptive chroma mask, clothes/background excluded

    9d2db57
  7. 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
  8. Fix hair composite: widen parse crop + region clamp so long hair transfers into scene (re-enable hair by default)

    1940cda

  1. Auto de-roll tilted source faces (eye-line alignment) before swap

    8eed89d
  2. Enable GPU for InsightFace: auto-add CUDA12 + cuDNN9 DLL dirs on Windows⁠

    e323c6f
  3. Swap only the main subject + always run face swap (fixes the mess)⁠

    4a2b4cf
  4. Fix: list_locations resilient when message column missing (was showing 0)⁠

    83651d7

  1. Custom per-location result messages + unique defaults; remove em-dashes & "4K"⁠

    0550cee
  2. Fix core swap: auto-download InsightFace buffalo_l + glasses in both paths⁠

    6ce5ccf
  3. Add Supabase migration script + explicit sort_order; gitignore Location images⁠

    8668f1e
  4. Store target images in Supabase (table + Storage) with local FS fallback⁠

    27af323

  1. Improve face-neck-hair pipeline per 7-step checklist⁠

    4f2819a
  2. Fix all listed technical challenges across detection, landmarks, segmentation⁠

    f4995df

  1. feat: head swap — keep the SOURCE's face shape (not just identity)⁠

    82f3589
  2. fix: natural 4K upscale + hair/glasses on by default (toggles hidden)⁠

    1d042b5

  1. fix: glasses look natural — eye-locked alignment + see-through lenses⁠

    d40313c
  2. fix: hair paste-back + transfer source glasses onto the swap⁠

    6ca2728
  3. feat: local GPU HairFastGAN hair transfer (auto-selects local, else HF Space)⁠

    500d3c3

  1. feat: high-quality hair transfer via hosted HairFastGAN Space (opt-in)⁠

    ccb3885
  2. fix: match face AND neck to source tone (kill the pasted-jaw seam)⁠

    f98b2ba
  3. feat: experimental hair/head swap (opt-in)⁠

    1eb6757
  4. feat: match swapped face complexion to the source⁠

    732cb77
  5. fix: full-identity swap — stop pasting target eyes back over every swap⁠

    e61f9c7
  6. feat: enable GFPGAN on HF CPU deploy; CPU-aware upscaling⁠

    07d6508
  7. fix: GFPGAN face restoration removes swap blur; simplify pipeline; GPU 4K⁠

    ce89434
  8. test: fix false-positive pipeline test + cover super-res and face-mask paths⁠

    f3c5fbe
  9. fix: sharp output, source skin tone preservation, 4K upscaling pipeline⁠

    f1b722f
  10. feat: restore glasses/eye region from target after swap, preserve spectacles cleanly

    00273de