CarlGao4 / Demucs-Gui

A GUI for music separation AI demucs
GNU General Public License v3.0
499 stars 37 forks source link

Bug: macOS arm64 hangs on downloading mdx_extra_q #63

Closed tgrushka closed 3 months ago

tgrushka commented 3 months ago

happen

macOS Sonoma 14.4.1 / MacBook Pro M1 Max 64 GB

Root cause: "Trying to use DiffQ, but diffq is not installed. -- On Linux/Mac, run: python3 -m pip install diffq" (but duh, this does not work because this app is packaged with its own Python environment.)

  1. Launch app.
  2. Choose mdx_extra_q model from dropdown (demucs team recommends this model as a higher quality alternative of the newer htdemucs model).
  3. Click Load.
  4. All 4 model parts get downloaded.
  5. App hangs on "Loading model mdx_extra_q" in status bar.
  6. Quit and re-launch app.
  7. Re-select mdx_extra_q in dropdown.
  8. All models show as Downloaded.
  9. Click Load.
  10. Hangs again.
  11. Quit app.
  12. Delete ~/.config/demucs-gui
  13. Repeat all steps above and notice no change in behavior.

What is the platform you are using?

macOS

log

2024-05-14 14:52:18,284 (GuiMain.py) (Line 2043) [INFO] : Python version: 3.11.9 (main, Apr 19 2024, 11:49:16) [Clang 14.0.6 ]
2024-05-14 14:52:18,285 (GuiMain.py) (Line 2044) [INFO] : Demucs GUI version: 1.2b2
2024-05-14 14:52:18,291 (GuiMain.py) (Line 2045) [INFO] : System: macOS-14.4.1-arm64-arm-64bit
2024-05-14 14:52:18,294 (GuiMain.py) (Line 2046) [INFO] : Architecture: 64bit
2024-05-14 14:52:18,294 (GuiMain.py) (Line 2047) [INFO] : CPU: arm
2024-05-14 14:52:18,295 (GuiMain.py) (Line 2048) [INFO] : CPU count: 10
2024-05-14 14:52:18,296 (GuiMain.py) (Line 2049) [INFO] : System memory: 68719476736 (64GB)
2024-05-14 14:52:18,296 (GuiMain.py) (Line 2052) [INFO] : System free memory: 39650213888 (36.927GB)
2024-05-14 14:52:18,296 (GuiMain.py) (Line 2056) [INFO] : System swap memory: 2147483648 (2GB)
2024-05-14 14:52:18,296 (GuiMain.py) (Line 2074) [INFO] : Using PySide6
2024-05-14 14:52:18,297 (GuiMain.py) (Line 2075) [INFO] : Qt version: 6.7.0
2024-05-14 14:52:18,297 (GuiMain.py) (Line 2076) [INFO] : PySide6 version: 6.7.0
2024-05-14 14:52:18,387 (shared.py) (Line 360) [INFO] : [1] Thread starter (separator.py) starts
2024-05-14 14:52:18,400 (GuiMain.py) (Line 2081) [DEBUG] : Supported styles: macOS, Windows, Fusion
2024-05-14 14:52:18,408 (GuiMain.py) (Line 2087) [DEBUG] : Current style: macos
2024-05-14 14:52:19,283 (separator.py) (Line 66) [INFO] : Intel Extension for PyTorch is not installed
2024-05-14 14:52:19,291 (__init__.py) (Line 68) [DEBUG] : Failed to initialize sox extension
Traceback (most recent call last):
  File "PyInstaller/loader/pyimod03_ctypes.py", line 53, in __init__
  File "ctypes/__init__.py", line 376, in __init__
OSError: dlopen(/Applications/Demucs-GUI.app/Contents/Frameworks/torchaudio/lib/libtorchaudio_sox.so, 0x0006): Library not loaded: @rpath/libsox.dylib
  Referenced from: <20E00ABB-13B8-31A1-A605-453D3F4E7C79> /Applications/Demucs-GUI.app/Contents/Frameworks/torchaudio/lib/libtorchaudio_sox.so
  Reason: tried: '/Applications/Demucs-GUI.app/Contents/Frameworks/torchaudio/lib/../../libsox.dylib' (no such file), '/Applications/Demucs-GUI.app/Contents/Frameworks/torchaudio/lib/../../libsox.dylib' (no such file), '/Applications/Demucs-GUI.app/Contents/Frameworks/lib-dynload/../libsox.dylib' (no such file), '/usr/local/lib/libsox.dylib' (no such file), '/usr/lib/libsox.dylib' (no such file, not in dyld cache)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "torchaudio/_extension/__init__.py", line 60, in <module>
    _init_sox()
  File "torchaudio/_extension/utils.py", line 70, in _init_sox
    _load_lib("libtorchaudio_sox")
  File "torchaudio/_extension/utils.py", line 64, in _load_lib
    torch.ops.load_library(path)
  File "torch/_ops.py", line 852, in load_library
    ctypes.CDLL(path)
  File "PyInstaller/loader/pyimod03_ctypes.py", line 55, in __init__
