Skip to content

add modular blockset for wan 2.2 vace - #14432

Open
akshan-main wants to merge 3 commits into
huggingface:mainfrom
akshan-main:wan-vace-modular
Open

add modular blockset for wan 2.2 vace#14432
akshan-main wants to merge 3 commits into
huggingface:mainfrom
akshan-main:wan-vace-modular

Conversation

@akshan-main

@akshan-main akshan-main commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds a modular blockset for Wan 2.2 VACE: Wan22VaceBlocks with a WanVaceEncoderStep for the VACE conditioning latents (control video, mask, reference images), a two-transformer Wan22VaceLoopDenoiser that forwards control_hidden_states as shared kwargs across the guider batches (same shape as the qwenimage controlnet denoise step), and a post-denoise reference-frame trim. Existing wan blocks are reused unchanged.

Outputs match WanVACEPipeline exactly with shared components and seed. One deliberate divergence: output_type="latent" returns the trimmed latents so they are directly decodable. Test components live in akshan-main/tiny-wan22-vace-modular-pipe.

Before submitting

  • This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
  • Did you read the contributor guideline?
  • Did you read our philosophy doc (important for complex PRs)?
  • Was this discussed/approved via a GitHub issue or the forum? Discussed on Slack with @sayakpaul
  • Did you make sure to update the documentation with your changes?
  • Did you write any new necessary tests?

Who can review?

@yiyixuxu @sayakpaul

@github-actions

Copy link
Copy Markdown
Contributor

Hi @akshan-main, thanks for the PR! It does not appear to link an issue it fixes. If this PR addresses an existing issue, please add a closing keyword (e.g. Fixes #1234) to the PR description so the issue is linked. See the contribution guide for more details. If this PR intentionally does not fix a tracked issue, a maintainer can add the no-issue-needed label to silence this reminder.

@github-actions

github-actions Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Hi @akshan-main, a follow-up on the reminder above: this PR still does not link an issue it fixes.

Please note that PRs without a linked issue are likely to be automatically closed 10 days after this notice. Adding a closing keyword (e.g. Fixes #1234) to the PR description, or a maintainer adding the no-issue-needed label, will prevent that.

@sayakpaul
sayakpaul requested a review from yiyixuxu August 27, 2026 10:57

@yiyixuxu yiyixuxu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

@property
def expected_components(self) -> list[ComponentSpec]:
return [
ComponentSpec("transformer", WanVACETransformer3DModel),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we not list transformer as components here? if you just need the patch size, make it a property on pipeline like vae_scale_factor_temporal

@akshan-main akshan-main Aug 27, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed it. Also adapted the test file to the new modular mixin structure.

@yiyixuxu yiyixuxu added close-to-merge no-issue-needed for PRs that do not require link to an issue and removed close-to-merge labels Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

modular-pipelines no-issue-needed for PRs that do not require link to an issue size/L PR with diff > 200 LOC tests utils

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants