From d0b6d29582f69737bcba2375965555baa1151d88 Mon Sep 17 00:00:00 2001 From: LuqP2 Date: Fri, 9 Jan 2026 21:31:13 -0300 Subject: [PATCH] fix: sanitize workflow and prompt converting NaN to null avoiding invalid JSON --- metadata_utils.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/metadata_utils.py b/metadata_utils.py index b3a8aa6..2e933d9 100644 --- a/metadata_utils.py +++ b/metadata_utils.py @@ -368,6 +368,18 @@ def build_imh_metadata(params: dict, workflow_json: dict) -> dict: Returns: JSON-serializable dict for IMH metadata """ + def _sanitize(value: Any) -> Any: + if isinstance(value, float) and np.isnan(value): + return None + if isinstance(value, dict): + return {k: _sanitize(v) for k, v in value.items()} + if isinstance(value, list): + return [_sanitize(v) for v in value] + return value + + safe_workflow = _sanitize(workflow_json.get('workflow', {})) + safe_prompt = _sanitize(workflow_json.get('prompt', {})) + return { # CRITICAL: Required field for IMH detection "generator": "ComfyUI", @@ -423,8 +435,8 @@ def build_imh_metadata(params: dict, workflow_json: dict) -> dict: }, # Complete workflow (used by parser for re-parsing if needed) - "workflow": workflow_json.get('workflow', {}), - "prompt_api": workflow_json.get('prompt', {}), + "workflow": safe_workflow, + "prompt_api": safe_prompt, }