Resolve uploaded image references for prompt enhancement

This commit is contained in:
Mikei386
2026-09-21 15:03:11 +02:00
parent 5106d0d2ed
commit fd3f3f5979
2 changed files with 15 additions and 1 deletions
+9
View File
@@ -3,6 +3,7 @@ import json
import os import os
import sys import sys
import threading import threading
import tempfile
import unittest import unittest
from pathlib import Path from pathlib import Path
from unittest.mock import patch from unittest.mock import patch
@@ -25,6 +26,14 @@ class CoordinationTests(unittest.TestCase):
with self.assertRaisesRegex(RuntimeError, 'rewritten_prompt'): with self.assertRaisesRegex(RuntimeError, 'rewritten_prompt'):
router._parse_prompt_enhancer_result('{"wh_ratio":"1:1"}') router._parse_prompt_enhancer_result('{"wh_ratio":"1:1"}')
def test_image_data_url_resolves_volume_relative_reference(self):
with tempfile.TemporaryDirectory() as directory, \
patch.object(router, 'IMAGE_DIR', directory):
path = Path(directory) / '.edit-reference.ref'
path.write_bytes(b'\x89PNG\r\n\x1a\ncontent')
result = router._image_data_url(path.name)
self.assertTrue(result.startswith('data:image/png;base64,'))
def test_mode_uses_one_consistent_controller_snapshot(self): def test_mode_uses_one_consistent_controller_snapshot(self):
with patch.object(router, 'PROFILE_CONTROL_URL', 'http://controller'), \ with patch.object(router, 'PROFILE_CONTROL_URL', 'http://controller'), \
patch.object(router, '_profile_controller_request', return_value={ patch.object(router, '_profile_controller_request', return_value={
+6 -1
View File
@@ -1410,7 +1410,12 @@ def _restore_qwen(profile: str) -> None:
def _image_data_url(path: str) -> str: def _image_data_url(path: str) -> str:
"""Read one already validated local reference image as a data URL.""" """Read one already validated local reference image as a data URL."""
with open(path, "rb") as handle: image_root = os.path.abspath(IMAGE_DIR)
resolved = (os.path.abspath(path) if os.path.isabs(path)
else os.path.abspath(os.path.join(image_root, path)))
if os.path.commonpath((image_root, resolved)) != image_root:
raise RuntimeError("Referenzbild liegt außerhalb des Bildverzeichnisses")
with open(resolved, "rb") as handle:
data = handle.read() data = handle.read()
if data.startswith(b"\x89PNG\r\n\x1a\n"): if data.startswith(b"\x89PNG\r\n\x1a\n"):
mime = "image/png" mime = "image/png"