huggingface / huggingface/diffusers

`StableDiffusionPipeline` produces `nans` for SD2.1 (Mac, cpu device)

Đang mở
#6,136 15 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug contributions-welcome help wanted stale
Ngôn ngữ chính
Python
Star
34.5k
Fork
7.3k
Merge trung bình
3 ngày 3 giờ
Pull request đã merge (30 ngày)
91

Mô tả

### Describe the bug

`StableDiffusionPipeline` produces `nans` for SD2.1.

![CleanShot 2023-12-11 at 14 27 56@2x](https://github.com/huggingface/diffusers/assets/40663591/112c80e5-7e62-4e40-a0df-4881a04b1297)

The issue seems to be in the `pipe.unet.conv_in`. Printing the mean / std for `sample` before and after `conv_in` gives:
```
m,s = tensor(0.005) tensor(0.996)
m,s = tensor(15962061100191580160., grad_fn=) tensor(16510648845702789070848., grad_fn=)
```

### Reproduction

Make sure I'm using the latest official diffusers version
```
# uninstall local, editable version
!pip uninstall diffusers -y -qq
# install official version
!pip install diffusers -qq
# restart notebook now
```

Code to reproduce
```
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained('stabilityai/stable-diffusion-2-1')
result = pipe('the sun', output_type='pt')
result.images[0]
```

Output:
```
tensor([[[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...
```

### Logs

_No response_

### System Info

- `diffusers` version: 0.24.0
- Platform: macOS-14.1.2-arm64-arm-64bit
- Python version: 3.11.6
- PyTorch version (GPU?): 2.1.1 (False)
- Huggingface_hub version: 0.19.4
- Transformers version: 4.35.2
- Accelerate version: 0.25.0
- xFormers version: not installed
- Using GPU in script?: no
- Using distributed or parallel set-up in script?: no

### Who can help?

Questions on pipelines > Stable Diffusion: @yiyixuxu @DN6 @sayakpaul @patrickvonplaten

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Run the supplied StableDiffusionPipeline reproduction with SD2.1 on the reported macOS CPU environment and confirm where NaNs first appear. Start at pipe.unet.conv_in and trace the sample before and after that entry point; done means the pipeline produces finite output tensors instead of NaNs.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python, pytorch
Lĩnh vực
ai, machine-learning
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.