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>
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>
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>
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>
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>
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>
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>
- 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>
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>
Adds a type-adapter node that takes a STRING input and outputs it as a
LoRA name connection type, enabling dynamic LoRA name selection via
string inputs from other nodes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add FL_KartelJobInput and FL_KartelJobOutput nodes for connecting
ComfyUI workflows to the Kartel Unified Backend. Input node receives
job metadata and parses standardized params_json with typed outputs
(strings, ints, floats, bools, images from URLs). Output node POSTs
generated images back to the backend webhook as multipart uploads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>