SagemakerでStable Diffusionを無料利用する上での工夫ポイント

Stable Diffusion

前回は、Amazon SageMaker Studio Lab.を使い始めた段階で躓きそうな、ログインの方法や、覚えておくと便利なLinuxコマンドのご紹介をしました。

今回は、ご紹介しきれなかったSageMaker環境を無料で利用する上での工夫ポイントについてご紹介してきます。

Amazon SageMaker Studio Lab.を利用した経緯

そもそも、なぜAmazon SageMaker Studio Lab.を利用することになったのかについてです。
私がStable Diffusion web UIを使って、AI画像生成に挑戦してみようと調査し、Google Colaboratoryで環境を作り、いよいよ動作させる段階でGoogle Colaboratoryでエラーが発生し使えませんでした。調べた結果、Stable Diffusion web UI(AUTOMATIC1111)は利用者が増えすぎため(?)か、Google Colaboratoryで無料での利用ができなくなったようです。

しかも運悪く、私が利用し始めた少し前からということでした。そして代替の環境でStable Diffusion web UI(AUTOMATIC1111)を無料枠で利用できる環境は、Amazon SageMaker Studio Lab.と知り現在に至ります。

Amazon SageMaker Studio Lab.無料利用における利用制限

無料で利用させていただいておりますので、当然厳しい利用制限があります。

制限①:日当たりの利用時間
制限②:ストレージ容量

制限①:日当たりの利用時間

プロセッサ(CPU/GPU)により制限が異なります。
Stable Diffusion web UIで、AI画像生成を行う際はGPUを使用しますのでGPU4h/日と覚えておけば良いでしょう。GPUが利用できる時間を節約するため、私はファイルの削除や、モデルファイルの設置などメンテナンスを行う際はCPUで利用しています。

CPU利用: 4h/日 x2セット
GPU利用: 4h/日

利用制限がリセットされる時間がいつなのか最初まったく分かりませんでした。
例えば、毎日AM0:00にリセットされるのであれば分かりやすいですが、Amazon SageMaker Studio Labの場合は違います。
公式のドキュメントが見つからなかったので、使っていての感触の話にはなりますが、その日の使い始めの時間がリセットタイムのようです。

ン?難しいですね。例えばですが、

今日(11月1日とする)の13:00からGPUを使い始めた場合、4h連続で使用した場合は、17時で利用できなくなります。そして、利用開始が可能な時間は、翌日(11月2日)の13:00になります。

11月2日の13:00に解除されますが、利用開始が15:00の場合、その次の日に利用開始できるのが15:00になります。前日は、13:00から利用開始が可能だったのに、他の日は15:00が利用開始可能となるため毎日利用時間を覚えていないとランダムに感じてしまい、最初のころは一体何時にリセットされるのか把握できませんでした。

制限②:ストレージ容量

モデルファイルなどをインストールする際など、ストレージ容量が気になります。

ストレージ容量:
 15GB/アカウント

使い始めたころは、自分が何GB消費しているのか調べ方が分からないでしょう。やり方はターミナルを起動して、以下のコマンドを実行します。

$ df -h

dfコマンドはLinuxコマンドで、Windows、MacのGUI(ボタンやアイコンをマウスでクリックしたりする方法)操作しかされたことが無い方にとって、取っ付きにくいかもしれませんので、こちらの記事で詳しく解説していますので参考にしてください。Stable Diffusion web UIのフォルダ構成や、モデルファイル、LoRA等のインストールフォルダや、覚えておくと便利なLinuxコマンド等も解説しています。

私が、dfコマンドで容量を調べた結果は利用可能な容量は146MBでした。これは非常に少ない容量です。
モデルファイルを1つインストールし、ControlNetのモデルをいくつか入れておりますが、必要最小限の構成ですが、残り僅かの状態です。Stable Diffusion web UIを最新版のv1.6にアップグレードしてから残量が少なくなった印象です。

以前は2GB程度空きがありましたが、モデルファイルは1つ2GB~4GBは必要となりますので、それでも小さ目のモデルで2つ、大きなモデルですと1つしか入りません。よって好きなタイミングでモデルを切り替えることは難しいです。モデルを切り替えて「X/Y/Z Plot」で比較するなんて豪華な検証は到底できません。そして現在はモデルファイル1つでギリギリで、生成画像を小まめに削除しながら利用しております。