pyimod03_ctypes.install.<locals>.PyInstallerImportError: Failed to load dynlib/dll '/Applications/Demucs-GUI.app/Contents/Frameworks/torchaudio/lib/libtorchaudio_sox.so'. Most likely this dynlib/dll was not found when the application was frozen.
2024-05-14 14:52:19,292 (utils.py) (Line 93) [DEBUG] : Attempting to load FFmpeg version 6.
2024-05-14 14:52:19,294 (utils.py) (Line 130) [DEBUG] : Failed to load FFmpeg 6 extension.
Traceback (most recent call last):
  File "torchaudio/_extension/utils.py", line 128, in _find_ffmpeg_extension
    return _find_versionsed_ffmpeg_extension(ffmpeg_ver)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "torchaudio/_extension/utils.py", line 113, in _find_versionsed_ffmpeg_extension
    _try_access_avutil(ffmpeg_ver)
  File "torchaudio/_extension/utils.py", line 89, in _try_access_avutil
    torchaudio.lib._torchaudio.find_avutil(libavutil)
RuntimeError: Error in dlopen: dlopen(libavutil.58.dylib, 0x0006): tried: 'libavutil.58.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibavutil.58.dylib' (no such file), '/Applications/Demucs-GUI.app/Contents/Frameworks/torch/lib/../../libavutil.58.dylib' (no such file), '/usr/lib/libavutil.58.dylib' (no such file, not in dyld cache), 'libavutil.58.dylib' (no such file), '/usr/local/lib/libavutil.58.dylib' (no such file), '/usr/lib/libavutil.58.dylib' (no such file, not in dyld cache)
2024-05-14 14:52:19,295 (utils.py) (Line 93) [DEBUG] : Attempting to load FFmpeg version 5.
2024-05-14 14:52:19,296 (utils.py) (Line 130) [DEBUG] : Failed to load FFmpeg 5 extension.
Traceback (most recent call last):
  File "torchaudio/_extension/utils.py", line 128, in _find_ffmpeg_extension
    return _find_versionsed_ffmpeg_extension(ffmpeg_ver)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "torchaudio/_extension/utils.py", line 113, in _find_versionsed_ffmpeg_extension
    _try_access_avutil(ffmpeg_ver)
  File "torchaudio/_extension/utils.py", line 89, in _try_access_avutil
    torchaudio.lib._torchaudio.find_avutil(libavutil)
RuntimeError: Error in dlopen: dlopen(libavutil.57.dylib, 0x0006): tried: 'libavutil.57.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibavutil.57.dylib' (no such file), '/Applications/Demucs-GUI.app/Contents/Frameworks/torch/lib/../../libavutil.57.dylib' (no such file), '/usr/lib/libavutil.57.dylib' (no such file, not in dyld cache), 'libavutil.57.dylib' (no such file), '/usr/local/lib/libavutil.57.dylib' (no such file), '/usr/lib/libavutil.57.dylib' (no such file, not in dyld cache)
2024-05-14 14:52:19,297 (utils.py) (Line 93) [DEBUG] : Attempting to load FFmpeg version 4.
2024-05-14 14:52:19,298 (utils.py) (Line 130) [DEBUG] : Failed to load FFmpeg 4 extension.
Traceback (most recent call last):
  File "torchaudio/_extension/utils.py", line 128, in _find_ffmpeg_extension
    return _find_versionsed_ffmpeg_extension(ffmpeg_ver)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "torchaudio/_extension/utils.py", line 113, in _find_versionsed_ffmpeg_extension
    _try_access_avutil(ffmpeg_ver)
  File "torchaudio/_extension/utils.py", line 89, in _try_access_avutil
    torchaudio.lib._torchaudio.find_avutil(libavutil)
