見出し画像

【配布】画像生成AIをBotにしてみた【Stable Diffusion API x Discord】〜高機能BOT リアルタイムで確認! リアクションで即追加処理!〜

こんにちは、Rcatです。
今回はStable Diffusion(AutoMatic1111)のWEB UIを使わずに、APIをたたいて動かしていきます。そうすると、任意のプログラムで無限ループを組んで無限生成環境が作れます。というわけで、無限生成Discord Botを作成していきます。
Botは最下部で配布するので、やってみたくなった方は導入いただけます
※GPU/CPUは問いません
※WebUI Forgeも使えます
※アップデートなどで情報が追加/変更されることがあります

前回の記事はこちら。読んでいる前提で進めていきます。

次回はこちら

こちらもお勧め


なぜDiscordを使用するのか

今回Stable Diffusion(以下SD)のAPIを叩くのにDiscordのボットを使用します。
理由としては以下をあげることができます。

  • アプリを使って条件入力ができる
    チャットアプリなので、プロンプトやその他設定をチャットで指示することができます。

  • 出力した画像をリアルタイムに転送できる
    無限生成した画像を家に帰ってきてから確認しますか?
    いえいえ、Discordを使えばできた画像をその場で送信してもらうことができます。トラブルがあって動いてない場合でもすぐわかりますね。

  • リアクションが使用できる
    相手のメッセージに👍や😍などを付けられるアレですね。
    何が言いたいかと言うと、出来上がった画像に対してリアクションを行うことで、その場でフォルダの整理や削除などを行う機能が実装できます。
    今回はフォルダ分けやスケールアップ指示を行います。

  • 安心のセキュリティ
    自宅で画像を生成しているということは、プロンプトの変更や画像の確認をするために、何かしらの方法で自宅サーバにアクセスしないといけません。一番簡単なのはポート開放ですがやりますか?
    Discordのbot を使えばアプリ経由で確認や指示が出来るので安全です

BOT 作成メモはこちら

システム紹介

まずは今回作成したシステムの概要を紹介します
基本的な画像の生成機能に加え自分が欲しいと思ったオリジナル機能をたくさん詰め込みました。

特徴

  • 24時間無限に生成できる
    あらかじめ設定した内容(プロンプト等)で無限に画像を生成し続けます。放置するだけなので低スペックPCでもストレスを感じません
    出来た画像はリアルタイムで投稿されるのでいつでも確認出来ます。
    生成前に条件の再読み込みを行うので、プロンプトの変更などでいちいち止める必要はありません。

  • プロンプトランダム選択機能搭載
    本作オリジナル機能で、特定のプロンプト(単語)を一覧の中からランダムで選ぶことにより、同じ設定でも自動で複数のバリエーションの画像を生成できます。髪型5種類、服装5種類、背景5種類指定しておけば125通りのバリエーションを生成できます。

  • 任意のチャンネルに出力させることができる
    出力先のチャンネルは複数持つことができるので、どこに出力させるか設定することで画像をジャンル別に分けることができます。なお、内部的にチャンネル別のフォルダが作成されます。
    例えば誰かに共有する場合でもこの画像は共有で、この画像は自分だけなどロールを使って分けることができますね。

  • 画像にリアクションして追加の操作を行える

    • フォルダ分け
      カスタム絵文字を使用することで、カスタム絵文字と同じ名前のフォルダを作ってそこに移動させることができます。

    • アップスケール
      Hiras.fixを使ったアップスケール指示をその場で出すことができます。GPUならまだしも、CPUの場合後からまとめてやるととんでもなく時間がかかります。その場で少しずつ進めましょう。

    • パラメーター編集
      すでに出来上がった画像のパラメーターを取得し、その一部を変更してから再度生成を行える機能です。指が変な画像を救済したり、良い構図のシードで条件変えたりなどで使用します。
      リアクションすることで編集画面に情報が表示されます。
      また、手元の画像からpnginfoを取得することも可能です。

  • Google Drive アップロード機能
    上記のリアクション機能の一つですが、特定のリアクションに対してフォルダ移動に追加してGoogleDriveへのアップロードを行えます。

  • 進捗状況の表示
    通常ゲームをプレイ中と表示されるステータスの部分を活用して、進捗状況のパーセントと残り時間、そして何ステップ目かが表示されます。
    アップスケールを複数スケジュールしている場合、キューが残り何個あるのかも表示されます。

  • CPU使用率の制限が可能
    Linux前提の話ですが、cpulimitコマンドを使ってSDのCPU使用率を制限できます。
    今回は様々な用途で使う、24時間サーバーを活用するので100%使われては困るのです。
    この機能を使用するには、事前にcpulimitをインストールしておく必要があります。

  • 接続先を変更可能
    一応ローカルで稼働しているSDに対して指示を出すのが前提ではありますが、外部のコンピューターにも接続可能です。この機能はテスト用の機能であり、外部接続を基本とする用途は想定していません。

  • データのクリーンアップ機能
    リアクション機能を使って分類していない画像=失敗作として、それらを何日前以上の物は消すという条件で削除できます。
    いちいちサーバーにログインしなくてもデータを整理できます。

