85 Commits
Author SHA1 Message Date
Çağan Kiraz 655dda30ac chore(release): bump version to 1.7.0 v1.7.0 2026-10-17 15:29:02 +03:00
Çağan Kiraz 773a83703f feat(api): add flux 3 image klein node
BFL released FLUX 3 Image Klein (POST /v1/flux-3-image-klein) on
2026-10-15. It takes the same prompt, references, resolution and
aspect ratio as Flux 3 Image, so the node subclasses Flux3Image and
adds what Klein accepts on top: seed, steps, output_format, exact
width x height and a 0-7 safety_tolerance, without grounding.

The Flux 3 Image example workflow gets two bypassed Klein groups
(text to image, edit by URL); existing groups are untouched.
2026-10-17 15:29:01 +03:00
Çağan Kiraz ca50e11275 chore(release): bump version to 1.6.0 v1.6.0 2026-10-02 00:53:50 +03:00
Çağan Kiraz 057248fa3a feat: add flux 3 image node and poll the returned polling_url
FLUX 3 Image (flux-3-image) generates and edits from one prompt, with
up to ten references and bounding boxes. The endpoint rejects seed,
output_format and webhooks, and 4k renders can take minutes, so the
node polls up to 120 attempts and keeps the result lossless.

BFL requires polling the polling_url returned at submit: it points at
the region holding the task, and FLUX 3 Image returns a regional one.
post_request now returns a TaskId carrying it and get_result polls it
for every node, falling back to get_result?id= only when it is absent.
A failed task reported as HTTP 503 with a terminal status now stops at
once instead of polling until the timeout.

Adds an example workflow and documents the polling behavior.
2026-10-02 00:53:35 +03:00
Çağan Kiraz 56481721a7 ci: send each version's changelog to the comfy registry
The registry's Updates section was empty for every version because the
publish workflow never passed a changelog. comfy-cli reads
COMFY_NODE_CHANGELOG, so the workflow now builds it from the version's
CHANGELOG.md section. The registry shows it as one plain paragraph (no
Markdown), so the script keeps the first column of each table row.

Releases also date that CHANGELOG section and get an annotated vX.Y.Z
tag; CLAUDE.md and /version-bump describe the steps.
2026-10-02 00:53:27 +03:00
Çağan Kiraz 3b3c8f31bb chore(release): bump version to 1.5.0 v1.5.0 2026-09-26 19:37:22 +03:00
Çağan Kiraz 10d9805f70 feat: add deblur, video edit and video upscale nodes
Bring the package in line with the current BFL API reference:
flux-tools/deblur-v1, video-edit-v1 and video-upscale-v1 had no
node. The video nodes reuse BaseFlux3Video via a URL_PATH attribute.

Existing nodes gain API fields: qhd/uhd on Flux 3 Video,
disable_pup on Flux 2 Max/Pro/Pro Preview, safety_tolerance and
disable_pup on Outpaint. New widgets are appended so saved
workflows keep their values.

Fixes found while testing on ComfyUI 0.37.0:
- V2V offered 16-20 s; BFL caps continuation at 15 s
- draft with a non-hd resolution was rejected; send hd
- Flux 2 width/height defaulted to 0 below min 64, so every
  fresh Flux 2 node failed validation
- the finetune example needed ShowText|pysssss; use core
  Preview as Text and drop the unused group-node template

Terminal polling statuses now log BFL's details (Moderation
Reasons). Example workflows gain Deblur, Video Edit and Video
Upscale groups.
2026-09-26 19:06:02 +03:00
Çağan Kiraz 85b4b27ab3 chore(tooling): add pre-push secret scan and fix pre-commit misses
pre-commit only sees the commit being made, so a key committed with
--no-verify or from a clone without the hooks still reached the
remote. pre-push applies the same rules to every commit being
pushed, not just the tip: a key removed in a later commit still
lands in the remote history.