RuntimeError: Error in dlopen: dlopen(libavutil.56.dylib, 0x0006): tried: 'libavutil.56.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibavutil.56.dylib' (no such file), '/Applications/Demucs-GUI.app/Contents/Frameworks/torch/lib/../../libavutil.56.dylib' (no such file), '/usr/lib/libavutil.56.dylib' (no such file, not in dyld cache), 'libavutil.56.dylib' (no such file), '/usr/local/lib/libavutil.56.dylib' (no such file), '/usr/lib/libavutil.56.dylib' (no such file, not in dyld cache)
2024-05-14 14:52:19,299 (__init__.py) (Line 96) [DEBUG] : Failed to initialize ffmpeg bindings
Traceback (most recent call last):
  File "torchaudio/_extension/__init__.py", line 89, in <module>
    _FFMPEG_EXT = _init_ffmpeg()
                  ^^^^^^^^^^^^^^
  File "torchaudio/_extension/utils.py", line 162, in _init_ffmpeg
    ext = _find_ffmpeg_extension(ffmpeg_vers, show_error)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "torchaudio/_extension/utils.py", line 132, in _find_ffmpeg_extension
    raise ImportError(f"Failed to intialize FFmpeg extension. Tried versions: {ffmpeg_vers}")
ImportError: Failed to intialize FFmpeg extension. Tried versions: ['6', '5', '4']
PyInstaller/loader/pyimod02_importers.py:419: UserWarning: TorchAudio's global backend is now deprecated. Please enable distpatcher by setting `TORCHAUDIO_USE_BACKEND_DISPATCHER=1`, and specify backend when calling load/info/save function.
2024-05-14 14:52:19,398 (audio.py) (Line 34) [INFO] : Soundfile version: 0.12.1
2024-05-14 14:52:19,399 (audio.py) (Line 35) [INFO] : libsndfile version: 1.2.0
2024-05-14 14:52:19,399 (audio.py) (Line 36) [INFO] : SoXR version: 0.3.7
2024-05-14 14:52:19,399 (audio.py) (Line 37) [INFO] : libsoxr version: 0.1.3-7-gacc0dac
2024-05-14 14:52:19,400 (separator.py) (Line 88) [INFO] : Demucs version: 4.1.0a3
2024-05-14 14:52:19,400 (separator.py) (Line 89) [INFO] : PyTorch version: 2.1.2
2024-05-14 14:52:20,486 (audio.py) (Line 49) [INFO] : ffmpeg -version output:
ffmpeg version n6.0-tessus Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --extra-cflags=-I/opt/homebrew/include --extra-ldflags=-L/opt/homebrew/lib --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-libcaca --enable-version3 --disable-ffplay --enable-ffmpeg --enable-ffprobe
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

2024-05-14 14:52:20,513 (audio.py) (Line 54) [INFO] : Using ffmpeg from /Applications/Demucs-GUI.app/Contents/Frameworks/ffmpeg/ffmpeg
2024-05-14 14:52:20,514 (audio.py) (Line 55) [INFO] : ffprobe -version output:
ffprobe version n6.0-tessus Copyright (c) 2007-2023 the FFmpeg developers
built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --extra-cflags=-I/opt/homebrew/include --extra-ldflags=-L/opt/homebrew/lib --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-libcaca --enable-version3 --disable-ffplay --enable-ffmpeg --enable-ffprobe
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

2024-05-14 14:52:21,517 (shared.py) (Line 371) [INFO] : [1] Thread starter (separator.py) ends
2024-05-14 14:52:21,558 (shared.py) (Line 360) [INFO] : [2] Thread checkUpdate (shared.py) starts
2024-05-14 14:52:21,563 (shared.py) (Line 387) [INFO] : Checking for updates...
2024-05-14 14:52:22,318 (shared.py) (Line 390) [INFO] : Latest version: 1.2b2
2024-05-14 14:52:22,321 (shared.py) (Line 371) [INFO] : [2] Thread checkUpdate (shared.py) ends
2024-05-14 14:52:45,827 (shared.py) (Line 360) [INFO] : [3] Thread loadModel (GuiMain.py) starts
2024-05-14 14:52:45,840 (GuiMain.py) (Line 650) [INFO] : Loading model mdx_extra_q from repo "remote"
FATAL: Trying to use DiffQ, but diffq is not installed.
On Windows run: python.exe -m pip install diffq 
On Linux/Mac, run: python3 -m pip install diffq
2024-05-14 14:52:45,882 (shared.py) (Line 371) [INFO] : [3] Thread loadModel (GuiMain.py) ends
CarlGao4 commented 3 months ago

Sorry about this. You can switch to mdx_extra model which is mdx_extra_q model before being quantized at this moment though it's bigger than mdx_extra_q. I'll add diffq in 1.2 release

CarlGao4 commented 3 months ago

Please try 1.2