Buckets:
| # UNet | |
| LoRA や Custom Diffusion などの一部の学習手法は、通常、UNet のアテンション層を対象としますが、これらの手法はアテンション以外の他の層を対象とすることもできます。モデルのすべてのパラメータを学習させるのではなく、パラメータの一部のみを学習させるため、より高速かつ効率的です。このクラスは、UNet に*のみ*重みを読み込む場合に有用です。テキストエンコーダー、またはテキストエンコーダーと UNet の両方に重みを読み込む必要がある場合は、代わりに [load_lora_weights()](/docs/diffusers/main/ja/api/loaders/lora#diffusers.loaders.StableDiffusionLoraLoaderMixin.load_lora_weights) 関数を使用してください。 | |
| `UNet2DConditionLoadersMixin` クラスは、重みの読み込みと保存、LoRA の融合と分離、LoRA の無効化と有効化、アダプターの設定と削除を行う関数を提供します。 | |
| > [!TIP] | |
| > LoRAの重みをロードする方法の詳細については、[LoRA](../../tutorials/using_peft_for_inference)ガイドを参照してください。 | |
| ## UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]] | |
| #### diffusers.loaders.UNet2DConditionLoadersMixin[[diffusers.loaders.UNet2DConditionLoadersMixin]] | |
| ```python | |
| diffusers.loaders.UNet2DConditionLoadersMixin() | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L53) | |
| `UNet2DCondtionModel`にLoRA層を読み込みます。 | |
| #### 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) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L61) | |
| **パラメータ:** | |
| pretrained_model_name_or_path_or_dict (`str` または `os.PathLike` または `dict`) : 以下のいずれかです。 - Hub にホストされている事前学習済みモデルのモデル ID(例: `google/ddpm-celebahq-256`)を示す文字列。 - [ModelMixin.save_pretrained()](/docs/diffusers/main/ja/api/models/overview#diffusers.ModelMixin.save_pretrained) で保存されたモデルの重みを含むディレクトリへのパス(例: `./my_model_directory`)。 - [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict)。 | |
| cache_dir (`str | os.PathLike`、*任意*) : 標準のキャッシュを使用しない場合、ダウンロードした事前学習済みモデルの構成がキャッシュされるディレクトリのパス。 | |
| force_download (`bool`, *任意*, デフォルトは `False`) : モデルの重みと設定ファイルの(再)ダウンロードを強制するかどうか。キャッシュされたバージョンが存在する場合でも、それを上書きします。 | |
| proxies (`dict[str, str]`、*省略可*) : プロトコルまたはエンドポイントごとに使用するプロキシサーバーの辞書です。例えば、`{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}` のように指定します。これらのプロキシは、各リクエストで使用されます。 | |
| local_files_only (`bool`、*任意*、デフォルトは`False`) : ローカルのモデルの重みと設定ファイルのみを読み込むかどうかを指定します。`True`に設定すると、モデルは Hub からダウンロードされません。 | |
| token (`str` または *bool*、*省略可能*) : リモートファイルの HTTP ベアラ認証に使用するトークン。`True` の場合、`diffusers-cli login` で生成されたトークン(`~/.huggingface` に保存)が使用されます。 | |
| revision (`str`、*任意*、デフォルトは`"main"`) : 使用する特定のモデルバージョンです。ブランチ名、タグ名、コミット ID、または Git で許可されている任意の識別子を使用できます。 | |
| subfolder (`str`、*任意*、デフォルトは `""`) : Hub またはローカル上のより大きなモデルリポジトリ内での、モデルファイルのサブフォルダの場所。 | |
| weight_name (`str`、*任意*、デフォルトは None) : シリアライズされた state dict ファイルの名前。 | |
| 事前学習済みの Custom Diffusion アテンションプロセッサのレイヤーを [UNet2DConditionModel](/docs/diffusers/main/ja/api/models/unet2d-cond#diffusers.UNet2DConditionModel) に読み込みます。アテンションプロセッサのレイヤーは [`attention_processor.py`](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) で定義する必要があり、`torch.nn.Module` クラスである必要があります。LoRA レイヤーを読み込む場合は、代わりに [load_lora_adapter()](/docs/diffusers/main/ja/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.load_lora_adapter) を使用してください。 | |
| 例: | |
| ```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) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/unet.py#L252) | |
| **パラメータ:** | |
| save_directory (`str` または `os.PathLike`) : attention processor を保存するディレクトリ(存在しない場合は作成されます)。 | |
| is_main_process (`bool`、*任意*、デフォルトは`True`) : この関数を呼び出したプロセスがメインプロセスかどうかを示します。分散学習時に、すべてのプロセスでこの関数を呼び出す必要がある場合に便利です。この場合、競合状態を避けるために、メインプロセスでのみ`is_main_process=True`を設定してください。 | |
| save_function (`Callable`) : 状態辞書を保存するために使用する関数です。分散学習時に `torch.save` を別のメソッドに置き換える必要がある場合に便利です。環境変数 `DIFFUSERS_SAVE_MODE` で設定できます。 | |
| safe_serialization (`bool`, *任意*, デフォルトは `True`) : モデルを `safetensors` で保存するか、`pickle` で保存するかどうかを指定します。 | |
| Custom Diffusion の attention processor レイヤーをディレクトリに保存し、[load_attn_procs()](/docs/diffusers/main/ja/api/loaders/unet#diffusers.loaders.UNet2DConditionLoadersMixin.load_attn_procs) メソッドで再読み込みできるようにします。LoRA レイヤーを保存する場合は、代わりに [save_lora_adapter()](/docs/diffusers/main/ja/api/loaders/peft#diffusers.loaders.PeftAdapterMixin.save_lora_adapter) を使用してください。 | |
| 例: | |
| ```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.67 kB
- Xet hash:
- 4532c2d6317210242363a4c01ccec7b78743c8ab386b2aa9c689dc0e736bd0c5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.