Skip to content

Conversation

a-r-r-o-w
Copy link
Contributor

from diffusers import AutoModel
from diffusers.hooks.utils import _get_identifiable_transformer_blocks_in_module, _get_identifiable_attention_layers_in_module, _get_identifiable_feedforward_layers_in_module

model = AutoModel.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet")

transformer_blocks = _get_identifiable_transformer_blocks_in_module(model)
attention_layers = _get_identifiable_attention_layers_in_module(model)
feedforward_layers = _get_identifiable_feedforward_layers_in_module(model)

print("transformer blocks")
for name, module in transformer_blocks:
    print(name)
print()
print("attention layers")
for name, module in attention_layers:
    print(name)
print()
print("feedforward layers")
for name, module in feedforward_layers:
    print(name)
output
transformer blocks
down_blocks
down_blocks.1.attentions.0.transformer_blocks
down_blocks.1.attentions.1.transformer_blocks
down_blocks.2.attentions.0.transformer_blocks
down_blocks.2.attentions.1.transformer_blocks
up_blocks
up_blocks.0.attentions.0.transformer_blocks
up_blocks.0.attentions.1.transformer_blocks
up_blocks.0.attentions.2.transformer_blocks
up_blocks.1.attentions.0.transformer_blocks
up_blocks.1.attentions.1.transformer_blocks
up_blocks.1.attentions.2.transformer_blocks
mid_block.attentions.0.transformer_blocks

