|
@@ -3,6 +3,7 @@ import dataclasses
|
|
import json
|
|
import json
|
|
import html
|
|
import html
|
|
import os
|
|
import os
|
|
|
|
+from contextlib import nullcontext
|
|
|
|
|
|
import gradio as gr
|
|
import gradio as gr
|
|
|
|
|
|
@@ -103,14 +104,15 @@ def save_files(js_data, images, do_make_zip, index):
|
|
|
|
|
|
# NOTE: ensure csv integrity when fields are added by
|
|
# NOTE: ensure csv integrity when fields are added by
|
|
# updating headers and padding with delimiters where needed
|
|
# updating headers and padding with delimiters where needed
|
|
- if os.path.exists(logfile_path):
|
|
|
|
|
|
+ if shared.opts.save_write_log_csv and os.path.exists(logfile_path):
|
|
update_logfile(logfile_path, fields)
|
|
update_logfile(logfile_path, fields)
|
|
|
|
|
|
- with open(logfile_path, "a", encoding="utf8", newline='') as file:
|
|
|
|
- at_start = file.tell() == 0
|
|
|
|
- writer = csv.writer(file)
|
|
|
|
- if at_start:
|
|
|
|
- writer.writerow(fields)
|
|
|
|
|
|
+ with (open(logfile_path, "a", encoding="utf8", newline='') if shared.opts.save_write_log_csv else nullcontext()) as file:
|
|
|
|
+ if file:
|
|
|
|
+ at_start = file.tell() == 0
|
|
|
|
+ writer = csv.writer(file)
|
|
|
|
+ if at_start:
|
|
|
|
+ writer.writerow(fields)
|
|
|
|
|
|
for image_index, filedata in enumerate(images, start_index):
|
|
for image_index, filedata in enumerate(images, start_index):
|
|
image = image_from_url_text(filedata)
|
|
image = image_from_url_text(filedata)
|
|
@@ -130,7 +132,8 @@ def save_files(js_data, images, do_make_zip, index):
|
|
filenames.append(os.path.basename(txt_fullfn))
|
|
filenames.append(os.path.basename(txt_fullfn))
|
|
fullfns.append(txt_fullfn)
|
|
fullfns.append(txt_fullfn)
|
|
|
|
|
|
- writer.writerow([parsed_infotexts[0]['Prompt'], parsed_infotexts[0]['Seed'], data["width"], data["height"], data["sampler_name"], data["cfg_scale"], data["steps"], filenames[0], parsed_infotexts[0]['Negative prompt'], data["sd_model_name"], data["sd_model_hash"]])
|
|
|
|
|
|
+ if file:
|
|
|
|
+ writer.writerow([parsed_infotexts[0]['Prompt'], parsed_infotexts[0]['Seed'], data["width"], data["height"], data["sampler_name"], data["cfg_scale"], data["steps"], filenames[0], parsed_infotexts[0]['Negative prompt'], data["sd_model_name"], data["sd_model_hash"]])
|
|
|
|
|
|
# Make Zip
|
|
# Make Zip
|
|
if do_make_zip:
|
|
if do_make_zip:
|