Skip to content

Conversation

@luren55
Copy link

@luren55 luren55 commented Jan 15, 2026

What does this PR do?

Issue: The Diffusers Z-Image pipeline fails on Ascend NPU because aclnnIndex lacks support for complex64. When freqs_cis is stored as a complex tensor on the NPU and then indexed, the call crashes.

Fix: Rework the RoPE frequency handling so that the NPU never needs to index complex64 tensors.

Running Environment:
I run this model base on cache-dit(https://github.com/vipshop/cache-dit/) which depends on diffusers to inference.

Command:
python3 generate.py zimage --model-path /home/weights/Z-Image-Turbo --attn _native_npu

Error before fixed:
image

Result after fixed:
image

Before submitting

Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

@luren55
Copy link
Author

luren55 commented Jan 16, 2026

@yiyuxuxu Hello, could you please review this pr, thank you.

@luren55
Copy link
Author

luren55 commented Jan 17, 2026

@yiyixuxu @sayakpaul Hello, could you please review this pr, thank you.

@sayakpaul sayakpaul requested a review from yiyixuxu January 17, 2026 05:14
return x


class RopeEmbedderNPU:
Copy link
Member

Choose a reason for hiding this comment

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

Is it not possible to modify the existing RopeEmbedder class to account for the NPU hardware?

Copy link
Author

Choose a reason for hiding this comment

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

maybe we could modify the current RopeEmbedder class same as RopeEmbedderNPU?It could work for both device

Copy link
Member

Choose a reason for hiding this comment

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

No I mean we keep the class name as RopeEmbedder and modify the definition such that it also works on NPU alongside current devices.

@luren55
Copy link
Author

luren55 commented Jan 26, 2026

@sayakpaul I merged RopeEmbedderNPU into RopeEmbedder class, please review the modification

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants