Add script callback for fixing infotext parameters
This commit is contained in:
parent
d7aec59c4e
commit
6c88eaed4f
2 changed files with 21 additions and 2 deletions
|
@ -7,7 +7,7 @@ from pathlib import Path
|
||||||
|
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
from modules.shared import script_path
|
from modules.shared import script_path
|
||||||
from modules import shared, ui_tempdir
|
from modules import shared, ui_tempdir, script_callbacks
|
||||||
import tempfile
|
import tempfile
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
@ -298,6 +298,7 @@ def connect_paste(button, paste_fields, input_comp, jsfunc=None):
|
||||||
prompt = file.read()
|
prompt = file.read()
|
||||||
|
|
||||||
params = parse_generation_parameters(prompt)
|
params = parse_generation_parameters(prompt)
|
||||||
|
script_callbacks.infotext_pasted_callback(prompt, params)
|
||||||
res = []
|
res = []
|
||||||
|
|
||||||
for output, key in paste_fields:
|
for output, key in paste_fields:
|
||||||
|
|
|
@ -2,7 +2,7 @@ import sys
|
||||||
import traceback
|
import traceback
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
import inspect
|
import inspect
|
||||||
from typing import Optional
|
from typing import Optional, Dict, Any
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from gradio import Blocks
|
from gradio import Blocks
|
||||||
|
@ -71,6 +71,7 @@ callback_map = dict(
|
||||||
callbacks_before_component=[],
|
callbacks_before_component=[],
|
||||||
callbacks_after_component=[],
|
callbacks_after_component=[],
|
||||||
callbacks_image_grid=[],
|
callbacks_image_grid=[],
|
||||||
|
callbacks_infotext_pasted=[],
|
||||||
callbacks_script_unloaded=[],
|
callbacks_script_unloaded=[],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -172,6 +173,14 @@ def image_grid_callback(params: ImageGridLoopParams):
|
||||||
report_exception(c, 'image_grid')
|
report_exception(c, 'image_grid')
|
||||||
|
|
||||||
|
|
||||||
|
def infotext_pasted_callback(infotext: str, params: Dict[str, Any]):
|
||||||
|
for c in callback_map['callbacks_infotext_pasted']:
|
||||||
|
try:
|
||||||
|
c.callback(infotext, params)
|
||||||
|
except Exception:
|
||||||
|
report_exception(c, 'infotext_pasted')
|
||||||
|
|
||||||
|
|
||||||
def script_unloaded_callback():
|
def script_unloaded_callback():
|
||||||
for c in reversed(callback_map['callbacks_script_unloaded']):
|
for c in reversed(callback_map['callbacks_script_unloaded']):
|
||||||
try:
|
try:
|
||||||
|
@ -290,6 +299,15 @@ def on_image_grid(callback):
|
||||||
add_callback(callback_map['callbacks_image_grid'], callback)
|
add_callback(callback_map['callbacks_image_grid'], callback)
|
||||||
|
|
||||||
|
|
||||||
|
def on_infotext_pasted(callback):
|
||||||
|
"""register a function to be called before applying an infotext.
|
||||||
|
The callback is called with two arguments:
|
||||||
|
- infotext: str - raw infotext.
|
||||||
|
- result: Dict[str, any] - parsed infotext parameters.
|
||||||
|
"""
|
||||||
|
add_callback(callback_map['callbacks_infotext_pasted'], callback)
|
||||||
|
|
||||||
|
|
||||||
def on_script_unloaded(callback):
|
def on_script_unloaded(callback):
|
||||||
"""register a function to be called before the script is unloaded. Any hooks/hijacks/monkeying about that
|
"""register a function to be called before the script is unloaded. Any hooks/hijacks/monkeying about that
|
||||||
the script did should be reverted here"""
|
the script did should be reverted here"""
|
||||||
|
|
Loading…
Reference in a new issue