cda36408d0
Renombra los 13 checkpoints/diffusion models de ComfyUI prefijando la
categoría al inicio del nombre, para que en el dropdown de carga el usuario
distinga de inmediato imagen/vídeo/3D y no cargue un modelo en el nodo
equivocado. Misma operación que se hizo con los LoRAs (report 0197) pero
sobre los modelos.
Clasificación:
- IMG_: dreamshaper_8, juggernaut_xl_v11, v1-5-pruned-emaonly-fp16,
flux1-dev-fp8-e4m3fn, flux1-schnell-fp8-e4m3fn
- VIDEO_: svd, ltx-video-2b-v0.9.5, wan2.1_t2v_1.3B_fp16
- 3D_: stable_zero123, sv3d_p, hunyuan3d-dit-v2-mini, hunyuan3d-dit-v2-mv,
hy3dgen/hunyuan3d-dit-v2-0-fp16 (mantiene subcarpeta)
A diferencia de los LoRAs aquí solo se PREFIJA la categoría conservando el
nombre completo (versión/arquitectura). Archivos físicos renombrados en
~/ComfyUI/models/checkpoints, /mnt/2tb/comfyui_models/{checkpoints,
diffusion_models} y la subcarpeta hy3dgen/. Mapa de reversión en
~/ComfyUI/models/checkpoints/_ckpt_rename_map.json.
Actualiza todas las refs (ckpt_name/unet_name + defaults + prosa) en los
builders gamedev/vídeo/3D, style presets, pipelines, tests y los workflows
de ComfyUI. Arregla de paso el default roto de comfyui_text_to_3d_oneshot
(apuntaba a v1-5-pruned-emaonly.safetensors inexistente; ahora al real
IMG_v1-5-pruned-emaonly-fp16.safetensors).
No tocados (justificado): repo-paths de HuggingFace en comfyui_install_3d_model
(<repo>/model.fp16.safetensors son rutas de descarga, no nombres de dropdown)
y el mock de stable-diffusion.cpp en test_genconfig_to_sdcpp_args.
Verificado: dropdowns CheckpointLoaderSimple + UNETLoader listan los nombres
con prefijo; 1 generación real con IMG_juggernaut_xl_v11 (node_errors vacío,
pixelart_00003_.png); 327 tests comfyui verdes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5.8 KiB
5.8 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| comfyui_generate_mixed_oneshot | pipeline | py | pipelines | 1.0.0 | impure | def comfyui_generate_mixed_oneshot(base, subject: str, *, capabilities: dict | None = None, server: str = "127.0.0.1:8188", dest: str | None = None, seed: int = 0, judge: bool = True, checkpoint: str | None = None, negative: str = "", library_dir: str | None = None, wait_timeout: float = 600.0) -> dict | Pipeline one-shot del mixer comfyui-skill: parte de un workflow base (skill slug, builder 'txt2img', o dict ya construido), aplica el conjunto de capacidades elegido con comfyui_compose_capabilities (LoRAs + ControlNet + IPAdapter + hires + FaceDetailer, cada una activable), encola, espera, descarga el PNG y si judge=True lo puntua con el panel comfyui-judge. Promueve a una llamada la secuencia base->compose->submit->wait->fetch->judge (issue 0087). Devuelve {ok, prompt_id, image_path, capabilities_active, judge, error}. Impuro: HTTP + disco + API Anthropic. |
|
|
false | error_py_core |
|
|
dict {ok, base, prompt_id, image_path, prompt_resolved, capabilities_active, judge, error}. capabilities_active = lista de capacidades activadas (evidencia de la mezcla). judge = {verdict, score, votes} o None. Si falla un paso, ok=False y error explica cual. | false | python/functions/pipelines/comfyui_generate_mixed_oneshot.py |
comfyui_generate_mixed_oneshot
One-shot del mixer del grupo comfyui-skill:
de un workflow base + un conjunto de capacidades activables a un PNG ya puntuado por el
panel comfyui-judge, en una llamada. El bucle
del juez afina qué capacidades y pesos dan mejor resultado.
Ejemplo
import sys, os
sys.path.insert(0, os.path.join(os.environ["HOME"], "fn_registry", "python", "functions"))
from pipelines.comfyui_generate_mixed_oneshot import comfyui_generate_mixed_oneshot
# txt2img dreamshaper + 2 LoRAs + FaceDetailer (3 capacidades), juzgado:
res = comfyui_generate_mixed_oneshot(
"txt2img",
"a heroic knight in 3d render style, dramatic lighting",
checkpoint="IMG_dreamshaper_8.safetensors",
capabilities={
"loras": [
{"name": "SD15_3d_render_redmond.safetensors", "strength_model": 0.9},
{"name": "SD15_detail_tweaker.safetensors", "strength_model": 0.5},
],
"facedetailer": {"denoise": 0.45},
# "ipadapter": {"ref_image": "face.png", "mode": "faceid"}, # activar/desactivar
# "hires": {"upscale_by": 1.5},
},
dest="/tmp/comfy_mixed", seed=42, judge=True,
)
print(res["ok"], res["prompt_id"], res["capabilities_active"], res["judge"])
Cuando usarla
Cuando quieras generar mezclando varias capacidades y obtener de vuelta el
PNG ya puntuado, en una sola llamada — para iterar (activar/desactivar/ajustar
capacidades) guiado por el score del juez. Es la promocion a one-shot de
compose_capabilities + el ciclo submit/wait/fetch/judge.
Gotchas
- Impuro: necesita el servidor ComfyUI vivo (
server) y, sijudge=True, la API Anthropic para el juez critico. Las imagenes de referencia/control de IPAdapter y ControlNet deben estar en elinput/del servidor antes de llamar. base='txt2img'exigecheckpoint. Un slug de skill exige que la skill exista enlibrary_dir. Unbasedict se usa tal cual.- Hereda la limitacion del mixer: hires + facedetailer juntos no encadenan
(ver
comfyui_compose_capabilities). Activa uno U otro. - En 8GB lowvram, apilar muchas capacidades (IPAdapter FaceID + ControlNet + hires
- facedetailer) puede dar OOM y
waitdevolvera el error del servidor: baja resolucion (width/heightvia un base dict) o reduce capacidades.
- facedetailer) puede dar OOM y
- Si el juez falla pero la imagen se genero,
ok=Trueconerrordescribiendo el fallo del panel (la imagen no se pierde).