Diffusers documentation

Stable Cascade

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Stable Cascade

Ce modèle est construit sur l'architecture Würstchen et sa principale différence par rapport à d'autres modèles comme Stable Diffusion est qu'il fonctionne dans un espace latent beaucoup plus petit. Pourquoi est-ce important ? Plus l'espace latent est petit, plus vous pouvez exécuter l'inférence rapidement et plus l'entraînement devient économique. Quelle est la taille de l'espace latent ? Stable Diffusion utilise un facteur de compression de 8, ce qui entraîne l'encodage d'une image de 1024x1024 en 128x128. Stable Cascade atteint un facteur de compression de 42, ce qui signifie qu'il est possible d'encoder une image de 1024x1024 en 24x24, tout en maintenant des reconstructions nettes. Le modèle conditionné par le texte est ensuite entraîné dans cet espace latent fortement compressé. Les versions précédentes de cette architecture ont permis une réduction des coûts de 16 par rapport à Stable Diffusion 1.5.

Par conséquent, ce type de modèle est bien adapté aux cas d’usage où l’efficacité est importante. De plus, toutes les extensions connues, telles que le finetuning, LoRA, ControlNet, IP-Adapter, LCM, etc., sont également possibles avec cette méthode.

Le code source original peut être trouvé sur Stability-AI/StableCascade.

Aperçu du modèle

Stable Cascade est composé de trois modèles : Stage A, Stage B et Stage C, représentant une cascade pour générer des images, d’où le nom « Stable Cascade ».

Les étapes A & B sont utilisées pour compresser les images, de manière similaire au rôle du VAE dans Stable Diffusion. Cependant, avec cette configuration, une compression des images beaucoup plus élevée peut être obtenue. Alors que les modèles Stable Diffusion utilisent un facteur de compression spatiale de 8, encodant une image de résolution 1024 x 1024 en 128 x 128, Stable Cascade atteint un facteur de compression de 42. Cela encode une image de 1024 x 1024 en 24 x 24, tout en étant capable de décoder l'image avec précision. Cela s'accompagne du grand avantage d'un entraînement et d'une inférence moins coûteux. De plus, l'étape C est responsable de la génération des petits latents de 24 x 24 à partir d'un prompt texte.

Le modèle Stage C fonctionne sur les latents de petite taille 24 x 24 et débruite les latents conditionnés par des prompts texte. Le modèle est également le composant le plus volumineux du pipeline Cascade et est destiné à être utilisé avec le StableCascadePriorPipeline

Les modèles Stage B et Stage A sont utilisés avec le StableCascadeDecoderPipeline et sont chargés de générer l'image finale à partir des latents de petite taille 24 x 24.

Il existe certaines restrictions sur les types de données pouvant être utilisés avec les modèles Stable Cascade. Les points de contrôle officiels pour le StableCascadePriorPipeline ne prennent pas en charge le type de données torch.float16. Veuillez utiliser torch.bfloat16 à la place.

Afin d'utiliser le type de données torch.bfloat16 avec le StableCascadeDecoderPipeline, vous devez avoir PyTorch 2.2.0 ou une version supérieure installée. Cela signifie également que l'utilisation du StableCascadeCombinedPipeline avec torch.bfloat16 nécessite PyTorch 2.2.0 ou une version supérieure, car il appelle le StableCascadeDecoderPipeline en interne.

S'il n'est pas possible d'installer PyTorch 2.2.0 ou une version supérieure dans votre environnement, le StableCascadeDecoderPipeline peut être utilisé seul avec le type de données torch.float16. Vous pouvez télécharger les poids de la variante pleine précision ou bf16 du pipeline et convertir les poids en torch.float16.

Exemple d'utilisation

import torch
from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", variant="bf16", dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", variant="bf16", dtype=torch.float16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings.to(torch.float16),
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

Utilisation des versions Lite des modèles des étapes B et C

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade-prior", subfolder="prior_lite")
decoder_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade", subfolder="decoder_lite")

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

Chargement des points de contrôle originaux avec from_single_file

Le chargement des points de contrôle au format d'origine est pris en charge via la méthode from_single_file dans StableCascadeUNet.

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors",
    dtype=torch.bfloat16
)
decoder_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/blob/main/stage_b_bf16.safetensors",
    dtype=torch.bfloat16
)

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet, dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet, dtype=torch.bfloat16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade-single-file.png")

Utilisations

Utilisation directe

Le modèle est destiné à des fins de recherche pour le moment. Les domaines et tâches de recherche possibles incluent

  • Recherches sur les modèles génératifs.
  • Déploiement en toute sécurité de modèles susceptibles de générer du contenu nuisible.
  • Analyser et comprendre les limites et les biais des modèles génératifs.
  • Génération d’œuvres d’art et utilisation dans le design et d’autres processus artistiques.
  • Applications dans les outils éducatifs ou créatifs.

