44from pathlib import Path
55from typing import Any
66
7- from dynamicprompts .wildcards import WildcardManager
87from modules import script_callbacks
98from modules .generation_parameters_copypaste import parse_generation_parameters
109from modules .script_callbacks import ImageSaveParams
1110
12- from sd_dynamic_prompts .pnginfo_saver import PngInfoSaver , PromptTemplates
13- from sd_dynamic_prompts .prompt_writer import PromptWriter
11+ from sd_dynamic_prompts .pnginfo_saver import PromptTemplates
12+ from sd_dynamic_prompts .script_protocol import ScriptProtocol
1413from sd_dynamic_prompts .settings import on_ui_settings
1514from sd_dynamic_prompts .wildcards_tab import initialize as initialize_wildcards_tab
1615
1716logger = logging .getLogger (__name__ )
1817
1918
20- def register_pnginfo_saver (pnginfo_saver : PngInfoSaver ) -> None :
19+ def register_pnginfo_saver (script_protocol : ScriptProtocol ) -> None :
2120 def on_save (image_save_params : ImageSaveParams ) -> None :
21+ if not script_protocol .is_enabled :
22+ return
23+
2224 try :
2325 if image_save_params .p :
2426 png_info = image_save_params .pnginfo ["parameters" ]
@@ -27,7 +29,7 @@ def on_save(image_save_params: ImageSaveParams) -> None:
2729 negative_template = image_save_params .p .negative_prompt ,
2830 )
2931
30- updated_png_info = pnginfo_saver .update_pnginfo (
32+ updated_png_info = script_protocol . pnginfo_saver .update_pnginfo (
3133 png_info ,
3234 image_prompts ,
3335 )
@@ -38,26 +40,32 @@ def on_save(image_save_params: ImageSaveParams) -> None:
3840 script_callbacks .on_before_image_saved (on_save )
3941
4042
41- def register_prompt_writer (prompt_writer : PromptWriter ) -> None :
43+ def register_prompt_writer (script_protocol : ScriptProtocol ) -> None :
4244 def on_save (image_save_params : ImageSaveParams ) -> None :
45+ if not script_protocol .is_enabled :
46+ return
47+
4348 image_name = Path (image_save_params .filename )
4449 prompt_filename = image_name .with_suffix (".csv" )
45- prompt_writer .write_prompts (prompt_filename )
50+ script_protocol . prompt_writer .write_prompts (prompt_filename )
4651
4752 script_callbacks .on_before_image_saved (on_save )
4853
4954
50- def register_on_infotext_pasted (pnginfo_saver : PngInfoSaver ) -> None :
55+ def register_on_infotext_pasted (script_protocol : ScriptProtocol ) -> None :
5156 def on_infotext_pasted (infotext : str , parameters : dict [str , Any ]) -> None :
57+ if not script_protocol .is_enabled :
58+ return
59+
5260 new_parameters = {}
5361 if "Prompt" in parameters and "Template:" in parameters ["Prompt" ]:
54- parameters = pnginfo_saver .strip_template_info (parameters )
62+ parameters = script_protocol . pnginfo_saver .strip_template_info (parameters )
5563 new_parameters = parse_generation_parameters (parameters ["Prompt" ])
5664 elif (
5765 "Negative prompt" in parameters
5866 and "Template:" in parameters ["Negative prompt" ]
5967 ):
60- parameters = pnginfo_saver .strip_template_info (parameters )
68+ parameters = script_protocol . pnginfo_saver .strip_template_info (parameters )
6169 new_parameters = parse_generation_parameters (parameters ["Negative prompt" ])
6270 new_parameters ["Negative prompt" ] = new_parameters ["Prompt" ]
6371 new_parameters ["Prompt" ] = parameters ["Prompt" ]
@@ -66,9 +74,12 @@ def on_infotext_pasted(infotext: str, parameters: dict[str, Any]) -> None:
6674 script_callbacks .on_infotext_pasted (on_infotext_pasted )
6775
6876
69- def register_settings ():
70- script_callbacks .on_ui_settings (on_ui_settings )
77+ def register_settings (script_protocol : ScriptProtocol ) -> None :
78+ def on_ui_settings_callback ():
79+ on_ui_settings (script_protocol )
80+
81+ script_callbacks .on_ui_settings (on_ui_settings_callback )
7182
7283
73- def register_wildcards_tab (wildcard_manager : WildcardManager ) :
74- initialize_wildcards_tab (wildcard_manager )
84+ def register_wildcards_tab (script_protocol : ScriptProtocol ) -> None :
85+ initialize_wildcards_tab (script_protocol . wildcard_manager )
0 commit comments