78 Commits
Author SHA1 Message Date
neuregex 1bd2745ad0 0.4.6: Load Video uint8 + max_side (anti-OOM 4K) + mensaje OOM correcto; cap default 33 2026-06-13 17:39:42 -06:00
neuregex 7c9afcdb32 0.4.5: salida de video BerniniRSaveVideo (mp4/webm/gif/webp) + preview; reemplaza SaveAnimatedWEBP 2026-06-13 17:18:01 -06:00
neuregex b8ae9781c7 0.4.4: patch_embedding tolerante a dtype - arregla t2v/rv2v incondicional en 1.3B bf16 2026-06-13 16:58:11 -06:00
neuregex ee6a7c232a 0.4.3: preview de video + boton de carga (mp4/webp/gif) en Load Video 2026-06-13 06:06:18 -06:00
neuregex 894f0ac936 0.4.2: Load Video soporta mp4/mov/avi/mkv/webm (PyAV/OpenCV/imageio) + av dep 2026-06-13 05:57:02 -06:00
neuregex c281fc923a 0.4.1: evita falsos positivos del scan (reword 'su' en string + quita os.environ) 2026-06-13 04:49:39 -06:00
neuregex a83961fe2b release: v0.4.0 - backend nativo (GGUF dual-expert + 1.3B), TE GGUF, resolución acotada 2026-06-11 04:34:36 -06:00
neuregex cbd6f7f6dd workflows: elimina diffusers/API legacy + tests nativos (quedan los 8 grafos v0.4) 2026-06-10 02:07:57 -06:00
neuregex 52d5393b6e workflows: GGUF text encoder por defecto + cap de resolución (ImageScale) 2026-06-10 02:07:48 -06:00
neuregex 45bc96d0b4 fix: patch_embedding input al dtype de computo (no float32) - arregla bf16 puro (1.3B); no-op fp8/GGUF 2026-06-10 01:10:58 -06:00
neuregex 8e0dee965b feat(workflows): set completo GGUF/1.3B - t2v 14B + t2v/v2v/rv2v 1.3B 2026-06-10 01:03:19 -06:00
neuregex d832069445 docs: README - seccion Models-por-VRAM (14B GGUF + 1.3B) y edicion dual-expert (i2i/v2v/rv2v) validada 2026-06-10 00:49:17 -06:00
neuregex 72fa8d436c feat: workflow i2i Bernini-R 1.3B (monolitico single-expert, sin model_low) 2026-06-09 23:59:59 -06:00
neuregex 79fedf7dc3 feat: workflow rv2v (video+referencia dual-expert GGUF) + auto-cleanup del experto low (evita thrashing VRAM entre workflows) 2026-06-06 23:57:52 -06:00
neuregex ac363feb6c fix(streams): normaliza el latente fuente con process_latent_in (mean/std Wan); el stream iba en espacio crudo y el target no seguia la fuente 2026-06-06 22:22:44 -06:00
neuregex 9223f6d8b6 feat(M4/v2v): ImageScale 768x576 (div16) + mode v2v_apg en el workflow de video 2026-06-06 21:23:56 -06:00
neuregex ead504a363 fix(M4/v2v): freqs desde el grid de parches (2*Hg,2*Wg) - arregla mismatch tokens/freqs con dims impares de video; no-op i2i/t2v 2026-06-06 20:28:32 -06:00
neuregex 9d3cf99066 ux: BerniniRLoadVideo -> selector de archivo + boton de subida (image_upload), como LoadImage 2026-06-06 20:15:59 -06:00
neuregex 6c05e327a8 feat(M4/v2v): workflow GGUF dual-expert para edicion de video (LoadVideo->VAEEncode->stream) 2026-06-06 20:11:09 -06:00
neuregex 5c8cdc7d56 fix(M4): fija current_patcher del experto low (pre_run) para calc_cond_batch en el switch 2026-06-06 19:56:52 -06:00
neuregex 8fdb000e66 docs(M4): README -> link Bernini-R-GGUF + Discord + camino GGUF dual-expert; feat: switch dual-expert + workflow GGUF 2026-06-06 06:09:37 -06:00
neuregex cbd6f9fb9b feat(M4): switch dual-expert por sigma en el guider + nodo ApplyPatches + workflow GGUF dual 2026-06-06 05:58:41 -06:00
neuregex 6a0f675805 feat(M4): fp8->bf16 streaming upcast + BerniniRApplyPatches (camino GGUF) 2026-06-06 04:10:26 -06:00
neuregex d6ed16a2c3 feat(native M3b): BerniniRGuider (APG + CFG encadenada, 7 modos) sobre CFGGuider; workflow i2i con SamplerCustomAdvanced 2026-06-06 03:33:22 -06:00
neuregex 5b01b760b9 fix(native M3a): concatenar freqs por el eje de tokens (dim 1), no por el broadcast de cabezas (dim 2) 2026-06-06 03:10:27 -06:00
neuregex 4c5d134e75 fix(native M3a): expandir stream fuente al batch del target (CFG) en el concat 2026-06-06 02:54:12 -06:00
neuregex d988116080 feat(native M3a): nodo BerniniRSourceStream + forward device-fix + workflow i2i (activa el stream-concat de M2) 2026-06-06 02:49:06 -06:00
neuregex 2582f5cc9c feat(native M2): patches Bernini via add_object_patch - src-id RoPE real (validado) + stream-concat (no-op en t2v) 2026-06-06 02:07:50 -06:00
neuregex 4270abca73 fix(native): set_inference_dtype manual_cast=bf16 -> ops castean fp8/bf16 al vuelo (v0.4 M1) 2026-06-06 00:53:17 -06:00
neuregex e7c2563886 feat(native): loader meta+assign (esqueleto 0-RAM, evita torch.empty fp8) (v0.4 M1) 2026-06-06 00:36:51 -06:00
neuregex eb80291e67 feat(native): loader MODEL con lectura fp8-safe (esquiva crash load_torch_file torch2.8/win) (v0.4 M1) 2026-06-05 23:55:53 -06:00
neuregex a56bc058dc fix(offload): aparcar experto inactivo en disco (mmap) en vez de copiar 14.6GB a RAM (v0.3.14) 2026-06-05 17:55:01 -06:00
neuregex 171453bc42 fix(model): to_idle no mueve si ya esta en CPU (evita access violation sobre fp8 mmap read-only) (v0.3.13) 2026-06-05 17:24:48 -06:00
neuregex 73770e1278 fix(loader): mmap solo-lectura (sin reservar commit) -> arregla os error 1455 al cargar UMT5 (v0.3.12) 2026-06-05 17:12:29 -06:00
neuregex 026ca26793 fix(loader): detectar fp8 por header (robusto) -> 2o experto usa mmap, no el f.read bf16 (v0.3.11) 2026-06-05 17:05:16 -06:00
neuregex 178deee85b fix(loader): mmap perezoso para fp8 (no clona) -> sin MemoryError ni segfault (v0.3.10) 2026-06-05 17:00:29 -06:00
neuregex 2b2dc5ef12 fix(loader): cargar fp8 a mano (bytes->view) esquiva access violation de safetensors fp8 en torch2.8/win; barra xet limpia (v0.3.9) 2026-06-05 16:50:09 -06:00
neuregex 648ba23020 ux: progreso xet limpio (solo cambios + latido) v0.3.8 2026-06-05 16:37:32 -06:00
neuregex 5fa835dd89 perf: no desactivar xet (era el cuello de botella); motor xet auto si hf_xet (v0.3.7) 2026-06-05 15:54:56 -06:00
neuregex 31a548e3cb feat: barra de progreso real por bytes (vigila disco) + guard de integridad + xet-off interno (v0.3.6) 2026-06-05 15:35:40 -06:00
neuregex 04e0e557e7 fix: progreso por bytes + verificacion de integridad + xet-off interno (v0.3.5) 2026-06-05 15:20:46 -06:00
neuregex 8e2f087bc0 feat(loader): real byte-progress download (%, MB/s, ETA) + disable xet by default
The first-run auto-download showed huggingface_hub's 'Fetching N files' bar,
which counts files not bytes -> it sits at ~5% (1/19) for many minutes while a
14GB shard streams, looking hung. Replace it with an aggregating tqdm that sums
all byte-unit bars into one global ProgressBar + a throttled console line
(12.3%  4.95/40.30GB  47.2MB/s  ETA 12.6min), ignoring the file-count bar.

