Diffusers documentation

QwenImage

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

QwenImage

LoRA

Qwen-Image, issu de l'équipe Qwen, est un modèle de base pour la génération d'images de la série Qwen qui réalise des avancées significatives dans le rendu de texte complexe et l'édition d'images précise. Les expériences démontrent de solides capacités générales à la fois en génération et en édition d'images, avec des performances exceptionnelles en rendu de texte, en particulier pour le chinois.

Qwen-Image est disponible dans les variantes suivantes :

type de modèleidentifiant du modèle
Qwen-ImageQwen/Qwen-Image
Qwen-Image-EditQwen/Qwen-Image-Edit
Qwen-Image-Edit PlusQwen/Qwen-Image-Edit-2509

Consultez le guide Caching pour accélérer l'inférence en stockant et en réutilisant les sorties intermédiaires.

LoRA pour une inférence plus rapide

Utilisez un LoRA de lightx2v/Qwen-Image-Lightning pour accélérer l’inférence en réduisant le nombre d’étapes. Reportez-vous à l’extrait de code ci-dessous :

Code
from diffusers import DiffusionPipeline, FlowMatchEulerDiscreteScheduler
import torch 
import math

ckpt_id = "Qwen/Qwen-Image"

# From
# https://github.com/ModelTC/Qwen-Image-Lightning/blob/342260e8f5468d2f24d084ce04f55e101007118b/generate_with_diffusers.py#L82C9-L97C10
scheduler_config = {
    "base_image_seq_len": 256,
    "base_shift": math.log(3),  # We use shift=3 in distillation
    "invert_sigmas": False,
    "max_image_seq_len": 8192,
    "max_shift": math.log(3),  # We use shift=3 in distillation
    "num_train_timesteps": 1000,
    "shift": 1.0,
    "shift_terminal": None,  # set shift_terminal to None
    "stochastic_sampling": False,
    "time_shift_type": "exponential",
    "use_beta_sigmas": False,
    "use_dynamic_shifting": True,
    "use_exponential_sigmas": False,
    "use_karras_sigmas": False,
}
scheduler = FlowMatchEulerDiscreteScheduler.from_config(scheduler_config)
pipe = DiffusionPipeline.from_pretrained(
    ckpt_id, scheduler=scheduler, dtype=torch.bfloat16
).to("cuda")  # or "mps", "xpu", "cpu"
pipe.load_lora_weights(
    "lightx2v/Qwen-Image-Lightning", weight_name="Qwen-Image-Lightning-8steps-V1.0.safetensors"
)

prompt = "a tiny astronaut hatching from an egg on the moon, Ultra HD, 4K, cinematic composition."
negative_prompt = " "
image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=1024,
    height=1024,
    num_inference_steps=8,
    true_cfg_scale=1.0,
    generator=torch.manual_seed(0),
).images[0]
image.save("qwen_fewsteps.png")

Le paramètre guidance_scale du pipeline est prévu pour prendre en charge les futurs modèles distillés par guidage lorsqu'ils seront disponibles. Veuillez noter que la transmission de guidance_scale au pipeline est inefficace. Pour activer le guidage sans classifieur, veuillez transmettre true_cfg_scale et negative_prompt (même un prompt négatif vide comme ” ”) afin d'activer les calculs de guidage sans classifieur.

Référence multi-images avec QwenImageEditPlusPipeline

Avec QwenImageEditPlusPipeline, il est possible de fournir plusieurs images comme référence d'entrée.

import torch
from PIL import Image
from diffusers import QwenImageEditPlusPipeline
from diffusers.utils import load_image

pipe = QwenImageEditPlusPipeline.from_pretrained(
    "Qwen/Qwen-Image-Edit-2509", dtype=torch.bfloat16
).to("cuda")  # or "mps", "xpu", "cpu"

image_1 = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/grumpy.jpg")
image_2 = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/peng.png")
image = pipe(
    image=[image_1, image_2],
    prompt='''put the penguin and the cat at a game show called "Qwen Edit Plus Games"''',
    num_inference_steps=50
).images[0]

Performance

torch.compile

L'utilisation de torch.compile sur le transformer offre un gain de vitesse d'environ 2,4x (A100 80GB : 4,70s → 1,93s) :

import torch
from diffusers import QwenImagePipeline

