UP2You Transforma Fotos Dispersas em um Modelo 3D Humano Sem Ajuste Fino
Se você já tentou criar um avatar 3D a partir de fotos, provavelmente lembra o principal requisito da maioria dos pipelines: iluminação perfeita, pose estática e captura de todos os ângulos em uma única sessão. Um passo para o lado, iluminação diferente ou fundo desfocado — e redes neurais como NeRF ou Gaussian Splatting produzem uma bagunça de artefatos.
Recentemente encontrei um repositório UP2You novo, preparado pelos autores para a conferência ICLR 2026. O projeto resolve esse problema desagradável. Ele recebe um lote comum de fotos da galeria do smartphone, onde uma pessoa foi fotografada em dias diferentes, sob iluminação diferente e de ângulos variados, e rapidamente reconstrói uma malha 3D pronta. Sem ajuste demorado para uma pessoa específica.
Qual é a principal dificuldade dessas reconstruções
Quando alimentamos frames do mundo real (fotos sem restrições) em algoritmos, a matemática dos métodos clássicos de reconstrução 3D falha. Em uma foto o sol brilha da esquerda, em outra — uma lâmpada incandescente de cima. No terceiro frame o fundo está desfocado por bokeh, e a pose mudou completamente.
A maioria das soluções existentes requer ajuste fino dos pesos para uma pessoa específica (otimização por cena). Isso leva de dezenas de minutos a várias horas em uma GPU decente.
Os autores do UP2You focaram na categoria sem ajuste. O modelo é treinado antecipadamente em grandes conjuntos de dados de scans 3D e aprende a generalizar geometria e texturas do corpo, filtrando ruído ambiental e inconsistências de iluminação. Você fornece uma pasta com fotos heterogêneas como entrada, e obtém uma malha em poucos minutos como saída.
Como a stack do projeto é organizada
Por baixo do capô, a arquitetura depende de uma combinação de modelos de difusão generativos e bibliotecas de geometria 3D.
- Segmentação humana. O projeto usa BiRefNet como ferramenta padrão. Este é um modelo separado para corte de alta precisão da silhueta humana de um fundo complexo.
- Fundação generativa. O projeto depende de pesos base do Stable Diffusion 2.1 combinados com adaptadores multi-vista, tomando ideias dos projetos MV-Adapter, PuzzleAvatar e PSHuman. A difusão ajuda a completar áreas invisíveis nas fotos e alinhar a aparência geral do personagem.
- Motor de geometria. Para trabalhar com malhas e representações 3D, os autores usaram Kaolin da NVIDIA e PyTorch3D.
O repositório inclui um script inference_low_gpu.py logo de cara, então você pode rodar a geração mesmo em GPUs de consumidor com quantidade relativamente pequena de VRAM.
Instalação e execução
O pipeline é rigoroso quanto às versões das bibliotecas, então é melhor instalar seguindo estritamente as instruções via Conda.
Primeiro, clone o projeto e crie um ambiente virtual com Python 3.10:
git clone https://github.com/zcai0612/UP2You.git
cd UP2You
conda create -n up2you python=3.10 -y
conda activate up2you
Depois instale o PyTorch 2.4.1 com suporte a CUDA 11.8 e o módulo Kaolin:
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118
pip install kaolin==0.17.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.4.1_cu118.html
pip install -r requirements.txt
Para compilar o PyTorch3D, os autores recomendam pegar um archive pré-compilado:
conda install -y libffi==3.3
wget https://anaconda.org/pytorch3d/pytorch3d/0.7.8/download/linux-64/pytorch3d-0.7.8-py310_cu118_pyt241.tar.bz2
conda install pytorch3d-0.7.8-py310_cu118_pyt241.tar.bz2
Os pesos do modelo são baixados do Hugging Face via CLI:
hf download Co2y/UP2You --local-dir ./src
mv ./src/human_models ./
mv ./src/pretrained_models ./
rm -rf ./src
Quando o ambiente estiver pronto, basta colocar as fotos na pasta examples e chamar a inferência:
python inference_low_gpu.py \
--base_model_path Manojb/stable-diffusion-2-1-base \
--segment_model_name ZhengPeng7/BiRefNet \
--data_dir examples \
--output_dir outputs
Ou simplesmente rode o script bash bash run.sh.
No que prestar atenção
O projeto ainda é recente, tem cerca de 380 estrelas no GitHub e uma licença customizada. A documentação no repositório é concisa, sem uma descrição detalhada do formato dos dados de entrada, mas o código de inferência é fácil de ler.
Se você decidir experimentar, tenha em mente a qualidade da segmentação. Se o BiRefNet separar mal o fundo (por exemplo, a pessoa se funde com a parede ou há outras pessoas na foto), isso afetará diretamente a malha final. É melhor selecionar fotos onde a pessoa esteja visível em corpo inteiro ou pelo menos da cintura para cima.
Para quem é útil
O projeto vale a pena para desenvolvedores de jogos e artistas 3D que precisam de uma malha preliminar rápida de uma pessoa real para further rigging e sculpting. O repositório também será interessante para engenheiros de ML explorando geração de avatares 3D e pipelines de difusão multi-vista. O código ainda não oferece uma替代 completa para fotogrametria de estúdio, mas como uma maneira de montar uma imagem 3D reconhecível a partir de fotos comuns em poucos minutos, funciona muito bem.
Projetos relacionados