システムの導入方法-Discord側-

動作環境

Rcatの方で動作が確認できているのは下記の環境です。
※動作を保証するものではありません。
Linuxをメインの動作環境として作っており、一部Linux限定機能もあります。

  • Ubuntu 22.04.3 (Linux)
    本作バージョン1.5.0まで確認済み

    • Python 3.10.12

  • Windows10
    本作バージョン1.0.0まで確認済み(多分最新も動く)

    • Python3.11.6

Discordで専用サーバーを用意する

まず、最初に画像を生成するためのサーバーを立てましょう。
一番下のプラスボタンを押してサーバーを立てます。
オリジナルの作成で自分や友人のためを選択します。

チャンネルを用意する

本システムはチャンネル名やカテゴリー名を使用して動作する部分があるため、以下のルールに則って作成してください。
名前は一字一句間違えず打ち込んでください。
必須と書いていないものに関しては無くても大丈夫だとは思いますが、一部機能が使えなかったり、使おうとしてエラーで落ちたりする可能性がありますので、すべて作成しておくことをお勧めします。

  • 指示カテゴリ
    プロンプトの入力やその他設定を行うためのチャンネルを集約するカテゴリです。

    • submit (必須)
      生成のスタートやストップ、出力先の変更などを指示するチャンネルです。

    • prompt
      画像生成のプロンプトを入力するための専用のチャンネルです

    • negative_prompt
      上記と同じく、ネガティブプロンプト専用のチャンネルです。

    • sampler_index
      サンプラーを設定するためのチャンネルです。
      一覧取得なども行えます。

    • upscale
      スケールアップの設定を事前に行っておくチャンネルです。

    • setting (必須)
      画像のサイズなどその他の設定を行うためのチャンネルです。
      基本的に入力データが短かったり、一覧から選んだりしないコマンドがここに集約されています。
      上記の個別設定をここで行うことも可能です。

    • credit
      投稿する画像に透かしを入れます
      テキスト、サイズ、透過度、印字有無を設定できます。

    • queue
      キューとは、無限生成以外の画像生成ジョブの順番待ちのことです。無限生成よりも優先的に実行されるため、キューの開始や一時停止操作、回数制限を掛けられます。
      アップスケール等時間のかかる処理を後回しにしたり、確認する時間が無い時にやらせるなど調整用途です。

    • edit
      生成した画像に対してパラメータ編集を行い、再生成するためのチャンネルです。

    • pnginfo
      既存のStableDiffusionで生成した画像のパラメータを読み取るためのチャンネルです。本家WEB UIのPNG Infoと同じです。
      読み取ったパラメーターは"edit"チャンネルで編集と再生成が可能です。

    • rawcmd
      システムの都合で残っているボット作成前に使っていた関数にアクセスするためのチャンネル。接続先の変更でのみ使用します。

  • 出力カテゴリ

    • output (必須)
      デフォルトで出力先に設定されるチャンネルです。
      このチャンネルは必須です。

    • その他のチャンネル
      上記以外は自由に名前をつけて、好きなだけチャンネルを定義できます。出力カテゴリーの中に入ってさえいれば、botが自動的に認識します。

  • SYSTEMカテゴリ

    • system (必須)
      CPU使用率の制限をかける時や、botを終了する場合に使用します。

    • log (必須)
      画像生成時のログなどが全てここに出力されます。

