Commit Graph
297 Commits
Author SHA1 Message Date
Fillip 5aa424c1cf Add live beat offset control 2026-08-04 21:25:25 -07:00
Fillip 565a26a858 Add integrated audio prompt timeline 2026-08-04 20:57:11 -07:00
Fillip e3f6aea404 Add audio-reactive prompt scheduling 2026-08-04 20:27:01 -07:00
Fillip 758616a039 Fix upscale model precision 2026-08-03 05:10:01 -07:00
Fillip 787b06a9c8 Support nested latents in Fill samplers 2026-08-03 03:05:19 -07:00
filliptm 2e74873fc9 Bump Fill Nodes version to 2.9.2 2026-08-01 11:01:09 -07:00
Machine Delusions 9834ba619d Merge pull request #112 from filliptm/agent/revert-image-drop-override
Revert image drag-and-drop override
2026-08-01 10:59:56 -07:00
filliptm beb32a0750 Revert image drag-and-drop override 2026-08-01 10:58:28 -07:00
Machine Delusions f561e4a9fd Merge pull request #111 from MISEMUNJIOZONE/main
Fix image and workflow drag-and-drop
2026-07-22 20:30:24 -05:00
JUNE dc0eecd1de Fix drag-and-drop support for newer ComfyUI frontend
Added compatibility details for drag-and-drop functionality on newer ComfyUI frontend versions, including supported drop actions.
2026-07-21 00:41:50 +09:00
constantine 6910a2b938 Fix: Image drag and drop 2026-07-21 00:17:17 +09:00
filliptm d2453f02a1 Resolve open Fill Nodes issues 2026-06-22 14:38:40 -05:00
filliptm 3078ffa3be Fix Fill Nodes PR follow-up edge cases 2026-06-22 14:23:20 -05:00
Machine Delusions f2ce4bd73c Merge pull request #108 from IrradiatedHaggis/squeeze-repair
Fix: Added safe resizing of masks with unexpected dimension types. Ad…
2026-06-22 12:19:47 -07:00
Machine Delusions 14ecca6442 Merge pull request #110 from Bisnis3d/Bisnis3d-patch-1
Fix FL System Check: render via DOM widget (no output on new frontend)
2026-06-22 12:19:40 -07:00
Esteban Lahoz d0644892b9 Refactor FL_SystemCheck to use DOM widget
Refactor FL_SystemCheck to use DOM widget for rendering system info. Updated runSystemCheck function to handle system info display and error handling.
2026-06-22 17:17:30 +02:00
IrradiatedHaggis 3704938bf0 Fix: Added safe resizing of masks with unexpected dimension types. Adjusted bool to floa to improve compatibility with Pytorch 2.12. 2026-06-21 22:58:17 -07:00
FillipandClaude Opus 4.7 2f0d24e4d8 ksamplers: preflight VAE auto-decode to fix video-model crashes (v2.9.1)
The FL Ksampler nodes (Plus, PlusV2, Basic, Sigma, ContextWindow,
XYZPlot) all run VAEDecode automatically against the sampled LATENT
to populate the IMAGE output socket. That works for SD / SDXL / Flux
where the sampler's latent shape matches what the paired VAE
expects, but it crashed on Wan / LTX-style packed-latent / video
models with an unhelpful low-level "expected 16 channels, got 128"
RuntimeError from the VAE's first conv layer.

