Repository navigation
feat(controlnet): add Qwen Image Fun-ControlNet-Union with canvas control layers - #9914
Open
Pfannkuchensack wants to merge 3 commits into
Open
Pfannkuchensack wants to merge 3 commits into
Pfannkuchensack wants to merge 3 commits into
Conversation
…trol layers Add alibaba-pai's VACE-style control branch for Qwen-Image: identification, loader, the qwen_image_control node and control/inpaint conditioning in the denoise, injected through forward hooks on the diffusers transformer. The canvas gets a Qwen Image ControlNet layer kind with inpaint/outpaint feeding and a grayscale filter; the denoise now reserves working memory for its activations.
6 of 7 tasks
2 of 7 tasks
This branch has not been deployed
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
Qwen-Image had no ControlNet. This adds alibaba-pai's Fun-ControlNet-Union (Canny, HED, depth, pose, MLSD, scribble, gray, plus inpainting) as a Qwen Image ControlNet: a model config/loader, the
qwen_image_controlnode, control and inpaint conditioning inqwen_image_denoise(hints injected through forward hooks on the diffusers transformer), a canvas control-layer kind with inpaint/outpaint feeding, a grayscale filter, a starter model and docs. The denoise now reserves working memory for its activations and materialized attention scores.Related Issues / Discussions
Part of the Fun-ControlNet series (Qwen-Image 2.1, FLUX.2 dev, InstantX and the Z-Image migration follow).
QA Instructions
torch.equalto an independent reference through diffusers'controlnet_block_samplespath; scale 0 and inactive hooks equal the plain forward.uv run --no-sync pytest -n 4 tests/backend/fun_controlnet tests/backend/model_manager tests/backend/architectures tests/model_identification tests/backend/z_image tests/app/invocations: 5316 passed. Ruff clean.pnpm lintclean;pnpm test: 10486 passed, 3 known German-locale failures; browser tests for the layer settings pass.Review
Resolved: a materialized-score term was added to the working-memory estimate for builds without fused masked attention; the control chain runs in the branch dtype and hands hints back in the base dtype; compiled canvas graphs (txt2img, inpaint, outpaint) are validated against the backend invocations; docs cover the grayscale filter and tiled control encodes. Remaining: the working-memory constants are estimates pending calibration; on 16 GB cards the 3.5 GB branch streams beside the transformer; control is refused for Edit models and with reference latents.
Compatibility / Rollout
New node and config class;
qwen_image_denoise1.1.0 adds optionalcontrolandvaeinputs.openapi.json/schema.tsand the capabilities fixture are regenerated. Canvas documents gain an additive adapter kind (no schema bump). No database migration.Checklist
What's Newcopy (if doing a release after this PR)Need help on this PR? Tag
@codesmith-botwith what you need.