Câmera ao vivo

Face swap em tempo real no PC local: GPU, FPS, webcam e privacidade

Troca de rosto ao vivo é um orçamento de tempo fixo por quadro. Entender qual etapa gasta esse orçamento separa uma pré-visualização usável de uma sequência travada.

  • Atualizado em 25 de julho de 2026
  • 11 min de leitura

Resposta rápida: O face swap em tempo real roda toda a cadeia de detecção, troca e composição em cada quadro da webcam, na sua própria máquina. A taxa de quadros é definida pela etapa mais lenta, a aceleração por hardware é o que torna isso viável, e o aprimoramento facial costuma ser o ajuste que mais custa FPS.

Uma exportação de vídeo pode demorar o quanto precisar. Uma pré-visualização ao vivo, não. A 30 FPS você tem cerca de 33 milissegundos por quadro para capturar, encontrar rostos, trocá-los, repará-los se for o caso e mostrar o resultado. Tudo abaixo decorre dessa restrição.

Antes de entrar ao vivo

Use o seu próprio rosto ou um retrato para o qual você tenha autorização clara, e deixe evidente que a imagem da câmera está alterada. Não use troca de rosto ao vivo para falsidade ideológica, fraude, burlar verificação de identidade ou assédio. Veja a política de uso responsável.

1. O que acontece com cada quadro da webcam

O caminho ao vivo é um laço, e cada etapa tem um custo:

  • Captura. Um quadro é puxado da câmera na resolução e taxa solicitadas.
  • Detecção e análise. Os rostos do quadro são localizados e descritos, incluindo o embedding que decide quem é quem.
  • Atribuição. Cada rosto detectado é casado com um rosto de origem: uma origem padrão para todos, ou a correspondência mais próxima entre as identidades mapeadas.
  • Troca. O modelo roda uma vez por par origem-destino e o resultado é composto no quadro.
  • Reparo opcional. Se o aprimoramento estiver ativo e o runtime permitir ao vivo, roda uma passagem por rosto.
  • Exibição. O quadro final é codificado e enviado à janela do aplicativo por uma conexão loopback local.

Duas consequências imediatas. Primeira, a cadeia é por rosto e não por quadro: duas pessoas em cena praticamente dobram o trabalho. Segunda, a taxa que você vê é definida pela etapa mais lenta, então caçar uma câmera mais rápida não adianta se o gargalo é o aprimorador.

2. Captura: o que o aplicativo pede e o que recebe

O Deep Face Cam abre a câmera mirando 960×540 a 60 FPS com MJPG e depois lê o que o dispositivo realmente entregou. O pedido é deliberado: 540p é uma resolução de trabalho razoável ao vivo, e pedir MJPG na abertura importa no Windows, onde uma webcam presa a um formato sem compressão pode ficar limitada por banda a poucos quadros por segundo.

No Windows o aplicativo tenta primeiro DirectShow, depois Media Foundation e então um fallback genérico, porque esses backends enumeram câmeras em ordens diferentes e nem todo dispositivo funciona igual com cada um. No macOS ele usa AVFoundation com fallback genérico.

O aplicativo também mede a taxa real empiricamente em vez de confiar no driver, porque o valor informado não é confiável no DirectShow: uma câmera entregando 60 FPS costuma declarar 30. Para ver o número ao vivo, ative Show FPS no painel de opções.

3. Execution providers: o ajuste que decide o resto

A inferência passa pelo ONNX Runtime, e o execution provider escolhido é o maior fator isolado do desempenho ao vivo. O backend detecta o que está disponível na inicialização e prefere, nesta ordem:

ProvedorPlataformaObservações
CUDAWindows, GPUs NVIDIAMelhor desempenho em NVIDIA, mas sensível à compatibilidade de driver, CUDA e cuDNN.
ROCmStack de computação AMDPreferido à frente de CoreML e DirectML quando presente.
CoreMLmacOS, Apple siliconUsado no lugar do PyTorch MPS; pode se dividir entre CPU, GPU e Neural Engine.
DirectMLWindowsAmpla compatibilidade com GPUs NVIDIA, AMD e Intel.
CPUTodasCompatibilidade máxima, velocidade mínima. Viável para exportar, duro ao vivo.

O Windows é empacotado como builds separadas de CPU, DirectML e CUDA a partir de conjuntos de dependências diferentes, então escolher o instalador certo faz parte dessa decisão e não é algo que se troca depois. No Apple silicon o aplicativo também grava arquivos de cache CoreML no seu diretório de modelos, por isso o primeiro uso de um modelo pode ser mais lento que os seguintes.

