Resolve uploaded image references for prompt enhancement
This commit is contained in:
@@ -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={
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user