-
Notifications
You must be signed in to change notification settings - Fork 296
Description
In the Stable Diffusion Deep Dive notebook, in the code plot immediately following the Transformer diagram, there is the definition of get_output_embeds
which includes a call to text_encoder.text_model._build_causal_attention_mask
:
def get_output_embeds(input_embeddings):
# CLIP's text model uses causal mask, so we prepare it here:
bsz, seq_len = input_embeddings.shape[:2]
causal_attention_mask = text_encoder.text_model._build_causal_attention_mask(bsz, seq_len, dtype=input_embeddings.dtype)
...
That is currently generating an error for me when I run the notebook on Colab (from a fresh instance) or my home computer:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
[<ipython-input-33-dbb74b7ec9b4>](https://localhost:8080/#) in <cell line: 26>()
24 return output
25
---> 26 out_embs_test = get_output_embeds(input_embeddings) # Feed through the model with our new function
27 print(out_embs_test.shape) # Check the output shape
28 out_embs_test # Inspect the output
1 frames
[/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py](https://localhost:8080/#) in __getattr__(self, name)
1612 if name in modules:
1613 return modules[name]
-> 1614 raise AttributeError("'{}' object has no attribute '{}'".format(
1615 type(self).__name__, name))
1616
AttributeError: 'CLIPTextTransformer' object has no attribute '_build_causal_attention_mask'
Everything in the notebook prior to that line runs fine.
Perhaps I'm doing something wrong, or perhaps something has changed with the HF libraries that being used, since the notebook's original conception?
UPDATE:
I see the same issue here: drboog/ProFusion#12. It seems that transformers
has changed. Downgrading to version 4.25.1 fixed the problem.
Thus changing the the pip install
line at the top of the notebook to
!pip install -q --upgrade transformers==4.25.1 diffusers ftfy
...will restore full functionality.
Feel free to close this issue at your convenience. Perhaps a PR is in order.
Presumably some way to keep up to date with transformers
will be preferable, but for now this is a quick fix.