File size: 1,911 Bytes
60ae8ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
import modules.path

from PIL import Image
from PIL.PngImagePlugin import PngInfo
from modules.util import generate_temp_filename


def log(img, dic, metadata=None, save_metadata_json=False, save_metadata_png=False):
    date_string, local_temp_filename, only_name = generate_temp_filename(folder=modules.path.temp_outputs_path, extension='png')
    os.makedirs(os.path.dirname(local_temp_filename), exist_ok=True)

    if save_metadata_json:
        json_path = local_temp_filename.replace('.png', '.json')
        with open(json_path, 'w', encoding='utf-8') as json_file:
            json_file.write(metadata)
            json_file.close()
    
    if save_metadata_png:
        pnginfo = PngInfo()
        pnginfo.add_text("Comment", metadata)
    else:
        pnginfo = None

    Image.fromarray(img).save(local_temp_filename, pnginfo=pnginfo)

    html_name = os.path.join(os.path.dirname(local_temp_filename), 'log.html')

    if not os.path.exists(html_name):
        with open(html_name, 'a+', encoding='utf-8') as f:
            f.write(f"<p>Fooocus Log {date_string} (private)</p>\n")
            f.write(f"<p>All images do not contain any hidden data.</p>")

    with open(html_name, 'a+', encoding='utf-8') as f:
        div_name = only_name.replace('.', '_')
        f.write(f'<div id="{div_name}"><hr>\n')
        f.write(f"<p>{only_name}</p>\n")
        i = 0
        for k, v in dic:
            if i < 2:
                f.write(f"<p>{k}: <b>{v}</b> </p>\n")
            else:
                if i % 2 == 0:
                    f.write(f"<p>{k}: <b>{v}</b>, ")
                else:
                    f.write(f"{k}: <b>{v}</b></p>\n")
            i += 1
        f.write(f"<p><img src=\"{only_name}\" width=512 onerror=\"document.getElementById('{div_name}').style.display = 'none';\"></img></p></div>\n")

    print(f'Image generated with private log at: {html_name}')

    return