pipe = QwenImagePipeline.from_pretrained("Qwen/Qwen-Image", dtype=torch.bfloat16).to("cuda")  # or "mps", "xpu", "cpu"
pipe.transformer = torch.compile(pipe.transformer)

# First call triggers compilation (~7s overhead)
# Subsequent calls run at ~2.4x faster
image = pipe("a cat", num_inference_steps=50).images[0]

Inférence par lots avec des prompts de longueur variable

Lors de l’utilisation du guidage sans classifieur (CFG) avec des prompts de longueurs différentes, le pipeline gère correctement le bourrage (padding) par le biais du masquage d’attention. Cela garantit que les jetons de bourrage n’influencent pas la sortie générée.

# CFG with different prompt lengths works correctly
image = pipe(
    prompt="A cat",
    negative_prompt="blurry, low quality, distorted",
    true_cfg_scale=3.5,
    num_inference_steps=50,
).images[0]

Pour des scripts et des résultats de benchmark détaillés, consultez ce gist.

QwenImagePipeline

classe diffusers.QwenImagePipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline QwenImage pour la génération d'images à partir de texte.

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l’équation 2 de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from diffusers import QwenImagePipeline

>>> pipe = QwenImagePipeline.from_pretrained("Qwen/Qwen-Image", 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, num_inference_steps=50).images[0]
>>> image.save("qwenimage.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageImg2ImgPipeline

classe diffusers.QwenImageImg2ImgPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline QwenImage pour la génération d'images à partir de texte.

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonestrength: float = 0.6num_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l’équation 2 de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • strength (float, facultatif, valeur par défaut 1.0) — Indique l'étendue de la transformation de l'image de référence. Doit être compris entre 0 et 1. L'image est utilisée comme point de départ et plus le strength est élevé, plus du bruit est ajouté. Le nombre d'étapes de débruitage dépend de la quantité de bruit initialement ajoutée. Lorsque strength vaut 1, le bruit ajouté est maximal et le processus de débruitage s'exécute pendant le nombre complet d'itérations spécifié dans num_inference_steps. Une valeur de 1 ignore essentiellement l'image.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from diffusers import QwenImageImg2ImgPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageImg2ImgPipeline.from_pretrained("Qwen/Qwen-Image", torch_dtype=torch.bfloat16)
>>> pipe = pipe.to("cuda")
>>> url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"
>>> init_image = load_image(url).resize((1024, 1024))
>>> prompt = "cat wizard, gandalf, lord of the rings, detailed, fantasy, cute, adorable, Pixar, Disney"
>>> images = pipe(prompt=prompt, negative_prompt=" ", image=init_image, strength=0.95).images[0]
>>> images.save("qwenimage_img2img.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageInpaintPipeline

classe diffusers.QwenImageInpaintPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline QwenImage pour la génération d'images à partir de texte.

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemasked_image_latents: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Noneheight: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 0.6num_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l’équation 2 de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image.
  • mask_image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à masquer image. Les pixels blancs du masque sont repeints tandis que les pixels noirs sont conservés. Si mask_image est une image PIL, elle est convertie en un seul canal (luminance) avant utilisation. S’il s’agit d’un tableau numpy ou d’un tenseur pytorch, il doit contenir un seul canal de couleur (L) au lieu de 3, la forme attendue pour un tenseur pytorch serait donc (B, 1, H, W), (B, H, W), (1, H, W), (H, W). Et pour un tableau numpy, elle serait (B, H, W, 1), (B, H, W), (H, W, 1) ou (H, W).
  • masked_image_latents (torch.Tensor, list[torch.Tensor]) — Tensor représentant un lot d’images à masquer image généré par le VAE. S’il n’est pas fourni, le tenseur de latents du masque sera généré par mask_image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • padding_mask_crop (int, facultatif, valeur par défaut None) — La taille de la marge dans le recadrage à appliquer à l’image et au masque. Si None, aucun recadrage n’est appliqué à l’image et à mask_image. Si padding_mask_crop n’est pas None, une région rectangulaire de même ratio d’aspect que l’image et contenant toute la zone masquée est d’abord identifiée, puis cette zone est étendue en fonction de padding_mask_crop. L’image et mask_image sont ensuite recadrées en fonction de la zone étendue avant d’être redimensionnées à la taille de l’image d’origine pour l’inpainting. Cela est utile lorsque la zone masquée est petite tandis que l’image est grande et contient des informations sans rapport avec l’inpainting, comme l’arrière-plan.
  • strength (float, facultatif, valeur par défaut 1.0) — Indique l'étendue de la transformation de l'image de référence. Doit être compris entre 0 et 1. L'image est utilisée comme point de départ et plus le strength est élevé, plus du bruit est ajouté. Le nombre d'étapes de débruitage dépend de la quantité de bruit initialement ajoutée. Lorsque strength vaut 1, le bruit ajouté est maximal et le processus de débruitage s'exécute pendant le nombre complet d'itérations spécifié dans num_inference_steps. Une valeur de 1 ignore essentiellement l'image.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from diffusers import QwenImageInpaintPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageInpaintPipeline.from_pretrained("Qwen/Qwen-Image", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "Face of a yellow cat, high resolution, sitting on a park bench"
>>> img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
>>> mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
>>> source = load_image(img_url)
>>> mask = load_image(mask_url)
>>> image = pipe(prompt=prompt, negative_prompt=" ", image=source, mask_image=mask, strength=0.85).images[0]
>>> image.save("qwenimage_inpainting.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageEditPipeline

classe diffusers.QwenImageEditPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizerprocessor: Qwen2VLProcessortransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline Qwen-Image-Edit pour l'édition d'images.

__call__

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneprompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — true_cfg_scale (float, facultatif, valeur par défaut 1.0) : Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l'équation 2. de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d'images étroitement liées au texte prompt, généralement au détriment de la qualité de l'image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from PIL import Image
>>> from diffusers import QwenImageEditPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageEditPipeline.from_pretrained("Qwen/Qwen-Image-Edit", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> image = load_image(
...     "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
... ).convert("RGB")
>>> prompt = (
...     "Make Pikachu hold a sign that says 'Qwen Edit is awesome', yarn art style, detailed, vibrant colors"
... )
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(image, prompt, num_inference_steps=50).images[0]
>>> image.save("qwenimage_edit.png")

encode_prompt

< >

( prompt: str | list[str]image: typing.Optional[torch.Tensor] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • image (torch.Tensor, facultatif) — image à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageEditInpaintPipeline

classe diffusers.QwenImageEditInpaintPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizerprocessor: Qwen2VLProcessortransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline Qwen-Image-Edit pour l'édition d'images.

__call__

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneprompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonemask_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonemasked_image_latents: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonetrue_cfg_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonepadding_mask_crop: int | None = Nonestrength: float = 0.6num_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — true_cfg_scale (float, facultatif, valeur par défaut 1.0) : Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l'équation 2. de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d'images étroitement liées au texte prompt, généralement au détriment de la qualité de l'image.
  • mask_image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à masquer image. Les pixels blancs du masque sont repeints tandis que les pixels noirs sont conservés. Si mask_image est une image PIL, elle est convertie en un seul canal (luminance) avant utilisation. S’il s’agit d’un tableau numpy ou d’un tenseur pytorch, il doit contenir un seul canal de couleur (L) au lieu de 3, la forme attendue pour un tenseur pytorch serait donc (B, 1, H, W), (B, H, W), (1, H, W), (H, W). Et pour un tableau numpy, elle serait (B, H, W, 1), (B, H, W), (H, W, 1) ou (H, W).
  • masked_image_latents (torch.Tensor, list[torch.Tensor]) — Tensor représentant un lot d'images à masquer image généré par le VAE. S'il n'est pas fourni, le tenseur de latents du masque sera généré par mask_image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • padding_mask_crop (int, facultatif, valeur par défaut None) — La taille de la marge dans le recadrage à appliquer à l’image et au masque. Si None, aucun recadrage n’est appliqué à l’image et à mask_image. Si padding_mask_crop n’est pas None, une région rectangulaire de même ratio d’aspect que l’image et contenant toute la zone masquée est d’abord identifiée, puis cette zone est étendue en fonction de padding_mask_crop. L’image et mask_image sont ensuite recadrées en fonction de la zone étendue avant d’être redimensionnées à la taille de l’image d’origine pour l’inpainting. Cela est utile lorsque la zone masquée est petite tandis que l’image est grande et contient des informations sans rapport avec l’inpainting, comme l’arrière-plan.
  • strength (float, facultatif, valeur par défaut 1.0) — Indique l'étendue de la transformation de l'image de référence. Doit être compris entre 0 et 1. L'image est utilisée comme point de départ et plus le strength est élevé, plus du bruit est ajouté. Le nombre d'étapes de débruitage dépend de la quantité de bruit initialement ajoutée. Lorsque strength vaut 1, le bruit ajouté est maximal et le processus de débruitage s'exécute pendant le nombre complet d'itérations spécifié dans num_inference_steps. Une valeur de 1 ignore essentiellement l'image.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from PIL import Image
>>> from diffusers import QwenImageEditInpaintPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageEditInpaintPipeline.from_pretrained("Qwen/Qwen-Image-Edit", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "Face of a yellow cat, high resolution, sitting on a park bench"

>>> img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
>>> mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
>>> source = load_image(img_url)
>>> mask = load_image(mask_url)
>>> image = pipe(
...     prompt=prompt, negative_prompt=" ", image=source, mask_image=mask, strength=1.0, num_inference_steps=50
... ).images[0]
>>> image.save("qwenimage_inpainting.png")

encode_prompt

< >

( prompt: str | list[str]image: typing.Optional[torch.Tensor] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • image (torch.Tensor, facultatif) — image à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageControlNetPipeline

classe diffusers.QwenImageControlNetPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizertransformer: QwenImageTransformer2DModelcontrolnet: diffusers.models.controlnets.controlnet_qwenimage.QwenImageControlNetModel | diffusers.models.controlnets.controlnet_qwenimage.QwenImageMultiControlNetModel )

Paramètres

Le pipeline QwenImage pour la génération d'images à partir de texte.

__call__

< >

( prompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonecontrol_guidance_start: float | list[float] = 0.0control_guidance_end: float | list[float] = 1.0control_image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonecontrolnet_conditioning_scale: float | list[float] = 1.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l’équation 2 de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • control_guidance_start (float ou list[float], facultatif, valeur par défaut 0.0) — Le pourcentage des étapes totales à partir duquel le ControlNet commence à s’appliquer.
  • control_guidance_end (float ou list[float], facultatif, valeur par défaut 1.0) — Le pourcentage des étapes totales à partir duquel le ControlNet cesse d’être appliqué.
  • control_image (PipelineImageInput, facultatif) — La condition d’entrée ControlNet à fournir pour guider la génération.
  • controlnet_conditioning_scale (float ou list[float], facultatif, valeur par défaut 1.0) — Les sorties du ControlNet sont multipliées par controlnet_conditioning_scale avant d’être ajoutées au résidu du transformer d’origine.
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from diffusers.utils import load_image
>>> from diffusers import QwenImageControlNetModel, QwenImageMultiControlNetModel, QwenImageControlNetPipeline

>>> # QwenImageControlNetModel
>>> controlnet = QwenImageControlNetModel.from_pretrained(
...     "InstantX/Qwen-Image-ControlNet-Union", torch_dtype=torch.bfloat16
... )
>>> pipe = QwenImageControlNetPipeline.from_pretrained(
...     "Qwen/Qwen-Image", controlnet=controlnet, torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> prompt = "Aesthetics art, traditional asian pagoda, elaborate golden accents, sky blue and white color palette, swirling cloud pattern, digital illustration, east asian architecture, ornamental rooftop, intricate detailing on building, cultural representation."
>>> negative_prompt = " "
>>> control_image = load_image(
...     "https://huggingface.co/InstantX/Qwen-Image-ControlNet-Union/resolve/main/conds/canny.png"
... )
>>> # 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=negative_prompt,
...     control_image=control_image,
...     controlnet_conditioning_scale=1.0,
...     num_inference_steps=30,
...     true_cfg_scale=4.0,
... ).images[0]
>>> image.save("qwenimage_cn_union.png")

>>> # QwenImageMultiControlNetModel
>>> controlnet = QwenImageControlNetModel.from_pretrained(
...     "InstantX/Qwen-Image-ControlNet-Union", torch_dtype=torch.bfloat16
... )
>>> controlnet = QwenImageMultiControlNetModel([controlnet])
>>> pipe = QwenImageControlNetPipeline.from_pretrained(
...     "Qwen/Qwen-Image", controlnet=controlnet, torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> prompt = "Aesthetics art, traditional asian pagoda, elaborate golden accents, sky blue and white color palette, swirling cloud pattern, digital illustration, east asian architecture, ornamental rooftop, intricate detailing on building, cultural representation."
>>> negative_prompt = " "
>>> control_image = load_image(
...     "https://huggingface.co/InstantX/Qwen-Image-ControlNet-Union/resolve/main/conds/canny.png"
... )
>>> # 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=negative_prompt,
...     control_image=[control_image, control_image],
...     controlnet_conditioning_scale=[0.5, 0.5],
...     num_inference_steps=30,
...     true_cfg_scale=4.0,
... ).images[0]
>>> image.save("qwenimage_cn_union_multi.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageEditPlusPipeline

classe diffusers.QwenImageEditPlusPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizerprocessor: Qwen2VLProcessortransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline Qwen-Image-Edit pour l'édition d'images.

__call__

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneprompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0height: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512 ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — true_cfg_scale (float, facultatif, valeur par défaut 1.0) : Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l'équation 2. de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d'images étroitement liées au texte prompt, généralement au détriment de la qualité de l'image.
  • height (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • width (int, facultatif, par défaut self.unet.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Cette valeur est fixée à 1024 par défaut pour obtenir les meilleurs résultats.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from PIL import Image
>>> from diffusers import QwenImageEditPlusPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageEditPlusPipeline.from_pretrained("Qwen/Qwen-Image-Edit-2509", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> image = load_image(
...     "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
... ).convert("RGB")
>>> prompt = (
...     "Make Pikachu hold a sign that says 'Qwen Edit is awesome', yarn art style, detailed, vibrant colors"
... )
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(image, prompt, num_inference_steps=50).images[0]
>>> image.save("qwenimage_edit_plus.png")

encode_prompt

< >

( prompt: str | list[str]image: typing.Optional[torch.Tensor] = Nonedevice: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • image (torch.Tensor, facultatif) — image à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImageLayeredPipeline

classe diffusers.QwenImageLayeredPipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen2_5_VLForConditionalGenerationtokenizer: Qwen2Tokenizerprocessor: Qwen2VLProcessortransformer: QwenImageTransformer2DModel )

Paramètres

Le pipeline Qwen-Image-Layered pour la décomposition d'images.

__call__

< >

( image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = Noneprompt: str | list[str] = Nonenegative_prompt: str | list[str] = Nonetrue_cfg_scale: float = 4.0layers: int | None = 4num_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float | None = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list[str] = ['latents']max_sequence_length: int = 512resolution: int = 640cfg_normalize: bool = Falseuse_en_prompt: bool = False ) → ~pipelines.qwenimage.QwenImagePipelineOutput or tuple

Paramètres

  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] ou list[np.ndarray]) — Image, tableau numpy ou tenseur représentant un lot d’images à utiliser comme point de départ. Pour un tableau numpy comme pour un tenseur pytorch, la plage de valeurs attendue est comprise entre [0, 1]. S’il s’agit d’un tenseur ou d’une liste de tenseurs, la forme attendue doit être (B, C, H, W) ou (C, H, W). S’il s’agit d’un tableau numpy ou d’une liste de tableaux, la forme attendue doit être (B, H, W, C) ou (H, W, C). Il peut également accepter des latents d’image en tant que image, mais si des latents sont transmis directement, ils ne sont pas réencodés.
  • prompt (str ou list[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passer prompt_embeds à la place.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. S’il n’est pas défini, il faut passer negative_prompt_embeds à la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré si true_cfg_scale n’est pas supérieur à 1).
  • true_cfg_scale (float, facultatif, valeur par défaut 1.0) — true_cfg_scale (float, facultatif, valeur par défaut 1.0) : Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. true_cfg_scale est défini comme w de l'équation 2. de Imagen Paper. Le guidage sans classifieur est activé en définissant true_cfg_scale > 1 et en fournissant un negative_prompt. Une échelle de guidage plus élevée encourage la génération d'images étroitement liées au texte prompt, généralement au détriment de la qualité de l'image.
  • layers (int, facultatif, valeur par défaut 4) — Nombre de couches latentes à générer pour la sortie en couches.
  • num_inference_steps (int, facultatif, valeur par défaut 50) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente.
  • sigmas (list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument sigmas dans leur méthode set_timesteps. S'il n'est pas défini, le comportement par défaut lorsque num_inference_steps est passé sera utilisé.
  • guidance_scale (float, facultatif, valeur par défaut None) — Valeur d’échelle de guidage pour les modèles distillés avec guidage. Contrairement au guidage sans classifieur traditionnel, où l’échelle de guidage est appliquée lors de l’inférence par le rééchelonnement de la prédiction du bruit, les modèles distillés avec guidage reçoivent l’échelle de guidage directement comme paramètre d’entrée lors du passage avant. L’échelle de guidage est activée en définissant guidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d’images étroitement liées au prompt texte, généralement au détriment de la qualité de l’image. Ce paramètre dans le pipeline est présent pour prendre en charge les futurs modèles distillés avec guidage lorsqu’ils seront disponibles. Il est ignoré lorsque des modèles distillés avec guidage ne sont pas utilisés. Pour activer le guidage sans classifieur traditionnel, veuillez passer true_cfg_scale > 1.0 et negative_prompt (même un prompt négatif vide comme ” ” doit activer les calculs de guidage sans classifieur).
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • generator (torch.Generator ou list[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe.
  • latents (torch.Tensor, facultatif) — Latents bruités pré-générés, échantillonnés à partir d’une distribution gaussienne, à utiliser comme entrées pour la génération d’images. Peut être utilisé pour ajuster la même génération avec des prompts différents. S’il n’est pas fourni, un tenseur de latents sera généré par échantillonnage à l’aide du generator aléatoire fourni.
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.
  • prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour prompt_embeds.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, negative_prompt_embeds sera généré à partir de l'argument d'entrée negative_prompt.
  • negative_prompt_embeds_mask (torch.Tensor, facultatif) — Masque d'attention pour negative_prompt_embeds.
  • output_type (str, facultatif, par défaut "pil") — Le format de sortie de l'image générée. Choisissez entre PIL : PIL.Image.Image ou np.array.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~pipelines.qwenimage.QwenImagePipelineOutput plutôt qu'un simple tuple.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • callback_on_step_end (Callable, facultatif) — Une fonction appelée à la fin de chaque étape de débruitage pendant l'inférence. La fonction est appelée avec les arguments suivants : callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs contiendra une liste de tous les tenseurs spécifiés par callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (List, facultatif) — La liste des entrées tensorielles pour la fonction callback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argument callback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut ._callback_tensor_inputs de votre classe de pipeline.
  • max_sequence_length (int par défaut 512) — Longueur maximale de la séquence à utiliser avec le prompt.
  • resolution (int, facultatif, valeur par défaut 640) — utilisation de différents buckets dans (640, 1024) pour déterminer la résolution de la condition et de la sortie
  • cfg_normalize (bool, facultatif, valeur par défaut False) — indique s'il faut activer la normalisation de cfg.
  • use_en_prompt (bool, facultatif, par défaut False) — langue automatique de la légende si l'utilisateur n'en fournit pas

Retourne

~pipelines.qwenimage.QwenImagePipelineOutput ou tuple

~pipelines.qwenimage.QwenImagePipelineOutput si return_dict est True, sinon un tuple. Lors du retour d'un tuple, le premier élément est une liste contenant les images générées.

Fonction appelée lors de l'appel du pipeline pour la génération.

Exemples :

>>> import torch
>>> from PIL import Image
>>> from diffusers import QwenImageLayeredPipeline
>>> from diffusers.utils import load_image

>>> pipe = QwenImageLayeredPipeline.from_pretrained("Qwen/Qwen-Image-Layered", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> image = load_image(
...     "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
... ).convert("RGBA")
>>> prompt = ""
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> images = pipe(
...     image,
...     prompt,
...     num_inference_steps=50,
...     true_cfg_scale=4.0,
...     layers=4,
...     resolution=640,
...     cfg_normalize=False,
...     use_en_prompt=True,
... ).images[0]
>>> for i, image in enumerate(images):
...     image.save(f"{i}.out.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 1024 )

Paramètres

  • prompt (str ou list[str], facultatif) — prompt à encoder
  • device — (torch.device) : torch device
  • num_images_per_prompt (int) — nombre d'images à générer par invite
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. le pondération des prompts. S'il n'est pas fourni, les embeddings de texte seront générés à partir de l'argument d'entrée prompt.

QwenImagePipelineOutput

classe diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput

< >

( images: list[PIL.Image.Image] | numpy.ndarray )

Paramètres

  • images (list[PIL.Image.Image] ou np.ndarray) — liste d'images PIL débruitées de longueur batch_size ou tableau numpy de forme (batch_size, height, width, num_channels). Les images PIL ou le tableau numpy présentent les images débruitées du pipeline de diffusion.

Classe de sortie pour les pipelines Stable Diffusion.

Update on GitHub