Repository navigation
feat(upscale): support Krea-2 Turbo and Raw in the Upscale widget - #9889
Merged
Merged
Conversation
Krea-2 Raw's mu kept climbing past 6400 image tokens (2.21 at 2048², 7.41 at 4096²); calculate_shift now holds it at the fit's end, as the FLUX.1, Z-Image and LTX-2 fits do. krea2_denoise 1.3.1; Turbo and an explicit shift are unchanged.
Adds a Krea-2 path (tiled Qwen-Image VAE, krea2_denoise) with a Qwen3-VL 4B slot and served CFG defaults. The index-clipping table entry now carries the node's rounding rule, since krea2_denoise rounds its start.
This was referenced Oct 16, 2026
joshistoast
approved these changes
Oct 17, 2026
lstein
enabled auto-merge (squash)
October 17, 2026 22:30
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
|
CI was failing on all three Python test jobs because |
6 of 7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Upscale widget can now use Krea-2 Turbo and Krea-2 Raw main models. The pass works like FLUX.1, Z-Image and Anima: Spandrel enlarges the image, then one img2img pass runs over the whole frame. It encodes and decodes with the Qwen-Image VAE (
qwen_image_i2l/qwen_image_l2i, both tiled), the same nodes Generate and Canvas use for Krea-2. No new nodes.krea2_model_loaderrefuses it. A Diffusers install brings its own.krea2_denoisehas no scheduler input, so the field is hidden and the metadata records Euler. Steps keep the widget value for both variants.krea2_denoiseclipsdenoising_startby step index, like Z-Image and Anima, so the widget translates Creativity to the step nearest FLUX's entry sigma. Two things differ from those nodes:start * steps(Python's half-to-even) where the others floor it, so its start is the step itself, not the middle of the step.indexClippedShift(size)becomesindexClipping: { shift(model, size), rounding }.Depends on #9887, which holds Raw's mu at 1280×1280 of area. Without it, Raw at 4096² enters at sigma 0.98 and replaces the image.
Related Issues / Discussions
Block 5 of the upscale work. Follows #9825 (Z-Image and Anima). Requires #9887.
Until #9887 is merged, this branch also carries its commit (
22be8138d9, the Raw shift hold). Only the second commit (6a38e3f957) belongs to this PR; the branch will be rebased onto main once #9887 lands.QA Instructions
Automated
lint(oxfmt, oxlint,tsc --noEmit, architecture): pass.test: 10,196 passed. On this German-locale machine, 3 tests that format numbers with the system locale fail the same way without this change.test:performance:architecture(build and browser),test:project-files:browser,test:accessibility:browser(19) andtest:fixtures(32): pass.test_upscale_index_clipped_starts.pyandtest_frontend_graph_node_types.py: 889 passed, 3 skipped.krea2_denoise._run_diffusionwith the real diffusers scheduler up to the img2img blend, and checks that the entry is the step nearest FLUX's.End to end (RTX 4090, 1024² source, Balanced, through the Invoke button):
All three keep the composition and lettering:
UI, checked in the browser
Review
Findings resolved:
Remaining:
scheduler/scheduler_config.json. Krea's ships the same numbers. A checkpoint whose config differed would move Raw's starts below 1280×1280 without the contract test noticing.Compatibility / Rollout
qwen3VlEncoderModel. Older values normalize it tonull, and the model sync fills it in.Checklist
What's Newcopy (if doing a release after this PR)Need help on this PR? Tag
@codesmith-botwith what you need.