mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-12-29 19:05:05 +08:00
Prompts from file. How to? #248
This commit is contained in:
parent
482a6ce8cb
commit
095830e1e8
42
scripts/prompts_from_file.py
Normal file
42
scripts/prompts_from_file.py
Normal file
@ -0,0 +1,42 @@
|
||||
import math
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
import modules.scripts as scripts
|
||||
import gradio as gr
|
||||
|
||||
from modules.processing import Processed, process_images
|
||||
from PIL import Image
|
||||
from modules.shared import opts, cmd_opts, state
|
||||
|
||||
|
||||
class Script(scripts.Script):
|
||||
def title(self):
|
||||
return "Prompts from file"
|
||||
|
||||
def ui(self, is_img2img):
|
||||
file = gr.File(label="File with inputs", type='bytes')
|
||||
|
||||
return [file]
|
||||
|
||||
def run(self, p, data: bytes):
|
||||
lines = [x.strip() for x in data.decode('utf8', errors='ignore').split("\n")]
|
||||
lines = [x for x in lines if len(x) > 0]
|
||||
|
||||
batch_count = math.ceil(len(lines) / p.batch_size)
|
||||
print(f"Will process {len(lines)} images in {batch_count} batches.")
|
||||
|
||||
p.batch_count = 1
|
||||
p.do_not_save_grid = True
|
||||
|
||||
state.job_count = batch_count
|
||||
|
||||
images = []
|
||||
for batch_no in range(batch_count):
|
||||
state.job = f"{batch_no} out of {batch_count}"
|
||||
p.prompt = lines[batch_no*p.batch_size:(batch_no+1)*p.batch_size]
|
||||
proc = process_images(p)
|
||||
images += proc.images
|
||||
|
||||
return Processed(p, images, p.seed, "")
|
Loading…
Reference in New Issue
Block a user