Stable DiffusionをAUTOMATIC1111で使用している場合,Batch countとBatch sizeを利用することで一度に最大800枚の画像を生成することができます.
「800枚じゃ物足りない」「寝ている間にもっと出力したい」などの要求がある場合は,別の方法を検討する必要があります.
この記事では,枚数ほぼ無制限に出力することができる”Custom Script”の導入方法を示します.
目次
Custom Scripts
Custom Scriptsは,AUTOMATIC1111が用意しているPython用のスクリプトツールです.
modules.scriptを継承してプログラムを記述し,AUTOMATIC1111で実行します.
N回実行するプログラムが下記の通りです.
run_n_times.py
import math
import os
import sys
import traceback
import modules.scripts as scripts
import gradio as gr
from modules.processing import Processed, process_images
class Script(scripts.Script):
def title(self):
return "Run n times"
def ui(self, is_img2img):
n = gr.Textbox(label="n")
return [n]
def run(self, p, n):
for x in range(int(n)):
p.seed = -1
proc = process_images(p)
image = proc.images
return Processed(p, image, p.seed, proc.info)
Custom Scriptsの導入方法
通常のAUTOMATIC1111の場合
/path/to/stable-diffusion-webui/scripts
にスクリプトを作成.- WebUIをリロード
Docker版AUTOMATIC1111の場合
/path/to/stable-diffusion-webui-docker/data/config/auto/scripts
にスクリプトを作成.- コンテナの再起動
Docker版AUTOMATIC1111については下記記事で説明しています.
【Stable diffusion】 Docker版のStable Diffusion web uiの使い方
Stable Diffusionについて Stable Diffusionは画像生成AIモデルです.ほとんどの場合,WebUIを用いて利用されます. Stable Diffusionを利用したWebUIは下記のようなも…
実行方法
リロードするとScriptタブに下記のように「Run n times」が追加されています.
使い方は下記のように数値を入力するとその回数分,画像生成が設定に従って実行されます.
Seedのみランダム(-1)となり,その他の設定は引き継がれます.
参考
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Custom-Scripts
https://gist.github.com/camenduru/9ec5f8141db9902e375967e93250860f