diff --git a/python/functions/ml/comfyui_fetch_civitai_image_meta.md b/python/functions/ml/comfyui_fetch_civitai_image_meta.md index 87f13b47..e7b894f2 100644 --- a/python/functions/ml/comfyui_fetch_civitai_image_meta.md +++ b/python/functions/ml/comfyui_fetch_civitai_image_meta.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.0.0" purity: impure -signature: "def comfyui_fetch_civitai_image_meta(image_ref, *, token: str | None = None, timeout: float = 15.0) -> dict" +signature: "def comfyui_fetch_civitai_image_meta(image_ref, token: str | None = None, timeout: float = 15.0) -> dict" description: "Recupera los detalles de generacion de una imagen de Civitai por su id o URL (civitai.com/images/): prompt, prompt negativo, modelo, sampler, steps, cfg, seed, dimensiones, recursos (checkpoint + LoRAs) y nivel NSFW. Es el paso 'entrar al link y observar como lo hicieron'. Usa los endpoints tRPC image.getGenerationData + image.get que consume la propia web de civitai.com, porque la API v1 publica (GET /api/v1/images) hoy devuelve meta=null y un JPEG recomprimido sin workflow embebido. Si la meta trae un workflow ComfyUI embebido (campo comfy) lo devuelve en API format. NO descarga la imagen ni reconstruye workflow: solo lee. Impura: HTTP a civitai.com + subprocess (pass para el token)." tags: [comfyui, civitai, replicate, ml, metadata, http, stable-diffusion] uses_functions: [] diff --git a/python/functions/ml/comfyui_fetch_civitai_image_meta.py b/python/functions/ml/comfyui_fetch_civitai_image_meta.py index dc3998ff..dc062604 100644 --- a/python/functions/ml/comfyui_fetch_civitai_image_meta.py +++ b/python/functions/ml/comfyui_fetch_civitai_image_meta.py @@ -128,15 +128,15 @@ def _extract_comfy_workflow(meta): return {} -def comfyui_fetch_civitai_image_meta(image_ref, *, token=None, timeout=15.0): +def comfyui_fetch_civitai_image_meta(image_ref, token=None, timeout=15.0): """Recupera los detalles de generación de una imagen de Civitai por id/URL. Args: image_ref: id numérico de la imagen (int o str), o su URL `https://civitai.com/images/` (con o sin query string). token: API token de Civitai (header Authorization Bearer). Si None se - resuelve de `pass civitai/api-token`. No hardcodear. keyword-only. - timeout: timeout HTTP en segundos por petición. keyword-only. + resuelve de `pass civitai/api-token`. No hardcodear. + timeout: timeout HTTP en segundos por petición. Returns: dict {ok, image_id, meta, resources, process, comfy_workflow, width, diff --git a/python/functions/ml/comfyui_import_workflow_png.md b/python/functions/ml/comfyui_import_workflow_png.md index 6fe3be94..faff91d6 100644 --- a/python/functions/ml/comfyui_import_workflow_png.md +++ b/python/functions/ml/comfyui_import_workflow_png.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.0.0" purity: impure -signature: "def comfyui_import_workflow_png(png_path_or_url: str, *, timeout: float = 15.0) -> dict" +signature: "def comfyui_import_workflow_png(png_path_or_url: str, timeout: float = 15.0) -> dict" description: "Extrae el workflow embebido en los chunks de texto de un PNG de ComfyUI. Lee el chunk 'prompt' (API format) y/o 'workflow' (UI graph) de los chunks tEXt/zTXt/iTXt con stdlib (struct, zlib). Acepta path local o URL. Impura: red opcional + lectura de disco." tags: [comfyui, ml, import, png, workflow, stable-diffusion] uses_functions: [] diff --git a/python/functions/ml/comfyui_import_workflow_png.py b/python/functions/ml/comfyui_import_workflow_png.py index 83c5cf97..a79472cf 100644 --- a/python/functions/ml/comfyui_import_workflow_png.py +++ b/python/functions/ml/comfyui_import_workflow_png.py @@ -14,12 +14,12 @@ import urllib.request import zlib -def comfyui_import_workflow_png(png_path_or_url: str, *, timeout: float = 15.0) -> dict: +def comfyui_import_workflow_png(png_path_or_url: str, timeout: float = 15.0) -> dict: """Devuelve el/los workflow(s) embebido(s) en un PNG de ComfyUI. Args: png_path_or_url: ruta local de un PNG, o URL http(s) de un PNG. - timeout: timeout HTTP en segundos (solo si es URL). keyword-only. + timeout: timeout HTTP en segundos (solo si es URL). Returns: dict {ok, prompt, workflow, format_detected, error}: diff --git a/python/functions/ml/comfyui_interrupt_queue.md b/python/functions/ml/comfyui_interrupt_queue.md index 0b22877b..c1e1272c 100644 --- a/python/functions/ml/comfyui_interrupt_queue.md +++ b/python/functions/ml/comfyui_interrupt_queue.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.1.0" purity: impure -signature: "def comfyui_interrupt_queue(*, clear_pending: bool = False, server: str = \"127.0.0.1:8188\", timeout: float = 10.0) -> dict" +signature: "def comfyui_interrupt_queue(clear_pending: bool = False, server: str = \"127.0.0.1:8188\", timeout: float = 10.0) -> dict" description: "Corta la generacion en curso de ComfyUI (POST /interrupt) y, si clear_pending=True, vacia ademas la cola de pendientes (POST /queue {\"clear\":true}). Consulta GET /queue al final para reportar queue_remaining. Devuelve {ok, interrupted, cleared, queue_remaining, error}. NO lanza excepcion en fallo de red: degrada a {ok: False, error}. /interrupt corta solo el prompt en ejecucion, no vacia los pendientes salvo clear_pending. Impura: HTTP POST + GET, solo stdlib (urllib, json)." tags: [comfyui, ml, queue, interrupt, control, http] uses_functions: [] diff --git a/python/functions/ml/comfyui_list_skills.md b/python/functions/ml/comfyui_list_skills.md index 7b0177b9..64d7069d 100644 --- a/python/functions/ml/comfyui_list_skills.md +++ b/python/functions/ml/comfyui_list_skills.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.0.0" purity: impure -signature: "def comfyui_list_skills(*, library_dir: str = None, include_nsfw: bool = False) -> dict" +signature: "def comfyui_list_skills(library_dir: str = None, include_nsfw: bool = False) -> dict" description: "Lista las skills ComfyUI guardadas en la libreria de disco con su metadata de resumen: slug, title, base_workflow, version, score_mean/score_n y nsfw (de provenance.nsfw), mas n_versions. Respeta include_nsfw=False (oculta las NSFW por defecto). Libreria inexistente o vacia -> lista vacia sin error. library_dir default ~/ComfyUI/skills_library." error_type: error_go_core tags: [comfyui, comfyui-skill, ml, skill, library] diff --git a/python/functions/ml/comfyui_list_skills.py b/python/functions/ml/comfyui_list_skills.py index f04f3169..b068cc15 100644 --- a/python/functions/ml/comfyui_list_skills.py +++ b/python/functions/ml/comfyui_list_skills.py @@ -28,13 +28,12 @@ def _n_versions(skill_dir): if f.startswith("v") and f.endswith(".json")]) -def comfyui_list_skills(*, library_dir: str = None, include_nsfw: bool = False) -> dict: +def comfyui_list_skills(library_dir: str = None, include_nsfw: bool = False) -> dict: """Lista las skills de la libreria con su metadata de resumen. Args: - library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. keyword-only. + library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. include_nsfw: si False (default), oculta las skills con `provenance.nsfw == True`. - keyword-only. Returns: dict ``{ok, skills, count, error}`` donde `skills` es una lista de dicts diff --git a/python/functions/ml/comfyui_load_skill.md b/python/functions/ml/comfyui_load_skill.md index e93dae0b..55f4356c 100644 --- a/python/functions/ml/comfyui_load_skill.md +++ b/python/functions/ml/comfyui_load_skill.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.0.0" purity: impure -signature: "def comfyui_load_skill(slug: str, *, version=None, library_dir: str = None) -> dict" +signature: "def comfyui_load_skill(slug: str, version=None, library_dir: str = None) -> dict" description: "Lee una receta de skill ComfyUI de la libreria de disco: recipe.json (version actual) o un snapshot versions/vN.json. Hermana inversa de comfyui_save_skill; el round-trip save(recipe)->load(slug) devuelve un dict identico. library_dir default ~/ComfyUI/skills_library. Slug, version o archivo inexistente -> {ok:False} sin lanzar." error_type: error_go_core tags: [comfyui, comfyui-skill, ml, skill, library] diff --git a/python/functions/ml/comfyui_load_skill.py b/python/functions/ml/comfyui_load_skill.py index f9ea0233..59185f90 100644 --- a/python/functions/ml/comfyui_load_skill.py +++ b/python/functions/ml/comfyui_load_skill.py @@ -36,14 +36,14 @@ def _version_filename(version): return None -def comfyui_load_skill(slug: str, *, version=None, library_dir: str = None) -> dict: +def comfyui_load_skill(slug: str, version=None, library_dir: str = None) -> dict: """Lee la receta de una skill (version actual o un snapshot concreto). Args: slug: slug de la skill (nombre de su carpeta en la libreria). version: si None, lee `recipe.json` (version actual). Si se pasa (int, "1" o - "v1"), lee el snapshot `versions/vN.json`. keyword-only. - library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. keyword-only. + "v1"), lee el snapshot `versions/vN.json`. + library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. Returns: dict ``{ok, recipe, slug, path, version, error}``. En exito ``ok=True`` y `recipe` diff --git a/python/functions/ml/comfyui_save_skill.md b/python/functions/ml/comfyui_save_skill.md index b5dd2840..64acfbb3 100644 --- a/python/functions/ml/comfyui_save_skill.md +++ b/python/functions/ml/comfyui_save_skill.md @@ -5,7 +5,7 @@ lang: py domain: ml version: "1.0.0" purity: impure -signature: "def comfyui_save_skill(recipe: dict, *, library_dir: str = None) -> dict" +signature: "def comfyui_save_skill(recipe: dict, library_dir: str = None) -> dict" description: "Persiste una receta de skill ComfyUI (schema comfyui-skill) en la libreria de disco: valida el schema minimo y escribe //recipe.json + un snapshot inmutable versions/vN.json (N incremental) + bitacora growth_log.jsonl + regenera INDEX.md. No muta la receta (round-trip identico con comfyui_load_skill). library_dir default ~/ComfyUI/skills_library. Devuelve dict {ok, slug, path, version_file, n_versions, error}; nunca lanza." error_type: error_go_core tags: [comfyui, comfyui-skill, ml, skill, library, persistence] diff --git a/python/functions/ml/comfyui_save_skill.py b/python/functions/ml/comfyui_save_skill.py index 5a4b2840..96c577ad 100644 --- a/python/functions/ml/comfyui_save_skill.py +++ b/python/functions/ml/comfyui_save_skill.py @@ -91,13 +91,13 @@ def _rewrite_index(lib): fh.write("\n".join(lines)) -def comfyui_save_skill(recipe: dict, *, library_dir: str = None) -> dict: +def comfyui_save_skill(recipe: dict, library_dir: str = None) -> dict: """Valida y persiste una receta de skill en la libreria de disco. Args: recipe: dict de la receta (schema `comfyui-skill`). Requiere al menos `slug`, `base_workflow` y `version` (strings no vacios). No se muta. - library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. keyword-only. + library_dir: raiz de la libreria. Default `~/ComfyUI/skills_library`. Returns: dict ``{ok, slug, path, recipe_path, version_file, n_versions, error}``. En error de