チャンネルが完成したら、事前に権限の設定などを行っておいてください。
自分一人で使う場合は特に気にしなくても大丈夫です。

ボットを作成してサーバーに招待する

以下の記事を参考にしていただき、ボットを作成してください。
権限付与のところが分からなければアドミニストレータで大丈夫です。

botを招待するURLにアクセスすると下記のようになるので、今回作成したサーバーを選んでください。
botの招待は自分が作成したサーバーのみ可能です。
存在の危機に直面するって書いてありますが、これは管理者権限が付与されているからです。
複数人で使うサーバーであれば気をつけなければなりませんが、今回は自分でしか使わないので問題ありません。

上記の処理を行うとbotが招待され、メンバーに表示されます。

システムの導入方法-スクリプト側-

データのコピー

ここまでの手順でサーバーbotという器は完成しましたので、中身であるシステムの導入を行っていきます。
システムの配布は本記事の最下部で行っていますので、そこから取得してください。
適当なフォルダを作成し、そこに配布されているデータを全て入れます。

トークンと一部のプログラム設定

次にトークンとメインチャンネルの設定を行います。
画像で映っている"token.ini"を新規作成し、1行目にbotのトークンを入力します。
BOTは起動時にこれを読み込みログインを行います。

次にツール本体"Stable_bot"を開いて中身を一部修正します。
adminidの部分を自分のDiscordユーザーIDに変えてください。
これは念のため、あなたの指示以外をbotが受け付けないようにするために使用しています。

仮想環境とライブラリのインストール

本ツールは、仮想環境の作成とライブラリのインストールが自動化されています。
Linuxの場合"create.sh"を実行で仮想環境の作成とライブラリインストールが行われます。そして"start.sh"を実行することでプログラムが開始されます。

Windowsの場合はライブラリのインストールに"requirements.txt"を使用すれば必要ライブラリは自動でインストール可能です。
インストール後、無事に稼働してDiscordの画面でbotがオンラインになれば完了です。

システムの使い方

基本的な使い方

それでは導入したシステムを使って画像を生成していきましょう。
まずはSDを起動します。前回の記事で導入は済んでいる前提です。
起動するためのコマンドは下記になります。
nohupを使用することでシェルからログアウトした後もDSを実行し続けられます。この状態で落とす場合はkillコマンドを使ってください。

nohup ./webui.sh --skip-torch-cuda-test --precision full --no-half --listen --api &

双方が立ち上がったのを確認したら、まず実行してみましょう
submitチャンネルに対してstartと発言してください。
ここでボットから生成を開始しますと返信が来ればボットが正常に稼働しています。無限ループは10秒間隔で回っているので、最長10秒以内に処理が開始されます。

生成が完了すると"output"にこのような画像が出力されるはずです。
初期設定では512×768で女の子を一人書くようなプロンプトになっています。

チャンネルの使い方と変更できる内容

submit

先ほど早速使ったチャンネルですが、生成の制御を行うためのチャンネルです。
全設定の取得や生成のスタートストップ、出力先の変更を行うことができます。

例えば出力先を設定する場合、以下のようになります。
尚ここで指定できるのは"出力"カテゴリの中に入っているチャンネルに限定されます。

prompt

promptチャンネルにてプロンプトを変更することができます。
入力に成功するとプロンプトは更新され、次回以降の画像に反映されます。
基本的に値の入力と取得ができるような場合は、setおよびgetコマンドが用意されており、その後ろに内容を入力していくのが基本スタンスです。
チャンネルによってはこれらを使わず、次回に入力できる場合もあります。
プロンプトランダム選択機能については各機能の使い方セクションで説明します

プロンプトを更新する場合

