かめ。ブログ

Stable Diffusionのプロンプトをスプレッドシートで管理、Google Colabで連携する方法

2023年3月14日
2023年3月14日

目次

プロンプト(prompt)を色々いじっていると、だんだんどんなプロンプトだったかわからなくなってきたりするのでスプレッドシートでぽちぽちとできたら便利だなと思ったので作ってみました。

使うスプレッドシートとGoogle Colabのファイル

プロンプトをスプレッドシートで管理する

左上のファイルから、「ファイル→コピーを作成」を自分のドライブにコピーします。

スプレッドシートについては下記を参考にさせていただきました。
Stable DiffusionやNovelAIなどで使う呪文を集めたスプレッドシート(またはテキスト)|火月@ryon3kag|note

スプレッドシートの使い方の説明

入力シート

主にこのシートを触ってプロンプトを調整します。
描写を選択すると単語の欄に英語表記がが表示されます。
注目度を大きくすると、その単語が強調されます。
(多くても1.3ぐらいまでにしておきましょう。
それ以上に増やしすぎると、絵が崩れてしまいがちです。)

下記のStable Diffusionの構文に合わせて、promptを生成しています。
stable-diffusionでの作成ポイントまとめ


入力の右側の下記にpromptとnegativeが
Google Colabに読み込まれるセルになっています。

お試ししたい場合はbasic_tagに書き込むとpromptの最初に追加されるので、単語に追加するほどでもないものなどはここに追加すると良いかなと思います。

デフォルト

デフォルトに入れる「プロンプト」と「ネガティブプロンプト」を管理しています。
基本的に入れておきたい、プロンプトはここで管理しましょう。

描写マスタ

プロンプトの元となる、項目を管理しています。
描写を追加したい場合はこのシートに追加していってください。
英語がわからない場合は、下記を使うと良いかなと思います。
DeepL翻訳:高精度な翻訳ツール

ちょっと大人なpromptもあるので、使わないって方は消したり
自由に追加したり自分好みのリストを作ってください。

ネガティブマスタ

描写マスタのネガティブ版。
ネガティブプロンプトの元となる、項目を管理しています。
追加したい場合は、描写マスタのやり方と同じです。

ジャンルマスタ

プロンプトの元となる、ジャンルを管理しています。
描写マスタと、ネガティブマスタの「ジャンル」を管理しています。
これを管理することでカテゴリが分かりやすくなるようにしています。

Google Colabから上のスプレッドシートをつなげる

左上のファイルから「ドライブにコピーを保存」で自分のドライブに保存して使ってください。

下記を修正してください

自分で立ち上げたアプリのURLと、上でコピーしたスプレッドシートのURLの部分を変更してください。

## アプリURL
url = "https://test.gradio.live"
## スプレッドシートURL
spreadsheetUrl = "https://docs.google.com/spreadsheets/d/1Rd0nulTYnnCJ-01gUp4KcBbE-_qsTAEiDpjFEnoU7FQ"


立ち上げているアプリはapiモードで立ち上げておく必要があるので注意

下記記事にapiモードでの立ち上げ方は書いています。
Stable DiffusionをM1 Macで使ったりGoogle Colabで使ったり

Google Colabでapiモードで立ち上げたい場合は、前回記事にしたのでそちらを参考にしてください。
Stable DiffusionをGoogle Colabでモデルを選んでダウンロードしたり使いやすくする

あとは下記に従って上から順番に実行してください

GoogleDriveとつなげます

outputsフォルダに日付のフォルダをつくって保存するようにしています。
好みで変更してください。画像生成後は、ここで指定したドライブにどんどん保存されていくので容量が圧迫されていくので注意です。

from google.colab import drive
drivePath = '/content/drive'
drive.mount(drivePath)

## 自分のドライブの好きなフォルダを指定
dirName = 'outputs'

from datetime import datetime
date = datetime.now().strftime("%Y%m%d")

OUTPUT_DIR = drivePath + '/MyDrive/' + dirName + '/' + date
!mkdir -v $OUTPUT_DIR

import os
os.chdir(OUTPUT_DIR)


スプレッドシートの認証

# スプレッドシート認証
from google.colab import auth
auth.authenticate_user()
import gspread
from google.auth import default
creds, _ = default()
gc = gspread.authorize(creds)


アプリURLとスプレッドシートURLを自分のものに変更したあと実行してください。

(変更したあとに実行するのを忘れがちなので注意です。左からコードの実行を押してください。)

## アプリURL
url = "https://test.gradio.live"

## スプレッドシートURL
spreadsheetUrl = "https://docs.google.com/spreadsheets/d/1sDCA1I2xPYbgv2Tsbyp4-vFnhSTScThVE2ws0nCQpFM"

seed = -1
width = 600
height = 900
steps = 25
count = 1

latest_seed = -1


画像を生成する

最後に「画像を生成する」をクリックするとスプレッドシートから読み取ったpromptで生成が始まります。

Google Colabは使用制限があるので、このファイルを高スペックで立ち上げても、動作に影響はないため最低スペックで起動しましょう。

注意点

  • モデル(checkpoint)やvaeは画面から選択する必要があります。
  • アプリが落ちた場合はアドレスが変わってしまうので再度アプリのアドレスを書き換えて実行してください。


まとめ

少しめんどくさい部分もありますが
この仕組みにしておくとスマホからもぽちぽち遊べたりするので便利です!

Aiの進化は毎日すごく早いので、色々と試しながら
どんどん取り入れていきたいですねー。

引き続き楽しいことがあれば共有していきます。



関連する記事