Also default HF_HUB_DISABLE_XET=1: the xet transport can stall on Windows
portable; plain HTTPS/LFS is slower but reliable and resumable. Overridable via
HF_HUB_DISABLE_XET=0. Space check now uses the repo's real total bytes. v0.3.4.
2026-06-05 19:01:18 +00:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 5ebccb615c chore: bump 0.3.3 (fix widget-order blocks_to_swap + ui/*.json regenerados)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:12:57 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 d46c7f2c8b chore(workflows): regenera ui/*.json contra el nodo actual (incluye blocks_to_swap)
Serializados desde ComfyUI real (loadApiJson -> graph.serialize). ModelLoader ahora
termina en [..., model_dir, blocks_to_swap=0], el orden correcto tras el fix de
widget-order. Quedan limpios y con blocks_to_swap explícito.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:12:42 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 44761a960d fix(loader): blocks_to_swap al final del bloque optional (orden de widgets)
blocks_to_swap se había insertado ANTES de model_dir en el bloque optional, pero los
workflows ui/*.json (0.2.0) terminaban en model_dir. ComfyUI mapea widgets_values por
ORDEN -> el model_dir guardado caía en el slot INT de blocks_to_swap ("invalid literal
for int()"). Movido blocks_to_swap al final: los workflows viejos mapean bien y cae a
su default. Disciplina append-only documentada (nunca insertar widgets en medio).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:09:00 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 42ba6363f2 chore(repo): elimina el harness de Modal y toda referencia — solo nodo funcional
modal/ (validación en GPU serverless) no es parte del nodo de ComfyUI: se quita del
repo entero. Eliminadas todas las menciones a Modal en README (sección "Validate on
Modal" + referencias), model.py, .gitignore, tools/ y tests/. El repo queda con el
runtime funcional: bernini/, nodes.py, workflows/, tools/, tests/ y el CI de publish.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 02:42:40 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 ec8deb8d3c chore: bump 0.3.1 (paquete publicado sin el harness de validación)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 02:25:21 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 31e4587dd4 chore(registry): .comfyignore — excluye modal/, tests/, .github/ del paquete
El harness modal/app.py (subprocess, urllib, snapshot_download, "pip install") no
es runtime del nodo pero viajaba en el zip y disparaba el scanner del registry
(versiones previas quedaron Flagged; nodos sanos están todos Active). Lo dejamos
fuera del paquete publicado vía .comfyignore (sintaxis gitignore).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 02:25:20 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 b76a9feb02 chore: bump 0.3.0 (block-swap, lower VRAM to ~12GB)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 01:57:55 -06:00
Sammir Alejandro Femat RoblesandClaude Opus 4.8 c4b7ec0c6f docs(block-swap): VRAM/velocidad medidos + guía blocks_to_swap por GPU
Tabla con picos reales (A10 fp8): i2i 14.84->5.08GB, t2v 81f 19.18->9.42GB,
penalti +14%/+4%. Nota de correctitud (gate bit-idéntico), techo UMT5 ~10.8GB,
demostración T4 (bs0 OOM / bs40 6.28GB -> cabe en 12GB) y caveat flash-attn.
Regla: 0 si ≥24GB, 20 para ~16GB, 30-40 para 12GB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 01:18:06 -06:00