7
7
from fastapi import FastAPI
8
8
from gradio import Blocks
9
9
10
+
10
11
def report_exception (c , job ):
11
12
print (f"Error executing callback { job } for { c .script } " , file = sys .stderr )
12
13
print (traceback .format_exc (), file = sys .stderr )
@@ -45,22 +46,29 @@ def __init__(self, x, image_cond, sigma, sampling_step, total_sampling_steps):
45
46
"""Total number of sampling steps planned"""
46
47
47
48
49
+ class UiTrainTabParams :
50
+ def __init__ (self , txt2img_preview_params ):
51
+ self .txt2img_preview_params = txt2img_preview_params
52
+
53
+
48
54
ScriptCallback = namedtuple ("ScriptCallback" , ["script" , "callback" ])
49
55
callback_map = dict (
50
56
callbacks_app_started = [],
51
57
callbacks_model_loaded = [],
52
58
callbacks_ui_tabs = [],
59
+ callbacks_ui_train_tabs = [],
53
60
callbacks_ui_settings = [],
54
61
callbacks_before_image_saved = [],
55
62
callbacks_image_saved = [],
56
- callbacks_cfg_denoiser = []
63
+ callbacks_cfg_denoiser = [],
57
64
)
58
65
59
66
60
67
def clear_callbacks ():
61
68
for callback_list in callback_map .values ():
62
69
callback_list .clear ()
63
70
71
+
64
72
def app_started_callback (demo : Optional [Blocks ], app : FastAPI ):
65
73
for c in callback_map ['callbacks_app_started' ]:
66
74
try :
@@ -79,7 +87,7 @@ def model_loaded_callback(sd_model):
79
87
80
88
def ui_tabs_callback ():
81
89
res = []
82
-
90
+
83
91
for c in callback_map ['callbacks_ui_tabs' ]:
84
92
try :
85
93
res += c .callback () or []
@@ -89,6 +97,14 @@ def ui_tabs_callback():
89
97
return res
90
98
91
99
100
+ def ui_train_tabs_callback (params : UiTrainTabParams ):
101
+ for c in callback_map ['callbacks_ui_train_tabs' ]:
102
+ try :
103
+ c .callback (params )
104
+ except Exception :
105
+ report_exception (c , 'callbacks_ui_train_tabs' )
106
+
107
+
92
108
def ui_settings_callback ():
93
109
for c in callback_map ['callbacks_ui_settings' ]:
94
110
try :
@@ -169,6 +185,13 @@ def on_ui_tabs(callback):
169
185
add_callback (callback_map ['callbacks_ui_tabs' ], callback )
170
186
171
187
188
+ def on_ui_train_tabs (callback ):
189
+ """register a function to be called when the UI is creating new tabs for the train tab.
190
+ Create your new tabs with gr.Tab.
191
+ """
192
+ add_callback (callback_map ['callbacks_ui_train_tabs' ], callback )
193
+
194
+
172
195
def on_ui_settings (callback ):
173
196
"""register a function to be called before UI settings are populated; add your settings
174
197
by using shared.opts.add_option(shared.OptionInfo(...)) """
0 commit comments