DiffSwap++: 3D Latent-Controlled Diffusion for Identity-Preserving Face Swapping

Weston Bondurant, Arkaprava Sinha, Hieu Le, Srijan Das, Stephanie Schuckers
11/4/2025
cs.CV

Official code: WestonBond/DiffSwapPP (7 stars, last commit 2025-08-08).

Abstract

Diffusion-based approaches have recently achieved strong results in face swapping, offering improved visual quality over traditional GAN-based methods. However, even state-of-the-art models often suffer from fine-grained artifacts and poor identity preservation, particularly under challenging poses and expressions. A key limitation of existing approaches is their failure to meaningfully leverage 3D facial structure, which is crucial for disentangling identity from pose and expression. In this work, we propose DiffSwap++, a novel diffusion-based face-swapping pipeline that incorporates 3D facial latent features during training. By guiding the generation process with 3D-aware representations, our method enhances geometric consistency and improves the disentanglement of facial identity from appearance attributes. We further design a diffusion architecture that conditions the denoising process on both identity embeddings and facial landmarks, enabling high-fidelity and identity-preserving face swaps. Extensive experiments on CelebA, FFHQ, and CelebV-Text demonstrate that DiffSwap++ outperforms prior methods in preserving source identity while maintaining target pose and expression. Additionally, we introduce a biometric-style evaluation and conduct a user study to further validate the realism and effectiveness of our approach. Code will be made publicly available at https://github.com/WestonBond/DiffSwapPP

View on arXivView PDF

Code Implementations(1)

This is the official GitHub repository of DiffSwap++

70Aug 8, 20251 years ago

Similar Papers

Cite this paper

@article{bondurant2025diffswap,
  title  = {DiffSwap++: 3D Latent-Controlled Diffusion for Identity-Preserving Face Swapping},
  author = {Weston Bondurant and Arkaprava Sinha and Hieu Le and Srijan Das and Stephanie Schuckers},
  year   = {2025},
  eprint = {2511.05575},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2511.05575v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2511.05575.svg)](https://codeofpaper.com/paper/2511.05575)

Discussion