MCPcopy
hub / github.com/lllyasviel/Fooocus / log

Function log

modules/private_logger.py:24–137  ·  view source on GitHub ↗
(img, metadata, metadata_parser: MetadataParser | None = None, output_format=None, task=None, persist_image=True)

Source from the content-addressed store, hash-verified

22
23
24def log(img, metadata, metadata_parser: MetadataParser | None = None, output_format=None, task=None, persist_image=True) -> str:
25 path_outputs = modules.config.temp_path if args_manager.args.disable_image_log or not persist_image else modules.config.path_outputs
26 output_format = output_format if output_format else modules.config.default_output_format
27 date_string, local_temp_filename, only_name = generate_temp_filename(folder=path_outputs, extension=output_format)
28 os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True)
29
30 parsed_parameters = metadata_parser.to_string(metadata.copy()) if metadata_parser is not None else ''
31 image = Image.fromarray(img)
32
33 if output_format == OutputFormat.PNG.value:
34 if parsed_parameters != '':
35 pnginfo = PngInfo()
36 pnginfo.add_text('parameters', parsed_parameters)
37 pnginfo.add_text('fooocus_scheme', metadata_parser.get_scheme().value)
38 else:
39 pnginfo = None
40 image.save(local_temp_filename, pnginfo=pnginfo)
41 elif output_format == OutputFormat.JPEG.value:
42 image.save(local_temp_filename, quality=95, optimize=True, progressive=True, exif=get_exif(parsed_parameters, metadata_parser.get_scheme().value) if metadata_parser else Image.Exif())
43 elif output_format == OutputFormat.WEBP.value:
44 image.save(local_temp_filename, quality=95, lossless=False, exif=get_exif(parsed_parameters, metadata_parser.get_scheme().value) if metadata_parser else Image.Exif())
45 else:
46 image.save(local_temp_filename)
47
48 if args_manager.args.disable_image_log:
49 return local_temp_filename
50
51 html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html')
52
53 css_styles = (
54 "<style>"
55 "body { background-color: #121212; color: #E0E0E0; } "
56 "a { color: #BB86FC; } "
57 ".metadata { border-collapse: collapse; width: 100%; } "
58 ".metadata .label { width: 15%; } "
59 ".metadata .value { width: 85%; font-weight: bold; } "
60 ".metadata th, .metadata td { border: 1px solid #4d4d4d; padding: 4px; } "
61 ".image-container img { height: auto; max-width: 512px; display: block; padding-right:10px; } "
62 ".image-container div { text-align: center; padding: 4px; } "
63 "hr { border-color: gray; } "
64 "button { background-color: black; color: white; border: 1px solid grey; border-radius: 5px; padding: 5px 10px; text-align: center; display: inline-block; font-size: 16px; cursor: pointer; }"
65 "button:hover {background-color: grey; color: black;}"
66 "</style>"
67 )
68
69 js = (
70 """<script>
71 function to_clipboard(txt) {
72 txt = decodeURIComponent(txt);
73 if (navigator.clipboard && navigator.permissions) {
74 navigator.clipboard.writeText(txt)
75 } else {
76 const textArea = document.createElement('textArea')
77 textArea.value = txt
78 textArea.style.width = 0
79 textArea.style.position = 'fixed'
80 textArea.style.left = '-999px'
81 textArea.style.top = '10px'

Callers 3

save_and_logFunction · 0.90
process_enhanceFunction · 0.90
handlerFunction · 0.90

Calls 7

generate_temp_filenameFunction · 0.90
get_exifFunction · 0.90
writeMethod · 0.80
to_stringMethod · 0.45
copyMethod · 0.45
get_schemeMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected