Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 27 additions & 17 deletions photomap/backend/metadata_modules/invoke/v5.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"""
Extract Invoke5 metadata from the raw metadata dictionary.
"""

import itertools
import logging

from .invoke_metadata_abc import (
Expand Down Expand Up @@ -84,24 +86,32 @@ def _get_reference_images(self) -> list[ReferenceImage]:
This is called to get the reference image when the metadata contains a ref_images field.
"""
reference_images = self.raw_metadata.get("ref_images", [])
return [
ReferenceImage(
model_name=image.get("config", {})
.get("model", {})
.get("name", "Unknown Model"),
image_name=image.get("config", {})
.get("image", {})
.get("image_name", "")
or image.get("config", {})
.get("image", {})
.get("original", {})
.get("image", {})
.get("image_name", "Unknown Image"),
weight=image.get("config", {}).get("weight", 1.0),
# for some reason, ref_images can be a list of lists
if any(isinstance(img, list) for img in reference_images):
reference_images = list(itertools.chain.from_iterable(reference_images))

reference_image_list = []
for image in reference_images:
if image.get("isEnabled", False) is False:
continue
model = image.get("config", {}).get("model", {}) or {}
model_name = model.get("name", "N/A")
image_name = image.get("config", {}).get("image", {}).get(
"image_name", ""
) or image.get("config", {}).get("image", {}).get("original", {}).get(
"image", {}
).get(
"image_name", "Unknown Image"
)
for image in reference_images
if image.get("isEnabled", False)
]
weight = image.get("config", {}).get("weight", 1.0)
reference_image_list.append(
ReferenceImage(
model_name=model_name,
image_name=image_name,
weight=weight,
)
)
return reference_image_list

def _get_reference_images_from_canvas_v2(self) -> list[ReferenceImage]:
"""
Expand Down
2 changes: 1 addition & 1 deletion photomap/backend/metadata_modules/invoke_formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def format_invoke_metadata(slide_data: SlideSummary, metadata: dict) -> SlideSum
if raster_images:
html += f"<tr><th>Raster Images</th><td>{', '.join(raster_images)}</td></tr>"
if reference_image_table:
html += f"<tr><th>IPAdapters</th><td>{reference_image_table}</td></tr>"
html += f"<tr><th>Reference Images</th><td>{reference_image_table}</td></tr>"
if control_layer_table:
html += f"<tr><th>Control Layers</th><td>{control_layer_table}</td></tr>"
html += "</table>"
Expand Down
6 changes: 3 additions & 3 deletions photomap/frontend/static/css/metadata-drawer.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
margin: 0;
order: 1;
pointer-events: auto;
overflow: hidden;
overflow: visible;
}

/* Draggable Titlebar */
Expand Down Expand Up @@ -52,7 +52,7 @@
align-items: center;
justify-content: flex-start;
gap: 0.5em;
white-space: nowrap;
flex-wrap: wrap;
}

#descriptionText {
Expand Down Expand Up @@ -162,7 +162,7 @@
top: 120px;
transform: translateX(-100%);
width: auto;
max-width: 60vw;
max-width: 50vw;
z-index: 4001;
transition: transform 0.4s ease, top 0.2s;
pointer-events: auto;
Expand Down