0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Labmda Cloudを利用してstable-diffusion-3.5-largeを動かす

Posted at

目的

stable-diffusion-3.5-largeを動かそうと思います。
このモデルのサイズは16.5GBあり、動かせるGPUを購入しようとコストが嵩んでしまい少し試してみたいというレベルでは手が出しにくいです。
また、Google Colabの無料版でもVRAMを溢れてしまいました。

そこで、Lambda Cloudを利用して、低コストで動かしたいと思います。

Hugging Faceの準備

stable-diffusion-3.5-largeはStability Community Licenseで公開されています。
このライセンスは、 年間収益が100万ドル(または現地通貨換算)未満の個人または組織に対して、その収益源にかかわらず、コア・モデルの研究、非商用、および商用利用を許可しています。

今回diffusersライブラリを利用してモデルを読み込みますが、そのためには事前にHugging Faceでアカウントを作成して、ライセンスに同意、TOKENを発行する必要があります。

ライセンスに同意

アカウントを作成、ログインしてstable-diffusion-3.5-largeを訪れると下記の画像のような入力フォームが現れます。
必要事項を入力して同意してください。

スクリーンショット 2025-03-08 16.16.41.png

token発行

duffusersでHugging Faceにログインするためtokenを発行しておきます。

スクリーンショット 2025-03-08 16.49.58.png

  1. ユーザーのアイコン画像をクリック
  2. AccessTokensをクリック
    スクリーンショット 2025-03-08 16.48.26.png
  3. +Create New Tokenをクリック
    スクリーンショット 2025-03-08 16.48.32.png
  4. Token TypeをReadとする
    スクリーンショット 2025-03-08 16.31.21.png
  5. Token Nameを任意の名前に設定
  6. Create Tokenをクリック
  7. 表示されたTokenを確認

後からTokenを再度表示することはできないのでわからなくならないように、メモをしておいてください。

Lambda Cloud インスタンス作成

Lambda Cloudのアカウントを作成しておきます。

  1. Launch instanceをクリック

開始.png
2. Instance Typeを選択 -> 十分なVRAMサイズとコストを鑑みて選択。タイミングによって選べないインスタンスタイプも多いので注意
インスタンス選択.png
3. Regionを選択 -> 任意に選択
リージョン.png
4. Filesystemをアタッチするか選択 -> 今回は必要ないので、Don't attach a filesystemを選択
ファイルシステム.png
5. SSHを利用して接続する場合は、事前に公開鍵を設定しておき選択(今回は利用しない)
ssh.png
6. Licenceに同意
ライセンス同意.png

Jupyterに接続

Launchを実行後数分間はBootingと表示されているので、Runningになるまで待機します。
任意でサーバー名を設定しておくとよい。

booting.png

Runningになったら、CLOUD IDEのLaunchをクリックしてください。

Running.png

Jupyter Notebookに接続ができます。

Jupyter.png

モデルの実行

ノートブックで以下のコードを順次実行していきます。

必要なライブラリをインストール
!pip install -U diffusers
!pip install torch transformers huggingface_hub ipywidgets accelerate sentencepiece
Hugging Faceにログイン
from huggingface_hub import login
login(token="【先ほどメモしておいたHugging FaceのTOKENを設定】")
モデルの読み込み
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-large", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
画像の生成
image = pipe(
    "A capybara holding a sign that reads Hello World",
    num_inference_steps=28,
    guidance_scale=3.5,
).images[0]
image.show()
image.save("capybara.png")

実行結果

生成された画像
実行結果3.png

%%timeをセルの1行目に設定すると実行時間を計測できます。
14秒ほどで画像が生成できました。
実行結果1.png
実行結果2.png

Lambda CloudのInstanceを削除

  1. 削除するインスタンスの右端をクリック
    削除1.png
  2. Terminateをクリック
  3. erase data on instanceを入力してTerminate instancesをクリック
    削除2.png
  4. Terminatingが終了して、instanceの表示がなくなることを確認削除4.png

料金確認

Usageタブを開くと時期とインスタンス毎にコストを確認することができます。
今回は試行錯誤したので40分ほど約110円かかりましたが、実行するだけでしたら15分ぐらい50円でLaunchからTerminateができると思います。

コスト.png

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?