fix(image): record reference source metadata in request.json
This commit is contained in:
@@ -214,6 +214,32 @@ def resolve_image_source(prefix: str) -> str | None:
|
|||||||
return provided[0][1]
|
return provided[0][1]
|
||||||
|
|
||||||
|
|
||||||
|
def describe_image_source(source: str | None, fallback_name: str) -> dict[str, str] | None:
|
||||||
|
if source is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
value = source.strip()
|
||||||
|
if not value:
|
||||||
|
return None
|
||||||
|
|
||||||
|
lowered = value.lower()
|
||||||
|
if lowered.startswith("data:image/"):
|
||||||
|
source_kind = "data_url"
|
||||||
|
filename = fallback_name
|
||||||
|
elif lowered.startswith(("http://", "https://")):
|
||||||
|
source_kind = "url"
|
||||||
|
filename = Path(urlparse(value).path).name or fallback_name
|
||||||
|
else:
|
||||||
|
source_kind = "file"
|
||||||
|
filename = Path(value).expanduser().name or fallback_name
|
||||||
|
|
||||||
|
return {
|
||||||
|
"source": value,
|
||||||
|
"kind": source_kind,
|
||||||
|
"filename": filename,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def safe_filename(filename: str, fallback: str, mime_type: str) -> str:
|
def safe_filename(filename: str, fallback: str, mime_type: str) -> str:
|
||||||
candidate = Path(filename).name.strip()
|
candidate = Path(filename).name.strip()
|
||||||
if not candidate:
|
if not candidate:
|
||||||
@@ -476,6 +502,8 @@ def main() -> None:
|
|||||||
poll_interval = env_int("IMAGE_POLL_INTERVAL", DEFAULT_POLL_INTERVAL)
|
poll_interval = env_int("IMAGE_POLL_INTERVAL", DEFAULT_POLL_INTERVAL)
|
||||||
endpoint_path = "/v1/images/edits" if request_mode == "edit" else "/v1/images/generations"
|
endpoint_path = "/v1/images/edits" if request_mode == "edit" else "/v1/images/generations"
|
||||||
min_output_edge = resolve_min_output_edge(size, resolution, request_style)
|
min_output_edge = resolve_min_output_edge(size, resolution, request_style)
|
||||||
|
reference_image_info = describe_image_source(reference_source, "reference-image")
|
||||||
|
mask_image_info = describe_image_source(mask_source, "mask-image")
|
||||||
|
|
||||||
print(
|
print(
|
||||||
"开始生成图片:",
|
"开始生成图片:",
|
||||||
@@ -508,7 +536,13 @@ def main() -> None:
|
|||||||
"request_style": request_style,
|
"request_style": request_style,
|
||||||
"min_output_edge": min_output_edge,
|
"min_output_edge": min_output_edge,
|
||||||
"reference_image_present": bool(reference_source),
|
"reference_image_present": bool(reference_source),
|
||||||
|
"reference_image_source": reference_image_info["source"] if reference_image_info else None,
|
||||||
|
"reference_image_source_kind": reference_image_info["kind"] if reference_image_info else None,
|
||||||
|
"reference_image_filename": reference_image_info["filename"] if reference_image_info else None,
|
||||||
"mask_image_present": bool(mask_source),
|
"mask_image_present": bool(mask_source),
|
||||||
|
"mask_image_source": mask_image_info["source"] if mask_image_info else None,
|
||||||
|
"mask_image_source_kind": mask_image_info["kind"] if mask_image_info else None,
|
||||||
|
"mask_image_filename": mask_image_info["filename"] if mask_image_info else None,
|
||||||
"payload": payload,
|
"payload": payload,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user