Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
Stable Diffusion Webui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Stable Diffusion Webui
Commits
0666f7c5
Commit
0666f7c5
authored
May 27, 2023
by
AUTOMATIC1111
Committed by
GitHub
May 27, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #10694 from akx/tooltipsies
Tooltip fixes & optimizations
parents
e8e7fe11
32b0f7c9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
27 deletions
+54
-27
javascript/hints.js
javascript/hints.js
+54
-27
No files found.
javascript/hints.js
View file @
0666f7c5
...
...
@@ -116,17 +116,25 @@ var titles = {
"
Negative Guidance minimum sigma
"
:
"
Skip negative prompt for steps where image is already mostly denoised; the higher this value, the more skips there will be; provides increased performance in exchange for minor quality reduction.
"
};
function
updateTooltip
ForSpan
(
span
)
{
if
(
span
.
title
)
return
;
// already has a title
function
updateTooltip
(
element
)
{
if
(
element
.
title
)
return
;
// already has a title
let
tooltip
=
localization
[
titles
[
span
.
textContent
]]
||
titles
[
span
.
textContent
];
let
text
=
element
.
textContent
;
let
tooltip
=
localization
[
titles
[
text
]]
||
titles
[
text
];
if
(
!
tooltip
)
{
tooltip
=
localization
[
titles
[
span
.
value
]]
||
titles
[
span
.
value
];
let
value
=
element
.
value
;
if
(
value
)
tooltip
=
localization
[
titles
[
value
]]
||
titles
[
value
];
}
if
(
!
tooltip
)
{
for
(
const
c
of
span
.
classList
)
{
// Gradio dropdown options have `data-value`.
let
dataValue
=
element
.
dataset
.
value
;
if
(
dataValue
)
tooltip
=
localization
[
titles
[
dataValue
]]
||
titles
[
dataValue
];
}
if
(
!
tooltip
)
{
for
(
const
c
of
element
.
classList
)
{
if
(
c
in
titles
)
{
tooltip
=
localization
[
titles
[
c
]]
||
titles
[
c
];
break
;
...
...
@@ -135,34 +143,53 @@ function updateTooltipForSpan(span) {
}
if
(
tooltip
)
{
span
.
title
=
tooltip
;
element
.
title
=
tooltip
;
}
}
function
updateTooltipForSelect
(
select
)
{
if
(
select
.
onchange
!=
null
)
return
;
// Nodes to check for adding tooltips.
const
tooltipCheckNodes
=
new
Set
();
// Timer for debouncing tooltip check.
let
tooltipCheckTimer
=
null
;
select
.
onchange
=
function
()
{
select
.
title
=
localization
[
titles
[
select
.
value
]]
||
titles
[
select
.
value
]
||
""
;
};
function
processTooltipCheckNodes
()
{
for
(
const
node
of
tooltipCheckNodes
)
{
updateTooltip
(
node
);
}
tooltipCheckNodes
.
clear
();
}
var
observedTooltipElements
=
{
SPAN
:
1
,
BUTTON
:
1
,
SELECT
:
1
,
P
:
1
};
onUiUpdate
(
function
(
m
)
{
m
.
forEach
(
function
(
record
)
{
record
.
addedNodes
.
forEach
(
function
(
node
)
{
if
(
observedTooltipElements
[
node
.
tagName
])
{
updateTooltipForSpan
(
node
);
}
if
(
node
.
tagName
==
"
SELECT
"
)
{
updateTooltipForSelect
(
node
);
onUiUpdate
(
function
(
mutationRecords
)
{
for
(
const
record
of
mutationRecords
)
{
if
(
record
.
type
===
"
childList
"
&&
record
.
target
.
classList
.
contains
(
"
options
"
)
)
{
// This smells like a Gradio dropdown menu having changed,
// so let's enqueue an update for the input element that shows the current value.
let
wrap
=
record
.
target
.
parentNode
;
let
input
=
wrap
?.
querySelector
(
"
input
"
);
if
(
input
)
{
input
.
title
=
""
;
// So we'll even have a chance to update it.
tooltipCheckNodes
.
add
(
input
);
}
if
(
node
.
querySelectorAll
)
{
node
.
querySelectorAll
(
'
span, button, select, p
'
).
forEach
(
updateTooltipForSpan
);
node
.
querySelectorAll
(
'
select
'
).
forEach
(
updateTooltipForSelect
);
}
for
(
const
node
of
record
.
addedNodes
)
{
if
(
node
.
nodeType
===
Node
.
ELEMENT_NODE
&&
!
node
.
classList
.
contains
(
"
hide
"
))
{
if
(
!
node
.
title
)
{
if
(
node
.
tagName
===
"
SPAN
"
||
node
.
tagName
===
"
BUTTON
"
||
node
.
tagName
===
"
P
"
||
node
.
tagName
===
"
INPUT
"
||
(
node
.
tagName
===
"
LI
"
&&
node
.
classList
.
contains
(
"
item
"
))
// Gradio dropdown item
)
{
tooltipCheckNodes
.
add
(
node
);
}
}
node
.
querySelectorAll
(
'
span, button, p
'
).
forEach
(
n
=>
tooltipCheckNodes
.
add
(
n
));
}
});
});
}
}
if
(
tooltipCheckNodes
.
size
)
{
clearTimeout
(
tooltipCheckTimer
);
tooltipCheckTimer
=
setTimeout
(
processTooltipCheckNodes
,
1000
);
}
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment