saves the image according to selected parameters. Expects to find generation parameters on image, set by ImageMetadata.set_on_image()
(
image,
sample_path_i,
filename,
jpg_sample,
write_info_files,
write_sample_info_to_log_file,
prompt_matrix,
init_img,
uses_loopback,
uses_random_seed_loopback,
skip_save,
skip_grid,
sort_samples,
sampler_name,
ddim_eta,
n_iter,
batch_size,
i,
denoising_strength,
resize_mode,
skip_metadata=False,
)
| 1091 | |
| 1092 | |
| 1093 | def save_sample( |
| 1094 | image, |
| 1095 | sample_path_i, |
| 1096 | filename, |
| 1097 | jpg_sample, |
| 1098 | write_info_files, |
| 1099 | write_sample_info_to_log_file, |
| 1100 | prompt_matrix, |
| 1101 | init_img, |
| 1102 | uses_loopback, |
| 1103 | uses_random_seed_loopback, |
| 1104 | skip_save, |
| 1105 | skip_grid, |
| 1106 | sort_samples, |
| 1107 | sampler_name, |
| 1108 | ddim_eta, |
| 1109 | n_iter, |
| 1110 | batch_size, |
| 1111 | i, |
| 1112 | denoising_strength, |
| 1113 | resize_mode, |
| 1114 | skip_metadata=False, |
| 1115 | ): |
| 1116 | """saves the image according to selected parameters. Expects to find generation parameters on image, set by ImageMetadata.set_on_image()""" |
| 1117 | metadata = ImageMetadata.get_from_image(image) |
| 1118 | if not skip_metadata and metadata is None: |
| 1119 | print( |
| 1120 | "No metadata passed in to save. Set metadata on the image before calling save_sample using the ImageMetadata.set_on_image() function." |
| 1121 | ) |
| 1122 | skip_metadata = True |
| 1123 | filename_i = os.path.join(sample_path_i, filename) |
| 1124 | if not jpg_sample: |
| 1125 | if opt.save_metadata and not skip_metadata: |
| 1126 | image.save(f"{filename_i}.png", pnginfo=metadata.as_png_info()) |
| 1127 | else: |
| 1128 | image.save(f"{filename_i}.png") |
| 1129 | else: |
| 1130 | image.save(f"{filename_i}.jpg", "jpeg", quality=100, optimize=True) |
| 1131 | if write_info_files or write_sample_info_to_log_file: |
| 1132 | # toggles differ for txt2img vs. img2img: |
| 1133 | offset = 0 if init_img is None else 2 |
| 1134 | toggles = [] |
| 1135 | if prompt_matrix: |
| 1136 | toggles.append(0) |
| 1137 | if metadata.normalize_prompt_weights: |
| 1138 | toggles.append(1) |
| 1139 | if init_img is not None: |
| 1140 | if uses_loopback: |
| 1141 | toggles.append(2) |
| 1142 | if uses_random_seed_loopback: |
| 1143 | toggles.append(3) |
| 1144 | if not skip_save: |
| 1145 | toggles.append(2 + offset) |
| 1146 | if not skip_grid: |
| 1147 | toggles.append(3 + offset) |
| 1148 | if sort_samples: |
| 1149 | toggles.append(4 + offset) |
| 1150 | if write_info_files: |
no test coverage detected