update prompt token counts after using the paste params button
This commit is contained in:
parent
f91068f426
commit
399720dac2
@ -191,6 +191,28 @@ function confirm_clear_prompt(prompt, negative_prompt) {
|
|||||||
return [prompt, negative_prompt]
|
return [prompt, negative_prompt]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
promptTokecountUpdateFuncs = {}
|
||||||
|
|
||||||
|
function recalculatePromptTokens(name){
|
||||||
|
if(promptTokecountUpdateFuncs[name]){
|
||||||
|
promptTokecountUpdateFuncs[name]()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function recalculate_prompts_txt2img(){
|
||||||
|
recalculatePromptTokens('txt2img_prompt')
|
||||||
|
recalculatePromptTokens('txt2img_neg_prompt')
|
||||||
|
return args_to_array(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
function recalculate_prompts_img2img(){
|
||||||
|
recalculatePromptTokens('img2img_prompt')
|
||||||
|
recalculatePromptTokens('img2img_neg_prompt')
|
||||||
|
return args_to_array(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
opts = {}
|
opts = {}
|
||||||
onUiUpdate(function(){
|
onUiUpdate(function(){
|
||||||
if(Object.keys(opts).length != 0) return;
|
if(Object.keys(opts).length != 0) return;
|
||||||
@ -232,14 +254,12 @@ onUiUpdate(function(){
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
prompt.parentElement.insertBefore(counter, prompt)
|
prompt.parentElement.insertBefore(counter, prompt)
|
||||||
counter.classList.add("token-counter")
|
counter.classList.add("token-counter")
|
||||||
prompt.parentElement.style.position = "relative"
|
prompt.parentElement.style.position = "relative"
|
||||||
|
|
||||||
textarea.addEventListener("input", function(){
|
promptTokecountUpdateFuncs[id] = function(){ update_token_counter(id_button); }
|
||||||
update_token_counter(id_button);
|
textarea.addEventListener("input", promptTokecountUpdateFuncs[id]);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
registerTextarea('txt2img_prompt', 'txt2img_token_counter', 'txt2img_token_button')
|
registerTextarea('txt2img_prompt', 'txt2img_token_counter', 'txt2img_token_button')
|
||||||
@ -273,7 +293,7 @@ onOptionsChanged(function(){
|
|||||||
|
|
||||||
let txt2img_textarea, img2img_textarea = undefined;
|
let txt2img_textarea, img2img_textarea = undefined;
|
||||||
let wait_time = 800
|
let wait_time = 800
|
||||||
let token_timeout;
|
let token_timeouts = {};
|
||||||
|
|
||||||
function update_txt2img_tokens(...args) {
|
function update_txt2img_tokens(...args) {
|
||||||
update_token_counter("txt2img_token_button")
|
update_token_counter("txt2img_token_button")
|
||||||
@ -290,9 +310,9 @@ function update_img2img_tokens(...args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function update_token_counter(button_id) {
|
function update_token_counter(button_id) {
|
||||||
if (token_timeout)
|
if (token_timeouts[button_id])
|
||||||
clearTimeout(token_timeout);
|
clearTimeout(token_timeouts[button_id]);
|
||||||
token_timeout = setTimeout(() => gradioApp().getElementById(button_id)?.click(), wait_time);
|
token_timeouts[button_id] = setTimeout(() => gradioApp().getElementById(button_id)?.click(), wait_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
function restart_reload(){
|
function restart_reload(){
|
||||||
|
@ -130,7 +130,7 @@ def connect_paste_params_buttons():
|
|||||||
)
|
)
|
||||||
|
|
||||||
if binding.source_text_component is not None and fields is not None:
|
if binding.source_text_component is not None and fields is not None:
|
||||||
connect_paste(binding.paste_button, fields, binding.source_text_component, binding.override_settings_component)
|
connect_paste(binding.paste_button, fields, binding.source_text_component, binding.override_settings_component, binding.tabname)
|
||||||
|
|
||||||
if binding.source_tabname is not None and fields is not None:
|
if binding.source_tabname is not None and fields is not None:
|
||||||
paste_field_names = ['Prompt', 'Negative prompt', 'Steps', 'Face restoration'] + (["Seed"] if shared.opts.send_seed else [])
|
paste_field_names = ['Prompt', 'Negative prompt', 'Steps', 'Face restoration'] + (["Seed"] if shared.opts.send_seed else [])
|
||||||
@ -325,7 +325,7 @@ def create_override_settings_dict(text_pairs):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
def connect_paste(button, paste_fields, input_comp, override_settings_component, jsfunc=None):
|
def connect_paste(button, paste_fields, input_comp, override_settings_component, tabname):
|
||||||
def paste_func(prompt):
|
def paste_func(prompt):
|
||||||
if not prompt and not shared.cmd_opts.hide_ui_dir_config:
|
if not prompt and not shared.cmd_opts.hide_ui_dir_config:
|
||||||
filename = os.path.join(data_path, "params.txt")
|
filename = os.path.join(data_path, "params.txt")
|
||||||
@ -390,7 +390,7 @@ def connect_paste(button, paste_fields, input_comp, override_settings_component,
|
|||||||
|
|
||||||
button.click(
|
button.click(
|
||||||
fn=paste_func,
|
fn=paste_func,
|
||||||
_js=jsfunc,
|
_js=f"recalculate_prompts_{tabname}",
|
||||||
inputs=[input_comp],
|
inputs=[input_comp],
|
||||||
outputs=[x[0] for x in paste_fields],
|
outputs=[x[0] for x in paste_fields],
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user