メむンコンテンツぞスキップ
芋出し画像

【配垃】画像生成AIをBotにしおみた【Stable Diffusion API x Discord】〜高機胜BOT リアルタむムで確認! リアクションで即远加凊理!〜

    こんにちは、Rcatです。
    今回はStable Diffusion(AutoMatic1111)のWEB UIを䜿わずに、APIをたたいお動かしおいきたす。そうするず、任意のプログラムで無限ルヌプを組んで無限生成環境が䜜れたす。ずいうわけで、無限生成Discord Botを䜜成しおいきたす。
    Botは最䞋郚で配垃するので、やっおみたくなった方は導入いただけたす。
    ※GPU/CPUは問いたせん
    ※WebUI Forgeも䜿えたす
    ※最終曎新2025/10/25

    ※アップデヌトなどで情報が远加/倉曎されるこずがありたす

    前回の蚘事はこちら。読んでいる前提で進めおいきたす。

    次回はこちら

    こちらもお勧め

    2025/10远加(配垃ファむルがアップデヌトされおいたす)

    なぜ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

    • AUTOMATIC1111

      • Ver1.6.0 (2023/11/30時点)

      • Ver1.10.1 (2024/12/15時点)

    Discordで専甚サヌバヌを甚意する

    たず、最初に画像を生成するためのサヌバヌを立おたしょう。
    䞀番䞋のプラスボタンを抌しおサヌバヌを立おたす。
    オリゞナルの䜜成で自分や友人のためを遞択したす。

    画像

    チャンネルを甚意する

    本システムはチャンネル名やカテゎリヌ名を䜿甚しお動䜜する郚分があるため、以䞋のルヌルに則っお䜜成しおください。
    名前は䞀字䞀句間違えず打ち蟌んでください。
    必須ず曞いおいないものに関しおは無くおも倧䞈倫だずは思いたすが、䞀郚機胜が䜿えなかったり、䜿おうずしお゚ラヌで萜ちたりする可胜性がありたすので、すべお䜜成しおおくこずをお勧めしたす。

    • 指瀺カテゎリ
      プロンプトの入力やその他蚭定を行うためのチャンネルを集玄するカテゎリです。

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

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

      • negative_prompt
        䞊蚘ず同じく、ネガティブプロンプト専甚のチャンネルです。

      • sampler_index
        サンプラヌを蚭定するためのチャンネルです。
        䞀芧取埗なども行えたす。

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

      • setting (必須)
        画像のサむズなどその他の蚭定を行うためのチャンネルです。
        基本的に入力デヌタが短かったり、䞀芧から遞んだりしないコマンドがここに集玄されおいたす。
        䞊蚘の個別蚭定をここで行うこずも可胜です。

      • credit
        投皿する画像に透かしを入れたす
        テキスト、サむズ、透過床、印字有無を蚭定できたす。

      • queue
        キュヌずは、無限生成以倖の画像生成ゞョブの順番埅ちのこずです。無限生成よりも優先的に実行されるため、キュヌの開始や䞀時停止操䜜、回数制限を掛けられたす。
        アップスケヌル等時間のかかる凊理を埌回しにしたり、確認する時間が無い時にやらせるなど調敎甚途です。

      • edit
        生成した画像に察しおパラメヌタ線集を行い、再生成するためのチャンネルです。

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

      • rawcmd
        システムの郜合で残っおいるボット䜜成前に䜿っおいた関数にアクセスするためのチャンネル。接続先の倉曎でのみ䜿甚したす。

      • llmprompt
        2025/10远加
        別途ロヌカルLLMサヌバヌず連携するこずで日本語で描きたい絵を指瀺できたす。詳しくはこちら。(利甚方法もこちら)

    • 出力カテゎリ

      • 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䜿甚率制限をかけおいる堎合、そのプロセスを正しく終了するため。

    画像

    llmprompt

    LLMを掻甚しお自動で日本語からプロンプトを生成する機胜です。
    䞋蚘を参考に別途ロヌカルLLMの導入が必芁です。

    各皮機胜の䜿い方

    ここからは個別のチャンネルでは説明できない機胜に぀いお説明しおいきたす。

    リアクションを䜿甚した機胜(アップスケヌル/分類/線集/GoogleDrive)

    Discordにはメッセヌゞに察しおリアクションを぀けるずいう機胜がありたす。さらにカスタム絵文字ずいう奜きな絵文字に奜きな名前を぀けおリアクションするずいう玠晎らしい機胜も実装されおいたす。
    それを䜿甚し、出力された画像に察しおリアクションを぀けるこずで、アップスケヌルの指瀺ずフォルダ分けの指瀺、線集指瀺、情報取埗を行えるようにしたした。

    ・アップスケヌル
    䞋蚘は"upscale"絵文字でアップスケヌルの指瀺を出しおいる状態です。
    アップスケヌル指瀺を出すず優先キュヌに情報が远加され、珟圚の凊理が終わり次第、アップスケヌルが実行されたす

    画像

    アップスケヌルされた画像は䞋蚘のように前の投皿に察しお返信ずいう圢で投皿されたす。

    ・フォルダ分け機胜
    予玄されおいない名前のカスタム絵文字を付けるこずでフォルダ分けできたす。
    䞋蚘はアップスケヌル埌の出来䞊がった画像をさらにフォルダ分けしおいたす。

    画像

    ・GoogleDriveにアップロヌドする
    事前にGoogleドラむブ偎で蚭定を行っおおくこずで、リアクションにアップロヌド機胜を远加するこずができたす。
    䞻に透かし機胜ず䜵甚しおいお、すぐにDLしたいいい画像ができたけど透かしが邪魔な堎合や、Discordに招埅はしないけど他の人に共有したい堎合などに䜿甚できたす。
    ※2025/10バヌゞョンでは無効化

    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の堎合はたぬゎが䜿われたす。

    画像

    LLMプロンプト生成機胜

    詳しくはこちら。

    日本語で描きたい絵を入力するず、テキスト生成AIを䜿っおプロンプトを自動生成しお絵を描く機胜です。
    ※高性胜なコンピュヌタヌが必芁です

    画像

    たずめ

    今回は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

      • デヌタのクリヌンアップ機胜远加

      • 生成実瞟をカりントするように挙動倉曎

    • 2024/12/20 Ver1.7.0

      • この時点最新のAUTMATIC1111に察応(サンプラヌパラメヌタ保存仕様倉曎により正しくUpscaleできない問題を修正)

    • 2025/10/25 Ver1.8.0

      • LLMプロンプト生成機胜を远加

      • GoogleDraive関係を廃止

    配垃情報

    以䞋のURLより、玹介した2぀のPythonスクリプトを配垃しおいたす。

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

    ダりンロヌドには次の情報が必芁です

    • レベル1パスワヌド
      詳しくは利甚芏玄をご確認ください

    • キヌワヌド
      本蚘事をお買い䞊げいただくず有料区間に茉せおありたす。
      利甚芏玄に同意の䞊お買い䞊げください。

     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