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
10f8d0f8
Commit
10f8d0f8
authored
Jun 04, 2024
by
eatmoreapple
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: lora partial update precede full update.
parent
feee37d7
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
10 deletions
+30
-10
extensions-builtin/Lora/networks.py
extensions-builtin/Lora/networks.py
+30
-10
No files found.
extensions-builtin/Lora/networks.py
View file @
10f8d0f8
...
@@ -260,6 +260,16 @@ def load_networks(names, te_multipliers=None, unet_multipliers=None, dyn_dims=No
...
@@ -260,6 +260,16 @@ def load_networks(names, te_multipliers=None, unet_multipliers=None, dyn_dims=No
loaded_networks
.
clear
()
loaded_networks
.
clear
()
unavailable_networks
=
[]
for
name
in
names
:
if
name
.
lower
()
in
forbidden_network_aliases
and
available_networks
.
get
(
name
)
is
None
:
unavailable_networks
.
append
(
name
)
elif
available_network_aliases
.
get
(
name
)
is
None
:
unavailable_networks
.
append
(
name
)
if
unavailable_networks
:
update_available_networks_by_names
(
unavailable_networks
)
networks_on_disk
=
[
available_networks
.
get
(
name
,
None
)
if
name
.
lower
()
in
forbidden_network_aliases
else
available_network_aliases
.
get
(
name
,
None
)
for
name
in
names
]
networks_on_disk
=
[
available_networks
.
get
(
name
,
None
)
if
name
.
lower
()
in
forbidden_network_aliases
else
available_network_aliases
.
get
(
name
,
None
)
for
name
in
names
]
if
any
(
x
is
None
for
x
in
networks_on_disk
):
if
any
(
x
is
None
for
x
in
networks_on_disk
):
list_available_networks
()
list_available_networks
()
...
@@ -566,22 +576,16 @@ def network_MultiheadAttention_load_state_dict(self, *args, **kwargs):
...
@@ -566,22 +576,16 @@ def network_MultiheadAttention_load_state_dict(self, *args, **kwargs):
return
originals
.
MultiheadAttention_load_state_dict
(
self
,
*
args
,
**
kwargs
)
return
originals
.
MultiheadAttention_load_state_dict
(
self
,
*
args
,
**
kwargs
)
def
list_available_networks
():
def
process_network_files
(
names
:
list
[
str
]
|
None
=
None
):
available_networks
.
clear
()
available_network_aliases
.
clear
()
forbidden_network_aliases
.
clear
()
available_network_hash_lookup
.
clear
()
forbidden_network_aliases
.
update
({
"none"
:
1
,
"Addams"
:
1
})
os
.
makedirs
(
shared
.
cmd_opts
.
lora_dir
,
exist_ok
=
True
)
candidates
=
list
(
shared
.
walk_files
(
shared
.
cmd_opts
.
lora_dir
,
allowed_extensions
=
[
".pt"
,
".ckpt"
,
".safetensors"
]))
candidates
=
list
(
shared
.
walk_files
(
shared
.
cmd_opts
.
lora_dir
,
allowed_extensions
=
[
".pt"
,
".ckpt"
,
".safetensors"
]))
candidates
+=
list
(
shared
.
walk_files
(
shared
.
cmd_opts
.
lyco_dir_backcompat
,
allowed_extensions
=
[
".pt"
,
".ckpt"
,
".safetensors"
]))
candidates
+=
list
(
shared
.
walk_files
(
shared
.
cmd_opts
.
lyco_dir_backcompat
,
allowed_extensions
=
[
".pt"
,
".ckpt"
,
".safetensors"
]))
for
filename
in
candidates
:
for
filename
in
candidates
:
if
os
.
path
.
isdir
(
filename
):
if
os
.
path
.
isdir
(
filename
):
continue
continue
name
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
filename
))[
0
]
name
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
filename
))[
0
]
# if names is provided, only load networks with names in the list
if
names
and
name
not
in
names
:
continue
try
:
try
:
entry
=
network
.
NetworkOnDisk
(
name
,
filename
)
entry
=
network
.
NetworkOnDisk
(
name
,
filename
)
except
OSError
:
# should catch FileNotFoundError and PermissionError etc.
except
OSError
:
# should catch FileNotFoundError and PermissionError etc.
...
@@ -597,6 +601,22 @@ def list_available_networks():
...
@@ -597,6 +601,22 @@ def list_available_networks():
available_network_aliases
[
entry
.
alias
]
=
entry
available_network_aliases
[
entry
.
alias
]
=
entry
def
update_available_networks_by_names
(
names
:
list
[
str
]):
process_network_files
(
names
)
def
list_available_networks
():
available_networks
.
clear
()
available_network_aliases
.
clear
()
forbidden_network_aliases
.
clear
()
available_network_hash_lookup
.
clear
()
forbidden_network_aliases
.
update
({
"none"
:
1
,
"Addams"
:
1
})
os
.
makedirs
(
shared
.
cmd_opts
.
lora_dir
,
exist_ok
=
True
)
process_network_files
()
re_network_name
=
re
.
compile
(
r"(.*)\s*\([0-9a-fA-F]+\)"
)
re_network_name
=
re
.
compile
(
r"(.*)\s*\([0-9a-fA-F]+\)"
)
...
...
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