Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
S
stable-diffusion-webui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
stable-diffusion-webui
Commits
4875a6c2
Commit
4875a6c2
authored
Oct 25, 2022
by
timntorres
Committed by
AUTOMATIC1111
Oct 26, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement PR #3309 but for embeddings.
parent
c2dc9bfa
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
1 deletion
+8
-1
textual_inversion.py
modules/textual_inversion/textual_inversion.py
+8
-1
No files found.
modules/textual_inversion/textual_inversion.py
View file @
4875a6c2
...
@@ -167,6 +167,8 @@ def create_embedding(name, num_vectors_per_token, overwrite_old, init_text='*'):
...
@@ -167,6 +167,8 @@ def create_embedding(name, num_vectors_per_token, overwrite_old, init_text='*'):
for
i
in
range
(
num_vectors_per_token
):
for
i
in
range
(
num_vectors_per_token
):
vec
[
i
]
=
embedded
[
i
*
int
(
embedded
.
shape
[
0
])
//
num_vectors_per_token
]
vec
[
i
]
=
embedded
[
i
*
int
(
embedded
.
shape
[
0
])
//
num_vectors_per_token
]
# Remove illegal characters from name.
name
=
""
.
join
(
x
for
x
in
name
if
(
x
.
isalnum
()
or
x
in
"._- "
))
fn
=
os
.
path
.
join
(
shared
.
cmd_opts
.
embeddings_dir
,
f
"{name}.pt"
)
fn
=
os
.
path
.
join
(
shared
.
cmd_opts
.
embeddings_dir
,
f
"{name}.pt"
)
if
not
overwrite_old
:
if
not
overwrite_old
:
assert
not
os
.
path
.
exists
(
fn
),
f
"file {fn} already exists"
assert
not
os
.
path
.
exists
(
fn
),
f
"file {fn} already exists"
...
@@ -287,7 +289,9 @@ def train_embedding(embedding_name, learn_rate, batch_size, data_root, log_direc
...
@@ -287,7 +289,9 @@ def train_embedding(embedding_name, learn_rate, batch_size, data_root, log_direc
pbar
.
set_description
(
f
"[Epoch {epoch_num}: {epoch_step}/{len(ds)}]loss: {losses.mean():.7f}"
)
pbar
.
set_description
(
f
"[Epoch {epoch_num}: {epoch_step}/{len(ds)}]loss: {losses.mean():.7f}"
)
if
embedding
.
step
>
0
and
embedding_dir
is
not
None
and
embedding
.
step
%
save_embedding_every
==
0
:
if
embedding
.
step
>
0
and
embedding_dir
is
not
None
and
embedding
.
step
%
save_embedding_every
==
0
:
last_saved_file
=
os
.
path
.
join
(
embedding_dir
,
f
'{embedding_name}-{embedding.step}.pt'
)
# Before saving, change name to match current checkpoint.
embedding
.
name
=
f
'{embedding_name}-{embedding.step}'
last_saved_file
=
os
.
path
.
join
(
embedding_dir
,
f
'{embedding.name}.pt'
)
embedding
.
save
(
last_saved_file
)
embedding
.
save
(
last_saved_file
)
embedding_yet_to_be_embedded
=
True
embedding_yet_to_be_embedded
=
True
...
@@ -374,6 +378,9 @@ Last saved image: {html.escape(last_saved_image)}<br/>
...
@@ -374,6 +378,9 @@ Last saved image: {html.escape(last_saved_image)}<br/>
embedding
.
sd_checkpoint
=
checkpoint
.
hash
embedding
.
sd_checkpoint
=
checkpoint
.
hash
embedding
.
sd_checkpoint_name
=
checkpoint
.
model_name
embedding
.
sd_checkpoint_name
=
checkpoint
.
model_name
embedding
.
cached_checksum
=
None
embedding
.
cached_checksum
=
None
# Before saving for the last time, change name back to base name (as opposed to the save_embedding_every step-suffixed naming convention).
embedding
.
name
=
embedding_name
filename
=
os
.
path
.
join
(
shared
.
cmd_opts
.
embedding_dir
,
f
'{embedding.name}.pt'
)
embedding
.
save
(
filename
)
embedding
.
save
(
filename
)
return
embedding
,
filename
return
embedding
,
filename
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