【Stable diffusion】 AUTOMATIC1111で800枚以上無制限に生成するCustom Scriptを導入

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の場合

  1. /path/to/stable-diffusion-webui/scriptsにスクリプトを作成.
  2. WebUIをリロード

Docker版AUTOMATIC1111の場合

  1. /path/to/stable-diffusion-webui-docker/data/config/auto/scriptsにスクリプトを作成.
  2. コンテナの再起動

Docker版AUTOMATIC1111については下記記事で説明しています.

実行方法

リロードするとScriptタブに下記のように「Run n times」が追加されています.

使い方は下記のように数値を入力するとその回数分,画像生成が設定に従って実行されます.

Seedのみランダム(-1)となり,その他の設定は引き継がれます.

参考

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Custom-Scripts

https://gist.github.com/camenduru/9ec5f8141db9902e375967e93250860f

よかったらシェアしてね!
目次