はじめに
StableDiffusionをDiscordbotで動かせるようにしてみました。StableDiffusion WebUIはAPIで動かせるようになっているのでそれを使っています。
Discordサーバー
操作したいパラメータごとにチャンネルを立てます。
これ以外に実行コマンドを送るのと、完成したものを貼るチャンネルを立てます(自環境ではrunにしている)。
bot
トークンはpython-dotenvで保存しています。
パラメーターのチャンネルに値を送ると、txt2imgの実行用のjsonファイルが更新されます。
それを実行用チャンネルに適当にメッセージを送ると生成開始され完成したらそのチャンネルに画像を貼るようになっています。
生成された画像はbase64で返ってくるので、デコードして保存しそれをチャンネルへ送信するようにしています。
また、prompt,sampler,checkpointのチャンネルでは"?"(promptは"!lora")と送ると使えるオプションが返ってきます。
参考資料