カウント→たか丸へのローテク模索譚

たか丸へのメールを元に
主にロートル(古い)PC、ロースペックのPC関連の話題。たまに雑談。

Raspberry Pi 5が入手できたのでとりあえずAI

2024-07-27 01:05:21 | PC関連
ラズベリーパイ5を購入した。

Raspberry Pi 5 RAM 8GBの本体価格は¥15000くらいなもんなんですが、
CPUクーラー、電源、ケース、M.2のSSD拡張ボード、SSD500GBとかあわせると
だいたい¥3万くらいになりました。


PCとして使っていく目的であれば、N97のミニPCの方がおすすめなんですが、
ラズパイは何かに使うというより、いろいろ使ってみて可能性を探ってみて
用途を探す、という用途だと思っています。

そんなわけで、何の用途にするかも考えずに、組み立てていきます。

ケースはSSDを取り付けた状態でも入るように少し大きめのものを選びました。
SSDを取り付けて、ケースに収納しようとしたら、ラズパイ本体のネジ穴を

SSDの拡張ボード固定用に使ってしまった。
これ、ケースに取り付けるネジ穴と兼用なんですね。



って、何も考えずに組み立て始めてしまったのがいけなかった。
なんか二度手間になってしまった。
まあ、そういうのも経験ですな。

OSはwindowsのPCでマイクロSDに入れます。



とりあえず、普通に64ビットの最新版を入れてみます。

マイクロSDカードをラズパイに挿して、起動した。

起動してすぐにマイクロSDカードの内容をSSDへツールを使ってコピーした。
ツールはアクセサリから選んで起動して、


コピー元をマイクロSD、コピー先をSSDにして


コピーして再起動したらSSDから起動するようになった。

案外簡単。


さて、せっかくなので、画像生成AIで遊んでみます。
Raspberry Pi 4 Model B 8GB でもやってみたのですが、その時に調べた方法だと
設定にもよると思うけれど、画像1枚生成するのに2時間くらいかかったので
今回、改めて、いろいろググって調べました。

だいたい1枚生成するのに15分くらいのものならよさそう。

ってことで、今回やった方法を紹介。
実行するコマンドラインの目印として、以下、プロンプト行の先頭を#にしています。

まず、いつもの最新化。

# sudo apt-get update
# sudo apt-get upgrade

以降、真似だったりして、何のためにやっているのかちゃんと調べていないところもあるので、
いらないことをやっているかもしれません。
特に、今回はOSインストール直後からやっているので、既に他の設定をしている場合は
変わってくると思いますし、後々バージョンも変わってくると設定も変更されるかもしれないので、
現時点での参考程度です。

それでもいろいろインストールしていきます。
# curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
Detected operating system as debian/bookworm.

The repository is setup! You can now install packages.
# sudo apt-get install git-lfs

Git LFS initialized.

# git lfs install
Git LFS initialized.

# git clone https://huggingface .co/runwayml/stable-diffusion-v1-5
Cloning into 'stable-diffusion-v1-5'...

Filtering content: 100% (22/22), 36.01 GiB | 9.57 MiB/s, done.
※なぜか、「huggingface」と「.co」を繋げて書くと、ここのブログでは弾かれてしまうので、
 間にスペースを入れています。実際は繋げて実行しています。

# git clone https://github.com/straczowski/raspberry-pi-stable-diffusion.git
Cloning into 'raspberry-pi-stable-diffusion'...

Resolving deltas: 100% (5/5), done.

ここでモデルのダウンロードが結構長くて、だいたい1時間くらいだったろうか、
ディスクもかなり消費しました。

OS起動直後とダウンロード後を比べると

ここまでで56GBくらい使っていることがわかります。


今回、SSDを500GBにしておいて余裕だったが、いつもみたいに64GBだとやばかったかも。

で、カレントを移動して続けます。
# cd raspberry-pi-stable-diffusion/

参考にした例だとryeを使っているので(れいだけに)、ここでryeをインストールしました。
# curl -sSf https://rye.astral.sh/get | bash

途中の問い合わせとかだいたいyesとかリターンです。

This script will automatically download and install rye (latest) for you.

All done!

この途中で、「 source "$HOME/.rye/env"」って出てきたので、

# source "$HOME/.rye/env"
をやってから

# rye init
success: Initialized project in /home/count/raspberry-pi-stable-diffusion/.
Run `rye sync` to get started

参考例にあわせてバージョンは以下。

# echo 3.11.7 > .python-version

カレントには以下のファイルがある状態です。
# ls
README.md app.py imgs pyproject.toml src

-a つければよかったな。

ここにあるapp.pyに作成する画像のプロンプトとか出力ファイル名を定義していきます。

その前に、
# vi pyproject.toml
で以下の3行を追加するようです。

[[sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cpu"

そして、

# rye add diffusers torch transformers accelerate
Downloading cpython@3.11.7

Done!

app.pyに作成する画像のプロンプトとか出力ファイル名を定義したら、
画像生成開始。
# rye run python app.py

サンプルで用意されていた定義のままやってみたら、結果はだいたい13分程度でした。

今回のラズパイで、これまで購入したラズパイは8台目になりました。
ラズパイと言ったらpythonだと思うし、軽量小型でPCのような操作ができるのがいいのだけれど
電力消費が大きくなってきて、価格もあがってきているので、単純な家電の拡張程度では
ちょっともったいなく、用途が変わってくるかな。

例えば、最新のネット記事を英訳して画像生成のプロンプトにぶち込んでおくシェルを毎日cron起動しておくとか。
ちょっとやってみようとすると、真っ黒な画像が生成されるだけだった。
まあ、あとはプロンプトの内容を少しずつ変えて連続実行させるとか。

それだと冒頭のミニPCの方が良さそう。
逆に、カメラ搭載して家の前に設置して、映像からテキスト生成するとかも面白そうだけれど、
このケース、カメラ挿せないんだよな。

しばらく普通のPCのように使ってみるかな。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする