Skip to content

Commit 3ab218c

Browse files
committed
Handle non-critical errors, outputs.
1 parent 63eeb40 commit 3ab218c

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

dreambooth/dataclasses/db_config.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,21 @@ def save(self, backup=False):
202202

203203
if backup:
204204
backup_dir = os.path.join(models_path, "backups")
205-
if not os.path.exists(backup_dir):
206-
os.makedirs(backup_dir)
207-
config_file = os.path.join(models_path, "backups", f"db_config_{self.revision}.json")
205+
try:
206+
if not os.path.exists(backup_dir):
207+
os.makedirs(backup_dir)
208+
config_file = os.path.join(models_path, "backups", f"db_config_{self.revision}.json")
209+
except Exception as e:
210+
# Read-only or permission issues: skip backup silently but continue without failing
211+
logger.warning(f"Skipping config backup (read-only or permission issue): {e}")
212+
config_file = os.path.join(models_path, "db_config.json")
208213

209-
with open(config_file, "w") as outfile:
210-
json.dump(self.__dict__, outfile, indent=4)
214+
try:
215+
with open(config_file, "w") as outfile:
216+
json.dump(self.__dict__, outfile, indent=4)
217+
except Exception as e:
218+
# Do not break training/UI on read-only filesystems
219+
logger.warning(f"Skipping config save to '{config_file}' (read-only or permission issue): {e}")
211220

212221
def load_params(self, params_dict):
213222
sched_swap = False

scripts/main.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,7 +1869,7 @@ def class_gen_method_changed(method):
18691869
)
18701870

18711871
db_generate_sample.click(
1872-
fn=wrap_gpu_call(generate_samples),
1872+
fn=wrap_gpu_call(generate_samples, extra_outputs=[[], ""]),
18731873
_js="db_start_sample",
18741874
inputs=[
18751875
db_model_name,
@@ -1896,7 +1896,7 @@ def class_gen_method_changed(method):
18961896

18971897
db_generate_checkpoint.click(
18981898
_js="db_start_checkpoint",
1899-
fn=wrap_gpu_call(ui_gen_ckpt),
1899+
fn=wrap_gpu_call(ui_gen_ckpt, extra_outputs=[]),
19001900
inputs=[db_model_name],
19011901
outputs=[db_status],
19021902
)
@@ -1912,7 +1912,7 @@ def set_gen_sample():
19121912
db_train_sample.click(fn=set_gen_sample, inputs=[], outputs=[])
19131913

19141914
db_create_model.click(
1915-
fn=wrap_gpu_call(create_model),
1915+
fn=wrap_gpu_call(create_model, extra_outputs=[None, None, None, None, None, None, None, None, None]),
19161916
_js="db_start_create",
19171917
inputs=[
19181918
db_new_model_name,
@@ -1940,15 +1940,15 @@ def set_gen_sample():
19401940
)
19411941

19421942
db_train_model.click(
1943-
fn=wrap_gpu_call(start_training),
1943+
fn=wrap_gpu_call(start_training, extra_outputs=[gr.update(visible=True), 0, 0, []]),
19441944
_js="db_start_train",
19451945
inputs=[db_model_name, db_class_gen_method],
19461946
outputs=[db_lora_model_name, db_revision, db_epochs, db_gallery, db_status],
19471947
)
19481948

19491949
db_generate_classes.click(
19501950
_js="db_start_classes",
1951-
fn=wrap_gpu_call(ui_classifiers),
1951+
fn=wrap_gpu_call(ui_classifiers, extra_outputs=[[]]),
19521952
inputs=[db_model_name, db_class_gen_method],
19531953
outputs=[db_gallery, db_status],
19541954
)

0 commit comments

Comments
 (0)