RunPodではじめる画像生成
Page content
格安クラウドGPUサービス、RunPodを用いた画像生成に成功したので、 その方法を備忘録として記しておく。
アカウント作成、入金などは割愛する。
方法
URLは以下から。右上の「Deploy X.X.X」をクリックすればできるはず。 https://console.runpod.io/hub/runpod-workers/worker-a1111
作成したendpointは、左メニューのResources->Serverless、またはデフォルトならトップ画面の右上から確認できるはず。 そこから、コマンドを確認できる。
$ curl -X POST https://api.runpod.ai/v2/{endpoint_id}/run \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"input":{"prompt":"a photo of an astronaut riding a horse on mars","negative_prompt":"blurry, bad quality","width":512,"height":512,"num_inference_steps":20,"guidance_scale":7.5,"seed":42}}'
YOUR_API_KEYは設定画面の「API keys」から、生成・確認可能。
これを実行すれば、非同期で画像生成してくれる。Macからだと改行はしない方がいいっぽい。 デフォルトだと、3秒ぐらいで完了した。
画像はどこに生成されるかは不明だが、下記コマンドから結果は取得できた。
curl -X GET https://api.runpod.ai/v2/{endpoint_id}/status/{worker_id} \
-H 'Authorization: Bearer YOUR_API_KEY' > result.json
この中に画像がbase64で保存されているので、そこを切り抜いて、jpgなりpngなりに変換する。 json内の画像のキー名は忘れちゃった。
# base64画像のみ切り出し。
$ vi result.json
# 画像を出力
$ cat result2.json | base64 -d > output.jpg
実際に動いたworker_idはendpoint画面のLogsタブで確認できる。
対応するworkerを削除(Terminate)したら、結果を取得できなくなった。サーバー上からも消されたものと思われる。 また、画像生成時の消費は0.01$。つまり1.6円。
本当は画像の保存先をいい感じに取れるのかもしれないが、できたらでいい。