diff --git a/automatic.sh b/automatic.sh index 9e8d0341e..7f7ed076b 100755 --- a/automatic.sh +++ b/automatic.sh @@ -1,4 +1,6 @@ #/bin/env bash -export PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512 -python launch.py --api --xformers --disable-console-progressbars --load_gpu +# export PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512 +# python launch.py --api --xformers --disable-console-progressbars --load_gpu + +python launch.py --api --disable-console-progressbars diff --git a/modules/textual_inversion/textual_inversion.py b/modules/textual_inversion/textual_inversion.py index c872cd0f3..923976f4f 100644 --- a/modules/textual_inversion/textual_inversion.py +++ b/modules/textual_inversion/textual_inversion.py @@ -268,13 +268,15 @@ def write_loss(log_directory, filename, step, epoch_len, values): if shared.opts.training_write_csv_every == 0: return - if step % shared.opts.training_write_csv_every != 0: + if step % epoch_len != 0: return + write_csv_header = False if os.path.exists(os.path.join(log_directory, filename)) else True - with open(os.path.join(log_directory, filename), "w", newline='') as fout: + with open(os.path.join(log_directory, filename), "a+", newline='') as fout: csv_writer = csv.DictWriter(fout, fieldnames=["step", "epoch", "epoch_step", *(values.keys())]) - csv_writer.writeheader() + if write_csv_header: + csv_writer.writeheader() epoch = (step - 1) // epoch_len epoch_step = (step - 1) % epoch_len diff --git a/webui.bat b/webui.bat new file mode 100644 index 000000000..d4d626e23 --- /dev/null +++ b/webui.bat @@ -0,0 +1,74 @@ +@echo off + +if not defined PYTHON (set PYTHON=python) +if not defined VENV_DIR (set VENV_DIR=venv) + +set ERROR_REPORTING=FALSE + +mkdir tmp 2>NUL + +%PYTHON% -c "" >tmp/stdout.txt 2>tmp/stderr.txt +if %ERRORLEVEL% == 0 goto :start_venv +echo Couldn't launch python +goto :show_stdout_stderr + +:start_venv +if [%VENV_DIR%] == [-] goto :skip_venv + +dir %VENV_DIR%\Scripts\Python.exe >tmp/stdout.txt 2>tmp/stderr.txt +if %ERRORLEVEL% == 0 goto :activate_venv + +for /f "delims=" %%i in ('CALL %PYTHON% -c "import sys; print(sys.executable)"') do set PYTHON_FULLNAME="%%i" +echo Creating venv in directory %VENV_DIR% using python %PYTHON_FULLNAME% +%PYTHON_FULLNAME% -m venv %VENV_DIR% >tmp/stdout.txt 2>tmp/stderr.txt +if %ERRORLEVEL% == 0 goto :activate_venv +echo Unable to create venv in directory %VENV_DIR% +goto :show_stdout_stderr + +:activate_venv +set PYTHON="%~dp0%VENV_DIR%\Scripts\Python.exe" +echo venv %PYTHON% +if [%ACCELERATE%] == ["True"] goto :accelerate +goto :launch + +:skip_venv + +:accelerate +echo "Checking for accelerate" +set ACCELERATE="%~dp0%VENV_DIR%\Scripts\accelerate.exe" +if EXIST %ACCELERATE% goto :accelerate_launch + +:launch +%PYTHON% launch.py %* +pause +exit /b + +:accelerate_launch +echo "Accelerating" +%ACCELERATE% launch --num_cpu_threads_per_process=6 launch.py +pause +exit /b + +:show_stdout_stderr + +echo. +echo exit code: %errorlevel% + +for /f %%i in ("tmp\stdout.txt") do set size=%%~zi +if %size% equ 0 goto :show_stderr +echo. +echo stdout: +type tmp\stdout.txt + +:show_stderr +for /f %%i in ("tmp\stderr.txt") do set size=%%~zi +if %size% equ 0 goto :show_stderr +echo. +echo stderr: +type tmp\stderr.txt + +:endofscript + +echo. +echo Launch unsuccessful. Exiting. +pause