何を入力していいかわからない場合は、適当に一言呟くとどうすればいいか教えてくれます。
これはどのチャンネルでも共通で、BOTが認識できない入力が行われると、ヘルプが返されます。

negative_prompt

ネガティブプロンプトも同様の手順で変更ができます。
初期設定では、人間の体の描写の破綻を防ぐような内容を入れてあります。大体どこでも出てくる手が多いとか欠損してるとかそういうのですね。
私が使ってるのをそのまま入れてるだけなので、基本的に変更することをお勧めします


sampler_index

サンプラーはたくさんの種類があるのと、名前を正確に入力しなければいけないので、専用のチャンネルが用意されています。
一字一句正確に入力する必要があるため、ヘルプで一覧表示を行って入力することをお勧めします。

upscale

後述のリアクション機能を使用してアップスケールをスケジュールできます。そのための設定を事前にここで行っておきます。
アップスケールは、いい画像ができた時に高解像度化するための手法です。
設定できる項目はスケーラーの変更とノイズ除去強度をおよびスケールの設定です。スケーラーの名前を設定する時のみsetコマンドを使います。

アップスケールのノイズ除去強度について

ここでちょっと余談を挟みますが、アップスケールのノイズ除去強度について、0以上に設定したとき私の場合ものすごく処理に時間がかかるようになりました。
0だと15分ぐらいで出てきた画像が0.5だと1.5時間かかりました。この辺はスケーラーの設定などと組み合わせを確認した方が良さそうです。GPUの時はあまり気にならなかったのですが、CPUでやるとこの辺差が出るんですかね?

0時833秒、0.5時5476秒とログに出ている

かわいい姉妹が出たので、これで設定比較をしてみました

オリジナルサイズ約10分
強度0 15分くらいだったと思う
強度0.5 1時間以上

目の辺りが分かりやすいですが、強度0だと単純に引き延ばした感が出てますね。なんか歪んでいるというか残念な感じになってます。
一方強度0.5の方はきちんと演算されて高解像度化されたのが分かります。
本当にいい画像が出たらタイミングを考えたうえで強度0より高い設定でこなうべきですね。

setting

個別のパラメーター設定および一部システムの設定をここで行います。
逆に個別の設定が用意されているものは、入力が長かったり選択肢が決まっているようなものになります。
わざわざ個別のチャンネルを用意してはありますが、それらの項目もここで設定することもできます。

システムの設定とは、現在使用しているパラメーターの保存と読み込みになります。色々なパラメーターを試していく中で、チャット履歴を追ってもできなくはないですが、やはり設定を保存しておけると便利ですよね。
システムの都合上、モデルの変更は専用のmodelコマンドを用意しています。

ステップ数を変更した例
モデルを変更した例

queue

手動でスケジュールした画像生成のことをキューと言います。これらは画像のアップスケールやパラメーター編集が該当します。
これらの処理は無限生成に対して優先的に実行されます。このためキューを処理しないように一時停止したり、処理する数を指定させたり指定できます。
特にアップスケールは時間がかかるので、画像をチェックする時間がある時はあまりやりたくないですね。

一時停止と種類制限
pauseですべて一時停止、その後countで数指定実行か、start "job種類"でそれだけは処理することができます。
処理の時間を考慮し、"edit"のjobが最優先で実行される仕様なので、upscaleを先に行いたい場合はeditを一時停止してください。

一覧表示と並べ替え
listで一覧表示ができます。また、moveコマンドで並べ替えができます。
※実行中のキューも表示されますので、キューが処理されている間は一番上に並び替えないでください。

credit

投稿する画像に透かしを入れます。
なお、印字が行われるのはDiscordに投稿する分のみです。
Bot稼働端末内に保存される画像には印字されません。
本機能の搭載理由としては、投稿した画像が利用される可能性が0ではないということなので透かしを入れておきましょうということです。
事前にフォントの導入が必要です。
詳しくはフォントの導入方法をご確認ください
※記事公開時点ではPillowのバージョン9番台以下が必要です。最新バージョンでは動きません。

