Update app.py
Browse files
app.py
CHANGED
@@ -200,7 +200,7 @@ def copy_to_clipboard(prompt, neg_prompt, seed, copy_prompt, copy_neg_prompt, co
|
|
200 |
pyperclip.copy(copied_text)
|
201 |
return gr.Info("Sao chép thành công!", duration=2)
|
202 |
except pyperclip.PyperclipException:
|
203 |
-
return gr.Info("
|
204 |
else:
|
205 |
return gr.Info("Không có gì để sao chép!", duration=2)
|
206 |
|
@@ -225,17 +225,19 @@ def cancel_copy():
|
|
225 |
)
|
226 |
|
227 |
|
|
|
|
|
|
|
|
|
228 |
def save_metadata_to_file(image_input, prompt, neg_prompt, model, loras, seed, sampler, sampler_params, metadata):
|
|
|
229 |
if not any([prompt, neg_prompt, model, loras, seed, sampler, sampler_params, metadata]):
|
230 |
-
return None
|
231 |
-
|
232 |
-
if image_input is None:
|
233 |
-
return None # Không có ảnh nào để lưu
|
234 |
|
235 |
# Lấy tên file ảnh và đặt tên cho file txt
|
236 |
image_filename = os.path.basename(image_input)
|
237 |
txt_filename = os.path.splitext(image_filename)[0] + ".txt"
|
238 |
-
txt_filepath = os.path.join(
|
239 |
|
240 |
# Ghi thông tin metadata vào file txt
|
241 |
with open(txt_filepath, "w", encoding="utf-8") as f:
|
@@ -248,7 +250,8 @@ def save_metadata_to_file(image_input, prompt, neg_prompt, model, loras, seed, s
|
|
248 |
f.write(f"Sampler Parameters: {sampler_params}\n")
|
249 |
f.write(f"Other Metadata:\n{metadata}\n")
|
250 |
|
251 |
-
|
|
|
252 |
|
253 |
|
254 |
def check_image_size(image_input):
|
@@ -345,13 +348,14 @@ with gr.Blocks(js = js_func) as demo:
|
|
345 |
outputs=[copy_prompt, copy_neg_prompt, copy_seed, message_output]
|
346 |
)
|
347 |
download_button.click(
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
|
|
355 |
)
|
356 |
|
357 |
|
|
|
200 |
pyperclip.copy(copied_text)
|
201 |
return gr.Info("Sao chép thành công!", duration=2)
|
202 |
except pyperclip.PyperclipException:
|
203 |
+
return gr.Info("Không hỗ trợ tính năng này trong bản demo. Vui lòng liên hệ tác giả để biết chi tiết !", duration=2)
|
204 |
else:
|
205 |
return gr.Info("Không có gì để sao chép!", duration=2)
|
206 |
|
|
|
225 |
)
|
226 |
|
227 |
|
228 |
+
output_dir = "outputs"
|
229 |
+
if not os.path.exists(output_dir):
|
230 |
+
os.mkdir(output_dir)
|
231 |
+
|
232 |
def save_metadata_to_file(image_input, prompt, neg_prompt, model, loras, seed, sampler, sampler_params, metadata):
|
233 |
+
# Kiểm tra nếu không có dữ liệu thì không lưu
|
234 |
if not any([prompt, neg_prompt, model, loras, seed, sampler, sampler_params, metadata]):
|
235 |
+
return None, gr.Info("Không có thông tin để lưu!", duration=2)
|
|
|
|
|
|
|
236 |
|
237 |
# Lấy tên file ảnh và đặt tên cho file txt
|
238 |
image_filename = os.path.basename(image_input)
|
239 |
txt_filename = os.path.splitext(image_filename)[0] + ".txt"
|
240 |
+
txt_filepath = os.path.join(output_dir, txt_filename)
|
241 |
|
242 |
# Ghi thông tin metadata vào file txt
|
243 |
with open(txt_filepath, "w", encoding="utf-8") as f:
|
|
|
250 |
f.write(f"Sampler Parameters: {sampler_params}\n")
|
251 |
f.write(f"Other Metadata:\n{metadata}\n")
|
252 |
|
253 |
+
# Trả về đường dẫn file để Gradio có thể cung cấp file cho người dùng tải xuống
|
254 |
+
return txt_filepath, gr.Info(f"Đã lưu thông tin vào file: {txt_filename}", duration=2)
|
255 |
|
256 |
|
257 |
def check_image_size(image_input):
|
|
|
348 |
outputs=[copy_prompt, copy_neg_prompt, copy_seed, message_output]
|
349 |
)
|
350 |
download_button.click(
|
351 |
+
fn=save_metadata_to_file,
|
352 |
+
inputs=[
|
353 |
+
image_input, prompt_output, negative_prompt_output,
|
354 |
+
model_output, lora_output, seed_output,
|
355 |
+
sampler_output, sampler_params_output, other_metadata_output
|
356 |
+
],
|
357 |
+
outputs=[download_file, message_output] # Trả về tệp tin và thông báo trạng thái
|
358 |
+
)
|
359 |
)
|
360 |
|
361 |
|