Buckets:
| # | |
| # Được cấp phép theo Giấy phép Apache, Phiên bản 2.0 (gọi là "Giấy phép"); | |
| # bạn có thể không sử dụng tệp này ngoại trừ tuân thủ theo Giấy phép. | |
| # Bạn có thể nhận được một bản sao của Giấy phép tại | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Trừ khi được yêu cầu bởi luật pháp có hiệu lực hoặc được thỏa thuận bằng văn bản, phần mềm | |
| # được phân phối theo Giấy phép được phân phối trên cơ sở | |
| # KHÔNG CÓ BẢO HÀNH HOẶC ĐIỀU KIỆN DƯỚI BẤT KỲ HÌNH THỨC NÀO, dù được nêu rõ hay ngụ ý. | |
| # Xem Giấy phép để biết ngôn ngữ cụ thể điều chỉnh các quyền và | |
| # các hạn chế theo Giấy phép. | |
| --> | |
| # CogView3Plus | |
| [CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion](https://huggingface.co/papers/2403.05121) từ Đại học Thanh Hoa & ZhipuAI, do Wendi Zheng, Jiayan Teng, Zhuoyi Yang, Weihan Wang, Jidong Chen, Xiaotao Gu, Yuxiao Dong, Ming Ding, Jie Tang thực hiện. | |
| Tóm tắt từ bài báo là: | |
| *Những tiến bộ gần đây trong các hệ thống tạo ảnh từ văn bản phần lớn được thúc đẩy bởi mô hình khuếch tán. Tuy nhiên, các mô hình khuếch tán tạo ảnh từ văn bản một giai đoạn vẫn đối mặt với những thách thức về hiệu quả tính toán và việc tinh chỉnh chi tiết hình ảnh. Để giải quyết vấn đề này, chúng tôi đề xuất CogView3, một khung kiến trúc nối tiếp (cascaded) mang tính đổi mới nhằm nâng cao hiệu suất khuếch tán tạo ảnh từ văn bản. CogView3 là mô hình đầu tiên triển khai khuếch tán tiếp nối (relay diffusion) trong lĩnh vực tạo ảnh từ văn bản, thực hiện nhiệm vụ bằng cách trước tiên tạo ra các hình ảnh độ phân giải thấp, sau đó áp dụng siêu phân giải dựa trên cơ chế tiếp nối. Phương pháp này không chỉ tạo ra các đầu ra tạo ảnh từ văn bản có tính cạnh tranh mà còn giảm đáng kể cả chi phí huấn luyện và suy luận. Kết quả thực nghiệm của chúng tôi cho thấy CogView3 vượt trội hơn SDXL, mô hình khuếch tán tạo ảnh từ văn bản mã nguồn mở tiên tiến nhất hiện tại, với tỷ lệ 77,0% trong các đánh giá của con người, trong khi chỉ cần khoảng 1/2 thời gian suy luận. Phiên bản đã chưng cất (distilled) của CogView3 đạt hiệu suất tương đương trong khi chỉ sử dụng 1/10 thời gian suy luận so với SDXL.* | |
| > [!TIP] | |
| > Hãy chắc chắn xem qua [hướng dẫn](../../using-diffusers/schedulers) về Schedulers để tìm hiểu cách khám phá sự đánh đổi giữa tốc độ và chất lượng của scheduler, và xem phần [tái sử dụng các thành phần giữa các pipeline](../../using-diffusers/loading#reusing-models-in-multiple-pipelines) để tìm hiểu cách nạp các thành phần giống nhau vào nhiều pipeline một cách hiệu quả. | |
| Pipeline này được đóng góp bởi [zRzRzRzRzRzRzR](https://github.com/zRzRzRzRzRzRzR). Mã nguồn gốc có thể được tìm thấy [tại đây](https://huggingface.co/THUDM). Trọng số gốc có thể được tìm thấy tại [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) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L118) | |
| **Tham số:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/vi/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Mô hình Variational Auto-Encoder (VAE) để mã hóa và giải mã hình ảnh sang và từ các biểu diễn ẩn. | |
| text_encoder (`T5EncoderModel`) : Bộ mã hóa văn bản đóng băng. CogView3Plus sử dụng [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel); cụ thể là biến thể [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl). | |
| tokenizer (`T5Tokenizer`) : Tokenizer của lớp [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer). | |
| transformer ([CogView3PlusTransformer2DModel](/docs/diffusers/main/vi/api/models/cogview3plus_transformer2d#diffusers.CogView3PlusTransformer2DModel)) : Một `CogView3PlusTransformer2DModel` có điều kiện văn bản để khử nhiễu các latents ảnh đã mã hóa. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/vi/api/schedulers/overview#diffusers.SchedulerMixin)) : Một trình lập lịch được sử dụng kết hợp với `transformer` để khử nhiễu các latents ảnh đã mã hóa. | |
| Pipeline để tạo ảnh từ văn bản sử dụng CogView3Plus. | |
| Mô hình này kế thừa từ [DiffusionPipeline](/docs/diffusers/main/vi/api/pipelines/overview#diffusers.DiffusionPipeline). Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các pipeline (chẳng hạn như tải xuống hoặc lưu, chạy trên một thiết bị cụ thể, v.v.) | |
| #### __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) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L407) | |
| **Tham số:** | |
| prompt (`str` hoặc `list[str]`, *tùy chọn*) : Prompt hoặc các prompt để hướng dẫn việc tạo ảnh. Nếu không được định nghĩa, cần phải truyền `prompt_embeds`. | |
| negative_prompt (`str` hoặc `list[str]`, *tùy chọn*) : Prompt hoặc các prompt không được dùng để hướng dẫn việc tạo ảnh. Nếu không được định nghĩa, bạn phải truyền `negative_prompt_embeds` thay thế. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu `guidance_scale` nhỏ hơn `1`). | |
| height (`int`, *tuỳ chọn*, mặc định là self.transformer.config.sample_size * self.vae_scale_factor) : Chiều cao tính bằng pixel của hình ảnh được tạo ra. Nếu không được cung cấp, giá trị này sẽ được đặt thành 1024. | |
| width (`int`, *tuỳ chọn*, mặc định là self.transformer.config.sample_size * self.vae_scale_factor) : Độ rộng tính bằng pixel của hình ảnh được tạo ra. Nếu không được cung cấp, giá trị này sẽ được đặt thành 1024. | |
| num_inference_steps (`int`, *tuỳ chọn*, mặc định là `50`) : Số bước khử nhiễu. Số bước khử nhiễu nhiều hơn thường dẫn đến hình ảnh có chất lượng cao hơn, đổi lại là suy luận chậm hơn. | |
| timesteps (`list[int]`, *optional*) : Các bước thời gian (timesteps) tùy chỉnh để sử dụng cho quá trình khử nhiễu với các trình lập lịch (scheduler) hỗ trợ tham số `timesteps` trong phương thức `set_timesteps` của chúng. Nếu không được định nghĩa, hành vi mặc định khi `num_inference_steps` được truyền vào sẽ được sử dụng. Phải được sắp xếp theo thứ tự giảm dần. | |
| guidance_scale (`float`, *optional*, mặc định là `5.0`) : Thang độ dẫn hướng như được định nghĩa trong [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` được định nghĩa là `w` của phương trình 2. trong [Imagen Paper](https://huggingface.co/papers/2205.11487). Thang độ dẫn hướng được kích hoạt bằng cách đặt `guidance_scale > 1`. Thang độ dẫn hướng cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ với `prompt` văn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn. | |
| num_images_per_prompt (`int`, *tùy chọn*, mặc định là `1`) : Số lượng hình ảnh cần tạo cho mỗi prompt. | |
| eta (`float`, *tuỳ chọn*, mặc định là 0.0) : Tương ứng với tham số eta (η) từ bài báo [DDIM](https://arxiv.org/abs/2010.02502). Chỉ áp dụng cho [DDIMScheduler](/docs/diffusers/main/vi/api/schedulers/ddim#diffusers.DDIMScheduler) và bị bỏ qua ở các trình lập lịch khác. | |
| generator (`torch.Generator` hoặc `list[torch.Generator]`, *tùy chọn*) : Một hoặc một danh sách [torch generator](https://pytorch.org/docs/stable/generated/torch.Generator.html) để đảm bảo quá trình sinh là tất định. | |
| latents (`torch.FloatTensor`, *tùy chọn*) : Các latents nhiễu đã được tạo trước, được lấy mẫu từ phân phối Gaussian, dùng làm đầu vào cho việc tạo ảnh. Có thể dùng để tinh chỉnh cùng một quá trình tạo với các prompt khác nhau. Nếu không được cung cấp, một tensor latents sẽ được tạo ra bằng cách lấy mẫu sử dụng `generator` ngẫu nhiên được cung cấp. | |
| prompt_embeds (`torch.FloatTensor`, *tùy chọn*) : Các vector nhúng văn bản đã được tạo trước. Có thể được sử dụng để dễ dàng điều chỉnh các đầu vào văn bản, *vd.* trọng số của prompt. Nếu không được cung cấp, các vector nhúng văn bản sẽ được tạo từ đối số đầu vào `prompt`. | |
| negative_prompt_embeds (`torch.FloatTensor`, *tùy chọn*) : Các vector nhúng văn bản âm đã được tạo trước. Có thể được sử dụng để dễ dàng điều chỉnh các đầu vào văn bản, *vd.* trọng số prompt. Nếu không được cung cấp, negative_prompt_embeds sẽ được tạo từ đối số đầu vào `negative_prompt`. | |
| original_size (`tuple[int]`, *optional*, mặc định là (1024, 1024)) : Nếu `original_size` không giống với `target_size`, hình ảnh sẽ có vẻ được giảm hoặc tăng mẫu. `original_size` mặc định là `(height, width)` nếu không được chỉ định. Đây là một phần của micro-conditioning của SDXL như được giải thích trong mục 2.2 của [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). | |
| crops_coords_top_left (`tuple[int]`, *optional*, mặc định là (0, 0)) : `crops_coords_top_left` có thể được dùng để tạo ra một hình ảnh trông như đã được "cắt" từ vị trí `crops_coords_top_left` trở xuống. Các hình ảnh đẹp, được căn giữa tốt thường đạt được bằng cách đặt `crops_coords_top_left` thành (0, 0). Đây là một phần của micro-conditioning của SDXL như được giải thích trong mục 2.2 của [https://huggingface.co/papers/2307.01952](https://huggingface.co/papers/2307.01952). | |
| output_type (`str`, *tùy chọn*, mặc định là `"pil"`) : Định dạng đầu ra của hình ảnh được tạo. Chọn giữa [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` hoặc `np.array`. | |
| return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` thay vì một tuple thông thường hay không. | |
| callback_on_step_end (`Callable`, *tùy chọn*) : Một hàm được gọi vào cuối mỗi bước khử nhiễu trong quá trình suy luận. Hàm này được gọi với các đối số sau: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` sẽ bao gồm một danh sách tất cả các tensor như được chỉ định bởi `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *optional*) : Danh sách các đầu vào tensor cho hàm `callback_on_step_end`. Các tensor được chỉ định trong danh sách sẽ được truyền dưới dạng tham số `callback_kwargs`. Bạn chỉ có thể bao gồm các biến được liệt kê trong thuộc tính `._callback_tensor_inputs` của lớp pipeline của bạn. | |
| max_sequence_length (`int`, mặc định là `224`) : Độ dài tối đa của chuỗi trong prompt đã được mã hóa. Có thể đặt thành các giá trị khác nhưng có thể dẫn đến kết quả kém hơn. | |
| **Trả về:** [CogView3PipelineOutput](/docs/diffusers/main/vi/api/pipelines/cogview3#diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput) hoặc `tuple` | |
| [CogView3PipelineOutput](/docs/diffusers/main/vi/api/pipelines/cogview3#diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput) nếu `return_dict` là True, ngược lại là một `tuple`. Khi trả về tuple, phần tử đầu tiên là một danh sách chứa các hình ảnh đã tạo. | |
| Hàm được gọi khi gọi pipeline cho việc sinh. | |
| Ví dụ: | |
| ```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) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_cogview3plus.py#L210) | |
| **Tham số:** | |
| prompt (`str` hoặc `list[str]`, *tùy chọn*) : prompt cần được mã hóa | |
| negative_prompt (`str` hoặc `list[str]`, *tùy chọn*) : Prompt hoặc các prompt không được dùng để hướng dẫn việc tạo ảnh. Nếu không được định nghĩa, bạn phải truyền `negative_prompt_embeds` thay thế. Bỏ qua khi không sử dụng guidance (tức là bị bỏ qua nếu `guidance_scale` nhỏ hơn `1`). | |
| do_classifier_free_guidance (`bool`, *tùy chọn*, mặc định là `True`) : Có sử dụng classifier free guidance hay không. | |
| num_images_per_prompt (`int`, *optional*, mặc định là 1) : Số lượng hình ảnh cần được tạo cho mỗi prompt. torch device để đặt các embeddings kết quả | |
| prompt_embeds (`torch.Tensor`, *tùy chọn*) : Các vector nhúng văn bản đã được tạo trước. Có thể được sử dụng để dễ dàng điều chỉnh các đầu vào văn bản, *vd.* trọng số prompt. Nếu không được cung cấp, các vector nhúng văn bản sẽ được tạo từ đối số đầu vào `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *tùy chọn*) : Các vector nhúng văn bản âm đã được tạo trước. Có thể được sử dụng để dễ dàng điều chỉnh các đầu vào văn bản, *vd.* trọng số prompt. Nếu không được cung cấp, negative_prompt_embeds sẽ được tạo từ đối số đầu vào `negative_prompt`. | |
| max_sequence_length (`int`, mặc định là `224`) : Độ dài tối đa của chuỗi trong prompt đã được mã hóa. Có thể đặt thành các giá trị khác nhưng có thể dẫn đến kết quả kém hơn. | |
| device : (`torch.device`, *tùy chọn*): thiết bị torch | |
| dtype : (`torch.dtype`, *tùy chọn*): torch dtype | |
| Mã hóa prompt thành các trạng thái ẩn của text encoder. | |
| ## 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) | |
| ``` | |
| [Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogview3/pipeline_output.py#L10) | |
| **Tham số:** | |
| images (`list[PIL.Image.Image]` hoặc `np.ndarray`) : danh sách các hình ảnh PIL đã khử nhiễu có độ dài `batch_size` hoặc mảng numpy có hình dạng `(batch_size, height, width, num_channels)`. Các hình ảnh PIL hoặc mảng numpy thể hiện các hình ảnh đã khử nhiễu của pipeline khuếch tán. | |
| Lớp đầu ra cho các pipeline của CogView3. | |
Xet Storage Details
- Size:
- 18 kB
- Xet hash:
- a4a8d39710217c575fb9f02b601203f26b89aa1f5ced2c41892a8c27ead47aee
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.