diff --git a/modules/extras.py b/modules/extras.py
index b4434bea3..bf9bbb957 100644
--- a/modules/extras.py
+++ b/modules/extras.py
@@ -12,11 +12,17 @@ from modules.ui_common import plaintext_to_html
import gradio as gr
import safetensors.torch
+def pnginfo_format_string(plain_text):
+ content = "
\n".join(html.escape(x) for x in str(plain_text).split('\n'))
+ return content
def pnginfo_format_setting(name, value):
cls_name = 'geninfo-setting-string' if value.startswith('"') else 'geninfo-setting-value'
return f"{html.escape(name)}: {html.escape(value)}"
+def pnginfo_format_quicklink(name):
+ return f"[{html.escape(name)}]"
+
def run_pnginfo(image):
if image is None:
return '', '', ''
@@ -28,16 +34,23 @@ def run_pnginfo(image):
if parser.valid:
info += f"""
parameters
-{plaintext_to_html(str(parser.positive))} +parameters
+{pnginfo_format_quicklink("All")} {pnginfo_format_quicklink("Positive")}"""
+ if parser.negative is not None:
+ info += f' {pnginfo_format_quicklink("Negative")}'
+ info += f""" {pnginfo_format_quicklink("Settings")}
+
{pnginfo_format_string(parser.positive)}
""" + if parser.negative is not None: + info += f"""
-Negative prompt:
{html.escape(str(parser.negative))}
+Negative prompt:
{pnginfo_format_string(parser.negative)}
" + info += "
" first = True for setting in parser.settings: if first: @@ -48,7 +61,7 @@ def run_pnginfo(image): info += "
" if parser.extra is not None: - info += f"{plaintext_to_html(str(parser.extra))}" + info += f"{pnginfo_format_string(parser.extra)}
" info += "")?(?P(?(2)(?:.)*?(?:(? { + el.classList.add('animate'); + }, 0); + } +} diff --git a/style.css b/style.css index 2e054614e..f1bf9b2f8 100644 --- a/style.css +++ b/style.css @@ -1709,6 +1709,15 @@ body.resizing .resize-handle { background-color: var(--pnginfo-string-hover); } +.pnginfo-page p span.geninfo-quick-link { + color: var(--pnginfo-string-color); + cursor: pointer; +} + +.pnginfo-page p span.geninfo-quick-link:hover { + background-color: var(--pnginfo-string-hover); +} + /* PngInfo animations */ @keyframes copyAnimationSettingValue { 0% { @@ -1740,4 +1749,9 @@ span.geninfo-setting-value.animate { span.geninfo-setting-string.animate { -webkit-animation: copyAnimationSettingString 1s 1; animation: copyAnimationSettingString 1s 1; +} + +span.geninfo-quick-link.animate { + -webkit-animation: copyAnimationSettingString 1s 1; + animation: copyAnimationSettingString 1s 1; } \ No newline at end of file