Buckets:
| # UNet | |
| Một số phương pháp huấn luyện - như LoRA và Custom Diffusion - thường nhắm vào các lớp attention của UNet, nhưng các phương pháp huấn luyện này cũng có thể nhắm đến các lớp không phải attention khác. Thay vì huấn luyện tất cả các tham số của mô hình, chỉ một tập con các tham số được huấn luyện, giúp nhanh hơn và hiệu quả hơn. Lớp này hữu ích nếu bạn *chỉ* nạp trọng số vào một UNet. Nếu bạn cần nạp trọng số vào text encoder hoặc cả text encoder và UNet, hãy thử sử dụng hàm [load_lora_weights()](/docs/diffusers/main/vi/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) thay thế. | |
| Lớp `UNet2DConditionLoadersMixin` cung cấp các hàm để tải và lưu trọng số, hợp nhất và tách LoRA, vô hiệu hóa và kích hoạt LoRA, cũng như thiết lập và xóa adapter. | |
| > [!TIP] | |
| > Để tìm hiểu thêm về cách tải trọng số LoRA, hãy xem hướng dẫn [LoRA](../../tutorials/using_peft_for_inference). | |
| ## UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]] | |
| #### diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]] | |
| ```python | |
| diffusers.loaders.UNet2DConditionLoadersMixin() | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L53) | |
| Nạp các lớp LoRA vào `UNet2DCondtionModel`. | |
| #### load_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs]] | |
| ```python | |
| load_attn_procs(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], **kwargs) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L61) | |
| **Tham số:** | |
| pretrained_model_name_or_path_or_dict (`str` hoặc `os.PathLike` hoặc `dict`) : Có thể là: - Một chuỗi, id của model (ví dụ `google/ddpm-celebahq-256`) của một model được huấn luyện trước lưu trên Hub. - Một đường dẫn đến thư mục (ví dụ `./my_model_directory`) chứa trọng số model được lưu bằng [ModelMixin.save_pretrained()](/docs/diffusers/main/vi/api/models/overview#diffusers.ModelMixin.save_pretrained). - Một [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict). | |
| cache_dir (`str | os.PathLike`, *tùy chọn*) : Đường dẫn đến thư mục nơi cấu hình mô hình được huấn luyện trước đã tải xuống được lưu đệm nếu không sử dụng bộ lưu đệm tiêu chuẩn. | |
| force_download (`bool`, *tùy chọn*, mặc định là `False`) : Xác định có nên ép buộc tải lại (re-download) trọng số mô hình và các tệp cấu hình hay không, ghi đè lên các phiên bản đã được lưu trong bộ nhớ đệm nếu chúng tồn tại. | |
| proxies (`dict[str, str]`, *tùy chọn*) : Một từ điển các máy chủ proxy để sử dụng theo giao thức hoặc điểm cuối, ví dụ, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Các proxy được sử dụng cho mỗi yêu cầu. | |
| local_files_only (`bool`, *tùy chọn*, mặc định là `False`) : Xác định xem có chỉ tải trọng số và tệp cấu hình của mô hình cục bộ hay không. Nếu đặt thành `True`, mô hình sẽ không được tải xuống từ Hub. | |
| token (`str` hoặc *bool*, *tùy chọn*) : Token được sử dụng làm HTTP bearer authorization cho các tệp từ xa. Nếu là `True`, token được tạo từ `diffusers-cli login` (được lưu trong `~/.huggingface`) sẽ được sử dụng. | |
| revision (`str`, *tùy chọn*, mặc định là `"main"`) : Phiên bản mô hình cụ thể cần sử dụng. Nó có thể là tên nhánh, tên thẻ, id commit, hoặc bất kỳ định danh nào được Git cho phép. | |
| subfolder (`str`, *tùy chọn*, mặc định là `""`) : Vị trí của thư mục con chứa tệp mô hình bên trong một kho lưu trữ mô hình lớn hơn trên Hub hoặc cục bộ. | |
| weight_name (`str`, *tùy chọn*, mặc định là None) : Tên của tệp state dict đã được serialize. | |
| Tải các lớp attention processor của Custom Diffusion đã được huấn luyện trước vào [UNet2DConditionModel](/docs/diffusers/main/vi/api/models/unet2d-cond#diffusers.UNet2DConditionModel). Các lớp attention processor phải được định nghĩa trong [`attention_processor.py`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) và là một lớp `torch.nn.Module`. Để tải các lớp LoRA, hãy sử dụng [load_lora_adapter()](/docs/diffusers/main/vi/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.load_lora_adapter) thay thế. | |
| Ví dụ: | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "CompVis/stable-diffusion-v1-4", | |
| torch_dtype=torch.float16, | |
| ).to("cuda") | |
| pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin") | |
| ``` | |
| #### save_attn_procs[[diffusers.loaders.UNet2DConditionLoadersMixin.save_attn_procs]] | |
| ```python | |
| save_attn_procs(save_directory: str | os.PathLike, is_main_process: bool = True, weight_name: str = None, save_function: typing.Callable = None, safe_serialization: bool = True, **kwargs) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L252) | |
| **Tham số:** | |
| save_directory (`str` hoặc `os.PathLike`) : Thư mục để lưu trữ attention processor (sẽ được tạo nếu chưa tồn tại). | |
| is_main_process (`bool`, *tùy chọn*, mặc định là `True`) : Xác định xem tiến trình gọi hàm này có phải là tiến trình chính hay không. Hữu ích trong quá trình huấn luyện phân tán khi bạn cần gọi hàm này trên tất cả các tiến trình. Trong trường hợp này, chỉ đặt `is_main_process=True` trên tiến trình chính để tránh điều kiện đua. | |
| save_function (`Callable`) : Hàm được sử dụng để lưu state dictionary. Hữu ích trong quá trình huấn luyện phân tán khi bạn cần thay thế `torch.save` bằng một phương pháp khác. Có thể được cấu hình bằng biến môi trường `DIFFUSERS_SAVE_MODE`. | |
| safe_serialization (`bool`, *tùy chọn*, mặc định là `True`) : Có lưu mô hình bằng `safetensors` hay bằng `pickle` hay không. | |
| Lưu các lớp attention processor của Custom Diffusion vào một thư mục để có thể tải lại bằng phương thức [load_attn_procs()](/docs/diffusers/main/vi/api/loaders/unet#diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs). Để lưu các lớp LoRA, hãy sử dụng [save_lora_adapter()](/docs/diffusers/main/vi/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.save_lora_adapter) thay thế. | |
| Ví dụ: | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "CompVis/stable-diffusion-v1-4", | |
| torch_dtype=torch.float16, | |
| ).to("cuda") | |
| pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin") | |
| pipeline.unet.save_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin") | |
| ``` | |
Xet Storage Details
- Size:
- 7.44 kB
- Xet hash:
- 6689369559526902557807a54d35433af35b8f64aaa944f3c81e1e9c78d655c2
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.