pre-commit: `grep -q` exited early and, under pipefail, turned a
match into a pass when a long diff followed the key; a config.ini
without an X_KEY line made the hook fail silently.
2026-09-26 19:05:51 +03:00
Çağan Kiraz b961bc6953 chore(tooling): add git pre-commit secret scan
Block commits whose staged content would leak a BFL API key:
config.ini must keep the your-key placeholder, FluxConfig_BFL nodes in
workflows/*.json must have an empty or bfl_xxx x_key widget, and no
staged addition may match bfl_<16+ chars> key material. Installed via
git config core.hooksPath .githooks (run once per clone).
2026-08-06 15:11:26 +03:00
Çağan Kiraz 013fdd19bc fix: remove leaked api key from flux 3 video workflow
The FluxConfig_BFL node in the example workflow was saved with a real
x_key widget value and pushed in 7bbc4cc. The key must be treated as
compromised and rotated in the BFL dashboard; this commit clears the
widget so the tracked example matches the other workflows.
2026-08-06 15:11:26 +03:00
Çağan Kiraz 13beb948d8 chore(tooling): ignore macos .DS_Store files 2026-08-06 13:06:10 +03:00
Çağan Kiraz b3e3fe33ed chore(release): bump version to 1.4.0 2026-08-06 13:01:47 +03:00
Çağan Kiraz 7bbc4cc03e docs: add flux 3 video example workflow and vto v2 group
New BFL-API-flux-3-video.json covers all three modes: t2v straight to
SaveVideo, i2v fed by Flux3Keyframes, and v2v fed by LoadVideo through
VideoToBase64. The tools workflow gains a Flux Virtual Try-On v2 group
mirroring the v1 setup; remaining churn in that file is ComfyUI
frontend metadata (aux_id -> cnr_id, node order/positions) and the
outpaint mode widget value written by the current node schema.
2026-08-06 13:01:17 +03:00
Çağan Kiraz d041e4ccde docs(docs): document flux 3 video and virtual try-on v2 nodes
README gains the three Flux 3 Video rows at the top of the generation
table plus the Flux 3 Keyframes, Video to Base64 and VTO v2 entries.
CHANGELOG gets an Unreleased section covering the new nodes and the
Reasoning/Generating polling fix.
2026-08-06 12:46:18 +03:00
Çağan Kiraz 087af80637 feat: add flux 3 video generation nodes
Wrap the new flux-3-video endpoint (t2v, i2v, v2v modes) in three
generation nodes plus two workflow utilities:

- BaseFlux3Video reuses BaseFlux post/poll, overrides process_result to
  download the signed MP4 and return ComfyUI's native VIDEO type, and
  returns a 1-frame black video on every failure path. Polling ceiling
  is 240 attempts (~20 min): a real v2v+fhd task was still generating
  at 11 minutes.
- Flux3Keyframes combines up to 10 image sockets into the keyframes
  string; timing 'even' sends a plain list, 'custom' sends
  [seconds, image] pairs (start pinned at 0, end_time = clip length).
- VideoToBase64 converts a ComfyUI VIDEO to a base64 MP4 string for
  v2v's start_video.

Nodes register only when comfy_api is importable so the package keeps
loading on older ComfyUI versions.
2026-08-06 12:46:06 +03:00
Çağan Kiraz ee9e187899 fix(api): handle reasoning and generating polling statuses
BFL's get_result reference documents two intermediate statuses the
Status enum was missing: Reasoning and Generating (returned by FLUX 3
tasks). Status(status) raised ValueError on them, which landed in the
JSON-parsing error handler with a misleading log line. Both now retry
like Pending, and the retry log prints the actual status.
2026-08-06 12:45:52 +03:00
Çağan Kiraz f00bdcc8e2 feat: add flux virtual try-on v2 node
BFL released flux-tools/vto-v2 on 2026-07-17 with sharper face
preservation and inputs up to 4 MP. The request/response format is
identical to v1, so the node subclasses FluxVirtualTryOn and overrides
only the endpoint path via a new URL_PATH class attribute.
2026-08-06 12:45:39 +03:00
Çağan Kiraz 77f695d43e docs(docs): backfill 1.2.0 and 1.3.0 changelog entries 2026-06-30 12:58:04 +03:00
Çağan Kiraz 6693376872 chore(release): bump version to 1.3.0 2026-06-25 18:02:35 +03:00
Çağan Kiraz ac5a230e91 feat: add fast/high mode to flux outpaint node
BFL added a `mode` parameter to flux-tools/outpainting-v1 (2026-06-09)
selecting the quality/speed tradeoff. Expose it as a combo defaulting
to "high" (the API default) and only send it when set to "fast", so
the default request body stays unchanged.
2026-06-25 18:01:43 +03:00
Çağan Kiraz 63da662ebc chore(release): bump version to 1.2.0 2026-06-01 22:08:47 +03:00
Çağan Kiraz 76e8085b70 feat: add flux virtual try-on node
Wrap the new BFL flux-tools/vto-v1 endpoint as FluxVirtualTryOn,
following the erase/outpaint tool-node pattern: base64 string
person/garment inputs, a required prompt, and optional
seed/webhook/config over the shared BaseFlux post -> poll path. Update
the README node table and add two virtual try-on groups to the tools
example workflow.
2026-06-01 22:08:42 +03:00
Çağan Kiraz 42654d6e56 feat: add flux erase and outpaint tool nodes
adds FluxErase (POST flux-tools/erase-v1) and FluxOutpaint
(POST flux-tools/outpainting-v1) in a new nodes/flux_tools.py
module. these wrap the two new BFL tool endpoints from May 2026.

also:
- ImageToBase64_BFL gains an image_format dropdown (jpeg / png) so
  masks can be encoded losslessly
- BaseFlux.generate_image moves check_multiple_of_32 inside the
  try/except so non-multiple-of-32 dims return a blank image
  instead of crashing the workflow
- bump version to 1.1.0; start CHANGELOG.md fresh at 1.1.0
2026-05-25 17:50:35 +03:00
Çağan Kiraz ba3a4964db chore(tooling): add claude code config and ruff setup
introduces project-level claude code tooling — CLAUDE.md behavioral
rules and BFL conventions, agents/commands/skills under .claude/, and
hooks that block accidental config.ini API-key commits and run ruff
after edits. wires ruff into pyproject.toml as a dev extra with the
project's lint/format config, and ignores claude runtime artifacts.
2026-05-25 15:44:38 +03:00
Çağan Kiraz bdd256d5c9 update: version to 1.0.13 2026-03-25 21:17:08 +03:00
Çağan Kiraz d292c6cab7 fix: base64 issue 2026-03-25 21:00:09 +03:00
Çağan Kiraz 20b17b5652 feat: add preview nodes 2026-03-25 19:00:33 +03:00
Çağan Kiraz b88080270c update: version to 1.0.12 2026-02-22 01:25:04 +03:00
Çağan Kiraz 2e2841cbbe feat: Update README.md 2026-02-22 01:24:49 +03:00
Çağan Kiraz f7da9a7a31 feat: Updated for flux2 api 2026-02-22 01:16:21 +03:00
Çağan Kiraz 03014500d0 update: version to 1.0.11 2025-08-28 22:48:13 +03:00
Çağan Kiraz 6b3a168d24 feat: Updated max_attempts default value 2025-08-28 22:48:00 +03:00
Çağan Kiraz fc72ffc420 feat: Updated README.md 2025-08-28 22:38:45 +03:00
Çağan Kiraz 93829a0963 update: version to 1.0.10 2025-08-28 22:28:50 +03:00
Çağan Kiraz bcf8af770d feat: Added config node 2025-08-28 22:27:45 +03:00
Çağan Kiraz f1792cf25f update: README.md 2025-06-08 04:00:58 +03:00
Çağan Kiraz 53c26af0dd update: version to 1.0.9 2025-06-08 03:55:49 +03:00
Çağan Kiraz 8bff32c46b update: README.md 2025-06-08 03:53:19 +03:00
Çağan Kiraz c422e0861c update: workflows 2025-06-08 03:50:20 +03:00
Çağan Kiraz bcca708d84 update: README.md 2025-06-08 03:50:09 +03:00
Çağan Kiraz 71d10dbf84 update: finetune 2025-06-08 03:46:10 +03:00
Çağan Kiraz 45125f075c update: finetune 2025-06-08 03:00:38 +03:00
Çağan Kiraz 1998249c46 add: finetune 2025-06-08 02:09:00 +03:00
Çağan Kiraz 3c28a87b4c update: version to 1.0.8 2025-05-31 14:44:11 +03:00
Çağan Kiraz 064d3f7655 add: Kontext model 2025-05-31 14:43:02 +03:00
gelasdev 58fbf541ab Merge pull request #12 from ComfyNodePRs/update-publish-yaml
Update Github Action for Publishing to Comfy Registry
2025-05-31 14:29:21 +03:00
snomiao f23e2709f4 chore(publish): update workflow for node publishing
- Added permissions for issue writing in the workflow.
- Modified condition to check repository owner instead of fork status.
- Updated action version from `main` to `v1` for stability.
2025-01-25 07:48:13 +00:00
Çağan Kiraz 43ded0e1ba update: version to 1.0.7 2024-11-27 19:23:43 +03:00
Çağan Kiraz 893323bde9 update: workflow 2024-11-27 19:22:47 +03:00
Çağan Kiraz 9fd7a98d87 update: README.md 2024-11-27 19:21:56 +03:00