# AutoPipeline

`AutoPipeline` được thiết kế để giúp việc nạp checkpoint cho một tác vụ trở nên dễ dàng mà không cần biết lớp pipeline cụ thể. Dựa trên tác vụ, `AutoPipeline` sẽ tự động lấy lớp pipeline chính xác từ tệp `model_index.json` của checkpoint.

> [!TIP]
> Xem hướng dẫn [AutoPipeline](../../tutorials/autopipeline) để tìm hiểu cách sử dụng API này!

## AutoPipelineForText2Image[[diffusers.AutoPipelineForText2Image]]

#### diffusers.AutoPipelineForText2Image[[diffusers.AutoPipelineForText2Image]]

```python
diffusers.AutoPipelineForText2Image(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L378)

[AutoPipelineForText2Image](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image) là một lớp pipeline tổng quát, dùng để khởi tạo một lớp pipeline text-to-image. Lớp pipeline cụ thể bên dưới sẽ được tự động chọn từ phương thức [from_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image.from_pretrained) hoặc [from_pipe()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image.from_pipe).

Lớp này không thể được khởi tạo bằng `__init__()` (gây ra lỗi).

Thuộc tính lớp:

- **config_name** (`str`) -- Tên tệp cấu hình lưu trữ tên lớp và tên module của tất cả các thành phần trong pipeline khuếch tán.

#### from_pretrained[[diffusers.AutoPipelineForText2Image.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L403)

**Tham số:**

pretrained_model_or_path (`str` hoặc `os.PathLike`, *tùy chọn*) : Có thể là:  - Một chuỗi, *repo id* (ví dụ `CompVis/ldm-text2im-large-256`) của một pipeline được huấn luyện trước có trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_pipeline_directory/`) chứa các trọng số pipeline đã được lưu bằng [save_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained).

dtype (`torch.dtype`, *tùy chọn*) : Ghi đè `torch.dtype` mặc định và tải mô hình với dtype khác.

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.

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.

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.

output_loading_info(`bool`, *tuỳ chọn*, mặc định là `False`) : Có trả về một từ điển chứa các khóa bị thiếu, các khóa không mong đợi và thông báo lỗi hay không.

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.

custom_revision (`str`, *tuỳ 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ẻ, hoặc id commit tương tự như `revision` khi tải một pipeline tùy chỉnh từ Hub. Nó có thể là phiên bản 🤗 Diffusers khi tải một pipeline tùy chỉnh từ GitHub, nếu không, mặc định là `"main"` khi tải từ Hub.

mirror (`str`, *tùy chọn*) : Nguồn mirror để giải quyết các vấn đề về khả năng truy cập nếu bạn đang tải xuống một model ở Trung Quốc. Chúng tôi không đảm bảo tính kịp thời hay an toàn của nguồn, và bạn nên tham khảo trang mirror để biết thêm thông tin.

device_map (`str` hoặc `dict[str, int | str | torch.device]`, *tùy chọn*) : Một bản đồ chỉ định vị trí của từng submodule. Không cần định nghĩa cho từng tên parameter/buffer; một khi tên module nhất định đã được đưa vào, mọi submodule của nó sẽ được gửi đến cùng một thiết bị. Đặt `device_map="auto"` để 🤗 Accelerate tự động tính toán `device_map` tối ưu nhất. Để biết thêm thông tin về từng tùy chọn, xem [thiết kế một device map](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *tùy chọn*) : Một từ điển định danh thiết bị cho bộ nhớ tối đa. Nếu không được đặt, giá trị mặc định sẽ là bộ nhớ tối đa khả dụng cho mỗi GPU và RAM CPU khả dụng.

offload_folder (`str` hoặc `os.PathLike`, *tùy chọn*) : Đường dẫn để offload trọng số nếu device_map chứa giá trị `"disk"`.

offload_state_dict (`bool`, *tùy chọn*) : Nếu `True`, sẽ tạm thời offload state dict trên CPU xuống ổ cứng để tránh hết RAM CPU nếu trọng số của state dict trên CPU + shard lớn nhất của checkpoint không vừa. Mặc định là `True` khi có offload xuống đĩa.

low_cpu_mem_usage (`bool`, *tuỳ chọn*, mặc định là `True` nếu phiên bản torch >= 1.9.0, ngược lại là `False`) : Tăng tốc quá trình tải mô hình bằng cách chỉ tải các trọng số được huấn luyện trước và không khởi tạo các trọng số. Đồng thời, tham số này cũng cố gắng không sử dụng quá 1 lần kích thước mô hình trong bộ nhớ CPU (bao gồm cả bộ nhớ đỉnh) trong khi tải mô hình. Chỉ hỗ trợ cho PyTorch >= 1.9.0. Nếu bạn đang sử dụng phiên bản PyTorch cũ hơn, việc đặt tham số này thành `True` sẽ gây ra lỗi.

use_safetensors (`bool`, *tuỳ chọn*, mặc định là `None`) : Nếu được đặt thành `None`, các trọng số safetensors sẽ được tải xuống nếu chúng có sẵn **và** nếu thư viện safetensors đã được cài đặt. Nếu được đặt thành `True`, mô hình sẽ được tải bắt buộc từ các trọng số safetensors. Nếu được đặt thành `False`, các trọng số safetensors sẽ không được tải.

kwargs (đictionary còn lại của các đối số từ khóa, *tùy chọn*) : Có thể được sử dụng để ghi đè lên các biến load và saveable (các thành phần pipeline của lớp pipeline cụ thể). Các thành phần bị ghi đè sẽ được truyền trực tiếp vào phương thức `__init__` của pipeline. Xem ví dụ bên dưới để biết thêm thông tin.

variant (`str`, *tùy chọn*) : Nạp trọng số từ tên tệp biến thể được chỉ định, chẳng hạn như `"fp16"` hoặc `"ema"`.

Khởi tạo một pipeline khuếch tán Pytorch từ văn bản sang hình ảnh từ trọng số pipeline được huấn luyện trước.

Phương thức from_pretrained() đảm bảo trả về đúng instance của lớp pipeline bằng cách:
1. Phát hiện lớp pipeline của pretrained_model_or_path dựa trên thuộc tính _class_name của đối tượng config của nó
2. Tìm pipeline text-to-image được liên kết với lớp pipeline bằng cách khớp mẫu trên tên lớp pipeline.

Nếu đối số `controlnet` được truyền vào, một đối tượng [StableDiffusionControlNetPipeline](/docs/diffusers/v0.43.0/vi/api/pipelines/controlnet#diffusers.StableDiffusionControlNetPipeline) sẽ được khởi tạo.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

Nếu bạn nhận được thông báo lỗi bên dưới, bạn cần tinh chỉnh trọng số cho tác vụ hạ nguồn của mình:

```
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```

> [!TIP] > Để sử dụng các mô hình riêng tư hoặc [gated](https://huggingface.co/docs/hub/models-gated#gated-models), hãy đăng nhập
với `hf > auth login`.

Ví dụ:

```py
>>> from diffusers import AutoPipelineForText2Image

>>> pipeline = AutoPipelineForText2Image.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> image = pipeline(prompt).images[0]
```

#### from_pipe[[diffusers.AutoPipelineForText2Image.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L559)

**Tham số:**

pipeline (`DiffusionPipeline`) : một đối tượng `DiffusionPipeline` đã được khởi tạo

Khởi tạo một pipeline khuếch tán Pytorch từ văn bản sang hình ảnh từ một lớp pipeline khuếch tán đã được khởi tạo khác.

Phương thức from_pipe() đảm bảo trả về một instance của lớp pipeline chính xác bằng cách tìm pipeline text-to-image được liên kết với lớp pipeline thông qua việc khớp mẫu trên tên lớp pipeline.

Tất cả các module mà pipeline chứa sẽ được sử dụng để khởi tạo pipeline mới mà không cần phân bổ thêm bộ nhớ.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

```py
>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

>>> pipe_i2i = AutoPipelineForImage2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", requires_safety_checker=False
... )

>>> pipe_t2i = AutoPipelineForText2Image.from_pipe(pipe_i2i)
>>> image = pipe_t2i(prompt).images[0]
```

## AutoPipelineForImage2Image[[diffusers.AutoPipelineForImage2Image]]

#### diffusers.AutoPipelineForImage2Image[[diffusers.AutoPipelineForImage2Image]]

```python
diffusers.AutoPipelineForImage2Image(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L676)

[AutoPipelineForImage2Image](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForImage2Image) là một lớp pipeline tổng quát, khởi tạo một lớp pipeline từ ảnh sang ảnh. Lớp pipeline cụ thể bên dưới được tự động chọn từ phương thức [from_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForImage2Image.from_pretrained) hoặc [from_pipe()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForImage2Image.from_pipe).

Lớp này không thể được khởi tạo bằng `__init__()` (gây ra lỗi).

Thuộc tính lớp:

- **config_name** (`str`) -- Tên tệp cấu hình lưu trữ tên lớp và tên module của tất cả các thành phần trong pipeline khuếch tán.

#### from_pretrained[[diffusers.AutoPipelineForImage2Image.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L701)

**Tham số:**

pretrained_model_or_path (`str` hoặc `os.PathLike`, *tùy chọn*) : Có thể là:  - Một chuỗi, *repo id* (ví dụ `CompVis/ldm-text2im-large-256`) của một pipeline được huấn luyện trước có trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_pipeline_directory/`) chứa các trọng số pipeline đã được lưu bằng [save_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained).

dtype (`str` hoặc `torch.dtype`, *tuỳ chọn*) : Ghi đè `torch.dtype` mặc định và tải mô hình với dtype khác.

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.

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.

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.

output_loading_info(`bool`, *tuỳ chọn*, mặc định là `False`) : Có trả về một từ điển chứa các khóa bị thiếu, các khóa không mong đợi và thông báo lỗi hay không.

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.

custom_revision (`str`, *tuỳ 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ẻ, hoặc id commit tương tự như `revision` khi tải một pipeline tùy chỉnh từ Hub. Nó có thể là phiên bản 🤗 Diffusers khi tải một pipeline tùy chỉnh từ GitHub, nếu không, mặc định là `"main"` khi tải từ Hub.

mirror (`str`, *tùy chọn*) : Nguồn mirror để giải quyết các vấn đề về khả năng truy cập nếu bạn đang tải xuống một model ở Trung Quốc. Chúng tôi không đảm bảo tính kịp thời hay an toàn của nguồn, và bạn nên tham khảo trang mirror để biết thêm thông tin.

device_map (`str` hoặc `dict[str, int | str | torch.device]`, *tùy chọn*) : Một bản đồ chỉ định vị trí của từng submodule. Không cần định nghĩa cho từng tên parameter/buffer; một khi tên module nhất định đã được đưa vào, mọi submodule của nó sẽ được gửi đến cùng một thiết bị. Đặt `device_map="auto"` để 🤗 Accelerate tự động tính toán `device_map` tối ưu nhất. Để biết thêm thông tin về từng tùy chọn, xem [thiết kế một device map](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *tùy chọn*) : Một từ điển định danh thiết bị cho bộ nhớ tối đa. Nếu không được đặt, giá trị mặc định sẽ là bộ nhớ tối đa khả dụng cho mỗi GPU và RAM CPU khả dụng.

offload_folder (`str` hoặc `os.PathLike`, *tùy chọn*) : Đường dẫn để offload trọng số nếu device_map chứa giá trị `"disk"`.

offload_state_dict (`bool`, *tùy chọn*) : Nếu `True`, sẽ tạm thời offload state dict trên CPU xuống ổ cứng để tránh hết RAM CPU nếu trọng số của state dict trên CPU + shard lớn nhất của checkpoint không vừa. Mặc định là `True` khi có offload xuống đĩa.

low_cpu_mem_usage (`bool`, *tuỳ chọn*, mặc định là `True` nếu phiên bản torch >= 1.9.0, ngược lại là `False`) : Tăng tốc quá trình tải mô hình bằng cách chỉ tải các trọng số được huấn luyện trước và không khởi tạo các trọng số. Đồng thời, tham số này cũng cố gắng không sử dụng quá 1 lần kích thước mô hình trong bộ nhớ CPU (bao gồm cả bộ nhớ đỉnh) trong khi tải mô hình. Chỉ hỗ trợ cho PyTorch >= 1.9.0. Nếu bạn đang sử dụng phiên bản PyTorch cũ hơn, việc đặt tham số này thành `True` sẽ gây ra lỗi.

use_safetensors (`bool`, *tuỳ chọn*, mặc định là `None`) : Nếu được đặt thành `None`, các trọng số safetensors sẽ được tải xuống nếu chúng có sẵn **và** nếu thư viện safetensors đã được cài đặt. Nếu được đặt thành `True`, mô hình sẽ được tải bắt buộc từ các trọng số safetensors. Nếu được đặt thành `False`, các trọng số safetensors sẽ không được tải.

kwargs (đictionary còn lại của các đối số từ khóa, *tùy chọn*) : Có thể được sử dụng để ghi đè lên các biến load và saveable (các thành phần pipeline của lớp pipeline cụ thể). Các thành phần bị ghi đè sẽ được truyền trực tiếp vào phương thức `__init__` của pipeline. Xem ví dụ bên dưới để biết thêm thông tin.

variant (`str`, *tùy chọn*) : Nạp trọng số từ tên tệp biến thể được chỉ định, chẳng hạn như `"fp16"` hoặc `"ema"`.

Khởi tạo một pipeline khuếch tán Pytorch từ ảnh sang ảnh từ trọng số pipeline được huấn luyện trước.

Phương thức from_pretrained() đảm bảo trả về đúng instance của lớp pipeline bằng cách:
1. Phát hiện lớp pipeline của pretrained_model_or_path dựa trên thuộc tính _class_name của đối tượng config của nó
2. Tìm pipeline image-to-image được liên kết với lớp pipeline bằng cách khớp mẫu trên tên lớp pipeline.

Nếu một đối số `controlnet` được truyền vào, một đối tượng [StableDiffusionControlNetImg2ImgPipeline](/docs/diffusers/v0.43.0/vi/api/pipelines/controlnet#diffusers.StableDiffusionControlNetImg2ImgPipeline) sẽ được khởi tạo.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

Nếu bạn nhận được thông báo lỗi bên dưới, bạn cần tinh chỉnh trọng số cho tác vụ hạ nguồn của mình:

```
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```

> [!TIP] > Để sử dụng các mô hình riêng tư hoặc [gated](https://huggingface.co/docs/hub/models-gated#gated-models), hãy đăng nhập
với `hf > auth login`.

Ví dụ:

```py
>>> from diffusers import AutoPipelineForImage2Image

>>> pipeline = AutoPipelineForImage2Image.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> image = pipeline(prompt, image).images[0]
```

#### from_pipe[[diffusers.AutoPipelineForImage2Image.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L868)

**Tham số:**

pipeline (`DiffusionPipeline`) : một đối tượng `DiffusionPipeline` đã được khởi tạo

Khởi tạo một pipeline khuếch tán Pytorch từ ảnh sang ảnh từ một lớp pipeline khuếch tán đã được khởi tạo khác.

Phương thức from_pipe() đảm bảo trả về một instance của lớp pipeline chính xác bằng cách tìm pipeline image-to-image được liên kết với lớp pipeline thông qua việc khớp mẫu trên tên lớp pipeline.

Tất cả các module mà pipeline chứa sẽ được sử dụng để khởi tạo pipeline mới mà không cần phân bổ thêm bộ nhớ.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

Ví dụ:

```py
>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

>>> pipe_t2i = AutoPipelineForText2Image.from_pretrained(
...     "stable-diffusion-v1-5/stable-diffusion-v1-5", requires_safety_checker=False
... )

>>> pipe_i2i = AutoPipelineForImage2Image.from_pipe(pipe_t2i)
>>> image = pipe_i2i(prompt, image).images[0]
```

## AutoPipelineForInpainting[[diffusers.AutoPipelineForInpainting]]

#### diffusers.AutoPipelineForInpainting[[diffusers.AutoPipelineForInpainting]]

```python
diffusers.AutoPipelineForInpainting(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L990)

[AutoPipelineForInpainting](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting) là một lớp pipeline chung, dùng để khởi tạo một lớp pipeline inpainting. Lớp pipeline cụ thể bên dưới sẽ được tự động chọn từ phương thức [from_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting.from_pretrained) hoặc [from_pipe()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting.from_pipe).

Lớp này không thể được khởi tạo bằng `__init__()` (gây ra lỗi).

Thuộc tính lớp:

- **config_name** (`str`) -- Tên tệp cấu hình lưu trữ tên lớp và tên module của tất cả các thành phần trong pipeline khuếch tán.

#### from_pretrained[[diffusers.AutoPipelineForInpainting.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1015)

**Tham số:**

pretrained_model_or_path (`str` hoặc `os.PathLike`, *tùy chọn*) : Có thể là:  - Một chuỗi, *repo id* (ví dụ `CompVis/ldm-text2im-large-256`) của một pipeline được huấn luyện trước có trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_pipeline_directory/`) chứa các trọng số pipeline đã được lưu bằng [save_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained).

dtype (`str` hoặc `torch.dtype`, *tuỳ chọn*) : Ghi đè `torch.dtype` mặc định và tải mô hình với dtype khác.

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.

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.

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.

output_loading_info(`bool`, *tuỳ chọn*, mặc định là `False`) : Có trả về một từ điển chứa các khóa bị thiếu, các khóa không mong đợi và thông báo lỗi hay không.

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.

custom_revision (`str`, *tuỳ 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ẻ, hoặc id commit tương tự như `revision` khi tải một pipeline tùy chỉnh từ Hub. Nó có thể là phiên bản 🤗 Diffusers khi tải một pipeline tùy chỉnh từ GitHub, nếu không, mặc định là `"main"` khi tải từ Hub.

mirror (`str`, *tùy chọn*) : Nguồn mirror để giải quyết các vấn đề về khả năng truy cập nếu bạn đang tải xuống một model ở Trung Quốc. Chúng tôi không đảm bảo tính kịp thời hay an toàn của nguồn, và bạn nên tham khảo trang mirror để biết thêm thông tin.

device_map (`str` hoặc `dict[str, int | str | torch.device]`, *tùy chọn*) : Một bản đồ chỉ định vị trí của từng submodule. Không cần định nghĩa cho từng tên parameter/buffer; một khi tên module nhất định đã được đưa vào, mọi submodule của nó sẽ được gửi đến cùng một thiết bị. Đặt `device_map="auto"` để 🤗 Accelerate tự động tính toán `device_map` tối ưu nhất. Để biết thêm thông tin về từng tùy chọn, xem [thiết kế một device map](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *tùy chọn*) : Một từ điển định danh thiết bị cho bộ nhớ tối đa. Nếu không được đặt, giá trị mặc định sẽ là bộ nhớ tối đa khả dụng cho mỗi GPU và RAM CPU khả dụng.

offload_folder (`str` hoặc `os.PathLike`, *tùy chọn*) : Đường dẫn để offload trọng số nếu device_map chứa giá trị `"disk"`.

offload_state_dict (`bool`, *tùy chọn*) : Nếu `True`, sẽ tạm thời offload state dict trên CPU xuống ổ cứng để tránh hết RAM CPU nếu trọng số của state dict trên CPU + shard lớn nhất của checkpoint không vừa. Mặc định là `True` khi có offload xuống đĩa.

low_cpu_mem_usage (`bool`, *tuỳ chọn*, mặc định là `True` nếu phiên bản torch >= 1.9.0, ngược lại là `False`) : Tăng tốc quá trình tải mô hình bằng cách chỉ tải các trọng số được huấn luyện trước và không khởi tạo các trọng số. Đồng thời, tham số này cũng cố gắng không sử dụng quá 1 lần kích thước mô hình trong bộ nhớ CPU (bao gồm cả bộ nhớ đỉnh) trong khi tải mô hình. Chỉ hỗ trợ cho PyTorch >= 1.9.0. Nếu bạn đang sử dụng phiên bản PyTorch cũ hơn, việc đặt tham số này thành `True` sẽ gây ra lỗi.

use_safetensors (`bool`, *tuỳ chọn*, mặc định là `None`) : Nếu được đặt thành `None`, các trọng số safetensors sẽ được tải xuống nếu chúng có sẵn **và** nếu thư viện safetensors đã được cài đặt. Nếu được đặt thành `True`, mô hình sẽ được tải bắt buộc từ các trọng số safetensors. Nếu được đặt thành `False`, các trọng số safetensors sẽ không được tải.

kwargs (đictionary còn lại của các đối số từ khóa, *tùy chọn*) : Có thể được sử dụng để ghi đè lên các biến load và saveable (các thành phần pipeline của lớp pipeline cụ thể). Các thành phần bị ghi đè sẽ được truyền trực tiếp vào phương thức `__init__` của pipeline. Xem ví dụ bên dưới để biết thêm thông tin.

variant (`str`, *tùy chọn*) : Nạp trọng số từ tên tệp biến thể được chỉ định, chẳng hạn như `"fp16"` hoặc `"ema"`.

Khởi tạo một pipeline khuếch tán Pytorch inpainting từ trọng số pipeline được huấn luyện trước.

Phương thức from_pretrained() đảm bảo trả về đúng instance của lớp pipeline bằng cách:
1. Phát hiện lớp pipeline của pretrained_model_or_path dựa trên thuộc tính _class_name của đối tượng config của nó
2. Tìm pipeline inpainting liên kết với lớp pipeline bằng cách khớp mẫu trên tên lớp pipeline.

Nếu một đối số `controlnet` được truyền vào, một đối tượng [StableDiffusionControlNetInpaintPipeline](/docs/diffusers/v0.43.0/vi/api/pipelines/controlnet#diffusers.StableDiffusionControlNetInpaintPipeline) sẽ được khởi tạo.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

Nếu bạn nhận được thông báo lỗi bên dưới, bạn cần tinh chỉnh trọng số cho tác vụ hạ nguồn của mình:

```
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```

> [!TIP] > Để sử dụng các mô hình riêng tư hoặc [gated](https://huggingface.co/docs/hub/models-gated#gated-models), hãy đăng nhập
với `hf > auth login`.

Ví dụ:

```py
>>> from diffusers import AutoPipelineForInpainting

>>> pipeline = AutoPipelineForInpainting.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> image = pipeline(prompt, image=init_image, mask_image=mask_image).images[0]
```

#### from_pipe[[diffusers.AutoPipelineForInpainting.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1179)

**Tham số:**

pipeline (`DiffusionPipeline`) : một đối tượng `DiffusionPipeline` đã được khởi tạo

Khởi tạo một pipeline khuếch tán Pytorch inpainting từ một lớp pipeline khuếch tán đã được khởi tạo khác.

Phương thức from_pipe() đảm bảo trả về một instance của lớp pipeline chính xác bằng cách tìm pipeline inpainting liên kết với lớp pipeline thông qua việc khớp mẫu trên tên lớp pipeline.

Tất cả các module mà lớp pipeline chứa sẽ được sử dụng để khởi tạo pipeline mới mà không cần phân bổ thêm bộ nhớ.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

Ví dụ:

```py
>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForInpainting

>>> pipe_t2i = AutoPipelineForText2Image.from_pretrained(
...     "DeepFloyd/IF-I-XL-v1.0", requires_safety_checker=False
... )

>>> pipe_inpaint = AutoPipelineForInpainting.from_pipe(pipe_t2i)
>>> image = pipe_inpaint(prompt, image=init_image, mask_image=mask_image).images[0]
```

## AutoPipelineForText2Audio[[diffusers.AutoPipelineForText2Audio]]

#### diffusers.AutoPipelineForText2Audio[[diffusers.AutoPipelineForText2Audio]]

```python
diffusers.AutoPipelineForText2Audio(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1298)

[AutoPipelineForText2Audio](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio) là một lớp pipeline tổng quát, khởi tạo một lớp pipeline text-to-audio. Lớp pipeline cụ thể bên dưới được tự động chọn từ phương thức [from_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio.from_pretrained) hoặc [from_pipe()](/docs/diffusers/v0.43.0/vi/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio.from_pipe).

Lớp này không thể được khởi tạo bằng `__init__()` (gây ra lỗi).

Thuộc tính lớp:

- **config_name** (`str`) -- Tên tệp cấu hình lưu trữ tên lớp và tên module của tất cả các thành phần trong pipeline khuếch tán.

#### from_pretrained[[diffusers.AutoPipelineForText2Audio.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1323)

**Tham số:**

pretrained_model_or_path (`str` hoặc `os.PathLike`, *tùy chọn*) : Có thể là:  - Một chuỗi, *repo id* (ví dụ `stabilityai/stable-audio-open-1.0`) của một pipeline được huấn luyện trước có trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_pipeline_directory/`) chứa trọng số pipeline được lưu bằng [save_pretrained()](/docs/diffusers/v0.43.0/vi/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained).

dtype (`torch.dtype`, *tùy chọn*) : Ghi đè `torch.dtype` mặc định và tải mô hình với dtype khác.

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.

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.

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.

output_loading_info(`bool`, *tuỳ chọn*, mặc định là `False`) : Có trả về một từ điển chứa các khóa bị thiếu, các khóa không mong đợi và thông báo lỗi hay không.

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.

custom_revision (`str`, *tuỳ 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ẻ, hoặc id commit tương tự như `revision` khi tải một pipeline tùy chỉnh từ Hub. Nó có thể là phiên bản 🤗 Diffusers khi tải một pipeline tùy chỉnh từ GitHub, nếu không, mặc định là `"main"` khi tải từ Hub.

mirror (`str`, *tùy chọn*) : Nguồn mirror để giải quyết các vấn đề về khả năng truy cập nếu bạn đang tải xuống một model ở Trung Quốc. Chúng tôi không đảm bảo tính kịp thời hay an toàn của nguồn, và bạn nên tham khảo trang mirror để biết thêm thông tin.

device_map (`str` hoặc `dict[str, int | str | torch.device]`, *tùy chọn*) : Một bản đồ chỉ định vị trí của từng submodule. Không cần định nghĩa cho từng tên parameter/buffer; một khi tên module nhất định đã có trong bản đồ, mọi submodule của nó sẽ được gửi đến cùng một thiết bị. Đặt `device_map="auto"` để 🤗 Accelerate tự động tính toán `device_map` tối ưu nhất. Để biết thêm thông tin về từng tùy chọn, xem [thiết kế một device map](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *tùy chọn*) : Một từ điển định danh thiết bị cho bộ nhớ tối đa. Nếu không được đặt, giá trị mặc định sẽ là bộ nhớ tối đa khả dụng cho mỗi GPU và RAM CPU khả dụng.

offload_folder (`str` hoặc `os.PathLike`, *tùy chọn*) : Đường dẫn để offload trọng số nếu device_map chứa giá trị `"disk"`.

offload_state_dict (`bool`, *tùy chọn*) : Nếu `True`, sẽ tạm thời offload state dict trên CPU xuống ổ cứng để tránh hết RAM CPU nếu trọng số của state dict trên CPU + shard lớn nhất của checkpoint không vừa. Mặc định là `True` khi có offload xuống đĩa.

low_cpu_mem_usage (`bool`, *tuỳ chọn*, mặc định là `True` nếu phiên bản torch >= 1.9.0, ngược lại là `False`) : Tăng tốc quá trình tải mô hình bằng cách chỉ tải các trọng số được huấn luyện trước và không khởi tạo các trọng số. Đồng thời, tham số này cũng cố gắng không sử dụng quá 1 lần kích thước mô hình trong bộ nhớ CPU (bao gồm cả bộ nhớ đỉnh) trong khi tải mô hình. Chỉ hỗ trợ cho PyTorch >= 1.9.0. Nếu bạn đang sử dụng phiên bản PyTorch cũ hơn, việc đặt tham số này thành `True` sẽ gây ra lỗi.

use_safetensors (`bool`, *tuỳ chọn*, mặc định là `None`) : Nếu được đặt thành `None`, các trọng số safetensors sẽ được tải xuống nếu chúng có sẵn **và** nếu thư viện safetensors đã được cài đặt. Nếu được đặt thành `True`, mô hình sẽ được tải bắt buộc từ các trọng số safetensors. Nếu được đặt thành `False`, các trọng số safetensors sẽ không được tải.

kwargs (đictionary còn lại của các đối số từ khóa, *tùy chọn*) : Có thể được sử dụng để ghi đè lên các biến load và saveable (các thành phần pipeline của lớp pipeline cụ thể). Các thành phần bị ghi đè sẽ được truyền trực tiếp vào phương thức `__init__` của pipeline. Xem ví dụ bên dưới để biết thêm thông tin.

variant (`str`, *tùy chọn*) : Nạp trọng số từ tên tệp biến thể được chỉ định, chẳng hạn như `"fp16"` hoặc `"ema"`.

Khởi tạo một pipeline khuếch tán Pytorch từ văn bản sang âm thanh từ trọng số pipeline được huấn luyện trước.

Phương thức from_pretrained() đảm bảo trả về đúng instance của lớp pipeline bằng cách:
1. Phát hiện lớp pipeline của pretrained_model_or_path dựa trên thuộc tính _class_name của đối tượng config của nó
2. Tìm pipeline text-to-audio được liên kết với lớp pipeline bằng cách khớp mẫu trên tên lớp pipeline.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

> [!TIP] > Để sử dụng các mô hình riêng tư hoặc [gated](https://huggingface.co/docs/hub/models-gated#gated-models), hãy đăng nhập
với `hf > auth login`.

Ví dụ:

```py
>>> import torch
>>> import soundfile as sf
>>> from diffusers import AutoPipelineForText2Audio

>>> pipeline = AutoPipelineForText2Audio.from_pretrained(
...     "stabilityai/stable-audio-open-1.0", torch_dtype=torch.float16
... )
>>> pipeline = pipeline.to("cuda")

>>> output = pipeline(
...     "Generate a male voice reading a paragraph",
...     num_inference_steps=200,
...     audio_end_in_s=10.0,
... )
>>> audio = output.audios[0].T.float().cpu().numpy()
>>> sf.write("audio.wav", audio, pipeline.vae.sampling_rate)
```

#### from_pipe[[diffusers.AutoPipelineForText2Audio.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1467)

**Tham số:**

pipeline (`DiffusionPipeline`) : một đối tượng `DiffusionPipeline` đã được khởi tạo

Khởi tạo một pipeline khuếch tán Pytorch từ văn bản sang âm thanh từ một lớp pipeline khuếch tán đã được khởi tạo khác.

Phương thức from_pipe() đảm bảo trả về một instance của lớp pipeline chính xác bằng cách tìm pipeline text-to-audio được liên kết với lớp pipeline thông qua việc khớp mẫu trên tên lớp pipeline.

Tất cả các module mà pipeline chứa sẽ được sử dụng để khởi tạo pipeline mới mà không cần phân bổ thêm bộ nhớ.

Pipeline được đặt ở chế độ đánh giá (`model.eval()`) theo mặc định.

```py
>>> import torch
>>> import soundfile as sf
>>> from diffusers import AutoPipelineForText2Audio, StableAudioPipeline

>>> pipe = StableAudioPipeline.from_pretrained("stabilityai/stable-audio-open-1.0", torch_dtype=torch.float16)

>>> pipe_audio = AutoPipelineForText2Audio.from_pipe(pipe)
>>> output = pipe_audio(
...     "Generate a sound",
...     num_inference_steps=200,
...     audio_end_in_s=10.0,
... )
>>> audio = output.audios[0].T.float().cpu().numpy()
>>> sf.write("audio.wav", audio, pipe_audio.vae.sampling_rate)
```

