From 0fa1d29fca0e376f9fae822403bd9a2db7545c12 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 29 Jan 2023 12:19:17 -0500 Subject: [PATCH] pre-merge cleanup --- .../textual_inversion/textual_inversion.py | 15 ++++++++------- webui-macos-env.sh | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 webui-macos-env.sh diff --git a/modules/textual_inversion/textual_inversion.py b/modules/textual_inversion/textual_inversion.py index 8c4e479f5..6cf00e65d 100644 --- a/modules/textual_inversion/textual_inversion.py +++ b/modules/textual_inversion/textual_inversion.py @@ -228,9 +228,9 @@ class EmbeddingDatabase: self.load_from_dir(embdir) embdir.update() - # print(f"Textual inversion embeddings loaded({len(self.word_embeddings)}): {', '.join(self.word_embeddings.keys())}") - # if len(self.skipped_embeddings) > 0: - # print(f"Textual inversion embeddings skipped({len(self.skipped_embeddings)}): {', '.join(self.skipped_embeddings.keys())}") + print(f"Textual inversion embeddings loaded({len(self.word_embeddings)}): {', '.join(self.word_embeddings.keys())}") + if len(self.skipped_embeddings) > 0: + print(f"Textual inversion embeddings skipped({len(self.skipped_embeddings)}): {', '.join(self.skipped_embeddings.keys())}") def find_embedding_at_position(self, tokens, offset): token = tokens[offset] @@ -278,7 +278,7 @@ def write_loss(log_directory, filename, step, epoch_len, values): if shared.opts.training_write_csv_every == 0: return - if step % epoch_len != 0: + if step % shared.opts.training_write_csv_every != 0: return write_csv_header = False if os.path.exists(os.path.join(log_directory, filename)) else True @@ -360,7 +360,7 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st filename = os.path.join(shared.cmd_opts.embeddings_dir, f'{embedding_name}.pt') - log_directory = os.path.join(log_directory, embedding_name) + log_directory = os.path.join(log_directory, datetime.datetime.now().strftime("%Y-%m-%d"), embedding_name) unload = shared.opts.unload_models_when_training if save_embedding_every > 0: @@ -510,8 +510,9 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st steps_done = embedding.step + 1 epoch_num = embedding.step // steps_per_epoch + epoch_step = embedding.step % steps_per_epoch - description = f"Training textual inversion step {embedding.step} loss: {loss_step:.5f} lr: {scheduler.learn_rate:.5f}" + description = f"Training textual inversion [Epoch {epoch_num}: {epoch_step+1}/{steps_per_epoch}] loss: {loss_step:.7f}" pbar.set_description(description) if embedding_dir is not None and steps_done % save_embedding_every == 0: # Before saving, change name to match current checkpoint. @@ -520,7 +521,7 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st save_embedding(embedding, optimizer, checkpoint, embedding_name_every, last_saved_file, remove_cached_checksum=True) embedding_yet_to_be_embedded = True - write_loss(log_directory, "train.csv", embedding.step, steps_per_epoch, { + write_loss(log_directory, "textual_inversion_loss.csv", embedding.step, steps_per_epoch, { "loss": f"{loss_step:.7f}", "learn_rate": scheduler.learn_rate }) diff --git a/webui-macos-env.sh b/webui-macos-env.sh new file mode 100644 index 000000000..37cac4fb0 --- /dev/null +++ b/webui-macos-env.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#################################################################### +# macOS defaults # +# Please modify webui-user.sh to change these instead of this file # +#################################################################### + +if [[ -x "$(command -v python3.10)" ]] +then + python_cmd="python3.10" +fi + +export install_dir="$HOME" +export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate" +export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1" +export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git" +export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71" +export PYTORCH_ENABLE_MPS_FALLBACK=1 + +####################################################################