Commit 6c88eaed authored by space-nuko's avatar space-nuko
Browse files

Add script callback for fixing infotext parameters

parent d7aec59c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ from pathlib import Path

import gradio as gr
from modules.shared import script_path
from modules import shared, ui_tempdir
from modules import shared, ui_tempdir, script_callbacks
import tempfile
from PIL import Image

@@ -298,6 +298,7 @@ def connect_paste(button, paste_fields, input_comp, jsfunc=None):
                    prompt = file.read()

        params = parse_generation_parameters(prompt)
        script_callbacks.infotext_pasted_callback(prompt, params)
        res = []

        for output, key in paste_fields:
+19 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ import sys
import traceback
from collections import namedtuple
import inspect
from typing import Optional
from typing import Optional, Dict, Any

from fastapi import FastAPI
from gradio import Blocks
@@ -71,6 +71,7 @@ callback_map = dict(
    callbacks_before_component=[],
    callbacks_after_component=[],
    callbacks_image_grid=[],
    callbacks_infotext_pasted=[],
    callbacks_script_unloaded=[],
)

@@ -172,6 +173,14 @@ def image_grid_callback(params: ImageGridLoopParams):
            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():
    for c in reversed(callback_map['callbacks_script_unloaded']):
        try:
@@ -290,6 +299,15 @@ def on_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):
    """register a function to be called before the script is unloaded. Any hooks/hijacks/monkeying about that
    the script did should be reverted here"""