Diffusers documentation
HunyuanImage2.1
HunyuanImage2.1
HunyuanImage-2.1 là một mô hình text-to-image 17B có khả năng tạo ra các hình ảnh với độ phân giải 2K (2048 x 2048)
HunyuanImage-2.1 có các biến thể sau:
| loại model | model id |
|---|---|
| HunyuanImage-2.1 | hunyuanvideo-community/HunyuanImage-2.1-Diffusers |
| HunyuanImage-2.1-Distilled | hunyuanvideo-community/HunyuanImage-2.1-Distilled-Diffusers |
| HunyuanImage-2.1-Refiner | hunyuanvideo-community/HunyuanImage-2.1-Refiner-Diffusers |
Caching cũng có thể tăng tốc suy luận bằng cách lưu trữ và tái sử dụng các kết quả trung gian.
HunyuanImage-2.1
HunyuanImage-2.1 áp dụng Adaptive Projected Guidance (APG) kết hợp với Classifier-Free Guidance (CFG) trong vòng lặp khử nhiễu. HunyuanImagePipeline có thành phần guider (xem thêm về Guider) và không nhận tham số guidance_scale khi chạy. Để thay đổi các tham số liên quan đến guider, ví dụ guidance_scale, bạn có thể cập nhật cấu hình guider thay thế.
import torch
from diffusers import HunyuanImagePipeline
pipe = HunyuanImagePipeline.from_pretrained(
"hunyuanvideo-community/HunyuanImage-2.1-Diffusers",
dtype=torch.bfloat16
)
pipe = pipe.to("cuda") # or "mps", "xpu", "cpu"Bạn có thể kiểm tra đối tượng guider:
>>> pipe.guider
AdaptiveProjectedMixGuidance {
"_class_name": "AdaptiveProjectedMixGuidance",
"_diffusers_version": "0.36.0.dev0",
"adaptive_projected_guidance_momentum": -0.5,
"adaptive_projected_guidance_rescale": 10.0,
"adaptive_projected_guidance_scale": 10.0,
"adaptive_projected_guidance_start_step": 5,
"enabled": true,
"eta": 0.0,
"guidance_rescale": 0.0,
"guidance_scale": 3.5,
"start": 0.0,
"stop": 1.0,
"use_original_formulation": false
}
State:
step: None
num_inference_steps: None
timestep: None
count_prepared: 0
enabled: True
num_conditions: 2
momentum_buffer: None
is_apg_enabled: False
is_cfg_enabled: TrueĐể cập nhật guider với một cấu hình khác, hãy sử dụng phương thức new(). Ví dụ, để tạo một hình ảnh với guidance_scale=5.0 trong khi giữ nguyên tất cả các tham số guidance mặc định khác:
import torch
from diffusers import HunyuanImagePipeline
pipe = HunyuanImagePipeline.from_pretrained(
"hunyuanvideo-community/HunyuanImage-2.1-Diffusers",
dtype=torch.bfloat16
)
pipe = pipe.to("cuda") # or "mps", "xpu", "cpu"
# Update the guider configuration
pipe.guider = pipe.guider.new(guidance_scale=5.0)
prompt = (
"A cute, cartoon-style anthropomorphic penguin plush toy with fluffy fur, standing in a painting studio, "
"wearing a red knitted scarf and a red beret with the word 'Tencent' on it, holding a paintbrush with a "
"focused expression as it paints an oil painting of the Mona Lisa, rendered in a photorealistic photographic style."
)
image = pipe(
prompt=prompt,
num_inference_steps=50,
height=2048,
width=2048,
).images[0]
image.save("image.png")HunyuanImage-2.1-Distilled
sử dụng distilled_guidance_scale với checkpoint guidance-distilled,
import torch
from diffusers import HunyuanImagePipeline
pipe = HunyuanImagePipeline.from_pretrained("hunyuanvideo-community/HunyuanImage-2.1-Distilled-Diffusers", dtype=torch.bfloat16)
pipe = pipe.to("cuda") # or "mps", "xpu", "cpu"
prompt = (
"A cute, cartoon-style anthropomorphic penguin plush toy with fluffy fur, standing in a painting studio, "
"wearing a red knitted scarf and a red beret with the word 'Tencent' on it, holding a paintbrush with a "
"focused expression as it paints an oil painting of the Mona Lisa, rendered in a photorealistic photographic style."
)
out = pipe(
prompt,
num_inference_steps=8,
distilled_guidance_scale=3.25,
height=2048,
width=2048,
generator=generator,
).images[0]
HunyuanImagePipeline
lớp diffusers.HunyuanImagePipeline
< source >( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLHunyuanImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertext_encoder_2: T5EncoderModeltokenizer_2: ByT5Tokenizertransformer: HunyuanImageTransformer2DModelguider: AdaptiveProjectedMixGuidance | None = Noneocr_guider: AdaptiveProjectedMixGuidance | None = None )
Tham số
- transformer (HunyuanImageTransformer2DModel) — Kiến trúc Conditional Transformer (MMDiT) để khử nhiễu các latents ảnh đã mã hóa.
- scheduler (FlowMatchEulerDiscreteScheduler) —
Một scheduler được sử dụng kết hợp với
transformerđể khử nhiễu các latents ảnh đã được mã hóa. - vae (AutoencoderKLHunyuanImage) — 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 (
Qwen2.5-VL-7B-Instruct) — Qwen2.5-VL-7B-Instruct, cụ thể là biến thể Qwen2.5-VL-7B-Instruct. - tokenizer (
Qwen2Tokenizer) — Tokenizer của lớp [Qwen2Tokenizer]. - text_encoder_2 (
T5EncoderModel) — biến thể T5EncoderModel. - tokenizer_2 (
ByT5Tokenizer) — Tokenizer của lớp [ByT5Tokenizer] - guider (
AdaptiveProjectedMixGuidance) — [AdaptiveProjectedMixGuidance] được sử dụng để điều hướng quá trình tạo ảnh. - ocr_guider (
AdaptiveProjectedMixGuidance, tuỳ chọn) — [AdaptiveProjectedMixGuidance] được sử dụng để hướng dẫn tạo hình ảnh khi cần hiển thị văn bản.
Pipeline HunyuanImage cho việc tạo ảnh từ văn bản.
__call__
< source >( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50distilled_guidance_scale: float | None = 3.25sigmas: list[float] | None = Nonenum_images_per_prompt: int = 1generator: torch.Generator | list[torch.Generator] | None = Nonelatents: torch.Tensor | None = Noneprompt_embeds: torch.Tensor | None = Noneprompt_embeds_mask: torch.Tensor | None = Nonenegative_prompt_embeds: torch.Tensor | None = Nonenegative_prompt_embeds_mask: torch.Tensor | None = Noneprompt_embeds_2: torch.Tensor | None = Noneprompt_embeds_mask_2: torch.Tensor | None = Nonenegative_prompt_embeds_2: torch.Tensor | None = Nonenegative_prompt_embeds_mask_2: torch.Tensor | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, Any] | None = Nonecallback_on_step_end: Callable[[int, int], None] | None = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents'] ) → ~pipelines.hunyuan_image.HunyuanImagePipelineOutput or tuple
Tham số
- prompt (
strhoặclist[str], tùy chọn) — Prompt hoặc các prompt để định hướng việc tạo ảnh. Nếu không được định nghĩa, bạn phải truyềnprompt_embedsthay thế. - negative_prompt (
strhoặclist[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Nếu không được định nghĩa và negative_prompt_embeds không được cung cấp, sẽ sử dụng một negative prompt rỗng. Bị bỏ qua khi không sử dụng guidance. ). - height (
int, tùy chọn, mặc định là self.unet.config.sample_size * self.vae_scale_factor) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel. Giá trị mặc định là 1024 để đạt kết quả tốt nhất. - width (
int, tùy chọn, mặc định là self.unet.config.sample_size * self.vae_scale_factor) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel. Giá trị mặc định là 1024 để đạt kết quả tốt nhất. - num_inference_steps (
int, tùy 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 với chi phí là suy luận chậm hơn. - sigmas (
list[float], tùy chọn) — Các sigma tùy chỉnh để sử dụng cho quá trình khử nhiễu với các trình lập lịch hỗ trợ đối sốsigmastrong phương thứcset_timestepscủa chúng. Nếu không được định nghĩa, hành vi mặc định khinum_inference_stepsđược truyền sẽ được sử dụng. - distilled_guidance_scale (
float, tuỳ chọn, mặc định là None) — Giá trị guidance scale cho các mô hình guidance đã được distilled. Khác với classifier-free guidance truyền thống, nơi guidance scale được áp dụng trong quá trình suy luận thông qua việc rescaling dự đoán nhiễu, các mô hình guidance distilled nhận guidance scale trực tiếp như một tham số đầu vào trong bước forward. Guidance được kích hoạt bằng cách đặtdistilled_guidance_scale > 1. Guidance scale cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ vớipromptvăn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn. Đối với các mô hình guidance distilled, tham số này là bắt buộc. Đối với các mô hình không distilled, tham số này sẽ bị bỏ qua. - 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. - generator (
torch.Generatorhoặclist[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định. - latents (
torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trướ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 bằng cách lấy mẫu sử dụnggeneratorngẫu nhiên được cung cấp. - prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh đầu vào văn bản, vd. trọng số prompt. Nếu không được cung cấp, các embedding văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ (mask) cho các embedding văn bản đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh đầu vào văn bản, ví dụ như trọng số prompt. Nếu không được cung cấp, mặt nạ embedding văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_2 (
torch.Tensor, tùy chọn) — Các embedding văn bản đã tạo sẵn cho ocr. Có thể dùng để dễ dàng điều chỉnh đầu vào văn bản, vd. trọng số prompt. Nếu không được cung cấp, các embedding văn bản cho ocr sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_mask_2 (
torch.Tensor, tùy chọn) — Mặt nạ (mask) cho nhúng văn bản đã tạo trước dành cho ocr. Có thể dùng để dễ dàng điều chỉnh đầu vào văn bản, vd. trọng số prompt. Nếu không được cung cấp, mặt nạ nhúng văn bản cho ocr sẽ được tạo từ đối số đầu vàoprompt. - negative_prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản âm đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh đầ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àonegative_prompt. - negative_prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ (mask) cho các embedding văn bản âm đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh các đầu vào văn bản, ví dụ như trọng số prompt. Nếu không được cung cấp, mặt nạ cho các embedding văn bản âm sẽ được tạo từ đối số đầu vàonegative_prompt. - negative_prompt_embeds_2 (
torch.Tensor, tùy chọn) — Các embedding văn bản âm đã tạo sẵn cho ocr. Có thể 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 embedding văn bản âm cho ocr sẽ được tạo từ đối số đầu vàonegative_prompt. - negative_prompt_embeds_mask_2 (
torch.Tensor, tùy chọn) — Mặt nạ (mask) cho các vector nhúng văn bản âm đã tạo sẵn dành cho ocr. Có thể dùng để dễ dàng điều chỉnh các đầu vào văn bản, ví dụ như trọng số của prompt. Nếu không được cung cấp, mặt nạ cho các vector nhúng văn bản âm dành cho ocr sẽ được tạo từ tham số đầu vàonegative_prompt. - 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:PIL.Image.Imagehoặcnp.array. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~pipelines.qwenimage.QwenImagePipelineOutputthay vì một tuple thông thường hay không. - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đếnAttentionProcessornhư đã định nghĩa dướiself.processortrong diffusers.models.attention_processor. - 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_kwargssẽ bao gồm danh sách tất cả các tensor như được chỉ định bởicallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
List, optional) — Danh sách các tensor đầu vào cho hàmcallback_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_inputscủa lớp pipeline của bạn.
Trả về
~pipelines.hunyuan_image.HunyuanImagePipelineOutput hoặc tuple
~pipelines.hunyuan_image.HunyuanImagePipelineOutput 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ụ:
>>> import torch
>>> from diffusers import HunyuanImagePipeline
>>> pipe = HunyuanImagePipeline.from_pretrained(
... "hunyuanvideo-community/HunyuanImage-2.1-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(prompt, negative_prompt="", num_inference_steps=50).images[0]
>>> image.save("hunyuanimage.png")encode_prompt
< source >( prompt: str | list[str]device: torch.device | None = Nonebatch_size: int = 1num_images_per_prompt: int = 1prompt_embeds: torch.Tensor | None = Noneprompt_embeds_mask: torch.Tensor | None = Noneprompt_embeds_2: torch.Tensor | None = Noneprompt_embeds_mask_2: torch.Tensor | None = None )
Tham số
- prompt (
strhoặclist[str], tùy chọn) — prompt cần được mã hóa - device — (
torch.device): thiết bị torch - batch_size (
int) — Kích thước batch của các prompt, mặc định là 1 - num_images_per_prompt (
int) — số lượng hình ảnh cần được tạo cho mỗi prompt - prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản đã được tạo trước. Nếu không được cung cấp, các embedding văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ văn bản đã tạo trước. Nếu không được cung cấp, mặt nạ văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_2 (
torch.Tensor, tùy chọn) — Các embedding văn bản glyph được tạo trước từ ByT5. Nếu không được cung cấp, chúng sẽ được tạo từ đối số đầu vàopromptbằng cách sử dụng self.tokenizer_2 và self.text_encoder_2. - prompt_embeds_mask_2 (
torch.Tensor, tùy chọn) — Mặt nạ văn bản glyph được tạo trước từ ByT5. Nếu không được cung cấp, sẽ được tạo từ đối số đầu vàopromptbằng cách sử dụng self.tokenizer_2 và self.text_encoder_2.
HunyuanImageRefinerPipeline
lớp diffusers.HunyuanImageRefinerPipeline
< source >( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLHunyuanImageRefinertext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertransformer: HunyuanImageTransformer2DModelguider: AdaptiveProjectedMixGuidance | None = None )
Tham số
- transformer (HunyuanImageTransformer2DModel) — Kiến trúc Conditional Transformer (MMDiT) để khử nhiễu các latents ảnh đã mã hóa.
- scheduler (FlowMatchEulerDiscreteScheduler) —
Một scheduler được sử dụng kết hợp với
transformerđể khử nhiễu các latents ảnh đã được mã hóa. - vae (AutoencoderKLHunyuanImageRefiner) — 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 (
Qwen2.5-VL-7B-Instruct) — Qwen2.5-VL-7B-Instruct, cụ thể là biến thể Qwen2.5-VL-7B-Instruct. - tokenizer (
Qwen2Tokenizer) — Tokenizer của lớp [Qwen2Tokenizer].
Pipeline HunyuanImage cho việc tạo ảnh từ văn bản.
__call__
< source >( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonedistilled_guidance_scale: float | None = 3.25image: PipelineImageInput | None = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 4sigmas: list[float] | None = Nonenum_images_per_prompt: int = 1generator: torch.Generator | list[torch.Generator] | None = Nonelatents: torch.Tensor | None = Noneprompt_embeds: torch.Tensor | None = Noneprompt_embeds_mask: torch.Tensor | None = Nonenegative_prompt_embeds: torch.Tensor | None = Nonenegative_prompt_embeds_mask: torch.Tensor | None = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, Any] | None = Nonecallback_on_step_end: Callable[[int, int], None] | None = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents'] ) → ~pipelines.hunyuan_image.HunyuanImagePipelineOutput or tuple
Tham số
- prompt (
strhoặclist[str], tùy chọn) — Prompt hoặc các prompt để định hướng việc tạo ảnh. Nếu không được định nghĩa, bạn phải truyềnprompt_embedsthay thế. - negative_prompt (
strhoặclist[str], tùy chọn) — Prompt hoặc các prompt không dùng để định hướng việc tạo ảnh. Nếu không được định nghĩa, sẽ sử dụng một negative prompt rỗng. Bị bỏ qua khi không sử dụng guidance. - distilled_guidance_scale (
float, tuỳ chọn, mặc định là None) — Giá trị guidance scale cho các mô hình guidance đã được distilled. Khác với classifier-free guidance truyền thống, nơi guidance scale được áp dụng trong quá trình suy luận thông qua việc rescaling dự đoán nhiễu, các mô hình guidance distilled nhận guidance scale trực tiếp như một tham số đầu vào trong bước forward. Guidance được kích hoạt bằng cách đặtdistilled_guidance_scale > 1. Guidance scale cao hơn khuyến khích tạo ra các hình ảnh gắn kết chặt chẽ vớipromptvăn bản, thường phải đánh đổi bằng chất lượng hình ảnh thấp hơn. Đối với các mô hình guidance distilled, tham số này là bắt buộc. Đối với các mô hình không distilled, tham số này sẽ bị bỏ qua. - image (
PipelineImageInput, tùy chọn) — Hình ảnh đầu vào cần được tinh chỉnh. - num_images_per_prompt (
int, tùy chọn, mặc định là 1) — - height (
int, tùy chọn, mặc định là self.unet.config.sample_size * self.vae_scale_factor) — Chiều cao của hình ảnh được tạo ra, tính bằng pixel. Giá trị mặc định là 1024 để đạt kết quả tốt nhất. - width (
int, tùy chọn, mặc định là self.unet.config.sample_size * self.vae_scale_factor) — Chiều rộng của hình ảnh được tạo ra, tính bằng pixel. Giá trị mặc định là 1024 để đạt kết quả tốt nhất. - num_inference_steps (
int, tùy 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 với chi phí là suy luận chậm hơn. - sigmas (
list[float], tùy chọn) — Các sigma tùy chỉnh để sử dụng cho quá trình khử nhiễu với các trình lập lịch hỗ trợ đối sốsigmastrong phương thứcset_timestepscủa chúng. Nếu không được định nghĩa, hành vi mặc định khinum_inference_stepsđược truyền sẽ được sử dụng. - 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. - generator (
torch.Generatorhoặclist[torch.Generator], tuỳ chọn) — Một hoặc một danh sách torch generator để đảm bảo quá trình sinh là tất định. - latents (
torch.Tensor, tùy chọn) — Các latents nhiễu đã được tạo trướ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 bằng cách lấy mẫu sử dụnggeneratorngẫu nhiên được cung cấp. - prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh đầu vào văn bản, vd. trọng số prompt. Nếu không được cung cấp, các embedding văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ chú ý choprompt_embeds. - negative_prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản âm đã được tạo trước. Có thể dùng để dễ dàng điều chỉnh đầ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àonegative_prompt. - negative_prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ chú ý chonegative_prompt_embeds. - 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:PIL.Image.Imagehoặcnp.array. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~pipelines.qwenimage.QwenImagePipelineOutputthay vì một tuple thông thường hay không. - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đếnAttentionProcessornhư đã định nghĩa dướiself.processortrong diffusers.models.attention_processor. - 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_kwargssẽ bao gồm danh sách tất cả các tensor như được chỉ định bởicallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
List, optional) — Danh sách các tensor đầu vào cho hàmcallback_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_inputscủa lớp pipeline của bạn.
Trả về
~pipelines.hunyuan_image.HunyuanImagePipelineOutput hoặc tuple
~pipelines.hunyuan_image.HunyuanImagePipelineOutput 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ụ:
>>> import torch
>>> from diffusers import HunyuanImageRefinerPipeline
>>> pipe = HunyuanImageRefinerPipeline.from_pretrained(
... "hunyuanvideo-community/HunyuanImage-2.1-Refiner-Diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> image = load_image("path/to/image.png")
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(prompt, image=image, num_inference_steps=4).images[0]
>>> image.save("hunyuanimage.png")encode_prompt
< source >( prompt: str | list[str] | None = Nonedevice: torch.device | None = Nonebatch_size: int = 1num_images_per_prompt: int = 1prompt_embeds: torch.Tensor | None = Noneprompt_embeds_mask: torch.Tensor | None = None )
Tham số
- prompt (
strhoặclist[str], tùy chọn) — prompt cần được mã hóa - device — (
torch.device): thiết bị torch - batch_size (
int) — Kích thước batch của các prompt, mặc định là 1 - num_images_per_prompt (
int) — số lượng hình ảnh cần được tạo cho mỗi prompt - prompt_embeds (
torch.Tensor, tùy chọn) — Các embedding văn bản đã được tạo trước. Nếu không được cung cấp, các embedding văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_mask (
torch.Tensor, tùy chọn) — Mặt nạ văn bản đã tạo trước. Nếu không được cung cấp, mặt nạ văn bản sẽ được tạo từ đối số đầu vàoprompt. - prompt_embeds_2 (
torch.Tensor, tùy chọn) — Các embedding văn bản glyph được tạo trước từ ByT5. Nếu không được cung cấp, chúng sẽ được tạo từ đối số đầu vàopromptbằng cách sử dụng self.tokenizer_2 và self.text_encoder_2. - prompt_embeds_mask_2 (
torch.Tensor, tùy chọn) — Mặt nạ văn bản glyph được tạo trước từ ByT5. Nếu không được cung cấp, sẽ được tạo từ đối số đầu vàopromptbằng cách sử dụng self.tokenizer_2 và self.text_encoder_2.
HunyuanImagePipelineOutput
lớp diffusers.pipelines.hunyuan_image.pipeline_output.HunyuanImagePipelineOutput
< source >( images: list )
Lớp đầu ra cho các pipeline của HunyuanImage.