Discord利用規約 抜粋 (https://discord.com/terms)

初期設定では上記のようなクレジットが入ります。

  • get
    現在の設定を取得します

  • set
    設定を行います

    • stat [true/false]
      印字の有効無効を切り替えます

    • text 任意の英数字
      印字の内容を変更します

    • size [ピクセル / 1%-100%]
      印字のサイズをピクセルまたは画像の縦サイズに対するパーセントで指定します

    • opacity 1-100
      不透明度を指定します。数値が小さいほど透過します

rawcmd

このチャンネルは接続先の変更のみで使用します。
私の環境ではbotとSDが同じLinuxサーバー上で動いていますが、実験のために、開発中はメインのパソコン上のSDに対して接続して作業していました。その名残で、別のパソコンで起動しているSDに対して画像生成を行うこともできます。
接続先の変更はaddrコマンドを使います。
なお、サンプラーやアップスケーラーのインデックスの取得を、最初の一度しか行わないため、接続を変更する場合はこのコマンドを一番最初に使ってください。

edit

後述のリアクション機能を使用して、一度生成された画像のパラメーターを編集して再生成することができます。
本機能はリアクション"edit"が付与された場合、その画像のパラメーター情報を読み取り、専用のチャンネルでそれらを自由に編集できるようにする機能です。
要するに、いい画像が出てきたらプロンプトなどを調整して詰めていくための機能です。
例えば下記は表情を変化させてみた例です。

具体的な使い方ですが、まず出力された画像に対してeditリアクションをつけると"edit"チャンネルに次のような投稿が行われます。
最初に画像のパラメーターが一覧で表示され、画像も添付されています。

この中で表示されるパラメーターが変更可能です。例えば"prompt"や"steps"などが該当します。
上記の例ではプロンプトの中からhappyという単語を除いています。これにより表情が変化することを狙ってみたわけです。
設定が完成したら"commit"を行うことでキューに追加できます。順番が回ってくれば画像が生成されます。

system

このチャンネルでは次のことが行えます

  • CPU使用率に制限をかける

  • Stable Diffusionを立ち上げる

  • データのクリーンアップ

  • ボットの終了

・Stable Diffusionの立ち上げ
"start_stable.sh"というファイルを作成し、内部に起動コマンドを書き込みます。例は以下の通りです。

スクリプトが存在する場合以下のようにコマンドを受け付けてくれます

・データのクリーンアップ
古い画像の削除を行いディスクを開放します
デフォルトで2週間ですが、もっと長いスパンや短い場合は追加で日数を入力してください

・CPU使用率制限
CPU使用率の制限はLinux限定かつ事前のコマンドインストールができている場合に限り行うことができます。
例えばCPU使用率を制限する場合は以下のようになります。
下記の場合、85%に制限をかけることができます。
なお、この機能はLinuxのコマンドを使用してpidの取得や他のCPUリミットが存在しないかなどを確認しているため、うまく動かない場合もあります。ご了承ください。

下記のように2種類指定すると"通常/キュー時"とそれぞれ指定できます。

・ボットの終了
exitコマンドを使ってください。
理由としては、
画像生成実績を保存するため
キューが残っている場合、一旦保存され次回起動時に読み込むため
CPU使用率制限をかけている場合、そのプロセスを正しく終了するため。


各種機能の使い方

ここからは個別のチャンネルでは説明できない機能について説明していきます。

リアクションを使用した機能(アップスケール/分類/編集/GoogleDrive)

Discordにはメッセージに対してリアクションをつけるという機能があります。さらにカスタム絵文字という好きな絵文字に好きな名前をつけてリアクションするという素晴らしい機能も実装されています。
それを使用し、出力された画像に対してリアクションをつけることで、アップスケールの指示フォルダ分けの指示編集指示、情報取得を行えるようにしました。

・アップスケール
下記は"upscale"絵文字でアップスケールの指示を出している状態です。
アップスケール指示を出すと優先キューに情報が追加され、現在の処理が終わり次第、アップスケールが実行されます

アップスケールされた画像は下記のように前の投稿に対して返信という形で投稿されます。

・フォルダ分け機能
予約されていない名前のカスタム絵文字を付けることでフォルダ分けできます。
下記はアップスケール後の出来上がった画像をさらにフォルダ分けしています。

・GoogleDriveにアップロードする
事前にGoogleドライブ側で設定を行っておくことで、リアクションにアップロード機能を追加することができます。
主に透かし機能と併用していて、すぐにDLしたいいい画像ができたけど透かしが邪魔な場合や、Discordに招待はしないけど他の人に共有したい場合などに使用できます。

  1. サービスアカウントを作成
    下記を参考にサービスアカウントを作成しました。
    https://note.com/kohaku935/n/ned9e907aac77
    ※スプレッドシートは使わないのでそこは無視しました。

  2. GoogleDriveでフォルダを作成して、①ステップで作ったサービスアカウントとフォルダを共有する。

  3. ①で作成したキーファイルを"googledrive_key.json"という名前にして本ツールと同じフォルダに入れる。

  4. キーと同じフォルダに設定ファイル"googledrive_config.json"を作成
    言葉で説明するなら、チャンネル名をキーとした辞書に入れ子で辞書が入っており、子辞書のキーはリアクション名で値がGoogleDriveのフォルダID。
    要するに、チャンネルとリアクション別にフォルダを指定する。

  5. 試運転
    設定したチャンネルで設定したリアクションを付けてアップロードが行われるか確認する


データ構成例
googledrive_config.json記述例

・パラメーター取得
"info"絵文字でリアクションすると、メッセージが編集され画像のパラメーターが表示されます。

・編集機能
"edit"絵文字でリアクションすることで起動します。詳しくは前項のeditチャンネルの使い方で説明済みです。

やり方
具体的な方法ですが、カスタム絵文字を使用します。
サーバー設定の絵文字からカスタム絵文字をアップロードしてください。
この中で名前が予約されているのは"upscale"、"edit"、"info"です。
予約された名前の絵文字がついた場合、それに対するアクションが自動的に起こされます
それ以外は全てジャンル別フォルダーの名前として認識されます。ファイルシステムの禁則文字でなければ自由の名前をつけてもらって構いません。画像も自由ですので、お好きな画像を用意して好きな名前を付けてください。

私の場合は以下のサイトのアイコン素材を使用しています。DL前に色を変えたりサイズを選んだりできるので今回の用途にぴったりです。
モザイクかかってるやつは…ラOンスタンプ抽出しましたw。

パソコンでは右クリックのリアクションをつけるから、スマートフォンでは画像を長押しでリアクションをつけることができるので、行いたい処理に応じてカスタム文字をリアクションとしてつけてください

実際にフォルダ分けが行われると、以下のような形でチャンネル別フォルダの中に、さらに絵文字の名前のフォルダが作成され、その中に画像が移動されます。一度つけたリアクションを消してからつけ直す事で2回以上移動することもできます。なお、アップスケールや編集などのアクション絵文字はフォルダ分け前に使用する必要があります。
うまく動作したかどうかはログに出力されるので、そこで確認してください。

プロンプトランダム選択機能

本作オリジナルの機能で、''(シングルクォーテーション)で括ったプロンプトはその中のうちどれか一つが選ばれます

例えば、下記のように設定した場合は太字の箇所はランダムでひとつ選択されます。この設定だと144通りあります。
(masterpiece:1.1),(best quality:1.0),(super fine cel anime:1.2),cute girl,'long hair,wavy hair,hime cut,medium hair','blouse,cardigan,skirt,dress,school uniform,lolita','flower garden,beach,sky,rainbow sky,night,town'

この機能を使えば、同じ設定のままで様々な画像を生成できます。
下記は設定を変えずに生成した例です。自動でプロンプトが変化することにより様々な画像を生成出来ていることが分かります。

例えば、下記画像のプロンプトは下記の通りです。
太字が自動選択の部分です。
(masterpiece:1.1),(best quality:1.0),(super fine cel anime:1.2),cute girl,wavy hair,cardigan,flower garden

PNG Info読み取りと再生成

"pnginfo"チャンネルに画像をアップロードすることで、その画像のパラメーターを解析できます。
解析したパラメーターは"edit"チャンネルに回されるので、そこで編集が可能です。

WEB UIで言うとこの部分になります。

画像Upload後、editチャンネルで"get"コマンドを入力すると、pnginfoで取得した内容が入っていることが分かる。
あとは"edit"と同じ要領で再生成してください。

髪型変えてみました。腕もなくなったのでまた詰めないといけませんね…。

フォントの導入方法

Discord投稿分に電子透かしを印字する機能を使用する場合、フォントの導入が必要です。デフォルトでは"たぬゴ"を使用しており、同じものを導入すればコードを書き換える必要なく使用できるようになります。

たぬゴをダウンロード
https://tanukifont.com/tanugo/
fontフォルダを作成し、以下の階層になるようにフォントを導入する

任意のフォントを使いたい場合
試していませんが理論上はbotの透かし設定を直に変更することで使用できます
exitコマンドでbotを終了すると、botのフォルダにwmconf.jsonが生成されるので、"font"の部分にフォントの"*.ttl"ファイルのパスを入れれば動くはずです。下記のようにnullの場合はたぬゴが使われます。

まとめ

今回はStable Diffusion APIを使った無限生成BOTを作成してみました。
家にいない間も生成出来て、かつスマホで確認&追加指示ができるのでかなり便利なものになったと思います。
また、オリジナルの機能も搭載し、少なくとも私自身にはとても使いやすいBOTになりました。
今までは土日しかできず、画像を確認する時間もまとめて取れずやり辛かったですが、導入してから昼休みや長い通勤にでも確認ができるようになりました!
次回は、APIについてまとめていきたいと思います。

次回はこちら

アップデート情報

公開後のアップデートです。
記事にはしれっと入っていますが、具体的に何が追加機能なのかはここで説明します。
※配布データへの反映は記事公開から最大1週間かかることがあります。

  • 2023/12/17 Ver 1.0.0

    • 編集機能追加

  • 2023/12/24 Ver 1.1.0

    • プロンプトランダム選択機能追加

    • キーに関する機能強化

      • 並び替え機能追加

      • Job種類による制限追加

      • CPU使用率制限を通常とキュー時でそれぞれ設定できるように変更

  • 2023/12/27 Ver 1.2.0

    • infoリアクション機能追加

    • ランダムプロンプトに空白を許可(該当箇所のプロンプトのON/OFFができる)

    • pnginfoチャンネル及び読み取ったデータをeditチャンネルへ転送する機能追加。

  • 2024/01/07 Ver 1.3.0

    • settingチャンネルにてモデル変更ができるように機能追加。

  • 2024/01/21 Ver 1.3.1

    • Infoリアクションを返信から編集に変更。

    • 起動時のサーバー取得方法変更。

    • 必須チャンネルが無い場合にエラーを返すように変更。

    • editとUpscaleでリアクション削除時にファイルが移動しない不具合修正

    • sd_apiモジュール内エラー修正。

  • 2024/03/16 Ver 1.4.0

    • Discord投稿分に電子透かしを入れる機能を追加

    • ランダムプロンプト機能の不具合修正

  • 2024/03/20 Ver 1.5.0

    • Google Drive アップロード機能追加

  • 2024/03/31 Ver 1.6.0

    • データのクリーンアップ機能追加

    • 生成実績をカウントするように挙動変更

配布情報

以下のURLより、紹介した2つのPythonスクリプトを配布しています。

https://script.google.com/macros/s/AKfycbysRqb7488rvLGPqOOhGlr0w513zIHC67BEPzJtPAKrAc4lKfDCmsB0mVL1Ha5BY5P0/exec?name=StableDiffusion_DiscordBOT

ダウンロードには次の情報が必要です

  • レベル1パスワード
    詳しくは利用規約をご確認ください

  • キーワード
    本記事をお買い上げいただくと有料区間に載せてあります。
    利用規約に同意の上お買い上げください。

ここから先は

68字 / 1画像

¥ 490

情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。