LoginSignup
5
0

Paperspace gradientでpythonのversionを変える

Last updated at Posted at 2023-05-04

はじめに

最近PaperspaceでStablediffusionを動かして画像生成をするのにはハマっている。
しかしPaperspace gradientにデフォルトで導入されているPythonのバージョンは3.9であり、web-uiのreadmeにもある通り推奨されているバージョン(python3.10)ではない。

デフォルトの3.9でも動いているからヨシ!...でもいいのだが、気になってしまったので解決法を考えてみる。

Paperspace gradientについて

そもそもPaperspaceってなんぞや?という方もいるかもしれないので簡単な説明。

Hello, we're Paperspace
Paperspace is the cloud platform built for the future. Tens of thousands of individuals, startups >and enterprises use Paperspace to power a range of next-generation applications.

About - paperspace

Paperspaceはクラウド上で仮想マシンやクラウドGPUを提供している企業。
この企業が提供しているサービスの1つがgradientであり、クラウドベースで機械学習やDeepLearningに必要なインフラ、ツール、フレームワークなどを提供している。

gradientで魅力的なのは手元に高性能なGPUがなくてもクラウド上で使える点、そしてプラン設定にもよるがQuadroA4000やTeslaA100などのつよつよGPUを無料で使えてしまう点(有料プランの月額課金が必要)だ。

アカウントを作成すれば有料プランでなくても完全無料のGPU(QuadroM4000、GTX1650相当)が利用できるので試してみるのもよいだろう。

動作環境

1. apt install で直接入れる

多くに人が最初にやりそうな方法。
インストール自体はできるが、バージョンを確認すると元の3.9のままになっている。

root@nwg6ka6716:/notebooks# apt -y install python3.10
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython3.10-minimal libpython3.10-stdlib python3.10-minimal
Suggested packages:
  python3.10-venv binfmt-support

----省略

Setting up python3.10 (3.10.11-1+focal1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for man-db (2.9.1-1) ...

root@nwg6ka6716:/notebooks# python -V
Python 3.9.16
root@nwg6ka6716:/notebooks# python3 -V
Python 3.9.16

インストール先を見るとpythonの入っている場所がデフォルトと違う。

root@nwg6ka6716:/notebooks# which python
/usr/local/bin/python
root@nwg6ka6716:/notebooks# which python3
/usr/local/bin/python3
root@nwg6ka6716:/notebooks# which python3.10
/usr/bin/python3.10

python3.10と指定して呼び出せば3.10が利用できた。

root@nwg6ka6716:/notebooks# python3.10 -V
Python 3.10.11

pipも普通に呼び出すとデフォルトのpythonにインストールされてしまうので、python3-pipをインストールして使う。

root@nbhzad3rho:/notebooks# apt install -y python3-pip
Reading package lists... Done
Building dependency tree       

----省略

Setting up python3-pip (20.0.2-5ubuntu1.8) ...
Processing triggers for man-db (2.9.1-1) ...
root@nbhzad3rho:/notebooks# pip -V
pip 22.3.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)
root@nbhzad3rho:/notebooks# python3.10 -m pip -V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

python3.10 -m pip install モジュール名ImportError: cannot import name 'html5lib' from 'pip._vendor'エラーが出た場合、pipのアップグレードを行う。

# curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

web-uiを動かしてみる

今まで使っていたJupyterNotebookのpythonpython3.10に、pip installpython3.10 -m pip installに置き変えてから起動してみる。

RunWebUi.ipynb
%cd /notebooks
!python3.10 -m pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
!python3.10 -m pip install -q xformers==0.0.16
!python3.10 -m pip install -q triton==2.0.0

%cd /notebooks/stable-diffusion-webui
#実行
Python 3.10.11 (main, Apr  5 2023, 14:15:10) [GCC 9.4.0]
Commit hash: a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
Installing gfpgan
Installing clip

----省略

Model loaded in 27.8s (calculate hash: 21.1s, load weights from disk: 0.2s, create model: 1.1s, apply weights to model: 2.9s, apply half(): 0.5s, load VAE: 1.4s, move model to device: 0.6s).
*Deforum ControlNet support: enabled*
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://**********-49d0.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces
Startup time: 82.3s (import gradio: 1.7s, import ldm: 0.8s, other imports: 5.1s, list extensions: 1.5s, setup codeformer: 0.4s, load scripts: 38.8s, load SD checkpoint: 28.0s, create ui: 4.4s, gradio launch: 1.5s).

web-ui側でもpython3.10.11が確認できた。
qiita_paperspace5.jpg

2. Notebook作成時に任意のコンテナイメージを指定する

Notebookを作成時、コンテナイメージを指定するフィールドがあるので、そこに自分の欲しい環境のイメージを入れる方法。
詳しくは(というかほとんど)Paperspaceのドキュメントを見れば書いてあるが、それだと記事の意味がないので詳しい手順も載せる。

Notebookを作成

Notebooksを作成するページのここ(画像赤枠)にAdvanced optionsがあり、
qiita_paperspace1.jpg

この部分(画像赤枠)にコンテナイメージを指定することができる。(この状態はPaperspaceのデフォルト)
qiita_paperspace2.jpg

指定するイメージはDockerHubとかで探すこともできる(paperspaceとかgradientとかで検索すると出てくる)。
今回はstable-diffusion-paperspaceに指定されているコンテナを使う。

cyberes/gradient-base-py3.10:latestと入力して、START NOTEBOOKする。
qiita_paperspace4.jpg

machineがスタートしたら確認してみる。

root@nyw3jf3nx9:/notebooks# python -V
Python 3.10.10

python3.10が入っていることを確認した。

web-uiを動かしてみる

もう一度web-uiをインストールして動かしてみる。

RunWebUi.ipynb
%cd /notebooks
!pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 -U
!pip install -q xformers==0.0.16
!pip install -q triton==2.0.0

%cd /notebooks/stable-diffusion-webui
#実行

特にモジュールのインストールなどで詰まることもなく起動できた。

Python 3.10.10 (main, Feb  8 2023, 14:50:01) [GCC 9.4.0]
Commit hash: a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
Installing gfpgan
Installing clip

----省略

Model loaded in 37.4s (calculate hash: 28.4s, create model: 1.7s, apply weights to model: 2.3s, apply half(): 1.0s, load VAE: 3.3s, move model to device: 0.6s).
*Deforum ControlNet support: enabled*
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://*************.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces
Startup time: 110.0s (import gradio: 3.3s, import ldm: 7.2s, other imports: 4.2s, list extensions: 3.6s, setup codeformer: 0.3s, load scripts: 43.6s, load SD checkpoint: 37.6s, create ui: 4.6s, gradio launch: 5.4s).

web-ui側でもPython3.10.10が確認できた。
qiita_paperspace3.jpg

おわりに

私の検証した範囲内ではどちらの方法もpythonのバージョンを上げてweb-uiを起動できた。
1の直接インストールする方法はPaperspaceの仕様上、毎回pythonとpipのインストールをしなくてはいけなく、
2の方法はもう一度新しくNotebookを作成しないといけないというデメリットがある。
どちらが良いかは私の知識では断言できない(2の方がスマートかも?)のでいろいろ試してみてほしい。

記事について

この記事はpythonやPaperspace、Stablediffusionに精通していない人間が書いており、間違っている点や不正確な情報が記載されている可能性があります。
ご意見、ご指摘、不明な点がありましたらお気軽にコメントよろしくお願いします。なるべく早く回答させていただきます。

変更履歴

2023/05/10: 動作環境の記述が間違っていたため修正

参考サイト

5
0
2

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
5
0