Buckets:
| # | |
| # Apache License, Version 2.0(「ライセンス」)の下でライセンスされています。 | |
| # このファイルは、ライセンスに準拠した場合にのみ使用できます。 | |
| # ライセンスのコピーは以下から入手できます | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # 適用される法律で要求される場合、または書面による合意がある場合を除き、ソフトウェア | |
| # ライセンスに基づき配布される本ソフトウェアは、「現状のまま」 | |
| # 明示的または黙示的を問わず、いかなる種類の保証や条件も付随しません。 | |
| # 権限を管理する特定の言語については、ライセンスを参照してください。 | |
| # ライセンスの下での制限事項。 | |
| --> | |
| # CogView3Plus | |
| 清華大学およびZhipuAIのWendi Zheng、Jiayan Teng、Zhuoyi Yang、Weihan Wang、Jidong Chen、Xiaotao Gu、Yuxiao Dong、Ming Ding、Jie Tangによる、[CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion](https://huggingface.co/papers/2403.05121) | |
| 論文の抄録は以下の通りです: | |
| *テキストから画像を生成するシステムの最近の進歩は、主に拡散モデルによって牽引されてきました。しかし、単一ステージのテキストから画像への拡散モデルは、計算効率や画像ディテールの精緻化の面で依然として課題を抱えています。この課題に対処するため、私たちは、テキストから画像への拡散の性能を高める革新的なカスケード型フレームワークであるCogView3を提案します。CogView3は、テキストから画像への生成の分野においてリレー拡散を実装した最初のモデルであり、まず低解像度の画像を作成し、その後リレーベースの超解像を適用することでタスクを実行します。この手法により、競争力のあるテキストから画像への出力が得られるだけでなく、学習コストと推論コストの両方が大幅に削減されます。実験結果により、CogView3は、現在の最先端のオープンソースのテキストから画像への拡散モデルであるSDXLを、人間評価において77.0%上回ることが示されました。その一方で、推論時間は約1/2しか必要としません。CogView3の蒸留版は、SDXLの推論時間の1/10しか使用しないにもかかわらず、同等の性能を達成します。* | |
| > [!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) 配下で確認できます。 | |
| ## CogView3PlusPipeline[[diffusers.CogView3PlusPipeline]] | |
| #### diffusers.CogView3PlusPipeline[[diffusers.CogView3PlusPipeline]] | |
| ```python | |
| diffusers.CogView3PlusPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKL, transformer: CogView3PlusTransformer2DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L118) | |
| **パラメータ:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/ja/api/models/autoencoderkl#diffusers.AutoencoderKL)) : 画像を潜在表現にエンコードし、潜在表現からデコードするための変分オートエンコーダ(VAE)モデル。 | |
| text_encoder (`T5EncoderModel`) : 凍結されたテキストエンコーダー。CogView3Plus は [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel) を使用しており、具体的には [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl) バリアントです。 | |
| tokenizer (`T5Tokenizer`) : クラス [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer) の Tokenizer。 | |
| transformer ([CogView3PlusTransformer2DModel](/docs/diffusers/main/ja/api/models/cogview3plus_transformer2d#diffusers.CogView3PlusTransformer2DModel)) : テキスト条件付きの`CogView3PlusTransformer2DModel`で、エンコードされた画像潜在変数からノイズを除去します。 | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/ja/api/schedulers/overview#diffusers.SchedulerMixin)) : `transformer` と組み合わせて、エンコードされた画像の潜在変数からノイズを除去するために使用するスケジューラ。 | |
| CogView3Plus を使用したテキストから画像を生成する Pipeline です。 | |
| このモデルは [DiffusionPipeline](/docs/diffusers/main/ja/api/pipelines/overview#diffusers.DiffusionPipeline) を継承しています。ライブラリがすべてのパイプラインに対して実装している汎用的なメソッド(ダウンロードや保存、特定のデバイスでの実行など)については、スーパークラスのドキュメントを参照してください。 | |
| #### __call__[[diffusers.CogView3PlusPipeline.__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, guidance_scale: float = 5.0, num_images_per_prompt: int = 1, eta: float = 0.0, 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, 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 = 224) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L407) | |
| **パラメータ:** | |
| 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` が渡された場合のデフォルトの動作が使用されます。降順で指定する必要があります。 | |
| 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`) : プロンプトごとに生成する画像の数。 | |
| eta (`float`、*任意*、デフォルト値は 0.0) : [DDIM](https://arxiv.org/abs/2010.02502)論文のパラメータ eta (η) に対応します。[DDIMScheduler](/docs/diffusers/main/ja/api/schedulers/ddim#diffusers.DDIMScheduler)でのみ適用され、他のスケジューラーでは無視されます。 | |
| 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`を返すかどうか。 | |
| 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`) : エンコードされたプロンプトの最大シーケンス長。他の値に設定することも可能ですが、結果の品質が低下する可能性があります。 | |
| **戻り値:** [CogView3PipelineOutput](/docs/diffusers/main/ja/api/pipelines/cogview3#diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput) または `tuple` | |
| `return_dict` が True の場合は [CogView3PipelineOutput](/docs/diffusers/main/ja/api/pipelines/cogview3#diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput)、それ以外の場合は `tuple` を返します。tuple を返す場合、最初の要素は生成された画像のリストです。 | |
| 生成用のパイプラインを呼び出したときに実行される関数。 | |
| 例: | |
| ```python | |
| >>> import torch | |
| >>> from diffusers import CogView3PlusPipeline | |
| >>> pipe = CogView3PlusPipeline.from_pretrained("THUDM/CogView3-Plus-3B", 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.CogView3PlusPipeline.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, max_sequence_length: int = 224, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L210) | |
| **パラメータ:** | |
| 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 が生成されます。 | |
| max_sequence_length (`int`、デフォルトは`224`) : エンコードされたプロンプトの最大シーケンス長。他の値に設定することも可能ですが、結果の品質が低下する可能性があります。 | |
| device : (`torch.device`, *任意*): torch デバイス | |
| dtype : (`torch.dtype`, *任意*): torch dtype | |
| プロンプトをテキストエンコーダーの隠れ状態にエンコードします。 | |
| ## CogView3PipelineOutput[[diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput]] | |
| #### diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput[[diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput]] | |
| ```python | |
| diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray) | |
| ``` | |
| [ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/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:
- 17.9 kB
- Xet hash:
- d5ad2b9d0e03488122bd28bf853d572255e7c00c18c5f6cf48bccea24cb54698
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.