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
e34949be
Commit
e34949be
authored
Oct 06, 2023
by
missionfloyd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Edit-attention fixes
parent
7d60076b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
21 deletions
+35
-21
javascript/edit-attention.js
javascript/edit-attention.js
+35
-21
No files found.
javascript/edit-attention.js
View file @
e34949be
...
...
@@ -26,6 +26,7 @@ function keyupEditAttention(event) {
// Set the selection to the text between the parenthesis
const
parenContent
=
text
.
substring
(
beforeParen
+
1
,
selectionStart
+
afterParen
);
if
(
!
/.*:
[\d
.
]
+/
.
test
(
parenContent
))
return
false
;
const
lastColon
=
parenContent
.
lastIndexOf
(
"
:
"
);
selectionStart
=
beforeParen
+
1
;
selectionEnd
=
selectionStart
+
lastColon
;
...
...
@@ -66,40 +67,53 @@ function keyupEditAttention(event) {
var
closeCharacter
=
'
)
'
;
var
delta
=
opts
.
keyedit_precision_attention
;
if
(
selectionStart
>
0
&&
text
[
selectionStart
-
1
]
==
'
<
'
)
{
if
(
selectionStart
>
0
&&
/<.*:
[\d
.
]
+>/
.
test
(
text
.
slice
(
selectionStart
-
1
,
selectionEnd
+
text
.
slice
(
selectionEnd
).
indexOf
(
"
>
"
)
+
1
))
)
{
closeCharacter
=
'
>
'
;
delta
=
opts
.
keyedit_precision_extra
;
}
else
if
(
selectionStart
==
0
||
text
[
selectionStart
-
1
]
!=
"
(
"
)
{
}
else
if
(
selectionStart
>
0
&&
/
\(
.*
\)
|
\[
.*
\]
/
.
test
(
text
.
slice
(
selectionStart
-
1
,
selectionEnd
+
1
)))
{
closeCharacter
=
null
;
if
(
isPlus
)
{
text
=
text
.
slice
(
0
,
selectionStart
)
+
text
[
selectionStart
-
1
]
+
text
.
slice
(
selectionStart
,
selectionEnd
)
+
text
[
selectionEnd
]
+
text
.
slice
(
selectionEnd
);
selectionStart
++
;
selectionEnd
++
;
}
else
{
text
=
text
.
slice
(
0
,
selectionStart
-
1
)
+
text
.
slice
(
selectionStart
,
selectionEnd
)
+
text
.
slice
(
selectionEnd
+
1
);
selectionStart
--
;
selectionEnd
--
;
}
}
else
if
(
selectionStart
==
0
||
!
/
\(
.*:
[\d
.
]
+
\)
/
.
test
(
text
.
slice
(
selectionStart
-
1
,
selectionEnd
+
text
.
slice
(
selectionEnd
).
indexOf
(
"
)
"
)
+
1
)))
{
// do not include spaces at the end
while
(
selectionEnd
>
selectionStart
&&
text
[
selectionEnd
-
1
]
==
'
'
)
{
selectionEnd
-=
1
;
selectionEnd
--
;
}
if
(
selectionStart
==
selectionEnd
)
{
return
;
}
text
=
text
.
slice
(
0
,
selectionStart
)
+
"
(
"
+
text
.
slice
(
selectionStart
,
selectionEnd
)
+
"
:1.0)
"
+
text
.
slice
(
selectionEnd
);
selectionStart
+=
1
;
selectionEnd
+=
1
;
selectionStart
++
;
selectionEnd
++
;
}
var
end
=
text
.
slice
(
selectionEnd
+
1
).
indexOf
(
closeCharacter
)
+
1
;
var
weight
=
parseFloat
(
text
.
slice
(
selectionEnd
+
1
,
selectionEnd
+
end
));
if
(
isNaN
(
weight
))
return
;
weight
+=
isPlus
?
delta
:
-
delta
;
weight
=
parseFloat
(
weight
.
toPrecision
(
12
));
if
(
String
(
weight
).
length
==
1
)
weight
+=
"
.0
"
;
if
(
closeCharacter
==
'
)
'
&&
weight
==
1
)
{
var
endParenPos
=
text
.
substring
(
selectionEnd
).
indexOf
(
'
)
'
);
text
=
text
.
slice
(
0
,
selectionStart
-
1
)
+
text
.
slice
(
selectionStart
,
selectionEnd
)
+
text
.
slice
(
selectionEnd
+
endParenPos
+
1
);
selectionStart
--
;
selectionEnd
--
;
}
else
{
text
=
text
.
slice
(
0
,
selectionEnd
+
1
)
+
weight
+
text
.
slice
(
selectionEnd
+
end
);
if
(
closeCharacter
)
{
var
end
=
text
.
slice
(
selectionEnd
+
1
).
indexOf
(
closeCharacter
)
+
1
;
var
weight
=
parseFloat
(
text
.
slice
(
selectionEnd
+
1
,
selectionEnd
+
end
));
if
(
isNaN
(
weight
))
return
;
weight
+=
isPlus
?
delta
:
-
delta
;
weight
=
parseFloat
(
weight
.
toPrecision
(
12
));
if
(
String
(
weight
).
length
==
1
)
weight
+=
"
.0
"
;
if
(
closeCharacter
==
'
)
'
&&
weight
==
1
)
{
var
endParenPos
=
text
.
substring
(
selectionEnd
).
indexOf
(
'
)
'
);
text
=
text
.
slice
(
0
,
selectionStart
-
1
)
+
text
.
slice
(
selectionStart
,
selectionEnd
)
+
text
.
slice
(
selectionEnd
+
endParenPos
+
1
);
selectionStart
--
;
selectionEnd
--
;
}
else
{
text
=
text
.
slice
(
0
,
selectionEnd
+
1
)
+
weight
+
text
.
slice
(
selectionEnd
+
end
);
}
}
target
.
focus
();
...
...
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