Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

VaeImageProcessor.denormalize() raises AttributeError for NumPy inputs

Đang mở Phù hợp với người mới
#15,011 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@tonycoder-hub đang làm issue này rồi.

Từ ngày 12/10/2026.

  • #15012 của @tonycoder-hub — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
numpy, python, pytorch
Lĩnh vực
machine-learning

Hướng nghiên cứu

Đọc src/diffusers/image_processor.py tại VaeImageProcessor.denormalize() và kiểm tra các kiểu đầu vào được ghi trong tài liệu. Tái hiện lỗi bằng ví dụ NumPy trong issue, sau đó xem các bài kiểm thử gần đó của bộ xử lý ảnh để kiểm tra phạm vi bao phủ cho đầu vào NumPy và PyTorch. Công việc hoàn tất khi đầu vào NumPy trả về các giá trị được giới hạn trong [0, 1] và giữ nguyên kiểu của nó, đồng thời hành vi PyTorch hiện có vẫn hoạt động.

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

Mô tả

bug
Describe the bug

VaeImageProcessor.denormalize() is documented to accept both NumPy arrays (np.ndarray) and PyTorch tensors (torch.Tensor). However, passing a NumPy array raises an AttributeError because the implementation uses the PyTorch-specific .clamp() method.

Root cause

In src/diffusers/image_processor.py, line 234:

return (images * 0.5 + 0.5).clamp(0, 1)

NumPy arrays do not implement .clamp(), despite being included in the function's type annotations and documentation.

Expected behavior

The function should denormalize NumPy inputs to [0, 1], preserving the input type and existing PyTorch behavior.

Proposed direction

Use input-type-appropriate clipping, such as np.clip() for NumPy and .clamp() for PyTorch, or clarify the supported types if NumPy support is not intended.

I'd be happy to contribute a fix after discussing the preferred approach with maintainers.

Reproduction
import numpy as np
import torch
from diffusers.image_processor import VaeImageProcessor

values = [-2.0, -1.0, 0.0, 1.0, 2.0]

numpy_input = np.array(values, dtype=np.float32)
torch_input = torch.tensor(values, dtype=torch.float32)

# PyTorch succeeds
print("PyTorch:", VaeImageProcessor.denormalize(torch_input))

# NumPy raises AttributeError
print("NumPy:", VaeImageProcessor.denormalize(numpy_input))

The issue is reproducible on CPU without pretrained models or external downloads.

Logs
File "E:\diffusers\src\diffusers\image_processor.py", line 234, in denormalize
    return (images * 0.5 + 0.5).clamp(0, 1)
AttributeError: 'numpy.ndarray' object has no attribute 'clamp'. Did you mean: 'clip'?


Additional validation:


PyTorch actual: [0.0, 0.0, 0.5, 1.0, 1.0]
NumPy expected: [0.0, 0.0, 0.5, 1.0, 1.0]
Outputs match: True
System Info
  • 🤗 Diffusers version: 0.41.0.dev0
  • Platform: Windows-10-10.0.22631-SP0
  • Running on Google Colab?: No
  • Python version: 3.11.16
  • PyTorch version (GPU?): 2.14.1+cpu (False)
  • NumPy version: 2.4.6
  • Huggingface_hub version: 1.33.0
  • Transformers version: 5.18.0
  • Accelerate version: 1.15.0
  • PEFT version: 0.21.2
  • Safetensors version: 0.8.0

Source revision: 899c9f3fd0e64f3206781c00c71c28249eff9ca5

Reproduction environment: Windows, CPU only. No pretrained models or external downloads required.

Who can help?

@DN6 @sayakpaul

I'd appreciate your feedback on the expected NumPy support and the preferred approach to resolving this issue. I'm happy to contribute a fix once the implementation approach is agreed upon.

Ngôn ngữ chính
Python
Star
34.7k
Fork
7.4k
Merge trung bình
2 ngày 16 giờ
Pull request đã merge (30 ngày)
55

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của huggingface/diffusers

Tất cả issue của huggingface/diffusers

Issue tương tự

Thêm issue về Python

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.