【50円から使える!】GPUSOROBANでStable Diffusionを使う方法(設定方法)

技術メモ

この記事ではGPUSOROBANでStable Diffusionを動かすための設定手順を説明します。

環境情報

レンタルサーバー:GPUSOROBAN
クライアントPC:Macbook Air

業界最安値のGPUレンタルサーバー

GPUSOROBANは、NVIDIAの高性能GPUインスタンスを低コストで利用できるクラウドサービスです。2025年の価格で1時間50円で使うことができ、業界最安値でサービス提供されています。

【業界最安級】GPUクラウドサービス| GPUSOROBAN
GPUSOROBANは、業界最安級のGPUクラウドサービスです。NVIDIAの高性能GPUを採用し、画像生成AI、大規模...
特徴

業界最安値の料金

  • AWS、GCP、Azureなどの他のGPUクラウドと比較して50%以上安い料金設定※GPUSOROBAN調べ
  • 1時間50円から利用可能
  • データ転送料やストレージ料金などの追加コストが不要

多様なGPUオプション

  • 画像生成AI、LLM、CAD、BIMなど様々な用途に対応したGPUを提供
  • NVIDIA A4000、A100、T4などの高性能GPUを搭載

簡単な利用と環境構築

  • GPUインスタンスの設定が3分で完了する簡単な操作
  • OS、NVIDIAドライバ、CUDA、PyTorchなどがプリインストール済み

柔軟な利用形態

  • 従量課金と月額固定料金プランを用意
  • インスタンスの追加が簡単で、1台・1時間単位から利用可能

GPUSOROBANでStable Diffusionを設定する方法

まずはGPUSOROBANのWebページからサーバー(インスタンス)の設定、構築をしていきます。

GPUSOROBAN インスタンス設定

GPUSOROBANのWebサイトへログインし、サイドバー「高速インスタンス作成」メニューを選択します。

インスタンス作成の設定項目

  1. インスタンス名
  2. GPU選択
    NVIDIA A4000を選択。おそらく選択肢は1つのみ
  3. ストレージ選択
    SSD100GBを選択。おそらく選択肢は1つのみ
  4. OSバージョン選択
    Ubuntu 22.04 LTS Serverを選択。基本はその時の一番新しい物を選択
  5. ソフトウェア選択
    CUDA、Pythonがインストールされている設定を選択
  6. 料金プラン選択
    従量課金を選択
  7. インスタンス用秘密鍵を選択
    インスタンス接続する際の秘密鍵を選択します。
    作成が必要な方は説明に従って作成、すでにある方は利用する秘密鍵を選択

各項目を選択しインスタンスの作成を行います。

今回の環境設定

必要パッケージのインストール

まずはパッケージのアップデートを行います。

$ sudo apt update

必要なパッケージ類をインストールしていきます。

#Pyenvインストール
sudo apt install python3.10-venv
#torchインストール
pip install torch==2.0.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
pip install torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117

※今回はCUDA11.7のためcu117バージョン指定。

#libglibインストール
sudo apt install libglib2.0-0

numpyバージョンをダウングレード(2.x系→1.x系)
今回使用するtorchバージョンとの依存関係により1系へ変更が必要

#numpyバージョンダウングレード(2.x系→1.x系)
pip install "numpy<2”

Stable Diffusion Web UIのダウンロード

Githubリポジトリよりstable-diffusion-webuiをクローンします。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

コマンド実行した場所に stable-diffusion-webui フォルダが作成されます。

起動スクリプト設定

Stable Diffusion起動時に利用するtorchインストールのバージョンを今回指定のバージョンに変更します。

cd stable-diffusion-webui
vi webui-user.sh
export TORCH_COMMAND="pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --extra-index-url https://download.pytorch.org/whl/cu117"

Stable Diffusion Web UIの起動

#Stable Diffusion起動(GPUチェックを無効化)
$ bash ./webui.sh --skip-torch-cuda-test

実行コマンドを入力後、出力が止まり 「http://127.0.0.1:7860/」 が表示される。

ブラウザのアドレス欄に 「http://127.0.0.1:7860/」 と入力し、以下のような画面が出たら、起動成功です。

これで好きなモデルをダウンロードして画像生成を楽しむことができます。

ブラウザアクセスのポイント

サーバー側で起動したStable Diffusion Web UIへクライアントPCのブラウザからアクセスするにはポートフォワードが必要になります。
そのため、ターミナルから以下sshでポートフォワードを行なってください。

ssh -L 7860:localhost:7860 user@localhost -p 20122 -i .ssh/mykey.txt

Stable Diffusion Web UIの各種パラメータ

1Sampling methodサンプリング方法
2Sampling stepsノイズからイラストに変えていくための回数
3Restore faces顔を綺麗にできる(美人になるとは限らない)
4Tilingタイル状に並べる
5Hires. fix解像度を上げることができる
6Width, Height画像の横幅、高さ
7Batch count画像の枚数(何回バッチを行うか)
8Batch size画像の枚数(1回のバッチで何枚の画像を生成するか)
9CFG Scaleどれだけプロンプトに近いイラストを生成するか
10SeedSeedの数値と他の設定によって絵が決まる。-1にするとランダム

