16 Commits
Author SHA1 Message Date
EthanfelandClaude Opus 4.8 38da10b0d4 Release 1.0.6: remove Krea2 VLM Preview node
The preview only exposed the decode-path (lm_head) refusals of abliterated
models and didn't reflect the conditioning (hidden-state) path, so it was
misleading. Encoder + Krea2 System Prompt nodes unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 09:20:24 +02:00
EthanfelandClaude Opus 4.8 e02c57f689 Release 1.0.5: Krea2 VLM Preview node
- Krea2 VLM Preview: run the Qwen3-VL encoder generatively to inspect how
  it reads your image+prompt (shares image/template prep with the encoder)
- Silence the per-token console tqdm during generation (UI progress ring
  still updates); cleaner logs
- Encoder: single conditioning output (vlm_prompt string output removed)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:59:16 +02:00
EthanfelandClaude Opus 4.8 2d98b4c336 Add Krea2 VLM Preview node; drop encoder string output
- New Krea2VLMPreview node: runs the Qwen3-VL encoder generatively on the
  same image+prompt the encoder feeds, outputs the decoded text (proxy for
  what the VLM sees). Shares image/template prep with the encoder.
- TextEncodeKrea2: remove the vlm_prompt STRING output (back to a single
  conditioning output); print_prompt console toggle retained.
- web JS: auto-growing image/mask pairs now also apply to the preview node.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:45:53 +02:00
EthanfelandClaude Opus 4.8 ebc552627c Release 1.0.4: vision_position switch, prompt debug output
- vision_position: place image tokens before/after the manual prompt
- print_prompt: dump the assembled Qwen3-VL prompt to the console
- new vlm_prompt STRING output: the full assembled prompt for inspection

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:28:29 +02:00
EthanfelandClaude Opus 4.8 8392f7096c Release 1.0.3: graceful FP8 text-encoder error
Catch the cryptic "add_stub not implemented for Float8_e4m3fn" crash (a
ComfyUI core bug in the Qwen3-VL vision pos-embed when the text encoder is
FP8 and an image is used) and raise an actionable message telling the user
to load a bf16/fp16 Qwen3-VL-4B encoder.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:22:06 +02:00
EthanfelandClaude Opus 4.8 9bede2cbc5 Release 1.0.2
Editable system_prompt input + Krea2 System Prompt helper node, plus
mask self-heal/padding, downscale-only vision cap, and logo/banner.
Also moves the system_prompt socket directly above image1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 05:07:35 +02:00
EthanfelandClaude Opus 4.8 e979af29b3 Add editable system prompt input + Krea2 System Prompt node
- TextEncodeKrea2 gains a system_prompt forceInput (unconnected = Krea2's
  trained descriptor; wire a text node to override the VLM framing)
- New Krea2SystemPrompt node: text node preloaded with an instruct/edit-style
  system prompt that fuses the prompt with the reference image (experimental)
- README: document the system prompt input and the instruct preset

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 04:43:34 +02:00
EthanfelandClaude Opus 4.8 6593a179f9 Remove vision_position switch
Roll back the before/after-prompt vision placement toggle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 04:28:05 +02:00
EthanfelandClaude Opus 4.8 9cc07b6328 Add vision_position switch
Choose whether image (vision) tokens go before or after the manual prompt
in the user turn. Default 'before prompt' keeps current behavior.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 04:23:45 +02:00
EthanfelandClaude Opus 4.8 a1ef67bc83 Release 1.0.1
Publish accumulated changes: mask slot self-heal, mask_padding context
control, downscale-only vision cap, logo + social banner.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:52:17 +02:00
EthanfelandClaude Opus 4.8 32cbe915f7 Remove vision_strength
Scrap the gray-fade vision strength control. mask_padding and the
downscale-only vision cap are unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:52:02 +02:00
EthanfelandClaude Opus 4.8 b713592e37 Add vision_strength control
Fade each reference toward neutral gray before the encoder (Qwen3-VL
normalizes mean/std 0.5, so gray ~= zero vision signal). 1.0 = full,
0.0 = effectively text-only. README updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:45:42 +02:00
EthanfelandClaude Opus 4.8 baeb8496e5 Mask context padding + downscale-only vision cap
- mask_padding: grow the mask crop box by a fraction of image size per side
  for surrounding context (0 = tight crop, default)
- vision resize is now downscale-only (a small mask crop keeps native size
  instead of being magnified to the megapixel target)
- README: document mask_padding and the megapixel cap

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:42:17 +02:00
EthanfelandClaude Opus 4.8 1317e81381 Add Comfy Registry publishing: pyproject.toml, MIT LICENSE, CI workflow
- pyproject.toml: registry metadata (publisher ethanfel, no extra deps)
- .github/workflows/publish.yml: Comfy-Org/publish-node-action on pyproject
  changes (mirrors existing node repos; uses REGISTRY_ACCESS_TOKEN secret)
- LICENSE: MIT

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:18:41 +02:00
EthanfelandClaude Opus 4.8 2c4aff50a6 Add logo + social banner; self-heal missing mask slots
- assets/logo.svg + logo.png: K2 app-icon mark
- assets/social.svg + social.png (+@2x): GitHub social banner styled as a
  ComfyUI node (clip/image/mask -> cond)
- README: show banner at top
- web JS: backfill a maskN for any imageN missing one, so image1 always pairs
  with mask1 even on stale/legacy nodes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:14:53 +02:00
EthanfelandClaude Opus 4.8 13b79b3fc0 Initial release: Text Encode (Krea2) node
Vision-aware text conditioning for the Krea2/K2 model (Qwen3-VL-4B text
encoder). Forces the Krea2 descriptor template even with images, omits the
no-op VAE input (Krea2 has no reference-latent pathway), and accepts an
unbounded, auto-growing set of image+mask reference pairs. Optional per-image
mask crops the image to the masked bounding box before the vision encoder.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 03:09:21 +02:00