Update app.py
Browse files
app.py
CHANGED
@@ -13,6 +13,8 @@ DEFAULT_IMAGE = "original_image.jpg"
|
|
13 |
# Load semantic dipoles
|
14 |
with open(SEMANTIC_DIPOLES_FILE, "r") as f:
|
15 |
semantic_dipoles = json.load(f)
|
|
|
|
|
16 |
|
17 |
# Helper to list all latent code folders
|
18 |
latent_code_folders = sorted(
|
@@ -34,23 +36,28 @@ def load_dipole_paths(latent_code):
|
|
34 |
)
|
35 |
return paths
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
frame_image_path = os.path.join(path_dir, f"{frame_idx:06d}.jpg")
|
|
|
42 |
if not os.path.exists(frame_image_path):
|
43 |
-
return f"Image not found: {frame_image_path}"
|
|
|
44 |
return Image.open(frame_image_path)
|
45 |
|
46 |
# Function to display GAN latent space interactive plot
|
47 |
def display_interactive_plot(latent_code):
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
# Embed the HTML file using an iframe
|
52 |
-
iframe = f'<iframe src="{html_file}" width="100%" height="600px" style="border:none;"></iframe>'
|
53 |
-
return iframe
|
54 |
|
55 |
# Gradio Interface
|
56 |
def build_interface():
|
@@ -66,9 +73,9 @@ def build_interface():
|
|
66 |
value=latent_code_folders[0],
|
67 |
)
|
68 |
semantic_dipole_dropdown = gr.Dropdown(
|
69 |
-
|
70 |
label="Semantic Dipole",
|
71 |
-
value=
|
72 |
)
|
73 |
frame_slider = gr.Slider(
|
74 |
0, 32, step=1, label="Frame Index"
|
|
|
13 |
# Load semantic dipoles
|
14 |
with open(SEMANTIC_DIPOLES_FILE, "r") as f:
|
15 |
semantic_dipoles = json.load(f)
|
16 |
+
# Transform semantic_dipoles into "A -> B" format
|
17 |
+
formatted_dipoles = [f"{pair[0]} -> {pair[1]}" for pair in semantic_dipoles]
|
18 |
|
19 |
# Helper to list all latent code folders
|
20 |
latent_code_folders = sorted(
|
|
|
36 |
)
|
37 |
return paths
|
38 |
|
39 |
+
def display_image(latent_code, formatted_dipole, frame_idx):
|
40 |
+
# Reverse-map "A -> B" format back to the index in semantic_dipoles
|
41 |
+
try:
|
42 |
+
index = formatted_dipoles.index(formatted_dipole)
|
43 |
+
except ValueError:
|
44 |
+
return f"Error: Semantic dipole '{formatted_dipole}' not found in the list."
|
45 |
+
|
46 |
+
path_dir = os.path.join(
|
47 |
+
LATENT_CODES_DIR, latent_code, "paths_images", f"path_{index:03d}"
|
48 |
+
)
|
49 |
frame_image_path = os.path.join(path_dir, f"{frame_idx:06d}.jpg")
|
50 |
+
|
51 |
if not os.path.exists(frame_image_path):
|
52 |
+
return f"Image not found: {frame_image_path}."
|
53 |
+
|
54 |
return Image.open(frame_image_path)
|
55 |
|
56 |
# Function to display GAN latent space interactive plot
|
57 |
def display_interactive_plot(latent_code):
|
58 |
+
file_path = f"files/{LATENT_CODES_DIR}/{latent_code}/interactive_latent_space_{latent_code}.html"
|
59 |
+
iframe_html = f'<iframe src="{file_path}" width="800" height="600" frameborder="0"></iframe>'
|
60 |
+
return iframe_html
|
|
|
|
|
|
|
61 |
|
62 |
# Gradio Interface
|
63 |
def build_interface():
|
|
|
73 |
value=latent_code_folders[0],
|
74 |
)
|
75 |
semantic_dipole_dropdown = gr.Dropdown(
|
76 |
+
formatted_dipoles,
|
77 |
label="Semantic Dipole",
|
78 |
+
value=formatted_dipoles[0], # Set default value
|
79 |
)
|
80 |
frame_slider = gr.Slider(
|
81 |
0, 32, step=1, label="Frame Index"
|