attention layers
down_blocks.1.attentions.0.transformer_blocks.0.attn1
down_blocks.1.attentions.0.transformer_blocks.0.attn2
down_blocks.1.attentions.0.transformer_blocks.1.attn1
down_blocks.1.attentions.0.transformer_blocks.1.attn2
down_blocks.1.attentions.1.transformer_blocks.0.attn1
down_blocks.1.attentions.1.transformer_blocks.0.attn2
down_blocks.1.attentions.1.transformer_blocks.1.attn1
down_blocks.1.attentions.1.transformer_blocks.1.attn2
down_blocks.2.attentions.0.transformer_blocks.0.attn1
down_blocks.2.attentions.0.transformer_blocks.0.attn2
down_blocks.2.attentions.0.transformer_blocks.1.attn1
down_blocks.2.attentions.0.transformer_blocks.1.attn2
down_blocks.2.attentions.0.transformer_blocks.2.attn1
down_blocks.2.attentions.0.transformer_blocks.2.attn2
down_blocks.2.attentions.0.transformer_blocks.3.attn1
down_blocks.2.attentions.0.transformer_blocks.3.attn2
down_blocks.2.attentions.0.transformer_blocks.4.attn1
down_blocks.2.attentions.0.transformer_blocks.4.attn2
down_blocks.2.attentions.0.transformer_blocks.5.attn1
down_blocks.2.attentions.0.transformer_blocks.5.attn2
down_blocks.2.attentions.0.transformer_blocks.6.attn1
down_blocks.2.attentions.0.transformer_blocks.6.attn2
down_blocks.2.attentions.0.transformer_blocks.7.attn1
down_blocks.2.attentions.0.transformer_blocks.7.attn2
down_blocks.2.attentions.0.transformer_blocks.8.attn1
down_blocks.2.attentions.0.transformer_blocks.8.attn2
down_blocks.2.attentions.0.transformer_blocks.9.attn1
down_blocks.2.attentions.0.transformer_blocks.9.attn2
down_blocks.2.attentions.1.transformer_blocks.0.attn1
down_blocks.2.attentions.1.transformer_blocks.0.attn2
down_blocks.2.attentions.1.transformer_blocks.1.attn1
down_blocks.2.attentions.1.transformer_blocks.1.attn2
down_blocks.2.attentions.1.transformer_blocks.2.attn1
down_blocks.2.attentions.1.transformer_blocks.2.attn2
down_blocks.2.attentions.1.transformer_blocks.3.attn1
down_blocks.2.attentions.1.transformer_blocks.3.attn2
down_blocks.2.attentions.1.transformer_blocks.4.attn1
down_blocks.2.attentions.1.transformer_blocks.4.attn2
down_blocks.2.attentions.1.transformer_blocks.5.attn1
down_blocks.2.attentions.1.transformer_blocks.5.attn2
down_blocks.2.attentions.1.transformer_blocks.6.attn1
down_blocks.2.attentions.1.transformer_blocks.6.attn2
down_blocks.2.attentions.1.transformer_blocks.7.attn1
down_blocks.2.attentions.1.transformer_blocks.7.attn2
down_blocks.2.attentions.1.transformer_blocks.8.attn1
down_blocks.2.attentions.1.transformer_blocks.8.attn2
down_blocks.2.attentions.1.transformer_blocks.9.attn1
down_blocks.2.attentions.1.transformer_blocks.9.attn2
up_blocks.0.attentions.0.transformer_blocks.0.attn1
up_blocks.0.attentions.0.transformer_blocks.0.attn2
up_blocks.0.attentions.0.transformer_blocks.1.attn1
up_blocks.0.attentions.0.transformer_blocks.1.attn2
up_blocks.0.attentions.0.transformer_blocks.2.attn1
up_blocks.0.attentions.0.transformer_blocks.2.attn2
up_blocks.0.attentions.0.transformer_blocks.3.attn1
up_blocks.0.attentions.0.transformer_blocks.3.attn2
up_blocks.0.attentions.0.transformer_blocks.4.attn1
up_blocks.0.attentions.0.transformer_blocks.4.attn2
up_blocks.0.attentions.0.transformer_blocks.5.attn1
up_blocks.0.attentions.0.transformer_blocks.5.attn2
up_blocks.0.attentions.0.transformer_blocks.6.attn1
up_blocks.0.attentions.0.transformer_blocks.6.attn2
up_blocks.0.attentions.0.transformer_blocks.7.attn1
up_blocks.0.attentions.0.transformer_blocks.7.attn2
up_blocks.0.attentions.0.transformer_blocks.8.attn1
up_blocks.0.attentions.0.transformer_blocks.8.attn2
up_blocks.0.attentions.0.transformer_blocks.9.attn1
up_blocks.0.attentions.0.transformer_blocks.9.attn2
up_blocks.0.attentions.1.transformer_blocks.0.attn1
up_blocks.0.attentions.1.transformer_blocks.0.attn2
up_blocks.0.attentions.1.transformer_blocks.1.attn1
up_blocks.0.attentions.1.transformer_blocks.1.attn2
up_blocks.0.attentions.1.transformer_blocks.2.attn1
up_blocks.0.attentions.1.transformer_blocks.2.attn2
up_blocks.0.attentions.1.transformer_blocks.3.attn1
up_blocks.0.attentions.1.transformer_blocks.3.attn2
up_blocks.0.attentions.1.transformer_blocks.4.attn1
up_blocks.0.attentions.1.transformer_blocks.4.attn2
up_blocks.0.attentions.1.transformer_blocks.5.attn1
up_blocks.0.attentions.1.transformer_blocks.5.attn2
up_blocks.0.attentions.1.transformer_blocks.6.attn1
up_blocks.0.attentions.1.transformer_blocks.6.attn2
up_blocks.0.attentions.1.transformer_blocks.7.attn1
up_blocks.0.attentions.1.transformer_blocks.7.attn2
up_blocks.0.attentions.1.transformer_blocks.8.attn1
up_blocks.0.attentions.1.transformer_blocks.8.attn2
up_blocks.0.attentions.1.transformer_blocks.9.attn1
up_blocks.0.attentions.1.transformer_blocks.9.attn2
up_blocks.0.attentions.2.transformer_blocks.0.attn1
up_blocks.0.attentions.2.transformer_blocks.0.attn2
up_blocks.0.attentions.2.transformer_blocks.1.attn1
up_blocks.0.attentions.2.transformer_blocks.1.attn2
up_blocks.0.attentions.2.transformer_blocks.2.attn1
up_blocks.0.attentions.2.transformer_blocks.2.attn2
up_blocks.0.attentions.2.transformer_blocks.3.attn1
up_blocks.0.attentions.2.transformer_blocks.3.attn2
up_blocks.0.attentions.2.transformer_blocks.4.attn1
up_blocks.0.attentions.2.transformer_blocks.4.attn2
up_blocks.0.attentions.2.transformer_blocks.5.attn1
up_blocks.0.attentions.2.transformer_blocks.5.attn2
up_blocks.0.attentions.2.transformer_blocks.6.attn1
up_blocks.0.attentions.2.transformer_blocks.6.attn2
up_blocks.0.attentions.2.transformer_blocks.7.attn1
up_blocks.0.attentions.2.transformer_blocks.7.attn2
up_blocks.0.attentions.2.transformer_blocks.8.attn1
up_blocks.0.attentions.2.transformer_blocks.8.attn2
up_blocks.0.attentions.2.transformer_blocks.9.attn1
up_blocks.0.attentions.2.transformer_blocks.9.attn2
up_blocks.1.attentions.0.transformer_blocks.0.attn1
up_blocks.1.attentions.0.transformer_blocks.0.attn2
up_blocks.1.attentions.0.transformer_blocks.1.attn1
up_blocks.1.attentions.0.transformer_blocks.1.attn2
up_blocks.1.attentions.1.transformer_blocks.0.attn1
up_blocks.1.attentions.1.transformer_blocks.0.attn2
up_blocks.1.attentions.1.transformer_blocks.1.attn1
up_blocks.1.attentions.1.transformer_blocks.1.attn2
up_blocks.1.attentions.2.transformer_blocks.0.attn1
up_blocks.1.attentions.2.transformer_blocks.0.attn2
up_blocks.1.attentions.2.transformer_blocks.1.attn1
up_blocks.1.attentions.2.transformer_blocks.1.attn2
mid_block.attentions.0.transformer_blocks.0.attn1
mid_block.attentions.0.transformer_blocks.0.attn2
mid_block.attentions.0.transformer_blocks.1.attn1
mid_block.attentions.0.transformer_blocks.1.attn2
mid_block.attentions.0.transformer_blocks.2.attn1
mid_block.attentions.0.transformer_blocks.2.attn2
mid_block.attentions.0.transformer_blocks.3.attn1
mid_block.attentions.0.transformer_blocks.3.attn2
mid_block.attentions.0.transformer_blocks.4.attn1
mid_block.attentions.0.transformer_blocks.4.attn2
mid_block.attentions.0.transformer_blocks.5.attn1
mid_block.attentions.0.transformer_blocks.5.attn2
mid_block.attentions.0.transformer_blocks.6.attn1
mid_block.attentions.0.transformer_blocks.6.attn2
mid_block.attentions.0.transformer_blocks.7.attn1
mid_block.attentions.0.transformer_blocks.7.attn2
mid_block.attentions.0.transformer_blocks.8.attn1
mid_block.attentions.0.transformer_blocks.8.attn2
mid_block.attentions.0.transformer_blocks.9.attn1
mid_block.attentions.0.transformer_blocks.9.attn2

