Buckets:

mishig's picture
|
download
raw
16.4 kB
# IP-Adapter
[IP-Adapter](https://hf.co/papers/2308.06721)は、画像で拡散モデルをプロンプトできる軽量なアダプターです。この手法では、画像特徴とテキスト特徴のクロスアテンション層を分離します。画像特徴は画像エンコーダーから生成されます。
> [!TIP]
> IP-Adapterのチェックポイントと画像を読み込んで使用する方法は、[IP-Adapter](../../using-diffusers/ip_adapter)ガイドを参照してください。
## IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
#### diffusers.loaders.IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
```python
diffusers.loaders.IPAdapterMixin()
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L54)
IP Adapterを処理するためのMixin。
#### load_ip_adapter[[diffusers.loaders.IPAdapterMixin.load_ip_adapter]]
```python
load_ip_adapter(pretrained_model_name_or_path_or_dict: str | list[str] | dict[str, torch.Tensor], subfolder: str | list[str], weight_name: str | list[str], image_encoder_folder: str | None = 'image_encoder', **kwargs)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L57)
**パラメータ:**
pretrained_model_name_or_path_or_dict (`str` または `list[str]` または `os.PathLike` または `list[os.PathLike]` または `dict` または `list[dict]`) : 以下のいずれかになります。 - Hub にホストされている事前学習済みモデルの *model id*(例: `google/ddpm-celebahq-256`)を示す文字列。 - [ModelMixin.save_pretrained()](/docs/diffusers/v0.43.0/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)。
subfolder (`str` または `list[str]`) : Hub またはローカル上のより大きなモデルリポジトリ内でのモデルファイルのサブフォルダの場所です。リストが渡される場合、`weight_name` と同じ長さである必要があります。
weight_name (`str` または `list[str]`) : 読み込む重みファイルの名前。リストが渡される場合、`subfolder` と同じ長さである必要があります。
image_encoder_folder (`str`, *任意*, デフォルトは `image_encoder`) : Hub 上のより大きなモデルリポジトリ内、またはローカルにおける image encoder のサブフォルダの場所を指定します。image encoder を読み込まない場合は `None` を渡します。image encoder が `subfolder` 内のフォルダに配置されている場合、image encoder の重みを格納しているフォルダの名前のみを渡すだけで構いません。例えば `image_encoder_folder="image_encoder"` のように指定します。image encoder が `subfolder` 以外のフォルダに配置されている場合は、image encoder の重みを格納しているフォルダへのパスを渡す必要があります。例えば `image_encoder_folder="different_subfolder/image_encoder"` のように指定します。
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 で許可されている任意の識別子を使用できます。
low_cpu_mem_usage (`bool`、*任意*、torch のバージョンが 1.9.0 以上ならデフォルトは `True`、それ未満なら `False`) : 重みの初期化を行わず、事前学習済み重みのみを読み込むことでモデルの読み込みを高速化します。また、モデルの読み込み時に CPU メモリ(ピークメモリを含む)をモデルサイズの 1 倍以下に抑えるよう試みます。PyTorch 1.9.0 以上でのみサポートされています。PyTorch の古いバージョンを使用している場合、この引数を `True` に設定するとエラーが発生します。
#### set_ip_adapter_scale[[diffusers.loaders.IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L252)
IP-Adapterのスケーリングをトランスフォーマーブロックごとに設定します。入力`scale`は単一の設定または設定のリストであり、各IP-Adapterの動作を細かく制御できます。設定は浮動小数点数または辞書です。
例:
```py
# To use original IP-Adapter
scale = 1.0
pipeline.set_ip_adapter_scale(scale)
# To use style block only
scale = {
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style+layout blocks
scale = {
"down": {"block_2": [0.0, 1.0]},
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style and layout from 2 reference images
scales = [{"down": {"block_2": [0.0, 1.0]}}, {"up": {"block_0": [0.0, 1.0, 0.0]}}]
pipeline.set_ip_adapter_scale(scales)
```
#### unload_ip_adapter[[diffusers.loaders.IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L305)
IP Adapterの重みをアンロードします
例:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
#### diffusers.loaders.SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
```python
diffusers.loaders.SD3IPAdapterMixin()
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L885)
StableDiffusion 3 IP Adapterの処理を担うMixinです。
#### is_ip_adapter_active[[diffusers.loaders.SD3IPAdapterMixin.is_ip_adapter_active]]
```python
is_ip_adapter_active()
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L888)
**戻り値:** `bool`
IP-Adapterが読み込まれており、いずれかのレイヤーのscaleが0より大きい場合にTrueになります。
IP-Adapterが読み込まれており、scaleが0より大きいかどうかを確認します。
IP-Adapter scale は、画像プロンプトとテキストプロンプトの相対的な影響度を制御します。この値が 0 に設定されている場合、画像コンテキストは無関係になります。
#### load_ip_adapter[[diffusers.loaders.SD3IPAdapterMixin.load_ip_adapter]]
```python
load_ip_adapter(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], weight_name: str = 'ip-adapter.safetensors', subfolder: str | None = None, image_encoder_folder: str | None = 'image_encoder', **kwargs)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L906)
**パラメータ:**
pretrained_model_name_or_path_or_dict (`str` または `os.PathLike` または `dict`) : 以下のいずれかです。 - Hub にホストされている事前学習済みモデルの *model id*(例: `google/ddpm-celebahq-256`)を示す文字列。 - [ModelMixin.save_pretrained()](/docs/diffusers/v0.43.0/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)。
weight_name (`str`、デフォルト値は "ip-adapter.safetensors") : 読み込む重みファイルの名前です。リストが渡される場合、その長さは `subfolder` と同じである必要があります。
subfolder (`str`, *省略可*) : Hub またはローカル上のより大きなモデルリポジトリ内でのモデルファイルのサブフォルダの場所です。リストが渡される場合、その長さは `weight_name` と同じである必要があります。
image_encoder_folder (`str`, *任意*, デフォルトは `image_encoder`) : Hub 上のより大きなモデルリポジトリ内、またはローカルにおける image encoder のサブフォルダの場所を指定します。image encoder を読み込まない場合は `None` を渡します。image encoder が `subfolder` 内のフォルダに配置されている場合、image encoder の重みを格納しているフォルダの名前のみを渡すだけで構いません。例えば `image_encoder_folder="image_encoder"` のように指定します。image encoder が `subfolder` 以外のフォルダに配置されている場合は、image encoder の重みを格納しているフォルダへのパスを渡す必要があります。例えば `image_encoder_folder="different_subfolder/image_encoder"` のように指定します。
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 で許可されている任意の識別子を使用できます。
low_cpu_mem_usage (`bool`、*任意*、torch のバージョンが 1.9.0 以上ならデフォルトは `True`、それ未満なら `False`) : 重みの初期化を行わず、事前学習済み重みのみを読み込むことでモデルの読み込みを高速化します。また、モデルの読み込み時に CPU メモリ(ピークメモリを含む)をモデルサイズの 1 倍以下に抑えるよう試みます。PyTorch 1.9.0 以上でのみサポートされています。PyTorch の古いバージョンを使用している場合、この引数を `True` に設定するとエラーが発生します。
#### set_ip_adapter_scale[[diffusers.loaders.SD3IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale: float)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L1054)
**パラメータ:**
scale (float) : 設定する IP-Adapter のスケール。
画像プロンプトの条件付けを制御する IP-Adapter のスケールを設定します。値が 1.0 の場合、モデルは画像プロンプトのみで条件付けられ、0.0 の場合はテキストプロンプトのみで条件付けられます。この値を下げると、モデルにより多様な画像を生成するよう促されますが、画像プロンプトとの整合性が低くなる可能性があります。
例:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.set_ip_adapter_scale(0.6)
>>> ...
```
#### unload_ip_adapter[[diffusers.loaders.SD3IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/loaders/ip_adapter.py#L1077)
IP Adapterの重みをアンロードします。
例:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
#### diffusers.IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
```python
diffusers.IPAdapterMaskProcessor(do_resize: bool = True, vae_scale_factor: int = 8, resample: str = 'lanczos', do_normalize: bool = False, do_binarize: bool = True, do_convert_grayscale: bool = True)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/image_processor.py#L1277)
**パラメータ:**
do_resize (`bool`, *任意*, デフォルトは `True`) : 画像の (高さ, 幅) 次元を `vae_scale_factor` の倍数にダウンスケールするかどうか。
vae_scale_factor (`int`、*任意*、デフォルトは `8`) : VAE のスケールファクター。`do_resize` が `True` の場合、画像はこのファクターの倍数に自動的にリサイズされます。
resample (`str`、*任意*、デフォルトは`lanczos`) : 画像のリサイズ時に使用するリサンプリングフィルタ。
do_normalize (`bool`、*任意*、デフォルトは`False`) : 画像を [-1,1] に正規化するか否か。
do_binarize (`bool`、*任意*、デフォルトは`True`) : 画像を 0/1 にバイナリ化するかどうかを指定します。
do_convert_grayscale (`bool`、*任意*、デフォルトは`True`) : 画像をグレースケール形式に変換するかどうかを指定します。
IP Adapterの画像マスク用の画像プロセッサ。
#### ダウンサンプリング[[diffusers.IPAdapterMaskProcessor.downsample]]
```python
downsample(mask: Tensor, batch_size: int, num_queries: int, value_embed_dim: int)
```
[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/image_processor.py#L1318)
**パラメータ:**
mask (`torch.Tensor`) : `IPAdapterMaskProcessor.preprocess()` で生成された入力マスクテンソル。
batch_size (`int`) : バッチサイズ。
num_queries (`int`) : クエリの数。
value_embed_dim (`int`) : 値埋め込みの次元数。
**戻り値:** `torch.Tensor`
ダウンサンプリングされたマスクテンソル。
指定されたマスクテンソルをダウンサンプリングし、スケーリングドットプロダクトアテンションで期待される次元に一致させます。マスクのアスペクト比が出力画像のアスペクト比と一致しない場合、警告が発行されます。

Xet Storage Details

Size:
16.4 kB
·
Xet hash:
21e71906fa5fbae09d9c7be51077b033863dafb9a9f5143a09046e88d97a6dcc

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.