# AutoModel

[AutoModel](/docs/diffusers/main/ja/api/models/auto_model#diffusers.AutoModel) は、チェックポイントの `config.json` ファイルから正しいモデルクラスを自動的に取得します。

## AutoModel[[diffusers.AutoModel]]

#### diffusers.AutoModel[[diffusers.AutoModel]]

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

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/auto_model.py#L27)

#### from_pretrained[[diffusers.AutoModel.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path: str | os.PathLike | None = None, **kwargs)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/auto_model.py#L155)

**パラメータ:**

pretrained_model_name_or_path (`str` または `os.PathLike`、*省略可*) : 以下のいずれかです:  - Hub にホストされている事前学習済みモデルの *model id*（例: `google/ddpm-celebahq-256`）を表す文字列。 - [save_pretrained()](/docs/diffusers/main/ja/api/models/overview#diffusers.ModelMixin.save_pretrained) で保存されたモデルの重みを含む *ディレクトリ*（例: `./my_model_directory`）へのパス。

cache_dir (`str | os.PathLike`、*任意*) : 標準のキャッシュを使用しない場合、ダウンロードした事前学習済みモデルの構成がキャッシュされるディレクトリのパス。

dtype (`torch.dtype`、*任意*) : デフォルトの `torch.dtype` を上書きし、別の dtype でモデルを読み込みます。

force_download (`bool`, *任意*, デフォルトは `False`) : モデルの重みと設定ファイルの(再)ダウンロードを強制するかどうか。キャッシュされたバージョンが存在する場合でも、それを上書きします。

proxies (`dict[str, str]`、*省略可*) : プロトコルまたはエンドポイントごとに使用するプロキシサーバーの辞書です。例えば、`{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}` のように指定します。これらのプロキシは、各リクエストで使用されます。

output_loading_info (`bool`、*任意*、デフォルトは`False`) : 欠落キー、予期しないキー、エラーメッセージを含む辞列も返すかどうかを指定します。

local_files_only(`bool`、*任意*、デフォルトは`False`) : ローカルに保存されたモデルの重みと設定ファイルのみを読み込むかどうかを指定します。`True`に設定すると、モデルは Hub からダウンロードされません。

token (`str` または *bool*、*省略可能*) : リモートファイルの HTTP ベアラ認証に使用するトークン。`True` の場合、`diffusers-cli login` で生成されたトークン（`~/.huggingface` に保存）が使用されます。

revision (`str`、*任意*、デフォルトは`"main"`) : 使用する特定のモデルバージョンです。ブランチ名、タグ名、コミット ID、または Git で許可されている任意の識別子を使用できます。

subfolder (`str`、*任意*、デフォルトは `""`) : Hub またはローカル上のより大きなモデルリポジトリ内での、モデルファイルのサブフォルダの場所。

mirror (`str`, *任意*) : 中国でモデルをダウンロードする場合、アクセシビリティの問題を解決するためのミラーソースを指定します。ソースの鮮度や安全性を保証するものではなく、詳細についてはミラーサイトをご参照ください。

device_map (`str` または `dict[str, int | str | torch.device]`、*省略可*) : 各サブモジュールをどのデバイスに配置するかを指定するマップです。すべてのパラメータ/バッファ名に対して定義する必要はありません。特定のモジュール名がマップに含まれている場合、そのモジュールのすべてのサブモジュールは同じデバイスに送信されます。デフォルトは `None` で、モデルは CPU にロードされます。 `device_map="auto"` を設定すると、🤗 Accelerate が最も最適化された `device_map` を自動的に計算します。各オプションの詳細については、[デバイスマップの設計](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map)を参照してください。

max_memory (`Dict`, *省略可*) : 最大メモリに対するデバイスの識別子の辞書です。未設定の場合、各 GPU の利用可能な最大メモリと、利用可能な CPU RAM がデフォルトとして使用されます。

offload_folder (`str` または `os.PathLike`、*省略可能*) : `device_map` に `"disk"` という値が含まれる場合の、重みのオフロード先パス。

offload_state_dict (`bool`, *任意*) : `True`の場合、CPU state dictの重みとチェックポイントの最大のシャードの合計がCPU RAMに収まらない場合に、CPU RAMの枯渇を避けるため、CPU state dictを一時的にハードドライブにオフロードします。ディスクオフロードが存在する場合、デフォルトは`True`です。

low_cpu_mem_usage (`bool`、*任意*、torch のバージョンが 1.9.0 以上ならデフォルトは `True`、それ未満なら `False`) : 重みの初期化を行わず、事前学習済み重みのみを読み込むことでモデルの読み込みを高速化します。また、モデルの読み込み時に CPU メモリ（ピークメモリを含む）をモデルサイズの 1 倍以下に抑えるよう試みます。PyTorch 1.9.0 以上でのみサポートされています。PyTorch の古いバージョンを使用している場合、この引数を `True` に設定するとエラーが発生します。

variant (`str`, *任意*) : `variant` ファイル名（例: `"fp16"` や `"ema"`）から重みをロードします。

use_safetensors (`bool`, *任意*, デフォルトは `None`) : `None` に設定されている場合、`safetensors` の重みが利用可能であり、かつ **and** `safetensors` ライブラリがインストールされている場合、それらがダウンロードされます。`True` に設定されている場合、モデルは `safetensors` の重みから強制的に読み込まれます。`False` に設定されている場合、`safetensors` の重みは読み込まれません。

disable_mmap ('bool', *optional*, デフォルトは 'False') : Safetensors モデルの読み込み時に mmap を無効にするかどうかを指定します。モデルがネットワークマウントやハードドライブ上にあり、mmap のランダムアクセス（seek）を適切に処理できない可能性がある場合、このオプションを有効にするとパフォーマンスが向上することがあります。

trust_remote_cocde (`bool`、*任意*、デフォルトは`False`) : リモートコードを信頼するかどうか

事前学習済みモデルの構成から、事前学習済み PyTorch モデルをインスタンス化します。

モデルはデフォルトで評価モードに設定されており、`model.eval()` が呼び出され、dropout モジュールは無効化されています。モデルを学習するには、`model.train()` を呼び出して学習モードに戻してください。

> [!TIP] > プライベートモデルや[ゲート付きモデル](https://huggingface.co/docs/hub/models-gated#gated-models)を使用するには、ログインしてください
`hf > auth login` を使用します。また、ファイアウォールが設定された環境でこの方法を使用するために、特別な ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) を有効にすることもできます。

例:

```py
from diffusers import AutoModel

unet = AutoModel.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```

以下のエラーメッセージが表示された場合、下流タスク用に重みをファインチューニングする必要があります。

```bash
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.
```

#### from_config[[diffusers.AutoModel.from_config]]

```python
from_config(pretrained_model_name_or_path_or_dict: str | os.PathLike | dict | None = None, **kwargs)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/auto_model.py#L38)

**パラメータ:**

pretrained_model_name_or_path_or_dict (`str`、`os.PathLike`、または `dict`) : 以下のいずれかです。 - Hub にホストされている事前学習済みモデル設定の *model id*（例: `google/ddpm-celebahq-256`）を表す文字列。 - モデル設定ファイルを含む *ディレクトリ* へのパス（例: `./my_model_directory`）。 - 設定辞書。

cache_dir (`Union[str, os.PathLike]`、*任意*) : 標準のキャッシュを使用しない場合、ダウンロードした事前学習済みモデルの構成がキャッシュされるディレクトリのパス。

force_download (`bool`, *任意*, デフォルトは `False`) : モデル設定の（再）ダウンロードを強制するかどうか。キャッシュされたバージョンが存在する場合、それを上書きします。

proxies (`Dict[str, str]`、*省略可*) : プロトコルまたはエンドポイントごとに使用するプロキシサーバーの辞書。

local_files_only(`bool`、*任意*、デフォルトは`False`) : ローカルのモデル設定ファイルのみを読み込むかどうかを指定します。

token (`str` または *bool*、*省略可能*) : リモートファイルの HTTP ベアラ認証に使用するトークン。

revision (`str`、*任意*、デフォルトは`"main"`) : 使用する特定のモデルバージョン。

trust_remote_code (`bool`、*任意*、デフォルトは`False`) : リモートコードを信頼するかどうか。

subfolder (`str`、*任意*、デフォルトは `""`) : Hub またはローカル上のより大きなモデルリポジトリ内での、モデルファイルのサブフォルダの場所。

**戻り値:**

ランダムな重みで初期化された設定からインスタンス化されたモデルオブジェクト。

ランダムな重み付きで、設定辞書または事前学習済みモデルの設定ファイルからモデルをインスタンス化します（事前学習済み重みは読み込まれません）。

例:

```py
from diffusers import AutoModel

model = AutoModel.from_config("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```

