f12272d002
- 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>
62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
"""Encola el grafo actual de ComfyUI desde la UI (equivale a pulsar "Queue Prompt").
|
|
|
|
Llama `app.queuePrompt(0)` en la pestana de ComfyUI abierta en el navegador, que
|
|
serializa el grafo visual al API format y hace POST /prompt al server. Compone
|
|
cdp_eval.
|
|
|
|
Funcion impura: hace red (CDP WebSocket) y dispara trabajo de GPU en el server.
|
|
"""
|
|
import json
|
|
|
|
try: # ejecucion directa del archivo / fn run (browser/ en sys.path[0])
|
|
from cdp_eval import cdp_eval
|
|
except ImportError: # importado como paquete (sys.path = python/functions)
|
|
from browser.cdp_eval import cdp_eval
|
|
|
|
|
|
def comfyui_queue_prompt_ui(
|
|
*,
|
|
port: int = 9222,
|
|
server_url_substr: str = "8188",
|
|
timeout_s: float = 20.0,
|
|
) -> dict:
|
|
"""Encola el grafo actual de la UI de ComfyUI.
|
|
|
|
Args:
|
|
port: puerto de remote debugging del Chrome diario. Default 9222.
|
|
server_url_substr: substring de la URL de la pestana de ComfyUI.
|
|
timeout_s: timeout de la conexion CDP en segundos.
|
|
|
|
Returns:
|
|
dict {ok: bool, queued: bool, error: str}. queued True si
|
|
app.queuePrompt resolvio sin excepcion.
|
|
"""
|
|
expr = (
|
|
"(async function(){"
|
|
" if(!window.app || typeof app.queuePrompt!=='function'){"
|
|
" return {queued:false, error:'window.app.queuePrompt no disponible en la pestana'};"
|
|
" }"
|
|
" try{ await app.queuePrompt(0); return {queued:true, error:''}; }"
|
|
" catch(e){ return {queued:false, error:String(e)}; }"
|
|
"})()"
|
|
)
|
|
r = cdp_eval(
|
|
expr,
|
|
port=port,
|
|
target_url_substr=server_url_substr,
|
|
await_promise=True,
|
|
timeout_s=timeout_s,
|
|
)
|
|
if not r["ok"]:
|
|
return {"ok": False, "queued": False, "error": r["error"]}
|
|
val = r["value"] or {}
|
|
return {
|
|
"ok": bool(val.get("queued")),
|
|
"queued": bool(val.get("queued")),
|
|
"error": val.get("error", ""),
|
|
}
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(json.dumps(comfyui_queue_prompt_ui(), ensure_ascii=False, indent=2))
|