Buckets:
| # AutoPipeline | |
| [AutoPipeline](../api/models/auto_model) 是一种按*任务和模型*选择的pipeline,会根据任务自动选择正确的pipeline子类。这样你就不用提前知道具体的pipeline子类名称,也能加载不同类型的pipeline。 | |
| 这和 `DiffusionPipeline` 不同。后者是只按*模型*选择的pipeline,会根据模型自动选择pipeline子类。 | |
| `AutoPipelineForImage2Image` 会返回某个特定的pipeline子类,例如 `StableDiffusionXLImg2ImgPipeline`,它只能用于 image-to-image 任务。 | |
| ```py | |
| import torch | |
| from diffusers import AutoPipelineForImage2Image | |
| pipeline = AutoPipelineForImage2Image.from_pretrained( | |
| "RunDiffusion/Juggernaut-XL-v9", torch_dtype=torch.bfloat16, device_map="cuda", | |
| ) | |
| print(pipeline) | |
| "StableDiffusionXLImg2ImgPipeline { | |
| "_class_name": "StableDiffusionXLImg2ImgPipeline", | |
| ... | |
| " | |
| ``` | |
| 如果用同一个模型加载 `DiffusionPipeline`,则会返回 `StableDiffusionXLPipeline` 子类。它可以根据输入用于 text-to-image、image-to-image 或 inpainting 任务。 | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "RunDiffusion/Juggernaut-XL-v9", torch_dtype=torch.bfloat16, device_map="cuda", | |
| ) | |
| print(pipeline) | |
| "StableDiffusionXLPipeline { | |
| "_class_name": "StableDiffusionXLPipeline", | |
| ... | |
| " | |
| ``` | |
| 你可以查看 [mappings](https://github.com/huggingface/diffusers/blob/130fd8df54f24ffb006d84787b598d8adc899f23/src/diffusers/pipelines/auto_pipeline.py#L114),确认某个模型是否受支持。 | |
| 如果尝试加载不受支持的模型,就会报错。 | |
| ```py | |
| import torch | |
| from diffusers import AutoPipelineForImage2Image | |
| pipeline = AutoPipelineForImage2Image.from_pretrained( | |
| "openai/shap-e-img2img", torch_dtype=torch.float16, | |
| ) | |
| "ValueError: AutoPipeline can't find a pipeline linked to ShapEImg2ImgPipeline for None" | |
| ``` | |
| [AutoPipeline](../api/models/auto_model) 一共有四种类型: | |
| - `AutoPipelineForText2Image` | |
| - `AutoPipelineForImage2Image` | |
| - `AutoPipelineForInpainting` | |
| - `AutoPipelineForText2Audio` | |
| 这些类都带有预定义的映射关系,会把某个pipeline关联到对应任务的子类上。 | |
| 调用 `from_pretrained()` 时,它会从 `model_index.json` 文件中提取类名,并根据映射关系为该任务选择合适的pipeline子类。 | |
Xet Storage Details
- Size:
- 2.33 kB
- Xet hash:
- a3b061a1b25e9feeaf7aa2e76cd5a6e62f3e1204d587b59b74cee57a3a7e8eec
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.