Este repositório contém programas de demonstração para o Anime da Chefe de Talking (?) De uma única imagem 3: agora o projeto também. Como o nome indica, o projeto permite animar caracteres de anime e você só precisa de uma única imagem desse personagem para fazê -lo. Existem dois programas de demonstração:
manual_poser permite manipular a expressão facial de um personagem, a rotação da cabeça, a rotação do corpo e a expansão do peito devido à respiração através de uma interface gráfica do usuário.ifacialmocap_puppeteer permite transferir seu movimento facial para um personagem de anime. Se você não possui o hardware necessário (discutido abaixo) ou não deseja baixar o código e configurar um ambiente para executá -lo, clique para tentar executar o Poser manual no Google Colab.
Ambos os programas exigem que uma GPU NVIDIA recente e poderosa seja executada. Eu poderia executá -los pessoalmente em boa velocidade com o Nvidia Titan RTX. No entanto, acho que as GPUs de jogos de ponta recentes, como o RTX 2080, o RTX 3080, ou melhor, o fariam da mesma forma.
O ifacialmocap_puppeteer requer um dispositivo iOS capaz de calcular parâmetros de forma de mistura de um feed de vídeo. Isso significa que o dispositivo deve ser capaz de executar o iOS 11.0 ou superior e deve ter uma câmera frontal de ponta. (Consulte esta página para obter mais informações.) Em outras palavras, se você tiver o iPhone X ou algo melhor, você deve estar tudo definido. Pessoalmente, usei um iPhone 12 mini.
Atualize o driver do dispositivo da GPU e instale o kit de ferramentas CUDA que é compatível com sua GPU e é mais recente que a versão que você estará instalando na próxima subseção.
manual_poser e ifacialmocap_puppeteer estão disponíveis como aplicativos de desktop. Para executá -los, você precisa configurar um ambiente para executar programas escritos no idioma Python. O ambiente precisa ter os seguintes pacotes de software:
Uma maneira de fazer isso é instalar a Anaconda e executar os seguintes comandos em seu shell:
> conda create -n talking-head-anime-3-demo python=3.8
> conda activate talking-head-anime-3-demo
> conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
> conda install scipy
> pip install wxpython
> conda install matplotlib
Em junho de 2006, você não pode usar o WXPYTHON com o Python 3.10 no Windows. Como resultado, não use o Python 3.10 até que este bug seja corrigido. Isso significa que você não deve definir python=3.10 no primeiro comando conda na listagem acima.
O ambiente criado pelos comandos acima oferece a você Python versão 3.8 e uma instalação de pytorch que foi compilada com o CUDA Toolkit versão 11.3. Essa configuração específica pode não funcionar no futuro, porque você pode achar que esse pacote Pytorch específico não funciona com seu novo computador. A solução é::