Les utilisations exclues sont décrites ci-dessous.

Utilisation hors périmètre

Le modèle n’a pas été entraîné pour fournir des représentations factuelles ou véridiques de personnes ou d’événements, et l’utilisation du modèle pour générer ce type de contenu dépasse donc le cadre des capacités de ce modèle. Le modèle ne doit pas être utilisé de manière à enfreindre la Politique d’utilisation acceptable de Stability AI.

Limites et biais

Limites

  • Les visages et les personnes en général peuvent ne pas être générés correctement.
  • La partie d'auto-encodage du modèle est avec perte.

StableCascadeCombinedPipeline

classe diffusers.StableCascadeCombinedPipeline

< >

( tokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectiondecoder: StableCascadeUNetscheduler: DDPMWuerstchenSchedulervqgan: PaellaVQModelprior_prior: StableCascadeUNetprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: DDPMWuerstchenSchedulerprior_feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Noneprior_image_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None )

Paramètres

  • tokenizer (CLIPTokenizer) — Le tokenizer de décodeur à utiliser pour les entrées texte.
  • text_encoder (CLIPTextModelWithProjection) — Encodeur de texte du décodeur à utiliser pour les entrées textuelles.
  • decoder (StableCascadeUNet) — Le modèle de décodeur à utiliser pour le pipeline de génération d’images par décodage.
  • scheduler (DDPMWuerstchenScheduler) — Le planificateur à utiliser pour le pipeline de génération d’images du décodeur.
  • vqgan (PaellaVQModel) — Le modèle VQGAN à utiliser pour le pipeline de génération d’images par décodeur.
  • prior_prior (StableCascadeUNet) — Le modèle prior à utiliser pour le pipeline prior.
  • prior_text_encoder (CLIPTextModelWithProjection) — Encodeur de texte prioritaire à utiliser pour les entrées textuelles.
  • prior_tokenizer (CLIPTokenizer) — Le tokenizer prior à utiliser pour les entrées texte.
  • prior_scheduler (DDPMWuerstchenScheduler) — Le planificateur à utiliser pour le pipeline prior.
  • prior_feature_extractor (CLIPImageProcessor) — Modèle qui extrait les caractéristiques des images générées afin de les utiliser comme entrées pour le image_encoder.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Encodeur d’images CLIP figé (clip-vit-large-patch14).

Pipeline combiné pour la génération d'images à partir de texte utilisant Stable Cascade.

Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les pipelines (tels que le téléchargement ou l'enregistrement, l'exécution sur un appareil particulier, etc.)

__call__

< >

( prompt: str | list[str] | None = Noneimages: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Noneheight: int = 512width: int = 512prior_num_inference_steps: int = 60prior_guidance_scale: float = 4.0num_inference_steps: int = 12decoder_guidance_scale: float = 0.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] )

