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_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.
|
||||
Reference in New Issue
Block a user