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:
2026-06-24 00:30:30 +02:00
parent 495f545ec1
commit f12272d002
72 changed files with 6049 additions and 0 deletions
@@ -0,0 +1,66 @@
---
name: comfyui_object_info
kind: function
lang: py
domain: ml
version: "1.0.0"
purity: impure
signature: "def comfyui_object_info(server: str = \"127.0.0.1:8188\", node_class: str | None = None, timeout: float = 30.0) -> dict"
description: "Consulta el catalogo de nodos de un servidor ComfyUI via GET /object_info (o un nodo concreto con /object_info/{node_class}). Devuelve specs de inputs y valores enumerados (ej. lista de checkpoints visibles). Impura: HTTP GET, solo stdlib."
tags: [comfyui, ml, image-generation, stable-diffusion, introspection, http]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
params:
- name: server
desc: "host:port del servidor ComfyUI sin esquema (default '127.0.0.1:8188')."
- name: node_class
desc: "Si se pasa, consulta solo ese class_type via /object_info/{node_class} (ej. 'CheckpointLoaderSimple'). None devuelve el catalogo completo."
- name: timeout
desc: "Timeout de la peticion HTTP en segundos."
output: "dict del catalogo. Con node_class=None es {class_type: spec, ...} (cientos de nodos). Con node_class set, {class_type: spec} de un solo item. Cada spec tiene input.required/optional con tipos y enums; ej. info['CheckpointLoaderSimple']['input']['required']['ckpt_name'][0] es la lista de checkpoints."
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/ml/comfyui_object_info.py"
---
## Ejemplo
```python
import sys, os
sys.path.insert(0, os.path.join(os.environ["HOME"], "fn_registry", "python", "functions"))
from ml.comfyui_object_info import comfyui_object_info
info = comfyui_object_info() # catalogo completo
print(len(info)) # ~792 nodos
ckpts = info["CheckpointLoaderSimple"]["input"]["required"]["ckpt_name"][0]
print(ckpts) # ['v1-5-pruned-emaonly-fp16.safetensors']
ks = comfyui_object_info(node_class="KSampler") # solo un nodo
print(list(ks.keys())) # ['KSampler']
```
O lanzable directo con: `./fn run comfyui_object_info` (imprime n nodos + checkpoints visibles).
## Cuando usarla
Antes de construir o enviar un workflow: descubre que checkpoints, samplers,
schedulers y nodos existen en el servidor concreto. Usala para validar que el
`ckpt_name` que vas a poner en `comfyui_build_txt2img_workflow` existe, o para
explorar nodos disponibles (LoRA loaders, upscalers, ControlNet) antes de
componer workflows mas ricos.
## Gotchas
- El catalogo completo es grande (cientos de nodos): preferir `node_class` si
solo necesitas uno.
- Los valores enumerados (checkpoints, vaes, loras) reflejan lo que el SERVIDOR
ve en sus carpetas models/, no lo que hay en tu disco local. Si acabas de
copiar un checkpoint, el servidor puede no haberlo escaneado hasta reiniciar o
refrescar.
- Lanza RuntimeError si ComfyUI no esta arriba (conexion rechazada) o responde
con error. El catalogo solo esta disponible con el servidor corriendo.