Buckets:

mishig's picture
|
download
raw
16.3 kB

IP-Adapter

IP-Adapterは、画像で拡散モデルをプロンプトできる軽量なアダプターです。この手法では、画像特徴とテキスト特徴のクロスアテンション層を分離します。画像特徴は画像エンコーダーから生成されます。

IP-Adapterのチェックポイントと画像を読み込んで使用する方法は、IP-Adapterガイドを参照してください。

IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]

diffusers.loaders.IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]

diffusers.loaders.IPAdapterMixin()

ソース

IP Adapterを処理するためのMixin。

load_ip_adapter[[diffusers.loaders.IPAdapterMixin.load_ip_adapter]]

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)

ソース

パラメータ:

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() で保存されたモデルの重みを含む ディレクトリ へのパス(例: ./my_model_directory)。 - torch 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]]

set_ip_adapter_scale(scale)

ソース

IP-Adapterのスケーリングをトランスフォーマーブロックごとに設定します。入力scaleは単一の設定または設定のリストであり、各IP-Adapterの動作を細かく制御できます。設定は浮動小数点数または辞書です。

例:

# 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]]

unload_ip_adapter()

ソース

IP Adapterの重みをアンロードします

例:

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]

diffusers.loaders.SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]

diffusers.loaders.SD3IPAdapterMixin()

ソース

StableDiffusion 3 IP Adapterの処理を担うMixinです。

is_ip_adapter_active[[diffusers.loaders.SD3IPAdapterMixin.is_ip_adapter_active]]

is_ip_adapter_active()

ソース

戻り値: bool

IP-Adapterが読み込まれており、いずれかのレイヤーのscaleが0より大きい場合にTrueになります。

IP-Adapterが読み込まれており、scaleが0より大きいかどうかを確認します。

IP-Adapter scale は、画像プロンプトとテキストプロンプトの相対的な影響度を制御します。この値が 0 に設定されている場合、画像コンテキストは無関係になります。

load_ip_adapter[[diffusers.loaders.SD3IPAdapterMixin.load_ip_adapter]]

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)

ソース

パラメータ:

pretrained_model_name_or_path_or_dict (str または os.PathLike または dict) : 以下のいずれかです。 - Hub にホストされている事前学習済みモデルの model id(例: google/ddpm-celebahq-256)を示す文字列。 - ModelMixin.save_pretrained() で保存されたモデルの重みを格納した ディレクトリ へのパス(例: ./my_model_directory)。 - torch 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]]

set_ip_adapter_scale(scale: float)

ソース

パラメータ:

scale (float) : 設定する IP-Adapter のスケール。

画像プロンプトの条件付けを制御する IP-Adapter のスケールを設定します。値が 1.0 の場合、モデルは画像プロンプトのみで条件付けられ、0.0 の場合はテキストプロンプトのみで条件付けられます。この値を下げると、モデルにより多様な画像を生成するよう促されますが、画像プロンプトとの整合性が低くなる可能性があります。

例:

>>> # 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]]

unload_ip_adapter()

ソース

IP Adapterの重みをアンロードします。

例:

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]

diffusers.IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]

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)

ソース

パラメータ:

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]]

downsample(mask: Tensor, batch_size: int, num_queries: int, value_embed_dim: int)

ソース

パラメータ:

mask (torch.Tensor) : IPAdapterMaskProcessor.preprocess() で生成された入力マスクテンソル。

batch_size (int) : バッチサイズ。

num_queries (int) : クエリの数。

value_embed_dim (int) : 値埋め込みの次元数。

戻り値: torch.Tensor

ダウンサンプリングされたマスクテンソル。

指定されたマスクテンソルをダウンサンプリングし、スケーリングドットプロダクトアテンションで期待される次元に一致させます。マスクのアスペクト比が出力画像のアスペクト比と一致しない場合、警告が発行されます。

Xet Storage Details

Size:
16.3 kB
·
Xet hash:
c066a522d63687d72ba3857c6a604ced33109cf27d72bdd3705720c1de28d144

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