目的
友人がGPUを使用するソフトを使用しながらcomfyUIを使用していて、それだとGPUをかなり食い合って画像生成が遅かったりhoudiniが重くなったりすると聞いたので、使いたい時だけcomfyUIの処理を外部に安価で投げられる機構を作った。
昨今GPUを使用するサービスやアプリも増えているので、そのアプリでlocalのcomfyUIに投げているurlを変更するだけで処理を外部に分散できる。
利点
決まったワークフローを繰り返し行うような時に最大限効果を発揮する。(例えば、houdiniのnodeで生成AIに処理を投げるものなど)
需要がニッチすぎておそらく企業はこんなサービス作らなさそう。
セットアップはansibleで自動化しているので使用するGPUを好きに選んで変更できる。
なによりもお金が全然かからない(L4で使用時に45円/hぐらい、サーバー維持費426円/月ぐらい)。
使用技術スタック
プログラミング言語: Python, JavaScript
インフラ: XserverVPS, Cloudflare, nginx
ツール: Ansible, Discord Bot, comfyUI
ライブラリ: discord.js
個別の技術詳細については別で記事にしているのでそちらで
・tensordock -> https://qiita.com/nani/items/033d3a2b1ad989a0db0c
・discordbot -> https://qiita.com/nani/items/2a054fb9c600585f80e0
・comfyUI -> https://qiita.com/nani/items/e791ea3f581cae313803
追加予定
全体アーキテクチャ
使用手順
domainは事前に取得し、discordbotの環境変数に登録済み
vpsにdiscordbotはデプロイ済み。
サーバーを増やす場合の手順。
- サーバーデプロイ(tensordock)
- ipアドレス、port取得
- ip,portを指定しansibleを流す
- cloudflareでAレコードにipアドレス登録
- discordbotでコマンド起動(urlが返ってくる)
- そのurlを自分が使用するソフトやサービスに登録する
スケール対応
自動でサーバーをセットアップできるようにしたのがもったいないので、個人で使用する分には絶対に必要ないが、スケールアップもできるようにした。
GPUサーバーを増やせば下記のような構造になる。
最後に
せっかく作ったから誰かに使ってほしいがなかなかサービスとしては展開しづらいので記事にして供養。
使いたいって方や自分用に作ってほしいっていうお仕事依頼あったらください。