Buckets:

mishig's picture
|
download
raw
16.1 kB
#
# Apache License, Version 2.0(「ライセンス」)の下でライセンスされています。
# このファイルは、ライセンスに準拠した場合にのみ使用できます。
# ライセンスのコピーは以下から入手できます
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 適用される法律で要求される場合、または書面による合意がある場合を除き、ソフトウェア
# ライセンスに基づき配布される本ソフトウェアは、「現状のまま」
# 明示的または黙示的を問わず、いかなる種類の保証や条件も付随しません。
# 権限を管理する特定の言語については、ライセンスを参照してください。
# ライセンスの下での制限事項。
-->
# CogView4
> [!TIP]
> スケジューラーのトレードオフ、すなわち速度と品質のバランスをどのように探求するかを学ぶには、[ガイド](../../using-diffusers/schedulers)を必ずご確認ください。また、同じコンポーネントを複数のパイプラインに効率的に読み込む方法については、[パイプライン間でコンポーネントを再利用する](../../using-diffusers/loading#reusing-models-in-multiple-pipelines)セクションを参照してください。
このパイプラインは [zRzRzRzRzRzRzR](https://github.com/zRzRzRzRzRzRzR) によって貢献されました。元のコードベースは [こちら](https://huggingface.co/THUDM) で確認できます。元の重みは [hf.co/THUDM](https://huggingface.co/THUDM) 配下で確認できます。
## CogView4Pipeline[[diffusers.CogView4Pipeline]]
#### diffusers.CogView4Pipeline[[diffusers.CogView4Pipeline]]
```python
diffusers.CogView4Pipeline(tokenizer: AutoTokenizer, text_encoder: GlmModel, vae: AutoencoderKL, transformer: CogView4Transformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler)
```
[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview4/pipeline_cogview4.py#L137)
**パラメータ:**
vae ([AutoencoderKL](/docs/diffusers/main/ja/api/models/autoencoderkl#diffusers.AutoencoderKL)) : 画像を潜在表現にエンコードし、潜在表現からデコードするための変分オートエンコーダ(VAE)モデル。
text_encoder (`GLMModel`) : 凍結されたテキストエンコーダー。CogView4 は [glm-4-9b-hf](https://huggingface.co/THUDM/glm-4-9b-hf) を使用しています。
tokenizer (`PreTrainedTokenizer`) : クラス [PreTrainedTokenizer](https://huggingface.co/docs/transformers/main/en/main_classes/tokenizer#transformers.PreTrainedTokenizer) の Tokenizer。
transformer ([CogView4Transformer2DModel](/docs/diffusers/main/ja/api/models/cogview4_transformer2d#diffusers.CogView4Transformer2DModel)) : テキスト条件付きの`CogView4Transformer2DModel`で、エンコードされた画像の潜在変数(latents)のノイズ除去を行います。
scheduler ([SchedulerMixin](/docs/diffusers/main/ja/api/schedulers/overview#diffusers.SchedulerMixin)) : `transformer` と組み合わせて、エンコードされた画像の潜在変数からノイズを除去するために使用するスケジューラ。
CogView4 を使用したテキストから画像を生成する Pipeline です。
このモデルは [DiffusionPipeline](/docs/diffusers/main/ja/api/pipelines/overview#diffusers.DiffusionPipeline) を継承しています。ライブラリがすべてのパイプラインに対して実装している汎用的なメソッド(ダウンロードや保存、特定のデバイスでの実行など)については、スーパークラスのドキュメントを参照してください。
#### __call__[[diffusers.CogView4Pipeline.__call__]]
```python
__call__(prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list[int] | None = None, sigmas: list[float] | None = None, guidance_scale: float = 5.0, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, original_size: tuple[int, int] | None = None, crops_coords_top_left: tuple[int, int] = (0, 0), output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 1024)
```
[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview4/pipeline_cogview4.py#L402)
**パラメータ:**
prompt (`str` または `list[str]`、*任意*) : 画像生成をガイドするためのプロンプトです。未定義の場合、`prompt_embeds` を渡す必要があります。
negative_prompt (`str` または `list[str]`、*省略可能*) : 画像生成をガイドしないプロンプトです。定義されていない場合、代わりに `negative_prompt_embeds` を渡す必要があります。ガイドを使用していない場合は無視されます(`guidance_scale` が `1` 未満の場合は無視されます)。
height (`int`、*optional*、デフォルトは self.transformer.config.sample_size * self.vae_scale_factor) : 生成される画像のピクセル単位の縦幅です。指定されない場合、1024 に設定されます。
width (`int`、*任意*、デフォルトは self.transformer.config.sample_size * self.vae_scale_factor) : 生成される画像の幅(ピクセル単位)。指定しない場合、1024 に設定されます。
num_inference_steps (`int`、*任意*、デフォルトは`50`) : デノイジングのステップ数です。デノイジングのステップ数を増やすと、推論速度が遅くなる代わりに、通常はより高品質な画像が得られます。
timesteps (`list[int]`、*任意*) : `set_timesteps` メソッドで `timesteps` 引数をサポートするスケジューラーにおいて、デノイジングプロセスに使用するカスタムタイムステップ。`num_inference_steps` が渡された場合のデフォルトの動作が使用されます。降順で指定する必要があります。
sigmas (`list[float]`, *任意*) : `set_timesteps` メソッドで `sigmas` 引数をサポートするスケジューラーにおいて、デノイジングプロセスに使用するカスタムシグマ。`num_inference_steps` が渡された場合のデフォルトの動作が使用されます。
guidance_scale (`float`、*任意*、デフォルトは `5.0`) : [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598) で定義されているガイダンススケールです。`guidance_scale` は、[Imagen Paper](https://huggingface.co/papers/2205.11487) の数式 2 の `w` として定義されています。`guidance_scale > 1` を設定することで、ガイダンススケールが有効になります。ガイダンススケールを高くすると、`prompt` のテキストと密接に関連した画像の生成が促されますが、通常は画像の品質が低下する傾向があります。
num_images_per_prompt (`int`、*任意*、デフォルトは`1`) : プロンプトごとに生成する画像の数。
generator (`torch.Generator` または `list[torch.Generator]`、*任意*) : 生成を決定論的にするための [torch ジェネレーター](https://pytorch.org/docs/stable/generated/torch.Generator.html) 1 つまたはそのリスト。
latents (`torch.FloatTensor`, *任意*) : 画像生成の入力として使用する、ガウス分布からサンプリングされた事前生成されたノイズ付き潜在変数(latents)。異なるプロンプトで同じ生成を調整するために使用できます。指定されない場合、指定されたランダム`generator`を使用してサンプリングを行い、潜在変数テンソルが生成されます。
prompt_embeds (`torch.FloatTensor`、*任意*) : 事前に生成されたテキスト埋め込み。テキスト入力の調整、*例えば*プロンプトの重み付けなどを簡単に実行できます。指定されない場合、`prompt` 入力引数からテキスト埋め込みが生成されます。
negative_prompt_embeds (`torch.FloatTensor`, *任意*) : 事前に生成されたネガティブなテキスト埋め込み。テキスト入力の調整、*例えば*プロンプトの重み付けなどを簡単に実行できます。指定されない場合、`negative_prompt` 入力引数から negative_prompt_embeds が生成されます。
original_size (`tuple[int]`、*optional*、デフォルト値は (1024, 1024)) : `original_size` が `target_size` と異なる場合、画像はダウンサンプリングまたはアップサンプリングされたように見えます。`original_size` は、指定されていない場合、デフォルトで `(height, width)` になります。[https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) のセクション 2.2 で説明されている SDXL のマイクロコンディショニングの一部です。
crops_coords_top_left (`tuple[int]`、*optional*、デフォルト値は (0, 0)) : `crops_coords_top_left` を使用すると、`crops_coords_top_left` の位置から下方向に「切り抜かれた」ように見える画像を生成できます。`crops_coords_top_left` を (0, 0) に設定することで、通常は良好で中央が整った画像が得られます。[https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952) のセクション 2.2 で説明されている SDXL のマイクロ条件付けの一部です。
output_type (`str`、*任意*、デフォルトは `"pil"`) : 生成画像の出力形式。[PIL](https://pillow.readthedocs.io/en/stable/)(`PIL.Image.Image`)または `np.array` から選択します。
return_dict (`bool`、*任意*、デフォルトは`True`) : プレーンなタプルではなく`~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput`を返すかどうか。
attention_kwargs (`dict`, *任意*) : 指定された場合、[diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) の `self.processor` で定義されている `AttentionProcessor` に渡される kwargs の辞書です。
callback_on_step_end (`Callable`、*任意*) : 推論中の各デノイジングステップの終了時に呼び出される関数です。この関数は、以下の引数とともに呼び出されます: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`。 `callback_kwargs` には、`callback_on_step_end_tensor_inputs` で指定されたすべてのテンソルのリストが含まれます。
callback_on_step_end_tensor_inputs (`list`, *任意*) : `callback_on_step_end` 関数へのテンソル入力のリストです。リストで指定されたテンソルは、`callback_kwargs` 引数として渡されます。パイプラインクラスの `._callback_tensor_inputs` 属性に列挙された変数のみを、リストに含めることができます。
max_sequence_length (`int`、デフォルトは`224`) : エンコードされたプロンプトの最大シーケンス長。他の値に設定することも可能ですが、結果の品質が低下する可能性があります。
**戻り値:** `~pipelines.cogview4.pipeline_CogView4.CogView4PipelineOutput` または `tuple`
`return_dict` が True の場合は `~pipelines.cogview4.pipeline_CogView4.CogView4PipelineOutput`、それ以外の場合は `tuple` を返します。tuple を返す場合、最初の要素は生成された画像のリストです。
生成用のパイプラインを呼び出したときに実行される関数。
例:
```python
>>> import torch
>>> from diffusers import CogView4Pipeline
>>> pipe = CogView4Pipeline.from_pretrained("THUDM/CogView4-6B", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt).images[0]
>>> image.save("output.png")
```
#### encode_prompt[[diffusers.CogView4Pipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_images_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None, max_sequence_length: int = 1024)
```
[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview4/pipeline_cogview4.py#L221)
**パラメータ:**
prompt (`str` または `list[str]`、*省略可能*) : エンコードするプロンプト
negative_prompt (`str` または `list[str]`、*省略可能*) : 画像生成をガイドしないプロンプトです。定義されていない場合、代わりに `negative_prompt_embeds` を渡す必要があります。ガイドを使用していない場合は無視されます(`guidance_scale` が `1` 未満の場合は無視されます)。
do_classifier_free_guidance (`bool`、*任意*、デフォルトは`True`) : classifier free guidance を使用するかどうか。
num_images_per_prompt (`int`、*optional*、デフォルトは 1) : プロンプトごとに生成すべき画像の数。結果の埋め込みを配置する torch デバイス
prompt_embeds (`torch.Tensor`, *任意*) : 事前生成されたテキスト埋め込み。テキスト入力の調整、*例えば*プロンプトの重み付けなどを容易に行うために使用できます。指定されない場合、`prompt` 入力引数からテキスト埋め込みが生成されます。
negative_prompt_embeds (`torch.Tensor`, *任意*) : 事前に生成されたネガティブなテキスト埋め込み。テキスト入力の調整、*例えば*プロンプトの重み付けなどを容易に行うために使用できます。指定されない場合、`negative_prompt` 入力引数から negative_prompt_embeds が生成されます。
device : (`torch.device`, *任意*): torch デバイス
dtype : (`torch.dtype`, *任意*): torch dtype
max_sequence_length (`int`、デフォルトは `1024`) : エンコードされたプロンプトの最大シーケンス長。他の値に設定することも可能ですが、結果の品質が低下する可能性があります。
プロンプトをテキストエンコーダーの隠れ状態にエンコードします。
## CogView4PipelineOutput[[diffusers.pipelines.cogview4.pipeline_output.CogView4PipelineOutput]]
#### diffusers.pipelines.cogview4.pipeline_output.CogView4PipelineOutput[[diffusers.pipelines.cogview4.pipeline_output.CogView4PipelineOutput]]
```python
diffusers.pipelines.cogview4.pipeline_output.CogView4PipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
```
[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview4/pipeline_output.py#L10)
**パラメータ:**
images (`list[PIL.Image.Image]` または `np.ndarray`) : 長さ `batch_size` のデノイズ済み PIL イメージのリスト、または形状 `(batch_size, height, width, num_channels)` の numpy 配列。PIL イメージまたは numpy 配列は、拡散パイプラインのデノイズ済みイメージを表します。
CogView3 パイプライン用の出力クラスです。

Xet Storage Details

Size:
16.1 kB
·
Xet hash:
72168b882231eff462b18ed89793a1fd48cc78de103c320fe64c47364c282a27

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