O manual_poser também está disponível como um Jupyter Nootbook. Para executá -lo em suas máquinas locais, você também precisa instalar:
Em alguns casos, você também precisará ativar o widgetsnbextension . Então, corra
> jupyter nbextension enable --py widgetsnbextension
Depois de instalar os dois pacotes acima. Usando o Anaconda, consegui fazer o acima com os seguintes comandos:
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
Você também pode usar o Anaconda para baixar e instalar todos os pacotes Python em um comando. Abra sua concha, altere o diretório para onde você clonou o repositório e corra:
> conda env create -f environment.yml
Isso criará um ambiente chamado talking-head-anime-3-demo contendo todos os pacotes Python necessários.
Se você deseja usar ifacialmocap_puppeteer , também precisará um software iOS chamado ifacialMocap (uma compra de 980 ienes na App Store). Você não precisa baixar o aplicativo pareado desta vez. Seu iOS e seu computador devem usar a mesma rede. Por exemplo, você pode conectá -los ao mesmo roteador sem fio.
Antes de executar os programas, você precisa baixar os arquivos modelo deste link Dropbox e descompactá -lo na pasta data/models no diretório raiz do repositório. No final, a pasta de dados deve parecer:
+ data
+ images
- crypko_00.png
- crypko_01.png
:
- crypko_07.png
- lambda_00.png
- lambda_01.png
+ models
+ separable_float
- editor.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_body_rotator.pt
+ separable_half
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_float
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_half
- editor.pt
:
- two_algo_face_body_rotator.pt
Os arquivos do modelo são distribuídos com a Licença Internacional Creative Commons Attribution 4.0, o que significa que você pode usá -los para fins comerciais. No entanto, se você os distribui, deve, entre outras coisas, dizer que eu sou o criador.
manual_poserAbra uma concha. Altere seu diretório de trabalho para o diretório raiz do repositório. Então, corra:
> python tha3/app/manual_poser.py
Observe que, antes de executar o comando acima, talvez seja necessário ativar o ambiente Python que contém os pacotes necessários. Se você criou um ambiente usando o anaconda como foi discutido acima, você precisa executar
> conda activate talking-head-anime-3-demo
Se você ainda não ativou o ambiente.
Conforme observado na redação do projeto, criei 4 variantes do sistema de rede neural. Eles são chamados standard_float , separable_float , standard_half e separable_half . Todos eles têm as mesmas funcionalidades, mas diferem em seus tamanhos, uso de RAM, velocidade e precisão. Você pode especificar qual variante o programa manual_poser usa através da opção --model Command Line.
> python tha3/app/manual_poser --model <variant_name>
onde <variant_name> deve ser um dos 4 nomes acima. Se nenhuma variante for especificada, a variante standard_float (que é a maior, mais lenta e mais precisa) será usada.
manual_poser JupyterAbra uma concha. Ative o ambiente. Altere seu diretório de trabalho para o diretório raiz do repositório. Então, corra:
> jupyter notebook
Uma janela do navegador deve abrir. Nele, open manual_poser.ipynb . Depois de fazer isso, você deve ver que ele possui duas células. Execute as duas células em ordem. Em seguida, role para baixo até o final do documento e você verá a GUI lá.
Você pode escolher a variante do sistema a ser usada alterando a variável MODEL_NAME na primeira célula. Se o fizer, precisará executar novamente as duas células para que a variante seja carregada e a GUI seja atualizada corretamente para usá -la.
ifacialmocap_poserPrimeiro, execute ifacialMocap no seu dispositivo iOS. Ele deve mostrar o endereço IP do dispositivo. Anote. Mantenha o aplicativo aberto.

Abra uma concha. Ative o ambiente Python. Altere seu diretório de trabalho para o diretório raiz do repositório. Então, corra:
> python tha3/app/ifacialmocap_puppeteer.py
Você verá uma caixa de texto com a etiqueta "Capture Disposition IP". Escreva o endereço IP do dispositivo iOS que você anotou lá.

Clique na "Iniciar captura!" botão à direita.

Se os programas estiverem conectados corretamente, você verá os números na parte inferior da janela alterar quando você mover a cabeça.

Agora, você pode carregar uma imagem de um personagem e deve seguir seu movimento facial.
Para que o sistema funcione bem, a imagem de entrada deve obedecer às seguintes restrições:

Consulte a redação do projeto para obter mais detalhes sobre a imagem de entrada.
Se o seu trabalho acadêmico se beneficiar do código neste repositório, cite a página da web do projeto da seguinte forma:
Pramook Khungurn. Cabeça de falar (?) Anime de uma única imagem 3: agora o corpo também. http://pkhungurn.github.io/talking-wead-anime-3/, 2022. Acesso: AAAAA-MM-DD.
Você também pode usar a seguinte entrada Bibtex:
@misc{Khungurn:2022,
author = {Pramook Khungurn},
title = {Talking Head(?) Anime from a Single Image 3: Now the Body Too},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-3/}},
year = 2022,
note = {Accessed: YYYY-MM-DD},
}
Embora o autor seja um funcionário do Google Japan, este software não é o produto do Google e não é suportado pelo Google.
Os direitos autorais deste software me pertencem, pois eu o solicitei usando o processo IARC. No entanto, o Google pode reivindicar os direitos à propriedade intelectual desta invenção.
O código é liberado sob a licença do MIT. O modelo é lançado sob a licença Internacional da Creative Commons Attribution 4.0. Consulte o arquivo readme.md no diretório data/images para obter as licenças para as imagens lá.