Add a shared safe_vae_decode helper in nodes/ksamplers/_vae_helpers.py
that pre-checks samples.shape[1] against vae.latent_channels (a
public attribute ComfyUI's comfy.sd.VAE already sets per model).
On mismatch we skip the auto-decode entirely, log a single
warning line telling the user to wire an external VAE Decode node,
and return a 1x1 placeholder image so downstream IMAGE consumers
don't break. The LATENT output continues to flow unchanged in all
cases.

Routes all 6 ksampler nodes through the helper.

Bumps version 2.9.0 -> 2.9.1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 16:46:20 -07:00
FillipandClaude Opus 4.7 f86ab93fe9 Cleanup release: v2.9.0
README accuracy pass:
- Add 37 missing node rows across image / utility / ksamplers / ai /
  audio / vfx / prompting / wip tables.
- Add new Kartel category section (FL_KartelJobInput,
  FL_KartelJobOutput) plus a Table of Contents entry.
- Remove stale entries (FL_CodeNode, FL_HunyuanDelight) for nodes
  that no longer exist in the codebase.
- Update FL_SamplerStrings / FL_SchedulerStrings descriptions to
  reflect dynamic population via comfy.samplers.KSampler.SAMPLERS /
  .SCHEDULERS (per PR #105).
- Polish stub-node labelling (FL_BulletHellGame, FL_TetrisGame,
  FL_TimeLine) so they read as deliberate placeholders.
- Fix 15 broken images/nodes/*.png references whose filenames had
  drifted from the README; drop 3 lingering screenshot blocks that
  pointed at images that never existed.

Repo hygiene:
- Add Apache-2.0 LICENSE file and change pyproject.toml to
  license = {file = "LICENSE"} (silences Registry validation
  warning and matches the FL_VLM / FL_VoxCPM packs).
- Append node.zip / *.zip / temp_downloads/ to .gitignore so build
  artifacts stop showing up in git status.
- Demote google-genai import-failure prints to logger.warning /
  logger.info so they no longer spam stdout on every ComfyUI
  startup when google-genai isn't installed.

Bumps version 2.8.0 -> 2.9.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 14:13:14 -07:00
FillipandClaude Opus 4.7 e03a8e9012 Renormalize line endings to LF
Applied via `git add --renormalize .` after adding .gitattributes.
No semantic changes; only line-ending normalization in nodes/sup.py
and nodes/utils.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 14:05:53 -07:00
FillipandClaude Opus 4.7 00bab5ad0a Add .gitattributes for line-ending normalization
Sets * text=auto eol=lf to standardize line endings to LF in the
index, silencing the recurring "LF will be replaced by CRLF" warning
on every commit. Marks binary asset types so git treats them
correctly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 14:05:35 -07:00
Machine Delusions 21843c71c7 Merge pull request #105 from 11matt556/dynamic-sampler-scheduler-list
Dynamically populate Sampler/Scheduler string node
2026-06-12 12:51:12 -07:00
FillipandClaude Opus 4.7 42297ecf02 Add FL Show Text node and bump to 2.8.0
Displays a connected STRING input on the node via a flex-fill DOM
widget with header, length badge, monospace body, scrollbar styling,
and wheel-to-scroll capture so wheel events scroll the body instead
of zooming the canvas. The same string is passed through to the
output socket.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-12 11:50:40 -07:00
Matthew H. 381fe984b7 Dynamically populate Sampler/Scheduler string node
Updated FL_SamplerStrings.py and FL_SchedulerStrings.py to display all of the schedulers/samplers available to them.

Obviously that list can get quite long, but I just hide the ones I don't care about by wrapping the node in a subgraph.
2026-06-06 00:57:52 -04:00
Fillip d164833f16 Fix region overlay editor inputs 2026-06-04 16:25:47 -07:00
Fillip f7d027070a Bump Fill Nodes version to 2.7.8 2026-06-04 15:24:22 -07:00
Fillip 1d46ed5b48 Add numeric region position controls 2026-06-04 13:19:04 -07:00
Fillip 9e877a41a0 Show region overlay box dimensions 2026-06-02 15:21:51 -07:00
Fillip 3bb0fc56c4 feat: add context window ksampler 2026-05-26 23:47:41 -07:00
Fillip 26efe9c06a fix: make LTXV IC-LoRA guide mask optional 2026-05-18 20:19:45 -07:00
Fillip ca8fa940bb feat: add masked LTXV IC-LoRA guide 2026-05-18 20:03:36 -07:00
Fillip f6123583b8 feat: add Z-Image ControlNet patch loader 2026-05-18 17:08:48 -07:00
Fillip 4ea831d0c0 Fix video crop recompose bounds and channels 2026-05-10 18:11:40 -07:00
Fillip b915dcffea Add region PNG overlay node 2026-05-08 17:52:01 -07:00
FillipandClaude Opus 4.7 5bae402ead feat: add FL KSampler SEG family for segmented diffusion (v2.7.0)
Four-node pipeline that partitions an image or video into uniform-area
Voronoi regions, optionally captions each region via OpenRouter vision
models, encodes per-region prompts through CLIP, and composites
per-region diffusion via cascade-paint:

- FL KSampler SEG Regions: grid-init + Lloyd relaxation Voronoi cells,
  feathered overlapping soft masks for guaranteed coverage, on-node
  preview with overlay or coverage-heatmap modes
- FL KSampler SEG Captioner: per-region vision-LLM captioning via
  OpenRouter (gpt-4o-mini / gemini-flash / claude-haiku), with on-node
  thumbnail grid that fills as captions arrive
- FL KSampler SEG Encoder: caption -> per-region CONDITIONING via CLIP
  with prompt deduplication caching
- FL KSampler SEG: corner-anchored nearest-neighbor cascade-paint
  composite, auto-detects model latent_format.spacial_downscale_ratio
  so video models like LTX-Video (32x) and Hunyuan-Video (16x) work
  out of the box, supports both 4D image and 5D video latents

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 12:04:02 -07:00
FillipandClaude Opus 4.7 2c94c3b675 feat: add FL Depth Blur node (v2.6.0)
Depth-of-field blur driven by a paired depth map. Hyperparameters
expose focal plane, focal range, falloff curve (linear/quadratic/
smooth/exponential), asymmetric near/far blur strength, blur mode
(gaussian/box/disc with bokeh brightness boost), depth remap, and
depth pre-smoothing. Optional protect_mask input keeps masked
regions fully sharp with a feathered edge. Includes the on-node
preview toggle pattern from FL_PasteOnCanvas.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 14:15:26 -07:00
filliptmandClaude Opus 4.7 8f4d3592ec chore: set Manager icon to GitHub avatar (v2.5.2)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 13:08:27 -07:00
FillipandClaude Opus 4.7 bef991bcc0 feat: add FL KSampler Sigma + FL Fal GPT-Image-2 Edit nodes (v2.5.0)
FL KSampler Sigma: custom sampler with an on-node sigma curve editor.
Draw your own sigma schedule (monotone-cubic/PCHIP interpolation),
with log-Y axis, user-set axis bounds that preserve curve shape on
rescale, and a SIGMAS output for composability.

FL Fal GPT-Image-2 Edit: wraps openai/gpt-image-2/edit on fal.ai with
dynamic reference-image sockets (1-10), custom image sizes, optional
mask input, and exponential-backoff retries.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:47:12 -07:00
FillipandClaude Opus 4.6 fa28ec8ec7 fix(path-animator,image-picker): await submit POST before closing modal (v2.4.0)
Race condition: Continue/Cancel button handlers were firing submitBlocking()
without awaiting it, then immediately calling close() which tore down the
modal. If the fetch got delayed or dropped by the DOM teardown, the Python
thread would stay blocked on event.wait() until the full timeout.

Symptoms: "sometimes Continue gets stuck and doesn't advance the workflow."

Fixes:
- PathAnimator: All exit paths (Continue, Cancel, ESC, overlay click, header
  close) now await submitBlocking() before close(). On Continue failure,
  the modal stays open with buttons re-enabled so user can retry.
- PathAnimator: submitBlocking now checks response.ok and throws on non-2xx,
  surfacing 404 "Session not found" errors instead of swallowing them.
- PathAnimator: close() safeguard still uses fire-and-forget but now with
  .catch() to log errors (it's a last-resort path after primary handlers).
- ImagePicker: sendSelection now checks response.ok and throws on non-2xx.
- ImagePicker: All callers wrapped in try/catch so failed submits don't
  leave the modal in a half-closed state. Confirm failures keep the modal
  open with a user-visible alert.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 17:27:02 -07:00
FillipandClaude Opus 4.6 c05813d7bc chore: bump version to 2.3.9
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 17:20:26 -07:00
FillipandClaude Opus 4.6 1566e1318e feat(path-animator): add image input + blocking UI with Continue/Cancel
FL Path Animator now supports interactive image-driven workflow:
- New optional IMAGE input — when wired, execution blocks and auto-opens
  the path editor with the image as canvas background at native resolution
- New Continue button saves drawn paths and unblocks execution
- Cancel button aborts the workflow via InterruptProcessing
- Countdown timer in footer shows remaining timeout
- Transitions existing edit-mode modal in place if one is already open
  (preserves any paths the user already drew)
- ESC, overlay click, and header close all treated as Cancel in blocking mode
- Fully backward compatible: without image, behaves exactly as before

Pattern mirrors FL_ImagePicker (threading.Event, WebSocket dispatch, POST
endpoint). New endpoint: POST /fl_path_animator/submit. New WS event:
fl_path_animator_show.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 16:46:05 -07:00
FillipandClaude Opus 4.6 3a6598f247 remove FL_CodeNode from node pack (v2.3.8)
Remove the FL Code Node utility node entirely — Python backend,
JS frontend, init registration, and node description entry.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:19:48 -07:00
FillipandClaude Opus 4.6 3d71d2cfc1 feat: add FL CoTracker and FL Create Shape Image On Path nodes (v2.3.7)
Cloned CoTrackerNode (with trajectory integration inlined) and
CreateShapeImageOnPath (from KJNodes) as self-contained FL nodes.
Includes multi-channel mask fix for CoTracker.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 13:15:47 -07:00
FillipandClaude Opus 4.6 290d6c241e feat: add FL_ImageReplace node for batch image/mask replacement (v2.3.6)
New node that replaces images or masks at a specific index within a batch.
Includes a grid preview with green border highlighting on replaced positions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 17:52:36 -07:00
FillipandClaude Opus 4.6 f41b1c9c96 feat: add FL_AudioFrameCalculator node, optimize ImageListToImageBatch (v2.3.5)
Add new audio node that calculates max frame count from audio duration and FPS.
Optimize FL_ImageListToImageBatch by replacing O(n²) incremental torch.cat loop
with a single torch.cat call for O(n) performance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 15:03:08 -07:00
Machine DelusionsandClaude Opus 4.6 078ed5b9e6 feat: add FL_ImageToMask node, fix InpaintCrop force_square + auto-resize masks (v2.3.4)
- Add FL_ImageToMask node to convert IMAGE to MASK via luminance/channel extraction
- Fix force_square shadowing target_size parameter, breaking resize modes
- Auto-resize mask and context_mask to match image size instead of raising errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:17:18 -08:00
FillipandClaude Opus 4.6 1fc6ea0b0d feat: FL_KsamplerPlus 5D video latent tiling with LTX2 guide frame support (v2.3.3)
- Preserve noise_mask from latent dict when passing tiles to common_ksampler
  (fixes crash: 'NoneType' object has no attribute 'shape' in symmetric_patchifier)
- Adjust keyframe_idxs pixel coords per tile for correct RoPE positioning
- Adjust guide_attention_entries (pre_filter_count, latent_shape) per tile
- Slice noise_mask spatially alongside latent samples for each tile
- Retrieve VAE scale factors from model for accurate coordinate offsets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 19:27:06 -08:00
FillipandClaude Opus 4.6 49be8e96f9 Fix XYZ KSampler losing noise_mask during inpainting
Preserve all latent dict keys (including noise_mask) when splitting
batches, instead of only copying the samples tensor. This fixes
inpainting not working when using InpaintModelConditioning upstream.

Fixes #84

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:03:15 -08:00
FillipandClaude Opus 4.6 5f51c8252f Fix SystemCheck button not working in ComfyUI Desktop
Use api.fetchApi() instead of raw fetch() so the request reaches
the correct backend URL in Desktop/Electron environments.

Fixes #88

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 21:54:18 -08:00
FillipandClaude Opus 4.6 0211698ffa Fix google-genai import crash taking down entire node pack
Wrap the 5 Gemini/Vertex node imports in try-except so a websockets
version conflict (15.x vs 13.x) degrades gracefully instead of
preventing all 100+ nodes from loading.

Fixes #100

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 21:23:58 -08:00