Buckets:

mishig's picture
|
download
raw
16.1 kB

パイプライン

ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)

ソース

パラメータ:

blocks : パイプラインで使用されるブロックである ModularPipelineBlocks

すべての Modular パイプラインの基底クラス。

from_pretrained[[diffusers.ModularPipeline.from_pretrained]]

from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)

ソース

パラメータ:

pretrained_model_name_or_path (str または os.PathLike、省略可) : 事前学習済みパイプライン設定へのパスです。まず modular_model_index.json から設定を読み込もうとし、標準的な非モジュラーリポジトリとの互換性のために、失敗した場合は model_index.json にフォールバックします。pretrained_model_name_or_path にパイプライン設定が含まれていない場合、初期化時に None に設定されます。

trust_remote_code (bool, 省略可能) : パイプラインの読み込み時にリモートコードを信頼するかどうか。pretrained_model_name_or_path 内のカスタムコードに基づいてパイプラインブロックを作成する場合は、True に設定する必要があります。

components_manager (ComponentsManager、省略可) : 異なるパイプラインにまたがる複数のコンポーネントを管理し、オフローディング戦略を適用するための ComponentsManager インスタンス。

collection (str, 任意) -- ComponentsManager でコンポーネントを整理するためのコレクション名。

workflow (str, 省略可) : パイプラインブロックによって宣言されたワークフローの名前。指定した場合、ブロックはそのワークフローの実行ブロックに剪定されるため、パイプラインは、そのワークフローが使用するコンポーネントのみを期待し、load_components() もそのコンポーネントのみを読み込みます。

Hugging Face HubのリポジトリからModularPipelineを読み込みます。

get_component_spec[[diffusers.ModularPipeline.get_component_spec]]

get_component_spec(name: str)

ソース

戻り値:

  • 指定されたコンポーネント名に対応するComponentSpecオブジェクトのコピー

load_components[[diffusers.ModularPipeline.load_components]]

load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)

ソース

パラメータ:

names : list of component names to load. If None, will load all components with default_creation_method == "from_pretrained". If provided as a list or string, will load only the specified components.

workflow : パイプラインブロックによって宣言されたワークフローの名前。指定した場合、そのワークフローの実行ブロックが使用するコンポーネントのみが読み込まれます。names と併用することはできません。

  • **kwargs : from_pretrained()に渡す追加の引数。以下のような値を指定できます。 - 読み込むすべてのコンポーネントに適用される単一の値。例: dtype=torch.bfloat16 - 辞書。例: dtype={"unet": torch.bfloat16, "default": torch.float32} - kwargsに異なる読み込みフィールドが渡された場合、ComponentSpecをオーバーライドする可能性があります。例: pretrained_model_name_or_path、variant、revision など - kwargsに異なる読み込みフィールドが渡された場合、ComponentSpecをオーバーライドする可能性があります。例: pretrained_model_name_or_path、variant、revision など

スペックから選択されたコンポーネントを読み込みます。

register_components[[diffusers.ModularPipeline.register_components]]

register_components(**kwargs)

ソース

パラメータ:

  • **kwargs : キーがコンポーネント名、値がコンポーネントオブジェクトであるキーワード引数。例: register_components(unet=unet_model, text_encoder=encoder_model)

コンポーネントを、それに対応する仕様とともに登録します。

このメソッドは、以下を担当します:

  1. コンポーネントのオブジェクトをローダーの属性として設定します(例: self.unet = unet)。
  2. save_pretrained 時に modular_model_index.json として保存される設定辞書を更新します(from_pretrained コンポーネントのみ対象)
  3. コンポーネントマネージャーがアタッチされている場合、コンポーネントを追加します(from_pretrainedコンポーネントのみ対象)

このメソッドは、次の場合に呼び出されます:

  • コンポーネントはまず__init__で初期化されます:
    • from_pretrained によって init 時に読み込まれないコンポーネントは None として登録されます。
    • init 時に from_pretrained 以外のコンポーネントが作成され、オブジェクト自体として登録されます
  • コンポーネントはupdate_components()メソッドで更新されます。例: loader.update_components(unet=unet) または loader.update_components(guider=guider_spec)
  • (from_pretrained) コンポーネントはload_components()メソッドで読み込まれます。例えば、loader.load_components(names=["unet"])で特定のコンポーネントを読み込み、loader.load_components()でデフォルトのすべてのコンポーネントを読み込みます。

注:

  • コンポーネントに None を登録すると、属性は None に設定されますが、spec は設定辞書と同期され、save_pretrained 実行時に modular_model_index.json として保存されます。
  • このメソッドの外側、例えばupdate_components()メソッド内で、新しいコンポーネントに合わせてcomponent_specsが更新されます。

save_pretrained[[diffusers.ModularPipeline.save_pretrained]]

save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)

ソース

パラメータ:

save_directory (str または os.PathLike) : パイプラインを保存するディレクトリ。存在しない場合は作成されます。

safe_serialization (bool、任意、デフォルトはTrue) : モデルをsafetensorsで保存するか、pickleを用いた従来の PyTorch の方法で保存するかどうかを指定します。

variant (str, 任意) : 指定した場合、重みはpytorch_model.<variant>.binの形式で保存されます。