Vale lembrar: o reparo facial ao vivo é habilitado quando o runtime usa CUDA ou DirectML. Em outros provedores a cadeia ao vivo roda só o swapper, enquanto exportações de imagem e vídeo continuam podendo usar qualquer aprimorador. Detalhes no guia GFPGAN vs GPEN.

4. Para onde vão seus FPS

Quando a pré-visualização está lenta, percorra esta lista em ordem. Ela vai do que mais custa tempo em relação à facilidade de mudar.

FatorImpactoPrimeiro teste
Aprimoramento facialO maior. Uma restauração completa por rosto, por quadro.Desligue ou desça para o modelo 256.
Número de rostosAlto. Troca e reparo rodam por rosto.Enquadre para que só os rostos necessários apareçam.
Execution providerAlto. Ao vivo só com CPU é o caso mais duro.Instale a build que corresponde à sua GPU.
Resolução de capturaMédio. Afeta o custo de detecção e composição.Mantenha a resolução ao vivo moderada; não é a exportação.
Formato da câmeraMédio e muitas vezes invisível. Formato sem compressão pode estrangular o próprio dispositivo.Confirme a taxa real com Show FPS.
Outra carga de GPUVaria. Jogos, encoders e navegadores disputam o mesmo dispositivo.Feche aplicativos pesados de GPU durante a sessão.
Limites térmicosGradual. Notebooks reduzem clock após alguns minutos.Avalie FPS sustentado, não os primeiros trinta segundos.

Separe taxa de quadros de latência. A pré-visualização pode rodar numa taxa confortável e ainda assim parecer atrasada, porque cada quadro passa por várias etapas e um buffer. Se o que incomoda é o atraso, reduza trabalho por quadro, não só resolução.

Orçamento por quadro, resolução de captura e o que anotar

Trabalho ao vivo é aritmética antes de ser ajuste fino. O orçamento por quadro é fixado pela taxa alvo, e captura, detecção, atribuição, troca, reparo opcional e exibição precisam caber nele.

Taxa alvoTempo por quadroSobra para detectar, trocar e reparar
15 FPS66.7 ms≈ 61 ms
24 FPS41.7 ms≈ 37 ms
30 FPS33.3 ms≈ 28 ms
60 FPS16.7 ms≈ 12 ms

A terceira coluna assume cerca de 5 ms para captura e exibição. É uma suposição, não uma medição na sua máquina — trate como o formato do problema, não como especificação.

Resolução de capturaPixels por quadroEm relação ao padrão 960 × 540
640 × 360230,4000.44×
960 × 540518,4001.00×
1280 × 720921,6001.78×
1920 × 10802,073,6004.00×

Detecção e composição crescem com os pixels do quadro. Troca e reparo crescem com o número de rostos. Por isso aumentar a resolução e incluir uma segunda pessoa custam de formas diferentes.

O que anotar ao medir

CampoPor que importa
Sistema operacional e variante de buildCPU, DirectML e CUDA são builds separadas no Windows; macOS varia por arquitetura.
Execution providerO maior fator isolado, e também define se há reparo ao vivo.
GPU e versão do driverO desempenho CUDA é sensível à compatibilidade de driver, CUDA e cuDNN.
Resolução de capturaDefine o custo de detecção e composição por quadro.
FPS informado vs medidoNo DirectShow, uma câmera que entrega 60 costuma declarar 30.
Rostos no quadroTroca e reparo são por rosto, então isso multiplica o trabalho.
Ajuste do aprimoradorOff / GPEN-256 / GPEN-512 / GFPGAN mudam o custo por rosto por design.
FPS sustentado após 5 minutosNotebooks reduzem clock; os primeiros trinta segundos não são o número real.

5. Conseguir um resultado ao vivo que se sustente

Ao vivo perdoa menos que um render, porque não dá para voltar e consertar um quadro. A maior parte da qualidade vem do que você prepara antes:

  • Retrato de origem. Nítido, com luz uniforme, próximo do frontal. As mesmas regras do vídeo, e aqui pesam mais.
  • Iluminação. Luz frontal uniforme ganha de uma janela clara às suas costas. Contraluz é a causa mais comum de um swap ao vivo que fica quebrando.
  • Distância e enquadramento. Rosto pequeno demais dá menos informação à detecção.
  • Movimento. Viradas rápidas e mãos cruzando o rosto são os quadros que falham; teste isso de propósito antes de confiar no setup.
  • Espelhamento. A pré-visualização pode ser invertida na horizontal, o que muda como seus movimentos parecem, mas não a geometria do resultado.

Com mais de uma pessoa na câmera, a atribuição ao vivo é uma decisão de similaridade contínua e não um mapeamento pré-analisado, então é intrinsecamente menos estável que um vídeo mapeado. O guia de vários rostos explica a diferença.

6. O que é uma pré-visualização local — e o que não é

