LoginSignup
3
2

More than 1 year has passed since last update.

Stable Diffusion + Chillout Mix のエラーを ChatGPT で解決した話

Last updated at Posted at 2023-04-04

Google Colaboratory で Stable Diffusion + Chillout Mix を用いていて、それまで問題なかったのに今日突然

RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.8. Please reinstall the torchvision that matches your PyTorch install.

というエラーに遭遇して、自力でなんとかしようと思ったけどできず、ChatGPT で解決したという話です。

Before

【Stable Diffusion】ChilloutMixの使い方(Google Colab) を拝見して、そこにある通りに実行してました。そのコードは次の通りです。

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui

!wget https://civitai.com/api/download/models/11745 -O /content/stable-diffusion-webui/models/Stable-diffusion/Chilloutmix-Ni-pruned-fp32-fix.safetensors

!python launch.py --share --xformers --enable-insecure-extension-access

以上です。昨日まではそれだけで実行できていたのですが、今日試してみると、見たことのないエラー

RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.8. Please reinstall the torchvision that matches your PyTorch install.

が出現してました。「何もしてないのに壊れた」と思ってそのエラーメッセージをググってみると、このページに行き当たりました。

今(日本時間4月4日23時)時点でもまだ議論中のようですね。新しく出現したエラーらしく、ここに書いてあることを試してみようかなと思っても、自分の環境(Google Colaboratory)とは異なるためか解決できませんでした。

After

そこで ChatGPT を使って解決できました、ってのが結論です。最終的に得られたコードは

!pip install --upgrade Pillow
!echo "Y" | pip uninstall torchvision
!echo "Y" | pip install torchvision==1.9.0

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui

!wget https://civitai.com/api/download/models/11745 -O /content/stable-diffusion-webui/models/Stable-diffusion/Chilloutmix-Ni-pruned-fp32-fix.safetensors

!python launch.py --share --xformers --enable-insecure-extension-access

これを使えば、上記のエラーを回避できました。

Before のコードとどこが違うかというと、最初の3行が追加されただけですね。まあ、結果だけ見れば簡単なんですが、自分のヘボプログラマ能力的には、ChatGPTの助けなしには正直無理っぽかったです。

ChatGPT との会話

結論としては以上なのですが、参考のため ChatGPT との会話履歴を貼っておきます。以下、引用フォーマットになっているのが自分、なってないのがChatGPTのセリフです。

Google colaboratory 上で RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.8. Please reinstall the torchvision that matches your PyTorch install. というエラーが起こりましたが、どう対処すれば良いですか?

このエラーは、PyTorchとtorchvisionが異なるCUDAバージョンでコンパイルされたことを示しています。これは、PyTorchがCUDA 11.7でコンパイルされ、torchvisionがCUDA 11.8でコンパイルされた場合に発生する可能性があります。

対処法としては、以下の手順を試すことができます。

  • 最初に、Google Colabのランタイムを再起動してみてください。場合によっては、これだけで問題が解決する場合があります。

  • PyTorchとtorchvisionのバージョンを確認してください。例えば、以下のコードを実行して、PyTorchとtorchvisionのバージョンを確認できます。

import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
  1. PyTorchとtorchvisionのバージョンが異なる場合は、torchvisionの再インストールを試してみてください。以下のコマンドを実行して、現在のtorchvisionをアンインストールし、適切なバージョンをインストールできます。
!pip uninstall torchvision
!pip install torchvision==<PyTorchと同じバージョン>

たとえば、PyTorchが1.9.0である場合、適切なtorchvisionのバージョンは1.9.0となります。

以上の手順を試しても問題が解決しない場合は、Google Colabのランタイムを再起動し、必要に応じて環境をリセットすることもできます。

ありがとうございました。指示通りに実行すると。次のようなエラーになりました。対処法を教えてください。

 ---------------------------------------------------------------------------
 ImportError                               Traceback (most recent call last)
<ipython-input-6-61f54cd92c2d> in <cell line: 2>()
      1 import torch
----> 2 import torchvision
      3 print(torch.__version__)
      4 print(torchvision.__version__)



5 frames

/usr/local/lib/python3.9/dist-packages/torchvision/__init__.py in <module>
      4 
      5 import torch
----> 6 from torchvision import datasets, io, models, ops, transforms, utils
      7 
      8 from .extension import _HAS_OPS

/usr/local/lib/python3.9/dist-packages/torchvision/datasets/__init__.py in <module>
----> 1 from ._optical_flow import FlyingChairs, FlyingThings3D, HD1K, KittiFlow, Sintel
      2 from ._stereo_matching import (
      3     CarlaStereo,
      4     CREStereo,
      5     ETH3DStereo,

/usr/local/lib/python3.9/dist-packages/torchvision/datasets/_optical_flow.py in <module>
     10 from PIL import Image
     11 
---> 12 from ..io.image import _read_png_16
     13 from .utils import _read_pfm, verify_str_arg
     14 from .vision import VisionDataset

/usr/local/lib/python3.9/dist-packages/torchvision/io/__init__.py in <module>
      3 import torch
      4 
----> 5 from ..utils import _log_api_usage_once
      6 
      7 try:

/usr/local/lib/python3.9/dist-packages/torchvision/utils.py in <module>
      9 import numpy as np
     10 import torch
---> 11 from PIL import Image, ImageColor, ImageDraw, ImageFont
     12 
     13 __all__ = [

/usr/local/lib/python3.9/dist-packages/PIL/ImageFont.py in <module>
     36 from . import Image
     37 from ._deprecate import deprecate
---> 38 from ._util import is_directory, is_path
     39 
     40 

ImportError: cannot import name 'is_directory' from 'PIL._util' (/usr/local/lib/python3.9/dist-packages/PIL/_util.py)
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------

このエラーは、Pillow(Python Imaging Library)の一部であるPIL(Python Imaging Library)の依存関係に問題があることを示しています。以下の手順を試して、問題を解決できるかどうかを確認してください。

  • Pillowを最新のバージョンにアップグレードしてみてください。以下のコマンドを実行して、Pillowをアップグレードできます。
!pip install --upgrade Pillow
  • もう一度、torchvisionを再インストールしてみてください。以下のコマンドを実行して、現在のtorchvisionをアンインストールし、適切なバージョンをインストールできます。
!pip uninstall torchvision
!pip install torchvision==<PyTorchと同じバージョン>

もし、Pillowが完全にインストールされていない場合は、以下のコマンドを実行して、Pillowを再インストールしてください。

!pip uninstall Pillow
!pip install Pillow

上記の手順を試した後も、問題が解決しない場合は、Google Colabのランタイムを再起動してから、必要に応じて環境をリセットすることを検討してください。

Google colabで次のコマンドを実行すると、Proceed (Y/n)? と聞かれましたがそれに答える入力が実行できませんでした。対処法を教えてください。

Google Colab上での入力には、次のような方法があります。

!echo "Y" | command

具体的には、次のように入力してください。

!echo "Y" | pip uninstall torchvision
!echo "Y" | pip install torchvision==1.9.0

これにより、コマンドに対して "Y" という入力が自動的に行われるため、処理が続行されます。

Stable Diffusion + Chillout Mix で生成した「こうそフレンズ」

Stable Diffusion + ChilloutMix で「こうそフレンズ」を生成する 等で公開しています。

00008-989966774.png

00010-4174115937.png

00008-3786149130.png

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2