motion-diffusion-model導入（PowerShell)

# モーションをAI生成できるソリューション
motion-diffusion-modelはDiffusionのバリエーションのモーション生成します。
プロンプトで行動を指示すると最大9.8秒までのモーションを動画ファイルで生成します。
また、座標移動についても*.npyファイルで出力されます。
https://github.com/GuyTevet/motion-diffusion-model
ただ、細かい障壁があるため、回避するための記事を作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75653/8f13594e-3587-49c0-aaae-992c2d68948d.png)

## インストール環境について
私はAnaconda in PowerShellを使っています。他のWSL環境やLinux環境ではないことをあらかじめお断りしておきます。
おそらくですがAnacondaのパスが通ったDOSプロンプトでも同じことができると思います。
過去の記事も参考にしてみてください。https://qiita.com/samezi/items/bdffb85d03e3500101c1

## ffmpegについて
このソリューションはffmpegで動画生成を行うため、各環境でパスが通っていて呼び出せる必要があります。
色々やり方はありますが、私はChocolateyからffmpegパッケージをインストールしました。詳細は参考リンクを元に。
https://qiita.com/konta220/items/95b40b4647a737cb51aa

## エラーが出て環境が作れない
この記事のミソです。
condaコマンドを使うように指示がありますが、そのままだとResolvePackageNotFoundエラーが出てしまいます。
environment.ymlファイルがWindows環境など他の環境の人が使うように作られていません。一応Issueでは扱っていますが…ふーむ。https://github.com/GuyTevet/motion-diffusion-model/issues/1
environment.ymlを以下のように修正してください。

```yaml:environment.yml
name: mdm
channels:
  - pytorch
  - conda-forge
  - defaults
dependencies:
  - beautifulsoup4=4.11.1=pyha770c72_0
  - blas=1.0=mkl
  - brotlipy=0.7.0
  - ca-certificates=2022.9.24
  - catalogue=2.0.8
  - certifi=2022.9.24
  - cffi=1.15.1
  - charset-normalizer=2.1.1
  - colorama=0.4.5
  - cryptography=35.0.0
  - cudatoolkit=11.0.221
  - cycler=0.11.0
  - cymem=2.0.6
  - dataclasses=0.8
  - expat=2.4.9
  - fftw=3.3.9
  - filelock=3.8.0
  - fontconfig=2.13.1
  - gdown=4.5.1
  - giflib=5.2.1
  - glib=2.69.1
  - gst-plugins-base
  - h5py=3.7.0
  - hdf5=1.10.6
  - icu=58.2
  - idna=3.4
  - intel-openmp=2021.4.0
  - jinja2=3.1.2
  - jpeg=9b
  - kiwisolver=1.4.2
  - langcodes=3.3.0
  - lcms2=2.12
  - libffi=3.3
  - libpng=1.6.37
  - libtiff=4.1.0
  - libuv=1.40.0
  - libwebp=1.2.0
  - libxml2=2.9.14
  - lz4-c=1.9.3
  - markupsafe=2.1.1
  - matplotlib=3.1.3
  - matplotlib-base=3.1.3
  - mkl=2021.4.0
  - mkl-service=2.4.0
  - mkl_fft=1.3.1
  - mkl_random=1.2.2
  - ninja=1.10.2
  - ninja-base=1.10.2
  - numpy=1.21.5
  - numpy-base=1.21.5
  - openssl=1.1.1q
  - packaging=21.3
  - pathy=0.6.2
  - pcre=8.45
  - pillow=9.2.0
  - pip=22.2.2
  - pycparser=2.21
  - pydantic=1.8.2
  - pyopenssl=22.0.0
  - pyparsing=3.0.9
  - pyqt=5.9.2
  - pysocks=1.7.1
  - python=3.7.13
  - python-dateutil=2.8.2
  - python_abi=3.7
  - pytorch=1.7.1=py3.7_cuda110_cudnn8_0
  - qt=5.9.7
  - requests=2.28.1
  - scipy=1.7.3
  - setuptools=63.4.1
  - shellingham=1.5.0
  - sip=4.19.8
  - six=1.16.0
  - smart_open=5.2.1
  - soupsieve=2.3.2.post1
  - spacy=3.3.1
  - spacy-legacy=3.0.10
  - spacy-loggers=1.0.3
  - sqlite=3.39.3
  - tk=8.6.12
  - torchaudio=0.7.2
  - torchvision=0.8.2=py37_cu110
  - tornado=6.2
  - tqdm=4.64.1
  - trimesh=3.15.3
  - typer=0.4.2
  - wheel=0.37.1
  - xz=5.2.6
  - zipp=3.8.1
  - zlib=1.2.12
  - zstd=1.4.9
  - pip:
    - blis==0.7.8
    - chumpy==0.70
    - clearml==1.7.1
    - click==8.1.3
    - confection==0.0.2
    - filelock==3.8.0
    - ftfy==6.1.1
    - importlib-metadata==5.0.0
    - lxml==4.9.1
    - murmurhash==1.0.8
    - preshed==3.0.7
    - pycryptodomex==3.15.0
    - regex==2022.9.13
    - smplx==0.1.28
    - srsly==2.4.4
    - thinc==8.0.17
    - typing-extensions==4.1.1
    - urllib3==1.26.12
    - wasabi==0.10.1
    - wcwidth==0.2.5
```

以上です。他にもCuda Toolkitの違いなどありますが、後はGithubリポジトリにあるリードミーに従えばインストールできるはずです。Good Luck!!!