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
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
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)
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
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)
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
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
Skin tone: recolour face-skin + body to SOURCE complexion (sampled from clean parsed skin, lips/eyes excluded, relative luminance gate) — clean on normal faces