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:
|
||||
image = value
|
||||
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"):
|
||||
reference["picture_id"] = _coerce_picture_id(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("name", "")
|
||||
reference["aliases"] = _parse_aliases(reference.get("aliases"))
|
||||
reference["summary"] = _ensure_sentence(
|
||||
reference.get("summary")
|
||||
or _reference_summary(reference["kind"], reference.get("name"), reference.get("picture_id"))
|
||||
auto_summary_before = _ensure_sentence(
|
||||
_reference_summary(reference["kind"], reference.get("name"), existing_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["wardrobe"] = _normalize_free_text(reference.get("wardrobe"))
|
||||
reference["general"] = _normalize_free_text(reference.get("general"))
|
||||
|
||||
@@ -356,6 +356,41 @@ class DumasImageNodeTests(unittest.TestCase):
|
||||
required = self.image_nodes.DumasLocationReferenceNode.INPUT_TYPES()["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):
|
||||
input_types = self.image_nodes.DumasAnchorStyleNode.INPUT_TYPES()
|
||||
options = input_types["required"]["anchor_style"][0]
|
||||
|
||||
Reference in New Issue
Block a user