Este repositório contém programas de demonstração para o Anime Head Head de uma única imagem 2: Projeto mais expressivo. Semelhante à versão anterior, possui dois programas:
manual_poser permite manipular a expressão facial e a rotação da cabeça de um caractere de anime, fornecido em uma única imagem, através de uma interface gráfica do usuário. O Poser está disponível em duas formas: um aplicativo GUI padrão e um notebook Jupyter.ifacialmocap_puppeteer permite transferir seu movimento facial, capturado por um aplicativo comercial chamado ifacialMocap, para uma imagem de um caractere 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.
Ambos os programas foram escritos no Python 3. Para executar as GUIs, são necessários os seguintes pacotes de software:
Em particular, criei o ambiente para executar os programas com a Anaconda, usando os seguintes comandos:
> conda create -n talking-head-anime-2-demo python=3.8
> conda activate talking-head-anime-2-demo
> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
> conda install scipy
> pip install wxPython
> conda install matplotlib
NOTA: Você pode achar que as versões específicas do Python (3.8) e CUDA Toolkit (10.2) podem não funcionar para sua configuração específica de computador. Quando isso acontecer, substitua essas versões por aquelas que funcionam com seu hardware. O comando se tornaria:
> conda create -n talking-head-anime-2-demo python=[YOUR-PYTHON-VERSION]
> conda activate talking-head-anime-2-demo
> conda install pytorch torchvision cudatoolkit=[YOUR-CUDA-TOOLKIT-VERSION] -c pytorch
> conda install scipy
> pip install wxPython
> conda install matplotlib
Em geral, a versão mais recente do Python e a versão mais recente do CUDA Toolkit mostrada no site da Pytorch funcionariam.
Para executar a versão Jupyter Notebook do manual_poser , você também precisa:
Isso significa que, além dos comandos acima, você também precisa executar:
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
Por fim, o ifacialmocap_puppeteer requer ifacialmocap, que está disponível na App Store por 980 ienes. Você também precisa instalar o aplicativo de desktop emparelhado no seu PC ou Mac. (Usuários do Linux, me desculpe!) Seu iOS e seu computador também devem usar a mesma rede. (Por exemplo, você pode conectá -los ao mesmo roteador sem fio.)
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-2-demo contendo todos os pacotes Python necessários.
Antes de executar os programas, você precisa baixar os arquivos do modelo deste link Dropbox e descompactá -lo na pasta data do diretório do repositório. No final, a pasta data deve parecer:
+ data
+ illust
- waifu_00.png
- waifu_01.png
- waifu_02.png
- waifu_03.png
- waifu_04.png
- waifu_05.png
- waifu_06.png
- waifu_06_buggy.png
- combiner.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_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 tha2/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-2-demo
Se você ainda não ativou o ambiente.
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, aberto tha2.ipynb . Depois de fazer isso, você deve ver que ele possui apenas uma célula. Execute. Em seguida, role para baixo até o final do documento e você verá a GUI lá.
ifacialmocap_puppeteerPrimeiro, execute ifacialMocap no seu dispositivo iOS. Ele deve mostrar o endereço IP do dispositivo. Anote. Mantenha o aplicativo aberto.

Em seguida, execute o aplicativo Companion Desktop.

Clique em "Abrir configuração avançada >>". O aplicativo deve expandir.

Clique no botão que diz "Maya" no lado direito.

Em seguida, clique em "Blender".

Em seguida, substitua o endereço IP no lado esquerdo pelo endereço IP do seu dispositivo iOS.

Clique em "Conecte -se ao liquidificador".

Abra uma concha. Ative o ambiente. Altere seu diretório de trabalho para o diretório raiz do repositório. Então, corra:
> python tha2/app/ifacialmocap_puppeteer.py
Se os programas estiverem conectados corretamente, você verá que as muitas barras de progresso na parte inferior da janela ifacialmocap_puppeteer devem se mover quando você mover o rosto em frente à câmera frontal do dispositivo iOS.

Se tudo estiver bem, carregue uma imagem de um caractere e ele deve seguir o seu movimento facial.
Para que o modelo funcione bem, a imagem de entrada deve obedecer às seguintes restrições:
Observe, no entanto, que, independentemente do tamanho da imagem de entrada, os programas sempre a redimensionam para 256x256 e sempre produzirão uma imagem de 256x256. Esta é uma limitação intrínseca do sistema.

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. Anime de Head Head de uma única imagem 2: mais expressiva. http://pkhungurn.github.io/talking-wead-anime-2/, 2021. Acesso: AAAA-MM-DD.
Você também pode usar a seguinte entrada Bibtex:
@misc{Khungurn:2021,
author = {Pramook Khungurn},
title = {Talking Head Anime from a Single Image 2: More Expressive},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-2/}},
year = 2021,
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.