Diffusers documentation
IP-Adapter
IP-Adapter
IP-Adapterは、画像で拡散モデルをプロンプトできる軽量なアダプターです。この手法では、画像特徴とテキスト特徴のクロスアテンション層を分離します。画像特徴は画像エンコーダーから生成されます。
IP-Adapterのチェックポイントと画像を読み込んで使用する方法は、IP-Adapterガイドを参照してください。
IPAdapterMixin
IP Adapterを処理するためのMixin。
load_ip_adapter
< source >( 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)を表す文字列。 ./my_model_directoryのように、ModelMixin.save_pretrained() で保存されたモデルの重みを含むディレクトリへのパス。- torch state dictです。
- Hub にホストされている事前学習済みモデルの model id(例:
- subfolder (
strまたはlist[str]) — Hub またはローカル上のより大きなモデルリポジトリ内でのモデルファイルのサブフォルダの場所です。リストが渡される場合、weight_nameと同じ長さである必要があります。 - weight_name (
strまたはlist[str]) — 読み込む重みファイルの名前です。リストが渡される場合、その長さはsubfolderと同じである必要があります。 - image_encoder_folder (
str, 任意、デフォルトはimage_encoder) — Hub またはローカル上のより大きなモデルリポジトリ内における、画像エンコーダーのサブフォルダーの場所です。 画像エンコーダーを読み込まない場合はNoneを渡します。画像エンコーダーがsubfolder内のフォルダーにある場合、画像エンコーダーの重みを格納しているフォルダーの名前のみを渡す必要があります。例えば、image_encoder_folder="image_encoder"のようにします。画像エンコーダーがsubfolder以外のフォルダーにある場合、画像エンコーダーの重みを格納しているフォルダーへのパスを渡す必要があります。例えば、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に設定するとエラーが発生します。
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)IP Adapterの重みをアンロードします
SD3IPAdapterMixin
StableDiffusion 3 IP Adapterの処理を担うMixinです。
is_ip_adapter_active
< source >( ) → bool
戻り値
bool
IP-Adapterが読み込まれており、いずれかのレイヤーのscaleが0より大きい場合にTrueになります。
IP-Adapterが読み込まれており、scaleが0より大きいかどうかを確認します。
IP-Adapter scaleは、画像プロンプトとテキストプロンプトの相対的な影響度を制御します。この値が0に設定されている場合、画像コンテキストは無関係になります。
load_ip_adapter
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]weight_name: str = 'ip-adapter.safetensors'subfolder: str | None = Noneimage_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)を表す文字列。 ./my_model_directoryのように、ModelMixin.save_pretrained() で保存されたモデルの重みを含むディレクトリへのパス。- torch state dictです。
- Hub にホストされている事前学習済みモデルの model id(例:
- weight_name (
str、デフォルト値は “ip-adapter.safetensors”) — 読み込む重みファイルの名前です。リストが渡される場合、その長さはsubfolderと同じである必要があります。 - subfolder (
str, 任意) — Hub またはローカル上のより大きなモデルリポジトリ内でのモデルファイルのサブフォルダの場所です。リストが渡される場合、weight_nameと同じ長さである必要があります。 - image_encoder_folder (
str, 任意、デフォルトはimage_encoder) — Hub またはローカル上のより大きなモデルリポジトリ内における、画像エンコーダーのサブフォルダーの場所です。 画像エンコーダーを読み込まない場合はNoneを渡します。画像エンコーダーがsubfolder内のフォルダーにある場合、画像エンコーダーの重みを格納しているフォルダーの名前のみを渡す必要があります。例えば、image_encoder_folder="image_encoder"のようにします。画像エンコーダーがsubfolder以外のフォルダーにある場合、画像エンコーダーの重みを格納しているフォルダーへのパスを渡す必要があります。例えば、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に設定するとエラーが発生します。
画像プロンプトの条件付けを制御するIP-Adapterのスケールを設定します。値が1.0の場合、モデルは画像プロンプトのみで条件付けられ、0.0の場合、テキストプロンプトのみで条件付けられます。この値を下げると、モデルにより多様な画像を生成するよう促されますが、画像プロンプトとの整合性が低くなる可能性があります。
IP Adapterの重みをアンロードします。
IPAdapterMaskProcessor
クラス diffusers.IPAdapterMaskProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_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の画像マスク用の画像プロセッサ。
ダウンサンプル
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
指定されたマスクテンソルをダウンサンプリングし、スケーリングドットプロダクトアテンションの期待される次元に一致させます。マスクのアスペクト比が出力画像のアスペクト比と一致しない場合、警告が発行されます。