cerebro-vip INEMA.CLUB
inícioINEMA.AVATARES

Registro completo do processo de instalação, configuração e depuração…

INEMA.AVATARES · 2025-09-01 · ~6 min · ver no Telegram ↗

INEMA

Checklist tudo o que você fez até agora para instalar e consertar o MultiTalk, passo a passo, para você ter guardado.


Passos de instalação e correção do MultiTalk

1. Ambiente

  • Criou e ativou o ambiente Conda:

conda create -n meigen310 python=3.10 conda activate meigen310 * Instalou dependências com pip install -r requirements.txt.

2. Diretórios principais

  • Código-fonte: C:\Users\neima\MultiTalk\ Pesos originais (Wan): C:\Users\neima\MultiTalk\weights\Wan2.1-I2V-14B-480P\ Pesos quantizados (MultiTalk): C:\Users\neima\MultiTalk\weights\MeiGen-MultiTalk\quant_models\ Áudio (wav2vec): C:\Users\neima\MultiTalk\weights\chinese-wav2vec2-base\ Exemplos de entrada: C:\Users\neima\MultiTalk\examples\single_example_tts_1.json Saída de vídeos: C:\Users\neima\MultiTalk\outputs\ Log de execução: C:\Users\neima\MultiTalk\run.log

3. Ajustes no código

  • attention.py (C:\Users\neima\MultiTalk\wan\modules\attention.py):

  • Removeu referências quebradas ao flash_attn.

  • Substituiu a função flash_attentionpara usar torch.nn.functional.scaled_dot_product_attention(SDPA).
  • Corrigiu sintaxes que apareciam como return outdef...e return outclass...(erros de substituição).
  • Garantiu que as flags FLASH_ATTN_*_AVAILABLEestivessem como False.

  • Adicionou/corrigiu a classe SingleStreamMutiAttentionquando ausente (stub mínimo para evitar ImportError).

4. Testes de compilação

  • Testou se o arquivo não tinha mais erros de sintaxe:

``` python -m compileall C:\Users\neima\MultiTalk\wan\modules\attention.py

```* Conferiu se a classe estava presente:

```Select-String -Path C:\Users\neima\MultiTalk\wan\modules\attention.py -Pattern "class SingleStreamMutiAttention"

```### 5. Variáveis de ambiente

Definiu variáveis para evitar fallback em compiladores (que travavam ou usavam só CPU):

$en```v:TORCHDYNAMO_DISABLE = "1" $env:TORCH_COMPILE_DISABLE = "1" $env:TOKENIZERS_PARALLELISM = "false" $env:TRANSFORMERS_ATTENTION_IMPLEMENTATION = "eager" $env:HF_ATTENTION_BACKEND = "eager" $env:PYTORCH_CUDA_ALLOC_CONF = "max_split_size_mb:64" $env:WAN_DISABLE_REF_ATTENTION = "1"

```## 6. Testes básicos de GPU

  • Validou se PyTorch estava reconhecendo CUDA:

    @'``` import torch print("torch:", torch.version) print("cuda disponível:", torch.cuda.is_available()) if torch.cuda.is_available(): print("GPU:", torch.cuda.get_device_name(0)) '@ | python -

  • T```estou operações simples (matmul e SDPA) para confirmar uso da GPU:

    tor```ch.randn(..., device="cuda") F.scaled_dot_product_attention(q,k,v)

