Introdução geral
O DiffPortrait360 é um projeto de código aberto que faz parte do artigo CVPR 2025 "DiffPortrait360: Consistent Portrait Diffusion for 360 View Synthesis". Ele gera uma visualização consistente da cabeça em 360 graus a partir de uma única foto de retrato, com suporte a humanos reais, imagens estilizadas e personagens antropomórficos, incluindo até mesmo detalhes como óculos e chapéus. O projeto é baseado em um modelo de difusão (LDM), combinado com o ControlNet e o módulo Dual Appearance para gerar Neural Radiation Fields (NeRFs) de alta qualidade que podem ser usados para renderização de visualização livre em tempo real. Ele é adequado para telepresença imersiva e criação de conteúdo personalizado, e já está ganhando atenção no meio acadêmico e na comunidade de desenvolvedores.
Lista de funções
- Gere uma visão de 360 graus da cabeça a partir de uma única foto de retrato.
- Suporta a geração de seres humanos reais, imagens estilizadas e personagens antropomórficos.
- Use o ControlNet para gerar detalhes posteriores para garantir uma visão realista.
- Produza modelos NeRF de alta qualidade com suporte para renderização de visualização livre.
- A consistência das vistas frontal e traseira é mantida pelo módulo de aparência dupla.
- Código de inferência de código aberto e modelos pré-treinados para os desenvolvedores usarem e modificarem.
- Fornece dados de teste capturados pela Internet com o Pexels e milhares de retratos reais.
Usando a Ajuda
O DiffPortrait360 é uma ferramenta para desenvolvedores e pesquisadores e requer uma certa base técnica. Instruções detalhadas de instalação e uso são fornecidas abaixo.
Processo de instalação
- Preparar hardware e sistemas
Você precisará de uma GPU NVIDIA com suporte a CUDA e um mínimo de 30 GB de RAM (para gerar 32 quadros de vídeo); recomenda-se 80 GB (por exemplo, A6000). O sistema operacional deve ser o Linux.- Verifique a versão do CUDA; recomenda-se a execução da versão 12.2:
nvcc --version
- Verifique a versão do CUDA; recomenda-se a execução da versão 12.2:
- Criando o ambiente
Criando um ambiente Python 3.9 com o Conda:
conda env create -n diffportrait360 python=3.9
conda activate diffportrait360
- Código de clonagem
Faça o download do código do projeto localmente:
git clone https://github.com/FreedomGu/DiffPortrait360.git
cd DiffPortrait360/diffportrait360_release
- Instalação de dependências
Ofertas de projetosrequirements.txt
Execute o seguinte comando para instalá-lo:
pip install -r requirements.txt
- Se você encontrar um conflito de dependências, atualize o pip:
pip install --upgrade pip
- Download do modelo pré-treinado
Faça o download do modelo do Hugging Face:
- entrevistas Links HF.
- download
PANO_HEAD_MODEL
eHead_Back_MODEL
responder cantandoDiff360_MODEL
. - Coloque o modelo no caminho local e
inference.sh
Modifique o caminho correspondente em, por exemplo:PANO_HEAD_MODEL=/path/to/pano_head_model
- Ambiente de verificação
Verifique se a GPU está disponível:
python -c "import torch; print(torch.cuda.is_available())"
exportações True
Indica um ambiente normal.
Operação das principais funções
Gerar visualização de cabeçalho em 360 graus
- Preparação para inserir dados
- Prepare uma foto de retrato frontal (JPEG ou PNG) com uma resolução recomendada de 512x512 ou superior.
- Coloque a foto na seção
input_image/
(se essa pasta não existir, crie-a manualmente). - ganho
dataset.json
(informações sobre a câmera), consulte Guia de corte do PanoHead Processe suas próprias fotos.
- Execução de scripts de inferência
- Vá para o diretório de código:
cd diffportrait360_release/code
- Raciocínio executivo:
bash inference.sh
- A saída será salva na pasta especificada (padrão)
output/
).
- Exibir resultados
- A saída consiste em imagens de visualização de vários ângulos e arquivos de modelo NeRF (
.nerf
(Formato). - Carregue usando uma ferramenta de renderização NeRF, como o NeRFStudio.
.nerf
arquivo, ajuste o ângulo de visualização para ver o efeito de 360 graus.
Otimizando a parte traseira com o ControlNet
- existir
inference.sh
Habilite o módulo de geração de backside nos parâmetros Modificar:
--use_controlnet
- Após a execução, os detalhes da parte traseira ficarão mais realistas em cenas complexas.
Raciocínio de dados personalizados
- Colocar fotos personalizadas em
input_image/
. - gerando
dataset.json
Verifique se as informações da câmera estão corretas. - Em execução:
bash inference.sh
advertência
- A memória insuficiente da GPU pode resultar em falha; recomenda-se o uso de uma placa de vídeo com alta memória.
- O projeto não fornece código de treinamento e só oferece suporte à inferência. Siga as atualizações do GitHub para obter o progresso mais recente.
- Os dados de teste estão disponíveis no Cara de abraço Faça o download com o Pexels e 1000 retratos reais.
cenário do aplicativo
- Teleconferência imersiva
Os usuários podem gerar uma visão de 360 graus da cabeça com uma única foto para aumentar o realismo das reuniões virtuais. - Design de personagens de jogos
Os desenvolvedores geram modelos de cabeça em 3D a partir de desenhos conceituais para acelerar o processo de desenvolvimento de jogos. - Criação de arte digital
Os artistas o utilizam para gerar avatares estilizados para apresentações de NFT ou de mídia social.
QA
- Quais são os requisitos mínimos de hardware?
Requer GPU NVIDIA com suporte a CUDA, mínimo de 30 GB de RAM, 80 GB recomendados. - Ele é compatível com fotos de baixa resolução?
Não recomendado. Pode haver perda de detalhes e os resultados podem se deteriorar quando a resolução de entrada for inferior a 512x512. - É possível gerar um vídeo?
A versão atual gera sequências de visualização estática, que podem ser convertidas em vídeo pela ferramenta, mas não oferece suporte à saída direta de vídeo dinâmico.