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
cda2f0a1
Commit
cda2f0a1
authored
Aug 14, 2023
by
AUTOMATIC1111
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make on_before_component/on_after_component possible earlier
parent
aeb76ef1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
10 deletions
+25
-10
modules/scripts.py
modules/scripts.py
+25
-10
No files found.
modules/scripts.py
View file @
cda2f0a1
...
...
@@ -239,6 +239,8 @@ class Script:
"""
Calls callback before a component is created. The callback function is called with a single argument of type OnComponent.
May be called in show() or ui() - but it may be too late in latter as some components may already be created.
This function is an alternative to before_component in that it also cllows to run before a component is created, but
it doesn't require to be called for every created component - just for the one you need.
"""
...
...
@@ -445,6 +447,28 @@ class ScriptRunner:
self
.
scripts
.
append
(
script
)
self
.
selectable_scripts
.
append
(
script
)
self
.
apply_on_before_component_callbacks
()
def
apply_on_before_component_callbacks
(
self
):
for
script
in
self
.
scripts
:
on_before
=
script
.
on_before_component_elem_id
or
[]
on_after
=
script
.
on_after_component_elem_id
or
[]
for
elem_id
,
callback
in
on_before
:
if
elem_id
not
in
self
.
on_before_component_elem_id
:
self
.
on_before_component_elem_id
[
elem_id
]
=
[]
self
.
on_before_component_elem_id
[
elem_id
]
.
append
((
callback
,
script
))
for
elem_id
,
callback
in
on_after
:
if
elem_id
not
in
self
.
on_after_component_elem_id
:
self
.
on_after_component_elem_id
[
elem_id
]
=
[]
self
.
on_after_component_elem_id
[
elem_id
]
.
append
((
callback
,
script
))
on_before
.
clear
()
on_after
.
clear
()
def
create_script_ui
(
self
,
script
):
import
modules.api.models
as
api_models
...
...
@@ -555,16 +579,7 @@ class ScriptRunner:
self
.
infotext_fields
.
append
((
dropdown
,
lambda
x
:
gr
.
update
(
value
=
x
.
get
(
'Script'
,
'None'
))))
self
.
infotext_fields
.
extend
([(
script
.
group
,
onload_script_visibility
)
for
script
in
self
.
selectable_scripts
])
for
script
in
self
.
scripts
:
for
elem_id
,
callback
in
script
.
on_before_component_elem_id
or
[]:
items
=
self
.
on_before_component_elem_id
.
get
(
elem_id
,
[])
items
.
append
((
callback
,
script
))
self
.
on_before_component_elem_id
[
elem_id
]
=
items
for
elem_id
,
callback
in
script
.
on_after_component_elem_id
or
[]:
items
=
self
.
on_after_component_elem_id
.
get
(
elem_id
,
[])
items
.
append
((
callback
,
script
))
self
.
on_after_component_elem_id
[
elem_id
]
=
items
self
.
apply_on_before_component_callbacks
()
return
self
.
inputs
...
...
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