From eac48d4dd871cc8336bfef049972bbcddbae574f Mon Sep 17 00:00:00 2001 From: "DESKTOP-TVBJISQ\\Primere" Date: Fri, 6 Mar 2026 22:46:34 +0100 Subject: [PATCH] V 2.0.0 - Universal api #66 - VEO --- Nodes/Uniapi.py | 60 ++- Workflow/Development/universal_api.json | 502 ++++++++++++++---------- Workflow/Manual/nodes/uniapi.md | 5 +- components/API/references/Gemini_VEO.py | 20 + components/API/responses/Gemini_VEO.py | 30 ++ front_end/api_schemas.json | 19 +- front_end/images/file_saved.jpg | Bin 0 -> 113317 bytes front_end/primere_output.js | 82 ++-- front_end/primere_uniapi.js | 116 ++++++ 9 files changed, 564 insertions(+), 270 deletions(-) create mode 100644 components/API/references/Gemini_VEO.py create mode 100644 components/API/responses/Gemini_VEO.py create mode 100644 front_end/images/file_saved.jpg diff --git a/Nodes/Uniapi.py b/Nodes/Uniapi.py index 1d95a1d..8d35320 100644 --- a/Nodes/Uniapi.py +++ b/Nodes/Uniapi.py @@ -24,6 +24,7 @@ from ..components.API import api_json_to_requestbody from ..components.API import external_api_backend from ..components.API import api_schema_registry from ..components import file_output +from server import PromptServer class PrimereApiProcessor: CATEGORY = TREE_API @@ -75,12 +76,13 @@ class PrimereApiProcessor: hidden_inputs = { "extra_pnginfo": "EXTRA_PNGINFO", - "prompt_extra": "PROMPT" + "prompt_extra": "PROMPT", + "unique_id": "UNIQUE_ID", } return {"required": cls.required_inputs, "optional": cls.optional_inputs, "hidden": hidden_inputs} - def process_uniapi(self, processor, api_provider, api_service, prompt, negative_prompt = None, batch = 1, reference_images = None, first_image = None, last_image = None, width = 1024, height = 1024, aspect_ratio = '1:1', seed = None, debug_mode = False, **kwargs): + def process_uniapi(self, processor, api_provider, api_service, prompt, negative_prompt = None, batch = 1, reference_images = None, first_image = None, last_image = None, width = 1024, height = 1024, aspect_ratio = '1:1', seed = None, debug_mode = False, unique_id = None, **kwargs): API_SCHEMAS_PATH = os.path.join(PRIMERE_ROOT, 'front_end', 'api_schemas.json') API_CONFIG_PATH = os.path.join(PRIMERE_ROOT, 'json', 'apiconfig.json') API_SCHEMA_REGISTRY = api_schema_registry.load_and_validate_api_schema_registry(API_SCHEMAS_PATH, API_CONFIG_PATH) @@ -188,6 +190,20 @@ class PrimereApiProcessor: elif img_binary_api not in (None, "") and (not isinstance(img_binary_api, list) or len(img_binary_api) > 0): selected_parameters["reference_images"] = img_binary_api + if first_image is not None: + first_image_source = first_image + elif reference_images is not None: + first_image_source = reference_images[0] if isinstance(reference_images, list) else reference_images + else: + first_image_source = None + if first_image_source is not None: + first_image_result = external_api_backend.apply_reference_images_handler( + schema, api_provider, + {"img_binary_api": first_image_source, "loaded_client_for_upload": loaded_client_for_upload} + ) + if isinstance(first_image_result, dict) and first_image_result: + selected_parameters.update(first_image_result) + possible_parameters = schema.get("possible_parameters", {}) if isinstance(schema, dict) else {} if isinstance(possible_parameters, dict): for key in possible_parameters.keys(): @@ -306,6 +322,11 @@ class PrimereApiProcessor: # --- File naming and output path resolution --- auto_save_result = kwargs.get('auto_save_result', False) if auto_save_result and result_image is not None: + if type(result_image).__name__ == "str": + SAVED_IMAGE_PATH = os.path.join(PRIMERE_ROOT, 'front_end', 'images') + SAVED_IMAGE = os.path.join(SAVED_IMAGE_PATH, "file_saved.jpg") + result_image = utility.ImageLoaderFromPath(SAVED_IMAGE) + output_path_input = kwargs.get('output_path', '[time(%Y-%m-%d)]') subpath = kwargs.get('subpath', 'None') add_provider_to_path = kwargs.get('add_provider_to_path', False) @@ -350,17 +371,30 @@ class PrimereApiProcessor: ) Path(folder_paths.temp_directory).mkdir(parents=True, exist_ok=True) - file_output.save_bytes_to_file(save_bytes, output_file, image_extension, image_quality, folder_paths.temp_directory) + try: + saved_path = file_output.save_bytes_to_file(save_bytes, output_file, image_extension, image_quality, folder_paths.temp_directory) - save_data = { - "provider": api_provider, - "service": selected_service or api_service, - "selected_parameters": selected_parameters_output, - "used_values": used_values_output, - # "rendered": rendered_payload, - "raw_payload": raw_payload, - # "api_result": api_result_debug, - } - file_output.save_metadata(save_data, json_file, txt_file, save_data_to_json, save_data_to_txt, used_values_output) + save_data = { + "provider": api_provider, + "service": selected_service or api_service, + "selected_parameters": selected_parameters_output, + "used_values": used_values_output, + # "rendered": rendered_payload, + "raw_payload": raw_payload, + # "api_result": api_result_debug, + } + file_output.save_metadata(save_data, json_file, txt_file, save_data_to_json, save_data_to_txt, used_values_output) + + PromptServer.instance.send_sync("primere.save_result", { + "node_id": unique_id, + "status": "success", + "path": saved_path, + }) + except Exception as save_error: + PromptServer.instance.send_sync("primere.save_result", { + "node_id": unique_id, + "status": "failed", + "error": str(save_error), + }) return (result_image, client, api_provider, schema, rendered_payload, raw_payload, used_values_output, api_schemas, api_result_debug) \ No newline at end of file diff --git a/Workflow/Development/universal_api.json b/Workflow/Development/universal_api.json index 356606a..4288c49 100644 --- a/Workflow/Development/universal_api.json +++ b/Workflow/Development/universal_api.json @@ -1,8 +1,8 @@ { "id": "3ed198dc-bee5-40d4-a269-63c758e8edff", "revision": 0, - "last_node_id": 54, - "last_link_id": 369, + "last_node_id": 74, + "last_link_id": 657, "nodes": [ { "id": 22, @@ -303,13 +303,13 @@ 1262.834388548706 ], "flags": {}, - "order": 20, + "order": 22, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 364 + "link": 652 } ], "outputs": [], @@ -419,13 +419,13 @@ 88 ], "flags": {}, - "order": 19, + "order": 21, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 363 + "link": 651 } ], "outputs": [], @@ -532,13 +532,13 @@ 88 ], "flags": {}, - "order": 18, + "order": 20, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 362 + "link": 650 } ], "outputs": [], @@ -548,7 +548,7 @@ "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" }, "widgets_values": [ - "" + "" ] }, { @@ -572,7 +572,7 @@ "type": "INT", "links": [ 53, - 360 + 648 ] } ], @@ -584,46 +584,11 @@ "widgets_values": [ "Random", 42, - "Last seed: [611698954884300]" + "Last seed: [275143688740681]" ], "color": "#223", "bgcolor": "#335" }, - { - "id": 9, - "type": "PrimitiveStringMultiline", - "pos": [ - 480.79284780821257, - -541.1178926016723 - ], - "size": [ - 733.2619240917973, - 382.46790301705124 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 355 - ] - } - ], - "properties": { - "Node name for S&R": "PrimitiveStringMultiline", - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "The woman is sitting on the barstool closest to the viewer in the blue kitchen. Paint her hair red, give her a glass of champagne, and dress her in a black leather jacket with the zipper pulled down to reveal a white T-shirt underneath. Place a baseball cap on her head. She is wearing black jeans and a black belt. She is also wearing an elegant, silky, red women's neck scarf. Place the porcelain vase on the kitchen table. She holds a bug spray in her other hand and sprays it at a giant spider climbing on the wall. The woman is frightened. Her dog barks at the spider. Keep everything else unchanged. Follow all attached reference images." - ], - "color": "#232", - "bgcolor": "#353" - }, { "id": 42, "type": "PreviewImage", @@ -636,7 +601,7 @@ 581.7454612396214 ], "flags": {}, - "order": 15, + "order": 17, "mode": 0, "inputs": [ { @@ -663,13 +628,13 @@ 739.8065007039345 ], "flags": {}, - "order": 25, + "order": 27, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 369 + "link": 657 } ], "outputs": [], @@ -680,7 +645,7 @@ "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" }, "widgets_values": [ - "None" + "{\n \"_type\": \"GenerateContentResponse\",\n \"sdk_http_response\": {\n \"_type\": \"HttpResponse\",\n \"headers\": {\n \"content-type\": \"application/json; charset=UTF-8\",\n \"vary\": \"Origin, X-Origin, Referer\",\n \"content-encoding\": \"gzip\",\n \"date\": \"Fri, 06 Mar 2026 21:43:07 GMT\",\n \"server\": \"scaffolding on HTTPServer2\",\n \"x-xss-protection\": \"0\",\n \"x-frame-options\": \"SAMEORIGIN\",\n \"x-content-type-options\": \"nosniff\",\n \"server-timing\": \"gfet4t7; dur=6047\",\n \"alt-svc\": \"h3=\\\":443\\\"; ma=2592000,h3-29=\\\":443\\\"; ma=2592000\",\n \"transfer-encoding\": \"chunked\"\n },\n \"body\": null\n },\n \"candidates\": [\n {\n \"_type\": \"Candidate\",\n \"content\": {\n \"_type\": \"Content\",\n \"parts\": [\n {\n \"_type\": \"Part\",\n \"media_resolution\": null,\n \"code_execution_result\": null,\n \"executable_code\": null,\n \"file_data\": null,\n \"function_call\": null,\n \"function_response\": null,\n \"inline_data\": {\n \"_type\": \"Blob\",\n \"data\": \"[binary data omitted: 1534895 bytes]\",\n \"display_name\": null,\n \"mime_type\": \"image/png\"\n },\n \"text\": null,\n \"thought\": null,\n \"thought_signature\": null,\n \"video_metadata\": null\n }\n ],\n \"role\": \"model\"\n },\n \"citation_metadata\": null,\n \"finish_message\": null,\n \"token_count\": null,\n \"finish_reason\": \"STOP\",\n \"grounding_metadata\": null,\n \"avg_logprobs\": null,\n \"index\": 0,\n \"logprobs_result\": null,\n \"safety_ratings\": null,\n \"url_context_metadata\": null\n }\n ],\n \"create_time\": null,\n \"model_version\": \"gemini-2.5-flash-image\",\n \"prompt_feedback\": null,\n \"response_id\": \"a0qrafmnM7C028oPzozYUQ\",\n \"usage_metadata\": {\n \"_type\": \"GenerateContentResponseUsageMetadata\",\n \"cache_tokens_details\": null,\n \"cached_content_token_count\": null,\n \"candidates_token_count\": 1290,\n \"candidates_tokens_details\": [\n {\n \"_type\": \"ModalityTokenCount\",\n \"modality\": \"IMAGE\",\n \"token_count\": 1290\n }\n ],\n \"prompt_token_count\": 11,\n \"prompt_tokens_details\": [\n {\n \"_type\": \"ModalityTokenCount\",\n \"modality\": \"TEXT\",\n \"token_count\": 11\n }\n ],\n \"thoughts_token_count\": null,\n \"tool_use_prompt_token_count\": null,\n \"tool_use_prompt_tokens_details\": null,\n \"total_token_count\": 1301,\n \"traffic_type\": null\n },\n \"automatic_function_calling_history\": [],\n \"parsed\": null\n}" ], "color": "#432", "bgcolor": "#653" @@ -697,13 +662,13 @@ 1163.5127427084483 ], "flags": {}, - "order": 24, + "order": 26, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 368 + "link": 656 } ], "outputs": [], @@ -714,7 +679,7 @@ "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" }, "widgets_values": [ - "None" + "[\n {\n \"schema\": {\n \"provider\": \"Gemini\",\n \"service\": \"Nanobanana\",\n \"response_handler\": \"Gemini_Nanobanana.py\",\n \"import_modules\": [\n \"from google import genai\",\n \"from google.genai import types\"\n ],\n \"possible_parameters\": {\n \"aspect_ratio\": [\n \"1:1\",\n \"1:4\",\n \"1:8\",\n \"2:3\",\n \"3:2\",\n \"3:4\",\n \"4:1\",\n \"4:3\",\n \"4:5\",\n \"5:4\",\n \"8:1\",\n \"9:16\",\n \"16:9\",\n \"21:9\"\n ],\n \"resolution\": [\n \"1K\",\n \"512px\",\n \"2K\",\n \"4K\"\n ],\n \"model\": [\n \"gemini-2.5-flash-image\",\n \"gemini-3-pro-image-preview\",\n \"gemini-3.1-flash-image-preview\"\n ],\n \"thinking_level\": [\n \"minimal\",\n \"high\"\n ],\n \"include_thoughts\": [\n false,\n true\n ]\n },\n \"request_exclusions\": [\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-2.5-flash-image\"\n },\n \"remove\": [\n \"config.thinking_config\",\n \"thinking_level\",\n \"include_thoughts\"\n ]\n },\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-3-pro-image-preview\"\n },\n \"remove\": [\n \"config.thinking_config\"\n ]\n }\n ],\n \"request\": {\n \"method\": \"SDK\",\n \"endpoint\": \"client.models.generate_content\",\n \"sdk_call\": {\n \"args\": [],\n \"kwargs\": {\n \"model\": \"{{model}}\",\n \"contents\": [\n \"{{prompt}}\",\n \"{{reference_images}}\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"{{config_response_modalities_0}}\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"{{aspect_ratio}}\",\n \"image_size\": \"{{image_size}}\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"selected_parameters\": {\n \"prompt\": \"The cat and the dog playing in the kitchen.\",\n \"width\": 1365,\n \"height\": 768,\n \"first_image\": \"[torch.Tensor omitted: shape=(1, 1012, 1094, 3), dtype=torch.float32]\",\n \"batch\": 1,\n \"seed\": 275143688740681,\n \"debug_mode\": false,\n \"aspect_ratio\": \"16:9\",\n \"resolution\": \"1K\",\n \"model\": \"gemini-2.5-flash-image\",\n \"thinking_level\": \"minimal\",\n \"include_thoughts\": false\n },\n \"used_values\": {\n \"model\": \"gemini-2.5-flash-image\",\n \"prompt\": \"The cat and the dog playing in the kitchen.\",\n \"config_response_modalities_0\": \"IMAGE\",\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n },\n \"selected_service\": \"Nanobanana\",\n \"rendered\": {\n \"provider\": \"Gemini\",\n \"endpoint\": \"client.models.generate_content\",\n \"method\": \"SDK\",\n \"headers\": {},\n \"query\": {},\n \"body\": null,\n \"sdk_call\": {\n \"args\": [],\n \"kwargs\": {\n \"model\": \"gemini-2.5-flash-image\",\n \"contents\": [\n \"The cat and the dog playing in the kitchen.\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"IMAGE\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n }\n }\n }\n }\n }\n },\n \"request_exclusions\": [\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-2.5-flash-image\"\n },\n \"remove\": [\n \"config.thinking_config\",\n \"thinking_level\",\n \"include_thoughts\"\n ]\n },\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-3-pro-image-preview\"\n },\n \"remove\": [\n \"config.thinking_config\"\n ]\n }\n ]\n },\n \"api_result\": {\n \"_type\": \"GenerateContentResponse\",\n \"sdk_http_response\": {\n \"_type\": \"HttpResponse\",\n \"headers\": {\n \"content-type\": \"application/json; charset=UTF-8\",\n \"vary\": \"Origin, X-Origin, Referer\",\n \"content-encoding\": \"gzip\",\n \"date\": \"Fri, 06 Mar 2026 21:43:07 GMT\",\n \"server\": \"scaffolding on HTTPServer2\",\n \"x-xss-protection\": \"0\",\n \"x-frame-options\": \"SAMEORIGIN\",\n \"x-content-type-options\": \"nosniff\",\n \"server-timing\": \"gfet4t7; dur=6047\",\n \"alt-svc\": \"h3=\\\":443\\\"; ma=2592000,h3-29=\\\":443\\\"; ma=2592000\",\n \"transfer-encoding\": \"chunked\"\n },\n \"body\": null\n },\n \"candidates\": [\n {\n \"_type\": \"Candidate\",\n \"content\": {\n \"_type\": \"Content\",\n \"parts\": [\n {\n \"_type\": \"Part\",\n \"media_resolution\": null,\n \"code_execution_result\": null,\n \"executable_code\": null,\n \"file_data\": null,\n \"function_call\": null,\n \"function_response\": null,\n \"inline_data\": {\n \"_type\": \"Blob\",\n \"data\": \"[binary data omitted: 1534895 bytes]\",\n \"display_name\": null,\n \"mime_type\": \"image/png\"\n },\n \"text\": null,\n \"thought\": null,\n \"thought_signature\": null,\n \"video_metadata\": null\n }\n ],\n \"role\": \"model\"\n },\n \"citation_metadata\": null,\n \"finish_message\": null,\n \"token_count\": null,\n \"finish_reason\": \"STOP\",\n \"grounding_metadata\": null,\n \"avg_logprobs\": null,\n \"index\": 0,\n \"logprobs_result\": null,\n \"safety_ratings\": null,\n \"url_context_metadata\": null\n }\n ],\n \"create_time\": null,\n \"model_version\": \"gemini-2.5-flash-image\",\n \"prompt_feedback\": null,\n \"response_id\": \"a0qrafmnM7C028oPzozYUQ\",\n \"usage_metadata\": {\n \"_type\": \"GenerateContentResponseUsageMetadata\",\n \"cache_tokens_details\": null,\n \"cached_content_token_count\": null,\n \"candidates_token_count\": 1290,\n \"candidates_tokens_details\": [\n {\n \"_type\": \"ModalityTokenCount\",\n \"modality\": \"IMAGE\",\n \"token_count\": 1290\n }\n ],\n \"prompt_token_count\": 11,\n \"prompt_tokens_details\": [\n {\n \"_type\": \"ModalityTokenCount\",\n \"modality\": \"TEXT\",\n \"token_count\": 11\n }\n ],\n \"thoughts_token_count\": null,\n \"tool_use_prompt_token_count\": null,\n \"tool_use_prompt_tokens_details\": null,\n \"total_token_count\": 1301,\n \"traffic_type\": null\n },\n \"automatic_function_calling_history\": [],\n \"parsed\": null\n },\n \"api_error\": null\n }\n]" ], "color": "#2a363b", "bgcolor": "#3f5159" @@ -731,13 +696,13 @@ 628.220628990278 ], "flags": {}, - "order": 23, + "order": 25, "mode": 0, "inputs": [ { "name": "input", "type": "*", - "link": 367 + "link": 655 } ], "outputs": [], @@ -748,92 +713,79 @@ "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" }, "widgets_values": [ - "{\n \"model\": \"gemini-2.5-flash-image\",\n \"prompt\": \"The woman is sitting on the barstool closest to the viewer in the blue kitchen. Paint her hair red, give her a glass of champagne, and dress her in a black leather jacket with the zipper pulled down to reveal a white T-shirt underneath. Place a baseball cap on her head. She is wearing black jeans and a black belt. She is also wearing an elegant, silky, red women's neck scarf. Place the porcelain vase on the kitchen table. She holds a bug spray in her other hand and sprays it at a giant spider climbing on the wall. The woman is frightened. Her dog barks at the spider. Keep everything else unchanged. Follow all attached reference images.\",\n \"reference_images\": \"[reference_images omitted]\",\n \"config_response_modalities_0\": \"IMAGE\",\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n}" + "{\n \"model\": \"gemini-2.5-flash-image\",\n \"prompt\": \"The cat and the dog playing in the kitchen.\",\n \"config_response_modalities_0\": \"IMAGE\",\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n}" ], "color": "#232", "bgcolor": "#353" }, { - "id": 15, - "type": "PrimereResolution", + "id": 47, + "type": "PrimereAnyOutput", "pos": [ - 463.6623051612252, - -94.55294258110021 + 341.6491199516921, + 459.7499835308432 ], "size": [ - 361.37166959228534, - 310 + 887.1002652508323, + 1079.130111868482 ], "flags": {}, - "order": 14, + "order": 24, "mode": 0, "inputs": [ { - "name": "seed", - "shape": 7, - "type": "INT", - "link": 53 - }, - { - "name": "model_version", - "shape": 7, - "type": "STRING", - "link": null - }, - { - "name": "model_concept", - "shape": 7, - "type": "STRING", - "link": null - } - ], - "outputs": [ - { - "name": "WIDTH", - "type": "INT", - "links": [ - 357 - ] - }, - { - "name": "HEIGHT", - "type": "INT", - "links": [ - 358 - ] - }, - { - "name": "SQUARE_SHAPE", - "type": "INT", - "links": null - }, - { - "name": "ASPECT_RATIO", - "type": "STRING", - "links": [ - 359 - ] + "name": "input", + "type": "*", + "link": 654 } ], + "outputs": [], + "title": "Primere Any Debug - RAW PAYLOAD", "properties": { - "Node name for S&R": "PrimereResolution", + "Node name for S&R": "PrimereAnyOutput", "cnr_id": "comfyui_primere_nodes", - "ver": "782a54aaf8138894f4bfd2254326af3564da4cbb" + "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" }, "widgets_values": [ - "HD screen [16:9]", - false, - 1024, - false, - "Horizontal", - false, - false, - 1.6, - 2.8 + "{\n \"model\": \"gemini-2.5-flash-image\",\n \"contents\": [\n \"The cat and the dog playing in the kitchen.\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"IMAGE\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n }\n }\n }\n }\n}" ], "color": "#232", "bgcolor": "#353" }, + { + "id": 5, + "type": "PrimereAnyOutput", + "pos": [ + -609.6945083896912, + 461.75327312736374 + ], + "size": [ + 926.2206882503098, + 1078.7652401045225 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "input", + "type": "*", + "link": 653 + } + ], + "outputs": [], + "title": "Primere Any Debug - RENDERED", + "properties": { + "Node name for S&R": "PrimereAnyOutput", + "cnr_id": "comfyui_primere_nodes", + "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" + }, + "widgets_values": [ + "{\n \"provider\": \"Gemini\",\n \"endpoint\": \"client.models.generate_content\",\n \"method\": \"SDK\",\n \"headers\": {},\n \"query\": {},\n \"body\": null,\n \"sdk_call\": {\n \"args\": [],\n \"kwargs\": {\n \"model\": \"gemini-2.5-flash-image\",\n \"contents\": [\n \"The cat and the dog playing in the kitchen.\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"IMAGE\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n }\n }\n }\n }\n }\n },\n \"request_exclusions\": [\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-2.5-flash-image\"\n },\n \"remove\": [\n \"config.thinking_config\",\n \"thinking_level\",\n \"include_thoughts\"\n ]\n },\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-3-pro-image-preview\"\n },\n \"remove\": [\n \"config.thinking_config\"\n ]\n }\n ]\n}" + ], + "color": "#322", + "bgcolor": "#533" + }, { "id": 17, "type": "PrimereMultiImage", @@ -846,7 +798,7 @@ 518 ], "flags": {}, - "order": 13, + "order": 15, "mode": 0, "inputs": [ { @@ -926,7 +878,7 @@ "name": "IMAGE_LIST", "type": "IMAGE", "links": [ - 356 + 643 ] }, { @@ -948,7 +900,7 @@ "ver": "782a54aaf8138894f4bfd2254326af3564da4cbb" }, "widgets_values": [ - true, + false, true, 1, true, @@ -964,72 +916,161 @@ "bgcolor": "#653" }, { - "id": 47, - "type": "PrimereAnyOutput", + "id": 15, + "type": "PrimereResolution", "pos": [ - 341.6491199516921, - 459.7499835308432 + 463.6623051612252, + -94.55294258110021 ], "size": [ - 887.1002652508323, - 1079.130111868482 + 361.37166959228534, + 310 ], "flags": {}, - "order": 22, + "order": 16, "mode": 0, "inputs": [ { - "name": "input", - "type": "*", - "link": 366 + "name": "seed", + "shape": 7, + "type": "INT", + "link": 53 + }, + { + "name": "model_version", + "shape": 7, + "type": "STRING", + "link": null + }, + { + "name": "model_concept", + "shape": 7, + "type": "STRING", + "link": null + } + ], + "outputs": [ + { + "name": "WIDTH", + "type": "INT", + "links": [ + 645 + ] + }, + { + "name": "HEIGHT", + "type": "INT", + "links": [ + 646 + ] + }, + { + "name": "SQUARE_SHAPE", + "type": "INT", + "links": null + }, + { + "name": "ASPECT_RATIO", + "type": "STRING", + "links": [ + 647 + ] } ], - "outputs": [], - "title": "Primere Any Debug - RAW PAYLOAD", "properties": { - "Node name for S&R": "PrimereAnyOutput", + "Node name for S&R": "PrimereResolution", "cnr_id": "comfyui_primere_nodes", - "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" + "ver": "782a54aaf8138894f4bfd2254326af3564da4cbb" }, "widgets_values": [ - "{\n \"model\": \"gemini-2.5-flash-image\",\n \"contents\": [\n \"The woman is sitting on the barstool closest to the viewer in the blue kitchen. Paint her hair red, give her a glass of champagne, and dress her in a black leather jacket with the zipper pulled down to reveal a white T-shirt underneath. Place a baseball cap on her head. She is wearing black jeans and a black belt. She is also wearing an elegant, silky, red women's neck scarf. Place the porcelain vase on the kitchen table. She holds a bug spray in her other hand and sprays it at a giant spider climbing on the wall. The woman is frightened. Her dog barks at the spider. Keep everything else unchanged. Follow all attached reference images.\",\n \"Debug mode, data or view of [8] reference images ignored.\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"IMAGE\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n }\n }\n }\n }\n}" + "HD screen [16:9]", + false, + 1024, + false, + "Horizontal", + false, + false, + 1.6, + 2.8 ], "color": "#232", "bgcolor": "#353" }, { - "id": 5, - "type": "PrimereAnyOutput", + "id": 9, + "type": "PrimitiveStringMultiline", "pos": [ - -609.6945083896912, - 461.75327312736374 + 480.79284780821257, + -541.1178926016723 ], "size": [ - 926.2206882503098, - 1078.7652401045225 + 733.2619240917973, + 382.46790301705124 ], "flags": {}, - "order": 21, + "order": 12, "mode": 0, - "inputs": [ + "inputs": [], + "outputs": [ { - "name": "input", - "type": "*", - "link": 365 + "name": "STRING", + "type": "STRING", + "links": [ + 642 + ] } ], - "outputs": [], - "title": "Primere Any Debug - RENDERED", "properties": { - "Node name for S&R": "PrimereAnyOutput", - "cnr_id": "comfyui_primere_nodes", - "ver": "ce14e5d0f46aaa12155853e05132bffb2ee70361" + "Node name for S&R": "PrimitiveStringMultiline", + "cnr_id": "comfy-core", + "ver": "0.14.1" }, "widgets_values": [ - "{\n \"provider\": \"Gemini\",\n \"endpoint\": \"client.models.generate_content\",\n \"method\": \"SDK\",\n \"headers\": {},\n \"query\": {},\n \"body\": null,\n \"sdk_call\": {\n \"args\": [],\n \"kwargs\": {\n \"model\": \"gemini-2.5-flash-image\",\n \"contents\": [\n \"The woman is sitting on the barstool closest to the viewer in the blue kitchen. Paint her hair red, give her a glass of champagne, and dress her in a black leather jacket with the zipper pulled down to reveal a white T-shirt underneath. Place a baseball cap on her head. She is wearing black jeans and a black belt. She is also wearing an elegant, silky, red women's neck scarf. Place the porcelain vase on the kitchen table. She holds a bug spray in her other hand and sprays it at a giant spider climbing on the wall. The woman is frightened. Her dog barks at the spider. Keep everything else unchanged. Follow all attached reference images.\",\n \"Debug mode, data or view of [8] reference images ignored.\"\n ],\n \"config\": {\n \"$call\": \"types.GenerateContentConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"response_modalities\": [\n \"IMAGE\"\n ],\n \"image_config\": {\n \"$call\": \"types.ImageConfig\",\n \"$args\": [],\n \"$kwargs\": {\n \"aspect_ratio\": \"16:9\",\n \"image_size\": \"1K\"\n }\n }\n }\n }\n }\n },\n \"request_exclusions\": [\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-2.5-flash-image\"\n },\n \"remove\": [\n \"config.thinking_config\",\n \"thinking_level\",\n \"include_thoughts\"\n ]\n },\n {\n \"when\": {\n \"path\": \"model\",\n \"equals\": \"gemini-3-pro-image-preview\"\n },\n \"remove\": [\n \"config.thinking_config\"\n ]\n }\n ]\n}" + "The cat and the dog playing in the kitchen." ], - "color": "#322", - "bgcolor": "#533" + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 58, + "type": "LoadImage", + "pos": [ + -600.5867539794923, + 16.56309913330077 + ], + "size": [ + 327.5351346026613, + 386.2967736602784 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 644 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "2020-12-17_10-46-18.jpg", + "image" + ], + "color": "#432", + "bgcolor": "#653" }, { "id": 27, @@ -1043,14 +1084,14 @@ 1628.4858571984864 ], "flags": {}, - "order": 17, + "order": 19, "mode": 0, "inputs": [ { "name": "images", "shape": 7, "type": "IMAGE", - "link": 361 + "link": 649 }, { "name": "image_metadata", @@ -1078,7 +1119,40 @@ ] }, { - "id": 54, + "id": 55, + "type": "PrimitiveStringMultiline", + "pos": [ + 1408.3168031778405, + -1012.4710264421508 + ], + "size": [ + 733.2619240917973, + 382.46790301705124 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [] + } + ], + "properties": { + "Node name for S&R": "PrimitiveStringMultiline", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "The woman is sitting on the barstool closest to the viewer in the blue kitchen. Paint her hair red, give her a glass of champagne, and dress her in a black leather jacket with the zipper pulled down to reveal a white T-shirt underneath. Place a baseball cap on her head. She is wearing black jeans and a black belt. She is also wearing an elegant, silky, red women's neck scarf. Place the porcelain vase on the kitchen table. She holds a bug spray in her other hand and sprays it at a giant spider climbing on the wall. The woman is frightened. Her dog barks at the spider. Keep everything else unchanged. Follow all attached reference images.\n\ne:\\!Works\\AI\\AIPICS\\ComfyAPI\\[time(%Y-%m-Week-%W)]" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 74, "type": "PrimereApiProcessor", "pos": [ -261.240011586027, @@ -1089,13 +1163,13 @@ 950 ], "flags": {}, - "order": 16, + "order": 18, "mode": 0, "inputs": [ { "name": "prompt", "type": "STRING", - "link": 355 + "link": 642 }, { "name": "negative_prompt", @@ -1107,13 +1181,13 @@ "name": "reference_images", "shape": 7, "type": "IMAGE", - "link": 356 + "link": 643 }, { "name": "first_image", "shape": 7, "type": "IMAGE", - "link": null + "link": 644 }, { "name": "last_image", @@ -1125,25 +1199,25 @@ "name": "width", "shape": 7, "type": "INT", - "link": 357 + "link": 645 }, { "name": "height", "shape": 7, "type": "INT", - "link": 358 + "link": 646 }, { "name": "aspect_ratio", "shape": 7, "type": "STRING", - "link": 359 + "link": 647 }, { "name": "seed", "shape": 7, "type": "INT", - "link": 360 + "link": 648 } ], "outputs": [ @@ -1151,63 +1225,63 @@ "name": "RESULT", "type": "IMAGE", "links": [ - 361 + 649 ] }, { "name": "CLIENT", "type": "APICLIENT", "links": [ - 362 + 650 ] }, { "name": "PROVIDER", "type": "STRING", "links": [ - 363 + 651 ] }, { "name": "SCHEMA", "type": "TUPLE", "links": [ - 364 + 652 ] }, { "name": "RENDERED", "type": "TUPLE", "links": [ - 365 + 653 ] }, { "name": "RAW_PAYLOAD", "type": "TUPLE", "links": [ - 366 + 654 ] }, { "name": "REQUEST_BODY", "type": "TUPLE", "links": [ - 367 + 655 ] }, { "name": "API_SCHEMAS", "type": "TUPLE", "links": [ - 368 + 656 ] }, { "name": "API_RESULT", "type": "TUPLE", "links": [ - 369 + 657 ] } ], @@ -1221,7 +1295,7 @@ "Gemini", "Nanobanana", 1, - false, + true, "e:\\!Works\\AI\\AIPICS\\ComfyAPI\\[time(%Y-%m-Week-%W)]", "None", true, @@ -1231,7 +1305,7 @@ "_", true, true, - 1, + 2, false, "jpg", 95, @@ -1352,120 +1426,128 @@ "IMAGE" ], [ - 355, + 642, 9, 0, - 54, + 74, 0, "STRING" ], [ - 356, + 643, 17, 0, - 54, + 74, 2, "IMAGE" ], [ - 357, + 644, + 58, + 0, + 74, + 3, + "IMAGE" + ], + [ + 645, 15, 0, - 54, + 74, 5, "INT" ], [ - 358, + 646, 15, 1, - 54, + 74, 6, "INT" ], [ - 359, + 647, 15, 3, - 54, + 74, 7, "STRING" ], [ - 360, + 648, 16, 0, - 54, + 74, 8, "INT" ], [ - 361, - 54, + 649, + 74, 0, 27, 0, "IMAGE" ], [ - 362, - 54, + 650, + 74, 1, 2, 0, "APICLIENT" ], [ - 363, - 54, + 651, + 74, 2, 3, 0, "STRING" ], [ - 364, - 54, + 652, + 74, 3, 4, 0, "TUPLE" ], [ - 365, - 54, + 653, + 74, 4, 5, 0, "TUPLE" ], [ - 366, - 54, + 654, + 74, 5, 47, 0, "TUPLE" ], [ - 367, - 54, + 655, + 74, 6, 6, 0, "TUPLE" ], [ - 368, - 54, + 656, + 74, 7, 8, 0, "TUPLE" ], [ - 369, - 54, + 657, + 74, 8, 44, 0, @@ -1476,10 +1558,10 @@ "config": {}, "extra": { "ds": { - "scale": 0.6830134553650712, + "scale": 0.9090909090909098, "offset": [ - 1375.4683395028358, - 755.2390354026397 + 1074.1559852024538, + 856.1419736308026 ] }, "frontendVersion": "1.39.19" diff --git a/Workflow/Manual/nodes/uniapi.md b/Workflow/Manual/nodes/uniapi.md index 3ee0ee6..38faf7e 100644 --- a/Workflow/Manual/nodes/uniapi.md +++ b/Workflow/Manual/nodes/uniapi.md @@ -811,7 +811,7 @@ File saving only runs when `auto_save_result` is ON and the API returned a valid | Input | Default | Description | |---|---|---| -| `output_path` | `[time(%Y-%m-%d)]` | Base output directory. Supports `[time(...)]` tokens. Relative paths are anchored to the ComfyUI output directory. Absolute paths are used as-is. | +| `output_path` | `[time(%Y-%m-%d)]` | Base output directory. Supports `[time(...)]` tokens. Relative paths are anchored to the ComfyUI output directory. Absolute paths are used as-is — e.g. `e:\!Works\AI\AIPICS\ComfyAPI\[time(%Y-%m-Week-%W)]` saves outside ComfyUI to any location on disk. | | `subpath` | `Project` | Fixed subdirectory appended after provider/service/model dirs. Select `None` to skip. | | `add_provider_to_path` | OFF | Adds the API provider name as a subdirectory (e.g. `Gemini`). | | `add_service_to_path` | OFF | Adds the selected service name as a subdirectory (e.g. `Imagen`). | @@ -855,6 +855,9 @@ The actual file type is detected from the API response bytes (MIME detection), n | `text/*` | `.txt` (UTF-8) | | other / unknown | extension from `image_extension` | +> **Important — non-image results have no display or player.** +> Video, audio, and text results are saved to disk only. There is no preview, no image output, and no playback inside ComfyUI. When the file is saved successfully, a toast notification appears on the node with the saved file path. If `auto_save_result` is **OFF**, the result is permanently lost — it exists only in memory for the duration of that execution and is not recoverable afterward. + ### Metadata files | Input | Default | Description | diff --git a/components/API/references/Gemini_VEO.py b/components/API/references/Gemini_VEO.py new file mode 100644 index 0000000..4b8e887 --- /dev/null +++ b/components/API/references/Gemini_VEO.py @@ -0,0 +1,20 @@ +from __future__ import annotations + +import io +from typing import Any +import numpy as np +from PIL import Image +from google.genai import types + + +def handle_reference_images(img_binary_api: Any = None, temp_file_ref: str = "", loaded_client_for_upload: Any = None, **_: Any): + if img_binary_api is None: + return {} + if type(img_binary_api).__name__ == "Tensor": + img_array = (img_binary_api[0].cpu().numpy() * 255).astype(np.uint8) + pil_image = Image.fromarray(img_array) + buffer = io.BytesIO() + pil_image.save(buffer, format="PNG") + image_bytes = buffer.getvalue() + return {"first_image": types.Image(image_bytes=image_bytes, mime_type="image/png")} + return {} diff --git a/components/API/responses/Gemini_VEO.py b/components/API/responses/Gemini_VEO.py new file mode 100644 index 0000000..c664f5f --- /dev/null +++ b/components/API/responses/Gemini_VEO.py @@ -0,0 +1,30 @@ +from __future__ import annotations + +import time +import os +import random +import folder_paths + + +def handle_response(api_result, schema=None, loaded_client=None, response_url=None, client=None, sdk_context=None): + if api_result is None: + return [None, None] + + operation = api_result + while not operation.done: + time.sleep(10) + operation = client.operations.get(operation) + + generated_videos = getattr(getattr(operation, 'response', None), 'generated_videos', None) + if not generated_videos: + return [None, None] + + generated_video = generated_videos[0] + tmp_path = os.path.join(folder_paths.temp_directory, f"veo_{random.randint(10000, 99999)}.mp4") + client.files.download(file=generated_video.video) + generated_video.video.save(tmp_path) + + with open(tmp_path, 'rb') as f: + video_bytes = f.read() + + return ["video_result", video_bytes] diff --git a/front_end/api_schemas.json b/front_end/api_schemas.json index 5885542..52bcc29 100644 --- a/front_end/api_schemas.json +++ b/front_end/api_schemas.json @@ -68,16 +68,17 @@ "VEO": { "provider": "Gemini", "service": "VEO", + "reference_images_handler": "Gemini_VEO.py", "import_modules": [ "from google import genai", "from google.genai import types" ], "possible_parameters": { - "aspect_ratio": ["9:16", "16:9"], - "durationSeconds": ["4", "6", "8"], - "personGeneration": ["allow_all", "allow_adult", "dont_allow"], - "resolution": ["720p", "1080p", "4K"], - "model": ["veo-3.0-generate", "veo-3.0-fast-generate", "veo-3.1-generate-preview", "veo-3.1-generate", "veo-3.1-fast-generate-preview", "veo-3.1-fast-generate"] + "model": ["veo-2.0-generate-001", "veo-3.1-fast-generate-preview", "veo-3.1-generate-preview"], + "aspect_ratio": ["16:9", "16:10", "9:16", "10:16"], + "duration_seconds": [4, 5, 6, 7, 8], + "person_generation": ["allow_adult", "allow_all", "dont_allow"], + "resolution": ["720p", "1080p", "4K"] }, "request": { "method": "SDK", @@ -93,11 +94,13 @@ "$args": [], "$kwargs": { "aspectRatio": "{{aspect_ratio}}", + "number_of_videos": "{{batch}}", "resolution": "{{config_resolution}}", - "durationSeconds": "{{durationSeconds}}", - "personGeneration": "{{personGeneration}}", + "durationSeconds": "{{duration_seconds}}", + "personGeneration": "{{person_generation}}", "reference_images": "{{reference_images}}", - "last_frame": "{{last_image}}" + "last_frame": "{{last_image}}", + "negative_prompt": "{{negative_prompt}}" } } } diff --git a/front_end/images/file_saved.jpg b/front_end/images/file_saved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..724f0908d3a69da47ed6635f7a49c7c1db4240cd GIT binary patch literal 113317 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 bh$xFH9X}Arlmo0@0MZ-*)Ru*y`^o new Promise((resolve, reject) => { + const blobUrl = URL.createObjectURL(blob); + const img = new Image(); + img.onload = () => { + URL.revokeObjectURL(blobUrl); + const canvas = document.createElement('canvas'); + let w = img.naturalWidth; + let h = img.naturalHeight; + if (maxWidth && w > maxWidth) { h = Math.round(h * maxWidth / w); w = maxWidth; } + if (maxHeight && h > maxHeight) { w = Math.round(w * maxHeight / h); h = maxHeight; } + canvas.width = w; + canvas.height = h; + const ctx = canvas.getContext('2d'); + ctx.imageSmoothingEnabled = true; + ctx.imageSmoothingQuality = 'high'; + ctx.drawImage(img, 0, 0, w, h); + resolve(canvas); + }; + img.onerror = () => { + URL.revokeObjectURL(blobUrl); + reject(new Error('Failed to decode image: ' + imageName)); + }; + img.src = blobUrl; + }); + fetch(imageSource) .then((res) => res.blob()) - .then((blob) => { - const reader = new FileReader(); - reader.onloadend = () => { - const file = dataURLtoFile(reader.result, imageName); - loadImage(file, function (img) { - if (typeof img.toDataURL === "function") { - const resampledImage = img.toDataURL(imgMime, wv.targetQuality); - if (wv.saveMode === false) { - downloadImage(resampledImage, extension, saveImageName); - } else { - sendPOSTmessage(JSON.stringify({ - "PreviewTarget": wv.previewTarget, - "PreviewTargetOriginal": state.selectedTarget, - "extension": extension, - "ImageName": imageName, - "ImagePath": ImagePath, - "SaveImageName": saveImageName, - "maxWidth": img.width, - "maxHeight": img.height, - "TargetQuality": wv.targetQuality, - "PrwSaveMode": wv.prwSaveMode, - })); - } - } else { - alert('Source image: ' + imageName + ' does not exist, maybe deleted.'); - } - }, { - maxWidth: maxWidth, - maxHeight: maxHeight, - canvas: true, - pixelRatio: 1, - downsamplingRatio: wv.targetQuality / 100, - orientation: true, - imageSmoothingEnabled: true, - imageSmoothingQuality: 'high', - }); - }; - reader.readAsDataURL(blob); + .then((blob) => renderToCanvas(blob)) + .then((canvas) => { + const resampledImage = canvas.toDataURL(imgMime, wv.targetQuality / 100); + if (wv.saveMode === false) { + downloadImage(resampledImage, extension, saveImageName); + } else { + sendPOSTmessage(JSON.stringify({ + "PreviewTarget": wv.previewTarget, + "PreviewTargetOriginal": state.selectedTarget, + "extension": extension, + "ImageName": imageName, + "ImagePath": ImagePath, + "SaveImageName": saveImageName, + "maxWidth": canvas.width, + "maxHeight": canvas.height, + "TargetQuality": wv.targetQuality, + "PrwSaveMode": wv.prwSaveMode, + })); + } }) .catch((err) => { alert('Failed to load source image: ' + err.message); diff --git a/front_end/primere_uniapi.js b/front_end/primere_uniapi.js index 2f932b7..848c0a6 100644 --- a/front_end/primere_uniapi.js +++ b/front_end/primere_uniapi.js @@ -6,6 +6,106 @@ const SCHEMA_URL = new URL("/extensions/ComfyUI_Primere_Nodes/api_schemas.json", let schemaCache = null; let schemaPromise = null; +const TOAST_DURATION_MS = 10000; // toast auto-dismiss delay in milliseconds + +function showToast(status, message) { + let container = document.getElementById("primere-toast-container"); + if (!container) { + container = document.createElement("div"); + container.id = "primere-toast-container"; + Object.assign(container.style, { + position: "fixed", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + zIndex: "99999", + display: "flex", + flexDirection: "column", + gap: "8px", + pointerEvents: "none", + }); + document.body.appendChild(container); + } + + const isSuccess = status === "success"; + const accentColor = isSuccess ? "#4caf50" : "#f44336"; + const icon = isSuccess ? "✔" : "✖"; + + const toast = document.createElement("div"); + Object.assign(toast.style, { + position: "relative", + overflow: "hidden", + background: "#1e1e1e", + border: `1px solid ${accentColor}`, + borderLeft: `4px solid ${accentColor}`, + borderRadius: "6px", + padding: "10px 14px 10px 12px", + minWidth: "280px", + maxWidth: "440px", + display: "flex", + alignItems: "flex-start", + gap: "10px", + pointerEvents: "all", + boxShadow: "0 4px 16px rgba(0,0,0,0.6)", + opacity: "0", + transform: "translateY(-12px)", + transition: "opacity 0.25s ease, transform 0.25s ease", + fontFamily: "sans-serif", + fontSize: "15px", + color: "#e0e0e0", + cursor: "default", + }); + + const iconEl = document.createElement("span"); + iconEl.textContent = icon; + Object.assign(iconEl.style, { color: accentColor, fontSize: "15px", flexShrink: "0", lineHeight: "1.5" }); + + const textEl = document.createElement("span"); + textEl.textContent = message; + Object.assign(textEl.style, { flex: "1", lineHeight: "1.5", wordBreak: "break-all" }); + + const closeBtn = document.createElement("button"); + closeBtn.textContent = "✕"; + Object.assign(closeBtn.style, { + background: "none", border: "none", color: "#888", cursor: "pointer", + fontSize: "13px", padding: "0 0 0 6px", flexShrink: "0", lineHeight: "1.5", + }); + closeBtn.addEventListener("mouseover", () => { closeBtn.style.color = "#ccc"; }); + closeBtn.addEventListener("mouseout", () => { closeBtn.style.color = "#888"; }); + + const progress = document.createElement("div"); + Object.assign(progress.style, { + position: "absolute", bottom: "0", left: "0", + height: "3px", width: "100%", + background: accentColor, + transformOrigin: "left", + transform: "scaleX(1)", + transition: `transform ${TOAST_DURATION_MS / 1000}s linear`, + }); + + toast.appendChild(iconEl); + toast.appendChild(textEl); + toast.appendChild(closeBtn); + toast.appendChild(progress); + container.appendChild(toast); + + requestAnimationFrame(() => requestAnimationFrame(() => { + toast.style.opacity = "1"; + toast.style.transform = "translateY(0)"; + progress.style.transform = "scaleX(0)"; + })); + + function dismiss() { + clearTimeout(timer); + toast.style.opacity = "0"; + toast.style.transform = "translateY(-12px)"; + setTimeout(() => toast.remove(), 280); + } + + const timer = setTimeout(dismiss, TOAST_DURATION_MS); + closeBtn.addEventListener("click", dismiss); +} + async function loadSchemas() { if (schemaCache) { return schemaCache; @@ -350,6 +450,22 @@ async function initializeUniApiNode(node) { ctx.restore(); }; + const onSaveResult = (event) => { + const detail = event.detail; + if (String(detail?.node_id) !== String(node.id)) return; + if (detail.status === "success") { + showToast("success", `Saved: ${detail.path}`); + } else { + showToast("error", `Save failed: ${detail.error}`); + } + }; + app.api.addEventListener("primere.save_result", onSaveResult); + + const originalOnRemoved = node.onRemoved; + node.onRemoved = function () { + originalOnRemoved?.call(this); + app.api.removeEventListener("primere.save_result", onSaveResult); + }; const originalOnWidgetChanged = node.onWidgetChanged; node.onWidgetChanged = function (name, value, oldValue, widget) {