福宝猪猪 2023-05-28 15:42 采纳率: 0%
浏览 33

stable diffusion报错问题

img


报错→RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cpu and cuda:0! (when checking argument for argument index in method wrapper_CUDA__index_select)
如图所示,这个问题怎么解决呀?谢谢!

  • 写回答

2条回答 默认 最新

  • IT论之程序员 2023-05-28 15:45
    关注

    这个报错是因为你的PyTorch版本使用了CUDA,但是Stable Diffusion没有正确配置使用CUDA。有几种解决方法:

    1. 不使用CUDA,禁用CUDA:
      bash
      export CUDA_VISIBLE_DEVICES=
      然后重新运行Stable Diffusion。这会强制Stable Diffusion只使用CPU。
    2. 确保Stable Diffusion被编译为使用CUDA:
      bash
      cd stable-diffusion
      python setup.py build develop
      然后重新运行。这会重新编译Stable Diffusion来使用CUDA。
    3. 指定Stable Diffusion只使用某个CUDA设备:
      bash
      export CUDA_VISIBLE_DEVICES=0 # Use CUDA device 0
      然后重新运行Stable Diffusion。这会强制Stable Diffusion只使用指定的CUDA设备。
    4. 在运行Stable Diffusion的时候指定CUDA设备:
      bash
      CUDA_VISIBLE_DEVICES=0 python scripts/run_model.py ... # Use CUDA device 0
      这会为这个运行强制Stable Diffusion使用指定的CUDA设备。
      总之,这个错误是因为PyTorch和Stable Diffusion之间的CUDA配置不匹配造成的。以上方法可以通过禁用CUDA、强制使用特定CUDA设备或者重新编译Stable Diffusion来解决这个问题。
    评论

报告相同问题?

问题事件

  • 创建了问题 5月28日