10dbc510b7
Mueve el indicador de arquitectura del SUFIJO al PREFIJO del nombre de cada LoRA para que el dropdown del LoraLoader muestre de inmediato que LoRA casa con que checkpoint (evita el shape mismatch SD1.5 vs SDXL que crashea ComfyUI). - 20 LoRAs renombradas en disco (15 SD15/SDXL en /mnt/2tb, 5 FLUX en ~/ComfyUI), mapa de reversion en ~/ComfyUI/models/loras/_rename_map.json. - Refs actualizadas en builders gamedev-2d, style presets, pipelines, tests y docs/capabilities. Defaults hardcodeados (pixel-art, lcm-lora, etc.) apuntan a los nombres con prefijo. - Ejemplos genericos en docstrings normalizados a la convencion de prefijo. - comfyui_replicate_civitai_oneshot::_norm ignora el token de arquitectura al comparar, robusto al reordenado (sufijo civitai vs prefijo instalado). Refs a repos HuggingFace (nerijs/pixel-art-xl) y checkpoints (juggernaut_xl_v11) preservados. Verificado: dropdown LoraLoader con prefijos + generacion real pixel-art OK + tests comfyui verdes (481 ml + 26 pipelines). 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="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).