Vale dizer com todas as letras, porque é a suposição errada mais comum sobre ferramentas de troca de rosto ao vivo. O Deep Face Cam exibe o resultado na própria janela de pré-visualização. Ele não registra um dispositivo de webcam virtual no nível do sistema, então Zoom, Discord, OBS e navegadores não o veem na lista de câmeras.

Se você precisa da saída dentro de outro aplicativo, esse roteamento teria de vir de um software separado de captura de tela ou janela, com todas as ressalvas de qualidade, latência e plataforma. Não presuma que funciona antes de testar essa cadeia específica — e lembre que apresentar uma imagem de câmera alterada como sua aparência real em uma reunião ou verificação é exatamente o uso proibido pela política de uso responsável.

7. Privacidade: o que fica local e o que não fica

“Local” e “offline” não são a mesma afirmação, e a diferença importa mais com uma câmera ao vivo.

  • O processamento principal é no dispositivo. Quadros da câmera, troca e pré-visualização são tratados por um backend rodando na sua máquina.
  • A pré-visualização trafega por loopback. O backend embutido serve os quadros processados à janela do aplicativo por uma conexão local em 127.0.0.1 — um canal interno do seu computador, não um upload.
  • Modelos são baixados uma vez, com confirmação. Arquivos grandes não vêm no repositório; são baixados para o seu diretório após você confirmar e verificados contra um checksum publicado.
  • Ainda existe uso de rede. Instaladores, downloads de modelos, links de documentação e verificações de atualização usam a rede.
  • Arquivos gerados ficam em disco. Modelos, saídas, temporários e configurações ficam no diretório de dados do aplicativo por usuário.

A recomendação honesta é a mesma para qualquer ferramenta que faça essa afirmação: teste a build exata que vai usar, complete o primeiro download de modelos e observe o comportamento antes de apontá-la para algo sensível. Veja as notas de privacidade.

Solução de problemas ao vivo

SintomaCausa provávelO que verificar
A câmera não abreOutro aplicativo segura o dispositivo, ou incompatibilidade de backend.Feche outros apps de câmera; no Windows o aplicativo tenta DirectShow, Media Foundation e um fallback genérico.
Taxa de captura muito baixaA câmera negociou um formato sem compressão.Ative Show FPS e compare com a taxa nominal da câmera.
Aprimorador indisponível ao vivoO runtime não é CUDA nem DirectML.Verifique o provedor; o aprimoramento continua funcionando ao exportar.
O rosto some ao virarA detecção perde um rosto muito fora do frontal.Melhore luz e enquadramento; teste a amplitude de movimento antes.
Rosto errado na pessoa erradaA atribuição ao vivo é por similaridade a cada quadro.Reduza pessoas em cena ou use o fluxo de arquivo.
FPS cai após alguns minutosLimitação térmica.Meça FPS sustentado, não os primeiros segundos.
A primeira execução é muito mais lentaCarregamento de modelos e, no Apple silicon, geração de cache CoreML.Aqueça uma vez e depois meça.

Perguntas frequentes

Preciso de GPU para face swap em tempo real?

O caminho por CPU roda a cadeia, mas o ao vivo é onde a aceleração mais importa, porque cada quadro tem orçamento fixo. No Windows existem builds separadas de CPU, DirectML e CUDA por isso; no Apple silicon o aplicativo usa o provedor CoreML.

Dá para usar como webcam no Zoom, Discord ou OBS?

Não diretamente. O aplicativo mostra o resultado na própria janela e não registra um dispositivo de câmera virtual do sistema, então outros aplicativos não o listam como entrada de câmera.

Por que meu FPS ao vivo é menor que o da câmera?

Porque a captura é só a primeira etapa. Detecção, atribuição, troca, reparo opcional e exibição precisam caber no mesmo orçamento, e a etapa mais lenta dita o ritmo.

Que resolução usar ao vivo?

Menor que a de exportação. O aplicativo mira 960×540 na captura por padrão, um ponto de trabalho razoável; não há ganho em empurrar 4K por uma cadeia em tempo real.

A troca de rosto ao vivo envia minha imagem para algum lugar?

O processamento principal roda na sua máquina e a pré-visualização trafega por conexão loopback local. A rede ainda é usada para downloads de modelos confirmados e links, então verifique o comportamento da build instalada.

Duas pessoas podem usar ao mesmo tempo?

Podem, mas a atribuição é decidida por similaridade a cada quadro e não a partir de um mapa pré-analisado, então é menos estável que um render mapeado. Trate como pré-visualização.

Configure o ao vivo uma vez e depois meça

Escolha a build que combina com sua GPU, ative Show FPS e teste com o aprimorador desligado antes de decidir o que sua máquina sustenta.

Guias relacionados