Paramètres

  • prompt (str ou list[str]) — Le prompt ou les prompts pour guider la génération d’image du prior et du décodeur.
  • images (torch.Tensor, PIL.Image.Image, list[torch.Tensor], list[PIL.Image.Image], optional) — The images to guide the image generation for the prior.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. Ignoré lorsque la guidance n’est pas utilisée (c’est-à-dire ignoré si guidance_scale est inférieur à 1).
  • prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte pré-générés pour le prior. Peut être utilisé pour ajuster facilement les entrées de texte, par ex. 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_pooled (torch.Tensor, facultatif) — Embeddings de texte pré-générés pour le prior. 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.
  • negative_prompt_embeds (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés pour le prior. 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_pooled (torch.Tensor, facultatif) — Embeddings de texte négatifs pré-générés pour le prior. 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.
  • num_images_per_prompt (int, facultatif, valeur par défaut 1) — Le nombre d'images à générer par invite.
  • height (int, facultatif, par défaut 512) — La hauteur en pixels de l'image générée.
  • width (int, facultatif, par défaut 512) — La largeur en pixels de l'image générée.
  • prior_guidance_scale (float, facultatif, valeur par défaut 4.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. prior_guidance_scale est défini comme w de l'équation 2. de Imagen Paper. L'échelle de guidage est activée en définissant prior_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.
  • prior_num_inference_steps (int | dict[float, int], facultatif, valeur par défaut : 60) — Le nombre d'étapes de débruitage a priori. 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. Pour un espacement plus spécifique des pas de temps, vous pouvez passer des prior_timesteps personnalisés
  • num_inference_steps (int, optional, defaults to 12) — The number of decoder denoising steps. More denoising steps usually lead to a higher quality image at the expense of slower inference. For more specific timestep spacing, you can pass customized timesteps
  • decoder_guidance_scale (float, facultatif, valeur par défaut 0.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. guidance_scale est défini comme w de l’équation 2 de Imagen Paper. 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.
  • 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.
  • 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), "np" (np.array) ou "pt" (torch.Tensor).
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ImagePipelineOutput plutôt qu'un simple tuple.
  • prior_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 : prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, facultatif) — La liste des entrées tensorielles pour la fonction prior_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.
  • 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.

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

Exemples :

>>> import torch
>>> from diffusers import StableCascadeCombinedPipeline

>>> pipe = StableCascadeCombinedPipeline.from_pretrained(
...     "stabilityai/stable-cascade", variant="bf16", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> images = pipe(prompt=prompt)

enable_model_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Décharge tous les modèles sur le CPU à l'aide de accelerate, réduisant ainsi l'utilisation de la mémoire avec un impact faible sur les performances. Par rapport à enable_sequential_cpu_offload, cette méthode déplace un modèle entier à la fois sur le GPU lorsque sa méthode forward est appelée, et le modèle reste sur le GPU jusqu'à l'exécution du modèle suivant. Les économies de mémoire sont moindres qu'avec enable_sequential_cpu_offload, mais les performances sont bien meilleures grâce à l'exécution itérative de unet.

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Décharge tous les modèles (les dictionnaires d’état de unet, text_encoder, vae et du safety checker) sur le CPU à l’aide de 🤗 Accelerate, réduisant ainsi considérablement l’utilisation de la mémoire. Les modèles sont déplacés vers un torch.device('meta') et chargés sur un GPU uniquement lorsque la méthode forward de leur sous-module spécifique est appelée. La décharge s’effectue au niveau des sous-modules. Les économies de mémoire sont supérieures à celles obtenues avec enable_model_cpu_offload, mais les performances sont inférieures.

StableCascadePriorPipeline

classe diffusers.StableCascadePriorPipeline

< >

( tokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectionprior: StableCascadeUNetscheduler: DDPMWuerstchenSchedulerresolution_multiple: float = 42.67feature_extractor: transformers.models.clip.image_processing_pil_clip.CLIPImageProcessorPil | None = Noneimage_encoder: transformers.models.clip.modeling_clip.CLIPVisionModelWithProjection | None = None )

Paramètres

  • prior (StableCascadeUNet) — Le Stable Cascade prior servant à approximer l’embedding d’image à partir de l’embedding de texte et/ou d’image.
  • text_encoder (CLIPTextModelWithProjection) — Encodeur de texte figé (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).
  • feature_extractor (CLIPImageProcessor) — Modèle qui extrait les caractéristiques des images générées afin de les utiliser en tant qu'entrées pour le image_encoder.
  • image_encoder (CLIPVisionModelWithProjection) — Encodeur d’images CLIP figé (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — Tokeniseur de la classe CLIPTokenizer.
  • scheduler (DDPMWuerstchenScheduler) — Un scheduler à utiliser en combinaison avec prior pour générer l’embedding d’image.
  • resolution_multiple (‘float’, facultatif, valeur par défaut 42.67) — Résolution par défaut pour les images multiples générées.

Pipeline pour générer un a priori d'image pour Stable Cascade.

Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les pipelines (tels que le téléchargement ou l'enregistrement, l'exécution sur un appareil particulier, etc.)

__call__

< >

( prompt: str | list[str] | None = Noneimages: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Noneheight: int = 1024width: int = 1024num_inference_steps: int = 20timesteps: list = Noneguidance_scale: float = 4.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Noneimage_embeds: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pt'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] )

Paramètres

  • prompt (str ou list[str]) — Le prompt ou les prompts pour guider la génération d’image.
  • images (torch.Tensor, PIL.Image.Image, list[torch.Tensor] ou list[PIL.Image.Image], facultatif) — Image(s) de référence utilisée(s) pour conditionner la génération du prior. Si fournies, les embeddings d’image sont dérivés de l’image et combinés avec le prompt texte.
  • height (int, facultatif, par défaut 1024) — La hauteur en pixels de l'image générée.
  • width (int, facultatif, par défaut 1024) — La largeur en pixels de l'image générée.
  • num_inference_steps (int, facultatif, valeur par défaut 60) — 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.
  • timesteps (list[float], facultatif) — Timesteps personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argument timesteps 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é. Doit être dans l'ordre décroissant.
  • guidance_scale (float, facultatif, valeur par défaut 8.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. decoder_guidance_scale est défini comme w de l'équation 2. de Imagen Paper. L'échelle de guidage est activée en définissant decoder_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.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. Ignoré lorsque la guidance n’est pas utilisée (c’est-à-dire ignoré si decoder_guidance_scale est inférieur à 1).
  • 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_pooled (torch.Tensor, facultatif) — Embeddings de texte pré-poolés 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 pré-poolés seront générés à partir de l'argument d'entrée prompt.
  • 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_pooled (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_pooled sera généré à partir de l'argument d'entrée negative_prompt.
  • image_embeds (torch.Tensor, facultatif) — Embeddings d’image pré-générés. Peut être utilisé pour ajuster facilement les entrées d’image, par ex. le pondération des prompts. S’il n’est pas fourni, les embeddings d’image seront générés à partir de l’argument d’entrée image s’il existe.
  • 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.
  • 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), "np" (np.array) ou "pt" (torch.Tensor).
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ImagePipelineOutput plutôt qu'un simple tuple.
  • 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.

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

Exemples :

>>> import torch
>>> from diffusers import StableCascadePriorPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)

StableCascadePriorPipelineOutput

classe diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput

< >

( image_embeddings: typing.Union[torch.Tensor, numpy.ndarray]prompt_embeds: typing.Union[torch.Tensor, numpy.ndarray]prompt_embeds_pooled: typing.Union[torch.Tensor, numpy.ndarray]negative_prompt_embeds: typing.Union[torch.Tensor, numpy.ndarray]negative_prompt_embeds_pooled: typing.Union[torch.Tensor, numpy.ndarray] )

Paramètres

  • image_embeddings (torch.Tensor ou np.ndarray) — Embeddings d’images précédents pour le prompt texte
  • prompt_embeds (torch.Tensor) — Embeddings de texte pour le prompt.
  • negative_prompt_embeds (torch.Tensor) — Embeddings de texte pour le prompt négatif.

Classe de sortie pour WuerstchenPriorPipeline.

StableCascadeDecoderPipeline

classe diffusers.StableCascadeDecoderPipeline

< >

( decoder: StableCascadeUNettokenizer: CLIPTokenizertext_encoder: CLIPTextModelWithProjectionscheduler: DDPMWuerstchenSchedulervqgan: PaellaVQModellatent_dim_scale: float = 10.67 )

Paramètres

  • tokenizer (CLIPTokenizer) — Le tokenizer CLIP.
  • text_encoder (CLIPTextModelWithProjection) — Le codeur de texte CLIP.
  • decoder (StableCascadeUNet) — Le unet du décodeur Stable Cascade.
  • vqgan (PaellaVQModel) — Le modèle VQGAN.
  • scheduler (DDPMWuerstchenScheduler) — Un scheduler à utiliser en combinaison avec prior pour générer l’embedding d’image.
  • latent_dim_scale (float, optional, defaults to 10.67) — Multiplier to determine the VQ latent space size from the image embeddings. If the image embeddings are height=24 and width=24, the VQ latent shape needs to be height=int(2410.67)=256 and width=int(2410.67)=256 in order to match the training conditions.

Pipeline pour générer des images à partir du modèle Stable Cascade.

Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les pipelines (tels que le téléchargement ou l'enregistrement, l'exécution sur un appareil particulier, etc.)

__call__

< >

( image_embeddings: typing.Union[torch.Tensor, list[torch.Tensor]]prompt: str | list[str] = Nonenum_inference_steps: int = 10guidance_scale: float = 0.0negative_prompt: str | list[str] | None = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_pooled: typing.Optional[torch.Tensor] = Nonenum_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] )

Paramètres

  • image_embeddings (torch.Tensor ou list[torch.Tensor]) — Embeddings d’image extraits d’une image ou générés par un modèle prioritaire.
  • prompt (str ou list[str]) — Le prompt ou les prompts pour guider la génération d’image.
  • num_inference_steps (int, facultatif, valeur par défaut 12) — 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.
  • guidance_scale (float, facultatif, valeur par défaut 0.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance. decoder_guidance_scale est défini comme w de l’équation 2. de Imagen Paper. L’échelle de guidage est activée en définissant decoder_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.
  • negative_prompt (str ou list[str], facultatif) — Le ou les prompts à ne pas utiliser pour guider la génération d’image. Ignoré lorsque la guidance n’est pas utilisée (c’est-à-dire ignoré si decoder_guidance_scale est inférieur à 1).
  • 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_pooled (torch.Tensor, facultatif) — Embeddings de texte pré-poolés 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 pré-poolés seront générés à partir de l'argument d'entrée prompt.
  • 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_pooled (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_pooled sera généré à partir de l'argument d'entrée negative_prompt.
  • 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.
  • 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), "np" (np.array) ou "pt" (torch.Tensor).
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ImagePipelineOutput plutôt qu'un simple tuple.
  • 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.

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

Exemples :

>>> import torch
>>> from diffusers import StableCascadePriorPipeline, StableCascadeDecoderPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")
>>> gen_pipe = StableCascadeDecoderPipeline.from_pretrain(
...     "stabilityai/stable-cascade", torch_dtype=torch.float16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)
>>> images = gen_pipe(prior_output.image_embeddings, prompt=prompt)
Update on GitHub