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>
- 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>
- 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>
- 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>
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>
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>
- 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>
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>
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>
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>
- 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>
- 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>
- 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>
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>