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