Use socket picture labels in ref summaries
This commit is contained in:
+11
-3
@@ -886,6 +886,8 @@ def normalize_reference(value, picture_id=None, allow_image_fallback=True):
|
|||||||
if image is None and allow_image_fallback:
|
if image is None and allow_image_fallback:
|
||||||
image = value
|
image = value
|
||||||
reference["image"] = image
|
reference["image"] = image
|
||||||
|
existing_picture_id = _coerce_picture_id(reference.get("picture_id"))
|
||||||
|
previous_summary = _ensure_sentence(reference.get("summary") or "")
|
||||||
if picture_id is not None and not reference.get("picture_id"):
|
if picture_id is not None and not reference.get("picture_id"):
|
||||||
reference["picture_id"] = _coerce_picture_id(picture_id)
|
reference["picture_id"] = _coerce_picture_id(picture_id)
|
||||||
reference["picture_label"] = _reference_label(reference.get("picture_id"))
|
reference["picture_label"] = _reference_label(reference.get("picture_id"))
|
||||||
@@ -893,10 +895,16 @@ def normalize_reference(value, picture_id=None, allow_image_fallback=True):
|
|||||||
reference.setdefault("id", _reference_id("", reference.get("name"), reference["kind"]))
|
reference.setdefault("id", _reference_id("", reference.get("name"), reference["kind"]))
|
||||||
reference.setdefault("name", "")
|
reference.setdefault("name", "")
|
||||||
reference["aliases"] = _parse_aliases(reference.get("aliases"))
|
reference["aliases"] = _parse_aliases(reference.get("aliases"))
|
||||||
reference["summary"] = _ensure_sentence(
|
auto_summary_before = _ensure_sentence(
|
||||||
reference.get("summary")
|
_reference_summary(reference["kind"], reference.get("name"), existing_picture_id)
|
||||||
or _reference_summary(reference["kind"], reference.get("name"), reference.get("picture_id"))
|
|
||||||
)
|
)
|
||||||
|
auto_summary_after = _ensure_sentence(
|
||||||
|
_reference_summary(reference["kind"], reference.get("name"), reference.get("picture_id"))
|
||||||
|
)
|
||||||
|
if not previous_summary or previous_summary == auto_summary_before:
|
||||||
|
reference["summary"] = auto_summary_after
|
||||||
|
else:
|
||||||
|
reference["summary"] = previous_summary
|
||||||
reference["description"] = _normalize_free_text(reference.get("description"))
|
reference["description"] = _normalize_free_text(reference.get("description"))
|
||||||
reference["wardrobe"] = _normalize_free_text(reference.get("wardrobe"))
|
reference["wardrobe"] = _normalize_free_text(reference.get("wardrobe"))
|
||||||
reference["general"] = _normalize_free_text(reference.get("general"))
|
reference["general"] = _normalize_free_text(reference.get("general"))
|
||||||
|
|||||||
@@ -356,6 +356,41 @@ class DumasImageNodeTests(unittest.TestCase):
|
|||||||
required = self.image_nodes.DumasLocationReferenceNode.INPUT_TYPES()["required"]
|
required = self.image_nodes.DumasLocationReferenceNode.INPUT_TYPES()["required"]
|
||||||
self.assertNotIn("picture_id", required)
|
self.assertNotIn("picture_id", required)
|
||||||
|
|
||||||
|
def test_normalize_reference_upgrades_generic_summary_with_socket_picture_id(self):
|
||||||
|
image = FakeTensorBatch()
|
||||||
|
|
||||||
|
reference = self.image_nodes.normalize_reference(
|
||||||
|
{
|
||||||
|
"kind": "character",
|
||||||
|
"name": "Dave",
|
||||||
|
"image": image,
|
||||||
|
"summary": "Dave reference.",
|
||||||
|
},
|
||||||
|
picture_id=3,
|
||||||
|
allow_image_fallback=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(reference["picture_id"], 3)
|
||||||
|
self.assertEqual(reference["picture_label"], "<Picture 3>")
|
||||||
|
self.assertEqual(reference["summary"], "Dave shown in <Picture 3>.")
|
||||||
|
|
||||||
|
def test_normalize_reference_keeps_custom_summary_when_socket_picture_id_is_added(self):
|
||||||
|
image = FakeTensorBatch()
|
||||||
|
|
||||||
|
reference = self.image_nodes.normalize_reference(
|
||||||
|
{
|
||||||
|
"kind": "character",
|
||||||
|
"name": "Dave",
|
||||||
|
"image": image,
|
||||||
|
"summary": "Primary hero look for the opening close-up.",
|
||||||
|
},
|
||||||
|
picture_id=3,
|
||||||
|
allow_image_fallback=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(reference["picture_id"], 3)
|
||||||
|
self.assertEqual(reference["summary"], "Primary hero look for the opening close-up.")
|
||||||
|
|
||||||
def test_anchor_style_node_exposes_requested_presets(self):
|
def test_anchor_style_node_exposes_requested_presets(self):
|
||||||
input_types = self.image_nodes.DumasAnchorStyleNode.INPUT_TYPES()
|
input_types = self.image_nodes.DumasAnchorStyleNode.INPUT_TYPES()
|
||||||
options = input_types["required"]["anchor_style"][0]
|
options = input_types["required"]["anchor_style"][0]
|
||||||
|
|||||||
Reference in New Issue
Block a user