feedforward layers
down_blocks.1.attentions.0.transformer_blocks.0.ff
down_blocks.1.attentions.0.transformer_blocks.1.ff
down_blocks.1.attentions.1.transformer_blocks.0.ff
down_blocks.1.attentions.1.transformer_blocks.1.ff
down_blocks.2.attentions.0.transformer_blocks.0.ff
down_blocks.2.attentions.0.transformer_blocks.1.ff
down_blocks.2.attentions.0.transformer_blocks.2.ff
down_blocks.2.attentions.0.transformer_blocks.3.ff
down_blocks.2.attentions.0.transformer_blocks.4.ff
down_blocks.2.attentions.0.transformer_blocks.5.ff
down_blocks.2.attentions.0.transformer_blocks.6.ff
down_blocks.2.attentions.0.transformer_blocks.7.ff
down_blocks.2.attentions.0.transformer_blocks.8.ff
down_blocks.2.attentions.0.transformer_blocks.9.ff
down_blocks.2.attentions.1.transformer_blocks.0.ff
down_blocks.2.attentions.1.transformer_blocks.1.ff
down_blocks.2.attentions.1.transformer_blocks.2.ff
down_blocks.2.attentions.1.transformer_blocks.3.ff
down_blocks.2.attentions.1.transformer_blocks.4.ff
down_blocks.2.attentions.1.transformer_blocks.5.ff
down_blocks.2.attentions.1.transformer_blocks.6.ff
down_blocks.2.attentions.1.transformer_blocks.7.ff
down_blocks.2.attentions.1.transformer_blocks.8.ff
down_blocks.2.attentions.1.transformer_blocks.9.ff
up_blocks.0.attentions.0.transformer_blocks.0.ff
up_blocks.0.attentions.0.transformer_blocks.1.ff
up_blocks.0.attentions.0.transformer_blocks.2.ff
up_blocks.0.attentions.0.transformer_blocks.3.ff
up_blocks.0.attentions.0.transformer_blocks.4.ff
up_blocks.0.attentions.0.transformer_blocks.5.ff
up_blocks.0.attentions.0.transformer_blocks.6.ff
up_blocks.0.attentions.0.transformer_blocks.7.ff
up_blocks.0.attentions.0.transformer_blocks.8.ff
up_blocks.0.attentions.0.transformer_blocks.9.ff
up_blocks.0.attentions.1.transformer_blocks.0.ff
up_blocks.0.attentions.1.transformer_blocks.1.ff
up_blocks.0.attentions.1.transformer_blocks.2.ff
up_blocks.0.attentions.1.transformer_blocks.3.ff
up_blocks.0.attentions.1.transformer_blocks.4.ff
up_blocks.0.attentions.1.transformer_blocks.5.ff
up_blocks.0.attentions.1.transformer_blocks.6.ff
up_blocks.0.attentions.1.transformer_blocks.7.ff
up_blocks.0.attentions.1.transformer_blocks.8.ff
up_blocks.0.attentions.1.transformer_blocks.9.ff
up_blocks.0.attentions.2.transformer_blocks.0.ff
up_blocks.0.attentions.2.transformer_blocks.1.ff
up_blocks.0.attentions.2.transformer_blocks.2.ff
up_blocks.0.attentions.2.transformer_blocks.3.ff
up_blocks.0.attentions.2.transformer_blocks.4.ff
up_blocks.0.attentions.2.transformer_blocks.5.ff
up_blocks.0.attentions.2.transformer_blocks.6.ff
up_blocks.0.attentions.2.transformer_blocks.7.ff
up_blocks.0.attentions.2.transformer_blocks.8.ff
up_blocks.0.attentions.2.transformer_blocks.9.ff
up_blocks.1.attentions.0.transformer_blocks.0.ff
up_blocks.1.attentions.0.transformer_blocks.1.ff
up_blocks.1.attentions.1.transformer_blocks.0.ff
up_blocks.1.attentions.1.transformer_blocks.1.ff
up_blocks.1.attentions.2.transformer_blocks.0.ff
up_blocks.1.attentions.2.transformer_blocks.1.ff
mid_block.attentions.0.transformer_blocks.0.ff
mid_block.attentions.0.transformer_blocks.1.ff
mid_block.attentions.0.transformer_blocks.2.ff
mid_block.attentions.0.transformer_blocks.3.ff
mid_block.attentions.0.transformer_blocks.4.ff
mid_block.attentions.0.transformer_blocks.5.ff
mid_block.attentions.0.transformer_blocks.6.ff
mid_block.attentions.0.transformer_blocks.7.ff
mid_block.attentions.0.transformer_blocks.8.ff
mid_block.attentions.0.transformer_blocks.9.ff

@a-r-r-o-w a-r-r-o-w requested review from asomoza and yiyixuxu August 3, 2025 09:03
@a-r-r-o-w a-r-r-o-w marked this pull request as ready for review August 3, 2025 09:03
@HuggingFaceDocBuilderDev

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Copy link
Collaborator

@yiyixuxu yiyixuxu left a comment

Choose a reason for hiding this comment

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

thanks!
looks good to me
@asomoza let me know if this is what you need

Copy link
Member

@asomoza asomoza left a comment

Choose a reason for hiding this comment

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

really cool, tested and this is what I needed, thanks a lot!

@yiyixuxu yiyixuxu merged commit f19421e into main Aug 6, 2025
15 checks passed
@a-r-r-o-w a-r-r-o-w deleted the identify-layer-skip-compatible-blocks branch August 6, 2025 17:56
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.

4 participants