``` 7. Execução do MultiTalk

  • Preparou entrada e saída:

    $pat```h = (Resolve-Path .\examples\single_example_tts_1.json).Path $OUT = "C:\Users\neima\MultiTalk\outputs\teste_gpu.mp4"

  • Rod```ou o script:

    pytho``n -u .\generate_multitalk.py --size multitalk-480 --mode clip --frame_num 5 --motion_frame 5 --sample_steps 2 --quant int8 --offload_model False --num_persistent_param_in_dit 0 --t5_cpu --ckpt_dir .\weights\Wan2.1-I2V-14B-480P --quant_dir .\weights\MeiGen-MultiTalk --wav2vec_dir .\weights\chinese-wav2vec2-base --audio_mode tts --input_json "$path" --save_file "$OUT" 2>&1 | Tee-Object .\run.log

8```. Erros enfrentados e correções

  • SyntaxError no attention.py → corrigido substituindo função de forma limpa.
  • ImportError (SingleStreamMutiAttention) → adicionada classe stub.
  • RuntimeError shapes (4704 vs 257) → relacionado a layouts de atenção, mitigado com WAN_DISA`BLE_REF_ATTENTION.
  • CUDAout** of memory → contr**olado reduzindo frame_num e sample_steps.
  • Fallback** CPU (GPU 1%) → resol**vido desativando torch.compile/dynamo via var`iáveis de ambiente.

Aqui vai um resumo organizado só das correções e problemas que você encontrou, em ordem cronológica:


Problemas que você enfrentou

  1. Erro de import no início

ModuleNotFoundError: No module named 'transformers.utils.torch_utils'

→ Aconteceu porque a versão do transformersestava desatualizada.

  1. Erro de identação em wav2vec2.py

    ``` IndentationError: expected an indented block after 'try' statement

   → Código original estava mal formatado (linha 23 sem bloco).

3. Erro com Wav2Vec2Model

     ``` AttributeError: type object 'Wav2Vec2Model' has no attribute 'from_pretrained'


```   → Usava a classe errada / implementação sem suporte a fro`m_pretrained.

`4. Err**o de atributo inexistente

 **     ```AttributeError: 'Wav2Vec2Model' object has no attribute 'feature_extractor'


 ```  → A API mudou, e o código do projeto tentava acessar feat`ure_extractor que` não existe mais.

5. Erro com embeddings

      A```ttributeError: 'Tensor' object has no attribute 'hidden_states'
   TypeError: object of type 'types.SimpleNamespace' has no len()


  ``` → Resultado do modelo não estava no formato esperado.

6. Erro **ao carregar pesos quantizados

   **   Ty```peError: expected str, bytes or os.PathLike object, not NoneType


   ```→ Faltava passar o argumento --quan`t_dir.

7. `Erro de caminho de áudio e imagem

      Res```olve-Path : Não é possível localizar o caminho 'PATH_DA_IMAGEM_AQUI'


   →``` Arquivo JSON de exemplo tinha placeholders (`PATH_DA_IMAGEM_AQUI`) que precisavam ser substituídos.

8. Erro ao usar TTS Kokoro

      File```NotFoundError: No such file or directory: 'weights/Kokoro-82M\\config.json'


   → ```O modelo Kokoro não estava baixado corretamente (faltava `config.json`).

9. Erro de BOM no JSON

      JSOND```ecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig)


   → O``` arquivo single_ex`ample_tts_1.json tinha BO`M (assinatura UTF-8) e o Python não conseguia parsear.

10. Erro de vírgula no JSON

        JSOND```ecodeError: Expecting ',' delimiter: line 6 column 33


    → O``` JSON estava mal formatado (faltava vírgula entre campos).

11. Erro de chave ausente

        KeyErr```or: 'cond_image'


    → O ```script esperava cond_image,` mas no JS`ON de TTS só havia tts_audio.
`
---

## `Correções aplicadas

* Atualizado transformer`s para corri`gir import.
* Ajustada identação em wav2vec2.py`.
* Corrigi`do uso de Wav2Vec2Mod`el para não c`hamar métodos inexistentes.
* Adaptado código para não acessar feature_ext`ractor inexistent`e.
* Ajustado tratamento do retorno do modelo (`Tensor` vs `hidden_states`).
* Incluído parâmetro --quant_dir` .\weights\MeiGen-MultiTalk.
* Substit`uídos caminhos PATH_DA_IMA`GEM_AQUI e PATH_DO_`AUD`IO_AQUI por arquiv`os reais.
* Baixado corretamente o modelo hexgrad/Kok`oro-82M do Hugging` Face com config.json`.
* Removid`o BOM dos arquivos JSON com PowerShell (`UTF8Encoding($false)`).
* Corrigida sintaxe do JSON (vírgula faltante).
* Ajustado JSON para incluir sempre cond_image `mesmo em c`asos de TTS.

---

Vou resumir em duas partes:

1. **Passo a passo de instalação e configuração**
2. **Dicas e ajustes que corrigimos durante os testes**

Assim você tem um guia compacto para continuar depois.

---

## 1. Passo a passo de instalação

1. **Criar ambiente Conda**

   ```   conda create -n meigen310 python=3.10 -y
   conda activate meigen310
   ```

2. **Clonar e entrar no projeto**

   ```   git clone https://github.com/MeiGen-AI/MultiTalk.git
   cd MultiTalk
   ```

3. **Instalar dependências**

   ```   pip install -r requirements.txt
   pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
   ```

4. **Baixar os pesos necessários**

   * Modelo principal: `Wan2.1-I2V-14B-480P`
   * Quantização: `MeiGen-MultiTalk`
   * Áudio: `chinese-wav2vec2-base`
   * TTS: `Kokoro-82M`

   Estrutura de pastas em `weights` deve ficar assim:

   ```   weights/
     Wan2.1-I2V-14B-480P/
     MeiGen-MultiTalk/
     chinese-wav2vec2-base/
     Kokoro-82M/
   ```

5. Criar pasta de saída

    ```  mkdir outputs

  1. Rodar exemplo com áudio local

    `` python .\generate_multitalk.py --size multitalk-480 --mode clip --sample_steps 12 --ckpt_dir .\weights\Wan2.1-I2V-14B-480P --quant_dir .\weights\MeiGen-MultiTalk --wav2vec_dir .\weights\chinese-wav2vec2-base --input_json .\examples\single_example_1.json ` --save_file .\outputs\saida_480p.mp4

7. Rodar exemplo com TTS

    ```  python .\generate_multitalk.py `
     --size multitalk-480 `
     --mode clip `
     --sample_steps 12 `
     --ckpt_dir .\weights\Wan2.1-I2V-14B-480P `
     --quant_dir .\weights\MeiGen-MultiTalk `
     --wav2vec_dir .\weights\chinese-wav2vec2-base `
     --audio_mode tts `
     --input_json .\examples\single_example_tts_1.json `
     --save_file .\outputs\saida_480p.mp4


2. Dicas e correções que fizemos

  • Dependências quebradas

  • Corrigido transformers.utils.torch_utilsinstalando transformersatualizado.

  • Corrigido erro de Wav2Vec2Modelsem from_pretrained.

  • Erros de código

  • Ajustamos identação em wav2vec2.py(faltava bloco depois de try:).

  • Removemos uso de atributos inexistentes (feature_extractor).

  • Erros de JSON

  • Arquivo single_example_tts_1.jsontinha BOM (assinatura UTF-8) → corrigido salvando sem BOM.

  • Também tinha vírgula faltando → corrigido para JSON válido.

  • Estrutura do JSON

  • Para áudio gravado (localfile):

    ``` { "prompt": "Descrição...", "cond_image": "examples/single/single1.png", "cond_audio": { "person1": "examples/single/1.wav" } }

``` * Para TTS:

 ```   {
  "prompt": "Descrição...",
  "cond_image": "examples/single/single1.png",
  "tts_audio": {
    "text": "Olá, este é um teste em português.",
    "human1_voice": "af_heart"
  }
}

``` * Saída

  • Os vídeos são salvos em:

    ``` C:\Users\neima\MultiTalk\outputs\saida_480p.mp4

``` * Sempre conferir com:

  ```  Get-Item .\outputs\saida_480p.mp4 -ErrorAction SilentlyContinue```

Meigen Multitalk - wan21

chatgpt.com ↗

chatgpt.com ↗

1

Recursos

↑ voltar ao topo · ver no Telegram ↗