70d541fca9
Grupo nuevo comfyui-skill: recetas versionadas de generación ComfyUI que
compilan a un workflow cambiando solo el subject.
- comfyui_build_skill_workflow (pura): receta -> workflow API format,
despacha base (txt2img/flux/sdxl_refiner), sustituye {subject}+triggers,
encadena loras e inject blocks (facedetailer, hires_fix). SkillWorkflowError tipada.
- comfyui_inject_hires_fix (pura): inyecta 2ª pasada UltimateSDUpscale sobre dict.
- comfyui_save/load/list_skill (impuras): CRUD de la librería en disco con
versionado por snapshots, round-trip idéntico, filtro NSFW.
- ask_llm_vision (core, claude-direct): pregunta multimodal imagen+texto via
API directa Anthropic, para puntuar generaciones.
- Página madre docs/capabilities/comfyui-skill.md con schema canónico de recipe.json.
Tests offline: 11 verdes (6 builder + 5 inject_hires_fix). Sin GPU.
2.8 KiB
2.8 KiB
name, kind, lang, domain, version, purity, signature, description, error_type, tags, uses_functions, uses_types, params, output, file_path
| name | kind | lang | domain | version | purity | signature | description | error_type | tags | uses_functions | uses_types | params | output | file_path | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| comfyui_load_skill | function | py | ml | 1.0.0 | impure | def comfyui_load_skill(slug: str, *, version=None, library_dir: str = None) -> dict | 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_go_core |
|
|
dict {ok, recipe, slug, path, version, error}. En exito ok=True y recipe es el dict guardado; si slug/version/archivo no existen ok=False y recipe=None. | python/functions/ml/comfyui_load_skill.py |
comfyui_load_skill
Carga una receta de skill guardada por comfyui_save_skill. Paso de
entrada del flujo del grupo comfyui-skill: load_skill →
comfyui_build_skill_workflow → submit → wait.
Ejemplo
import sys, os
sys.path.insert(0, os.path.join(os.environ["HOME"], "fn_registry", "python", "functions"))
from ml.comfyui_load_skill import comfyui_load_skill
# Version actual
res = comfyui_load_skill("portrait_cinematic_sdxl", library_dir="/tmp/skills_demo")
if res["ok"]:
recipe = res["recipe"]
# Un snapshot concreto (v1, v2, ...)
old = comfyui_load_skill("portrait_cinematic_sdxl", version=1, library_dir="/tmp/skills_demo")
O directo: ./fn run comfyui_load_skill demo_skill --library-dir /tmp/skills_demo.
Cuando usarla
- Para recuperar una receta antes de compilarla con
comfyui_build_skill_workflow. - Para inspeccionar un snapshot histórico concreto (
version=N) y comparar cómo evolucionó una skill.
Gotchas
- No lanza excepción: slug inexistente, versión inválida o archivo ausente devuelven
{ok: False, recipe: None, error: ...}. Compruebares["ok"]antes de usarres["recipe"]. versionacepta varios formatos: int1, str"1"o"v1"apuntan aversions/v1.json. Cualquier otra cosa da error de versión inválida.- Round-trip exacto con save: lee el JSON tal cual se guardó; no normaliza ni rellena campos.
- library_dir por defecto
~/ComfyUI/skills_library: pásalo explícito para librerías de test o aisladas.