日本語でプロンプトを与えるとStable Diffusionの画像を投稿してくれるSlack Bot
元画像を指定しての生成もできるコマンドも提供。
RTX2070 8GB環境とGTX2060 6GB環境で操作確認済み。
Stable Diffusionの公式版が動く環境の整備をした前提で以下を実行。(構築方法参考)
conda env create -f environment.yaml
conda activate sdbot
以上を行って .env
ファイルにHuggingfaceのトークンと、SlackのAppトークンとBotトークンを設定。
YOUR_TOKEN=hf_xxxxxxxxxxxxxx
SLACK_BOT_TOKEN=xoxb-999999999999999999999999
SLACK_APP_TOKEN=xapp-999999999999999999999999
設定後、実行は以下のコマンドの通り。
python3 script/main.py
- プロンプトから画像生成(t2i): !img [プロンプト]
- 画像から画像生成(i2i): !img-i [URL] [0.0~1.0までの強度] [プロンプト]
- waifu-diffusionモデルをつかってプロンプトから画像生成(t2i-waifu): !img-w [プロンプト]
- ヘルプ表示: !img-help
なお、画像から画像生成する際のURLはパブリックにアクセス可能なURLかSlack内の画像のURLである必要があります。
アプリの作り方はこのドキュメントに準拠。 必要権限は以下。
- chat:write
- files:write
- files:read
- message.channels
- message.groups
- message.im
- message.mpim
以下のエラーが出る。
RuntimeError: CUDA error: unknown error
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
ビデオメモリが足りません。 main.py
のコード内の画像のサイズを指定しているところを512ではなく8の倍数の384か256にして対応してください。