chore: auto-commit (61 archivos)
- docs/capabilities/INDEX.md - docs/capabilities/comfyui.md - python/functions/browser/comfyui_export_workflow_ui.md - python/functions/browser/comfyui_export_workflow_ui.py - python/functions/browser/comfyui_load_workflow_ui.md - python/functions/browser/comfyui_load_workflow_ui.py - python/functions/browser/comfyui_queue_prompt_ui.md - python/functions/browser/comfyui_queue_prompt_ui.py - python/functions/browser/comfyui_refresh_nodes_ui.md - python/functions/browser/comfyui_refresh_nodes_ui.py - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
---
|
||||
name: comfyui_fetch_output_image
|
||||
kind: function
|
||||
lang: py
|
||||
domain: ml
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def comfyui_fetch_output_image(filename: str, *, subfolder: str = \"\", type_: str = \"output\", server: str = \"127.0.0.1:8188\", dest_dir: str = \".\", timeout: float = 60.0) -> dict"
|
||||
description: "Descarga un PNG generado por ComfyUI via GET /view?filename=&subfolder=&type= a disco local. comfyui_wait_result solo devuelve metadata (filename/subfolder/type); esta funcion baja el archivo real. Impura: HTTP GET + escritura en disco, solo stdlib."
|
||||
tags: [comfyui, ml, image-generation, download, workflow]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: error_go_core
|
||||
imports: []
|
||||
params:
|
||||
- name: filename
|
||||
desc: "Nombre del archivo en el servidor (ej. 'comfy_00001_.png'), tal como lo reporta comfyui_wait_result en outputs[node].images[].filename."
|
||||
- name: subfolder
|
||||
desc: "Subcarpeta dentro de la carpeta del servidor (vacia por defecto). keyword-only."
|
||||
- name: type_
|
||||
desc: "Tipo de carpeta del servidor: 'output', 'temp' o 'input'. keyword-only."
|
||||
- name: server
|
||||
desc: "host:port del servidor ComfyUI sin esquema. keyword-only."
|
||||
- name: dest_dir
|
||||
desc: "Directorio local donde guardar la imagen; se crea si no existe. keyword-only."
|
||||
- name: timeout
|
||||
desc: "Timeout de la peticion HTTP en segundos. keyword-only."
|
||||
output: "dict {ok, path, size_bytes, error}. path = ruta local del PNG guardado, size_bytes = bytes descargados. Si falla, ok=False y error explica (HTTP/conexion/escritura)."
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "python/functions/ml/comfyui_fetch_output_image.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.join(os.environ["HOME"], "fn_registry", "python", "functions"))
|
||||
from ml.comfyui_fetch_output_image import comfyui_fetch_output_image
|
||||
|
||||
# Tras comfyui_submit_workflow + comfyui_wait_result, baja el PNG al disco
|
||||
res = comfyui_fetch_output_image("comfy_00001_.png", dest_dir="/tmp/comfy_out")
|
||||
# res == {"ok": True, "path": "/tmp/comfy_out/comfy_00001_.png", "size_bytes": 372027, "error": ""}
|
||||
```
|
||||
|
||||
Lánzalo con el python del venv (import de arriba o heredoc). Nota: `./fn run` directo no aplica porque la firma usa `*` (keyword-only), no soportado por el generador de runner de `fn run`.
|
||||
|
||||
## Cuando usarla
|
||||
|
||||
Despues de generar una imagen (submit + wait), cuando necesites el PNG real en
|
||||
disco (no solo su nombre): para abrirlo, mostrarlo, post-procesarlo o moverlo a
|
||||
un vault. Toma `filename`/`subfolder`/`type` directo de la entrada `images[]` que
|
||||
devuelve `comfyui_wait_result` por nodo SaveImage.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- Impura: hace HTTP GET al servidor y escribe en disco. Requiere el servidor vivo.
|
||||
- `type_` debe coincidir con la carpeta real: SaveImage escribe en "output",
|
||||
PreviewImage en "temp". Si pasas el type equivocado, el servidor responde 404.
|
||||
- El nombre local es `basename(filename)` dentro de `dest_dir` (no recrea la
|
||||
estructura de subfolder en local).
|
||||
- No reintenta: si el servidor esta reiniciandose, devuelve error de conexion;
|
||||
reintenta tu desde el caller.
|
||||
Reference in New Issue
Block a user