1.Sampling method

Sampling methodはサンプラーと言われる物で、ノイズを除去(サンプリング)する方法を選択できます。

基本的には利用する学習モデルが推奨するサンプラーを選択すると良いでしょう。

Sampling methodの中には「Ancestral samplers」と呼ばれるものがあり、これを使用するとSampling stepごとにイラストの形が変わります。

Ancestral samplersは名前に「a」がついています。

  • Euler a
  • DPM2 a
  • DPM++ 2S a
  • DPM++ 2S a Karras
  • DDIM
  • PLMS

イラストの再現性が必要ならEulerやDPM++ 2M Karrasなどの方がおすすめです。

2.Sampling steps

Sampling stepsはノイズを除去する回数です。

Sampling stepsの数が多いほど、1回で生成する画像のノイズ除去量は少なくて済むため、より丁寧にノイズが除去できるイメージになります。

Sampling stepsは数が多いほど質の高いイラストを生成することができますが、その代わり生成時間がかかるため、品質と時間のどちらを優先するかでstep数を決める必要があります。

デフォルトでは20になっていますが、30以上あれば十分綺麗な画像が生成できるイメージです。

また多すぎても精度は頭打ちとなります。

3.Restore faces

Restore facesにチェックを入れると、Generative Facial Prior GAN(GFPGAN)を用いて、そのままだと崩れがちな顔の補正を強力に行い、できるだけ左右対称を維持してくれます。
※全身像のような引きの絵で顔が小さめの場合は補正が効きません。

特に実写向きの機能で、二次元系のイラストではOFFが推奨されます。

4.Tiling

Tilingにチェックを入れると、画像をタイリングできます。つまり上下左右に繋ぎ目無く、綺麗に繋げられる画像を出力することができます。テクスチャや模様を生成したい場合にのみ利用sるため、人物などの生成ではOFFが推奨されます。

5.Hires. fix

Hires. fixにチェックを入れると以下の順に高解像度な画像が生成されます。

  1. 低解像度で画像を生成
  2. 1の画像をアップスケーラーというアルゴリズムで拡大
  3. 2の画像をimg2imgというモデルで詳細追加

このように生成ステップを分けることで、構図の破綻や画質の劣化を抑えつつ、高解像度な画像を生成することができます。

Hires. fixにチェックを入れると、以下の設定項目が出現します。

  • Upscaler (アップスケーラー): 低解像度の元画像を拡大する際に用いるアルゴリズムの種類を指定します。10種類以上ありますが、それぞれ特徴や出力結果が異なるので個人で好みを探してみるのがいいでしょう。(SwinlR4×)
  • Hires steps :高解像度化する際のステップ数。ステップ数が多いほど緻密になりますが、時間もかかります。0にするとサンプリングステップ数と同じ値が適用されます。通常は「0」のままか、サンプリングステップ数よりも小さい値で大丈夫です。
  • Denoising strength (ノイズ除去度):アップスケーリングの元となる画像からどの程度ノイズ除去するか。この値を小さくするとアップスケール後に元画像とかけ離れた画像になりやすいです。逆に大きくすると元画像に忠実になりますが、滑らかすぎる場合もあります。0.6~0.7くらいがバランスが良くおすすめです。
  • Upscale by (アップスケール倍率):何倍に拡大するか。1.5~1.6倍くらいが無難です。あまりに大きすぎるとGPUのメモリ不足でエラーが出る場合があります。

6.Width, Height

生成する画像の横幅と高さです。

値を大きくすると、より多くのVRAMが必要になります。あまり大きな値にすると、人数が勝手に増えたり、人体が崩れがちになります。

7.Batch count

画像生成を繰り返す回数で、VRAM使用量には影響しません。

Batch countが1なら1枚のイラストを生成して終わり。2ならその処理を2回繰り返して2枚のイラストを生成します。

8.Batch size

同時に生成する画像の枚数で、VRAM使用量に影響します。

Batch sizeが2なら2枚のイラストを並行して生成します。

(例) Batch count=4、Batch size=3の場合、画像は12枚生成されます。(3枚同時生成 x 4回 = 12枚)

9.CFG Scale

入力したPromptにどのくらい従わせるかを示す数値です。数字が大きいほどPromptに順守させた画像生成を行います。

ただ、上げ過ぎると画像が崩壊する可能性が高まります。
低い数値だと、よりAIにとっての自由度が広がるため、いい結果を得られることもありますが、低すぎると希望した画像にならない可能性も高くなります。

基本的には使う学習モデルの推奨する数値を使うのが良いですが、5~9ぐらいが良く使われます

10.Seed

画像生成の計算に使用する乱数で、生成したイラストごとにランダムで割り振られる番号です。

Seed値を指定することで、同じイラストを何枚でも生成することができ、Seed値を固定したままモデルなどの条件を変えて生成することで、絵柄の違いが検証しやすくなります。
※最大値は4294967295

初期値で入力されている「-1」はランダムを意味します。

サイコロアイコン:Seed値を初期状態(-1)に戻す
リサイクルアイコン:最後に生成した画像のSeed値を呼び出す