max_shard_size (int または str、デフォルトは None) : シャーディングされる前のチェックポイントの最大サイズ。シャーディング後の各チェックポイントは、このサイズ未満になります。文字列で指定する場合は、数字の後に単位("5GB" など)を続ける必要があります。整数で指定する場合は、単位はバイトです。

push_to_hub (bool, 任意, デフォルトは False) : パイプラインを保存した後、Hugging Face モデルハブにプッシュするかどうか。

  • kwargs : 追加のキーワード引数: - overwrite_modular_index (bool、省略可能、デフォルトは True): 保存された各コンポーネントの読み込み仕様を、Hub にプッシュする場合は repo_id、それ以外の場合は save_directory を指すように、modular_model_index.json を更新するかどうか。読み込まれていないコンポーネントは保存されず、常に記録された読み込み仕様を保持します。保存対象のコンポーネントについても記録された仕様を保持する場合は False を渡します(意図的に他のリポジトリを参照するインデックスなど)。ただし、load id を持たないコンポーネント(update_components で追加されたカスタムモデルなど)は、記録されたソースがないため、引き続き書き換えられます。 - repo_id (str、省略可能): パイプラインをプッシュするリポジトリの ID。デフォルトは save_directory の最後のコンポーネントです。 - commit_message (str、省略可能): Hub へのプッシュ操作のコミットメッセージ。 - private (bool、省略可能): リポジトリを非公開にするかどうか。 - create_pr (bool、省略可能、デフォルトは False): 直接プッシュする代わりに Pull Request を作成するかどうか。 - token (str、省略可能): 認証に使用する Hugging Face トークン。

パイプラインとそのすべてのコンポーネントをディレクトリに保存し、from_pretrained()クラスメソッドを使って再読み込みできるようにします。

へ[[diffusers.ModularPipeline.to]]

to(*args, **kwargs)

ソース

パラメータ:

dtype (torch.dtype、任意) : 指定されたdtypeを持つパイプラインを返します

device (torch.Device, 任意) : 指定された device を持つパイプラインを返します

silence_dtype_warnings (str、任意、デフォルトはFalse) : 対象のdtypeが対象のdeviceと互換性がない場合、警告を省略するかどうか。

戻り値: DiffusionPipeline

パイプラインは、指定されたdtypeおよび/またはdtypeに変換されました。

Performs Pipeline dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of self.to(*args, **kwargs).

> パイプラインがすでに正しい torch.dtype と torch.device を持っている場合、そのまま返されます。 それ以外の場合、> 返される pipeline は、指定された torch.dtype と torch.device を持つ self のコピーです。

toを呼び出す方法には、次のものがあります。

  • to(dtype, silence_dtype_warnings=False) → DiffusionPipeline は、指定された dtype を持つパイプラインを返します
  • to(device, silence_dtype_warnings=False) → DiffusionPipeline を呼び出すと、指定した device を持つパイプラインが返されます。
  • to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline は、指定された device と dtype を持つパイプラインを返します。

unload_components[[diffusers.ModularPipeline.unload_components]]

unload_components(names: list[str] | str)

ソース

パラメータ:

names : 読み込みを解除するコンポーネント名、またはコンポーネント名のリスト。

選択したコンポーネントをアンロードし、そのメモリを解放します。

コンポーネント属性はNoneにリセットされ、ComponentsManagerがアタッチされている場合は、コンポーネントがそこから削除されます。コンポーネントの仕様は変更されないため、後でload_components()を呼び出してコンポーネントを再度読み込むことができます。

update_components[[diffusers.ModularPipeline.update_components]]

update_components(**kwargs)

ソース

パラメータ:

  • **kwargs : 更新するコンポーネントオブジェクトまたは設定値: - コンポーネントオブジェクト: AutoModel.from_pretrained() または ComponentSpec.load() で読み込まれたモデルには、読み込み情報が自動的にタグ付けされます。重みを持たない ConfigMixin オブジェクト(スケジューラやガイダーなど)は、そのまま直接渡すことができます。 - 設定値: 設定を更新するための単純な値(例: requires_safety_checker=False)

パイプラインがインスタンス化された後で、コンポーネントおよび設定値と仕様を更新します。

このメソッドを使用すると、以下を行うことができます:

  1. 既存のコンポーネントを新しいコンポーネントに置き換えます(例:self.unetまたはself.text_encoderの更新)
  2. 設定値を更新します(例:self.requires_safety_checker フラグの変更)

パイプラインの属性としてコンポーネントと設定値を更新するだけでなく、このメソッドは以下も更新します:

  • _component_specs および _config_specs 内の対応する仕様
  • save_pretrained 時に modular_model_index.json として保存される config ディクショナリ

例:

# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)

# Update configuration values
pipeline.update_components(requires_safety_checker=False)

注:

  • AutoModel.from_pretrained() または ComponentSpec.load() で読み込まれたコンポーネントには シリアライズ用に保存されたスペックを読み込みます。Hubへの参照がないカスタムコンポーネントやローカルで読み込まれたコンポーネントについては、save_pretrained()の実行中にmodular_model_index.jsonのエントリが自動的に更新されます。
  • 重みを持たないConfigMixinオブジェクト(スケジューラーやガイダーなど)は、そのまま直接渡すことができます。

Xet Storage Details

Size:
16.1 kB
·
Xet hash:
f0bf7b1af53dca642b9b85439d18a1237fdc7e4067eb3121bcdf602d1cb0a90b

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