更に言うとパフォーマンスの上がったSDXLのモデルファイル(sd_xl_base_1.0.safetensors)は1つで6.7GBほどありますので、SDXLは試してみたいですが使うことができません🤣。

ストレージの節約運用

モデルが1つしか入らないのであれば、使い終わったら削除して、他のモデルをアップロードすることになります。

アップロードするには、Sagemaker Studio Labの左ペインのファイルブラウザのフォルダにドラッグ&ドロップすれば良いので簡単です。
しかし、この方法でアップロードすると時間が非常に掛かってしまいます。例えば4GBほどのモデルファイルをアップロードした際に15分ほどかかりました。

ただでさえ制限のあるGPU利用時間に、ファイルアップロードを待つだけで15分消費するのは非常に勿体ないですね。

節約のためにモデルファイルのローテーションは、GPU利用時間が上限に達して利用できなくなった後にプロセッサをCPUに切り替え、翌日に備えて使いたいモデルをアップロードしていました。

しかしこれは非常にストレスが溜まります。AI画像生成途中に、気が変わり別のモデルを使いたくなったら、CPUに切り替えることもできますが、SageMakerは利用ユーザが多いと待ち状態になるため、再度Projectを再開してGPUを利用できるようになるか分かりません。

Amazon SageMakerへのアップロードが遅い

Amazon SageMakerへのアップロードが遅いと申しましたが、体感ではなく実測してみました。

例えばICBNPのmodelファイルを、SageMakerにアップロードする場合どれくらい時間がかかるでしょうか?モデルファイルサイズは1.99GBです。

手順
①CIVITAIのサイトでダウンロードボタンを押し、ローカルPCにダウンロード
②Amazon SageMaker Studio Lab にドラッグ&ドロップし、アップロード

①ローカルPCにダウンロード

ダウンロードの予想時間が出ていますが、残り15分となっています。この時点でストップしたいですが我慢してまってみます。実際は、11分21秒でダウンロードが完了しました。ちなみに我が家のネットワーク環境は下り最大1GBbpsの光回線ですので、標準的なスペックかと思いますが、今日は特段遅いように感じます。

②SageMakerにアップロード

モデルファイルの格納先は、以下になります。

/home/studio-lab-user/content/stable-diffusion-webui/models/Stable-diffusion/

こちらのフォルダを辿っていきドラッグ&ドロップします。

大きなファイルをアップロードすると警告が出ます。無視してUploadボタンを押します。

ウィンドウの下方に、Uploading… と進捗がでますが、なかなか進みません。

アップロード時間

アップロードに必要な時間は、45分32秒でした。

モデルファイルを、ローカル環境(パソコン)にダウンロードし、Amazon SageMaker Studio LabのStable Diffusion web UIのモデルファイルを格納するディレクトリにアップロードするまでに、合計56分53秒も掛かってしまいました(思ったより長かったです)。これをモデルファイルを入れ替えるたびに待つのは時間の無駄でしかないです。

【訂正】
後日、同じことを実施したところ、ローカルへのダウンロードが1分、SageMakerへのアップロードが15分程度でした。1/3に短縮しましたがアップロードに15分は待てない時間ですね。

SageMakerへのアップロードの高速化

私は、別の方法でStable Diffusion web UIの大容量のモデルファイルをアップロードを高速で転送する方法を行っています。

結論から申しますと、SageMakerへのモデルファイルアップロードを約60秒以内に完了させられます。ICBNPのmodelファイル(1.99GB)のアップロードは36秒でした。ネットワーク環境にもよりますが、ドラッグ&ドロップでの方法の1/10程度には短縮されると思います。

その方法を知りたい方、有料記事となりますので無料のユーザ登録・ログインをしていただき、記事をご購入頂くと以降の記事がご覧いただけるようになります。(5681文字:実行ログ文字含む)

・参考記事の販売です。動作を必ずしも保証するものではございません。
・説明先のサイトの画面等は変更される可能性があり本サイトの説明と異なる場合がありあります
・操作に関するサポートは承っておりません。不明点をコメント頂ければ可能な範囲で記事を修正していきます。(とはいえ、ある程度のサポートはすると思います)


※続きは購入者限定となります

*購入には会員登録およびログインが必要です。

*購入後、記事が見れなくなった場合、購入時に入力した名前・メールアドレス・購入日を明記したうえでお問合せ下さい。

コメント

タイトルとURLをコピーしました