Diffusers documentation
CogView4
CogView4
Pensez à consulter le guide des Schedulers pour apprendre à explorer le compromis entre la vitesse et la qualité du scheduler, et à consulter la section réutilisation des composants entre les pipelines pour apprendre à charger efficacement les mêmes composants dans plusieurs pipelines.
Ce pipeline a été contribué par zRzRzRzRzRzRzR. La base de code originale peut être trouvée ici. Les poids originaux sont disponibles sous hf.co/THUDM.
CogView4Pipeline
classe diffusers.CogView4Pipeline
< source >( tokenizer: AutoTokenizertext_encoder: GlmModelvae: AutoencoderKLtransformer: CogView4Transformer2DModelscheduler: FlowMatchEulerDiscreteScheduler )
Paramètres
- vae (AutoencoderKL) — Modèle de Variational Auto-Encoder (VAE) pour encoder et décoder des images vers et depuis des représentations latentes.
- text_encoder (
GLMModel) — Encodeur de texte figé. CogView4 utilise glm-4-9b-hf. - tokenizer (
PreTrainedTokenizer) — Tokeniseur de la classe PreTrainedTokenizer. - transformer (CogView4Transformer2DModel) —
Un
CogView4Transformer2DModelconditionné par du texte pour débruyer les latents d'image encodés. - scheduler (SchedulerMixin) —
Un scheduler à utiliser en combinaison avec
transformerpour débruyer les latents d'image encodés.
Pipeline pour la génération d'images à partir de texte utilisant CogView4.
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__
< source >( prompt: str | list[str] | None = Nonenegative_prompt: str | list[str] | None = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50timesteps: list[int] | None = Nonesigmas: list[float] | None = Noneguidance_scale: float = 5.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoriginal_size: tuple[int, int] | None = Nonecrops_coords_top_left: tuple = (0, 0)output_type: str = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 1024 ) → ~pipelines.cogview4.pipeline_CogView4.CogView4PipelineOutput or tuple
Paramètres
- prompt (
stroulist[str], facultatif) — Le prompt ou les prompts pour guider la génération d’image. S’il n’est pas défini, il faut passerprompt_embeds. - negative_prompt (
stroulist[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 passernegative_prompt_embedsà la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré siguidance_scaleest inférieur à1). - height (
int, facultatif, par défaut self.transformer.config.sample_size * self.vae_scale_factor) — La hauteur en pixels de l'image générée. Si non fournie, elle est définie à 1024. - width (
int, facultatif, par défaut self.transformer.config.sample_size * self.vae_scale_factor) — La largeur en pixels de l'image générée. Si elle n'est pas fournie, elle est définie à 1024. - num_inference_steps (
int, facultatif, par défaut50) — 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[int], facultatif) — Timesteps personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argumenttimestepsdans leur méthodeset_timesteps. S'il n'est pas défini, le comportement par défaut lorsquenum_inference_stepsest passé sera utilisé. Doit être dans l'ordre décroissant. - sigmas (
list[float], facultatif) — Sigmas personnalisés à utiliser pour le processus de débruitage avec les planificateurs qui prennent en charge un argumentsigmasdans leur méthodeset_timesteps. S'il n'est pas défini, le comportement par défaut lorsquenum_inference_stepsest passé sera utilisé. - guidance_scale (
float, facultatif, par défaut5.0) — Échelle de guidage telle que définie dans Classifier-Free Diffusion Guidance.guidance_scaleest défini commewde l'équation 2 de Imagen Paper. L'échelle de guidage est activée en définissantguidance_scale > 1. Une échelle de guidage plus élevée encourage la génération d'images étroitement liées auprompttexte, généralement au détriment de la qualité de l'image. - num_images_per_prompt (
int, facultatif, par défaut1) — Le nombre d'images à générer par invite. - generator (
torch.Generatoroulist[torch.Generator], facultatif) — Un ou une liste de générateurs torch pour rendre la génération déterministe. - latents (
torch.FloatTensor, 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 dugeneratoraléatoire fourni. - prompt_embeds (
torch.FloatTensor, 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éeprompt. - negative_prompt_embeds (
torch.FloatTensor, 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éenegative_prompt. - original_size (
tuple[int], facultatif, par défaut (1024, 1024)) — Sioriginal_sizen’est pas identique àtarget_size, l’image apparaîtra sous-échantillonnée ou suréchantillonnée.original_sizeest par défaut(height, width)s’il n’est pas spécifié. Fait partie du micro-conditionnement de SDXL, tel que décrit dans la section 2.2 de https://huggingface.co/papers/2307.01952. - crops_coords_top_left (
tuple[int], facultatif, par défaut (0, 0)) —crops_coords_top_leftpeut être utilisé pour générer une image qui semble « recadrée » à partir de la positioncrops_coords_top_leftvers le bas. Des images bien cadrées et centrées sont généralement obtenues en définissantcrops_coords_top_leftsur (0, 0). Fait partie du micro-conditionnement de SDXL, tel que décrit dans la section 2.2 de https://huggingface.co/papers/2307.01952. - output_type (
str, facultatif, par défaut"pil") — Le format de sortie de l'image générée. Choisissez entre PIL :PIL.Image.Imageounp.array. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutputplutôt qu'un simple tuple. - attention_kwargs (
dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessordéfini sousself.processordans 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_kwargscontiendra une liste de tous les tenseurs spécifiés parcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, facultatif) — La liste des entrées tensorielles pour la fonctioncallback_on_step_end. Les tenseurs spécifiés dans la liste seront passés en tant qu'argumentcallback_kwargs. Vous ne pourrez inclure que les variables listées dans l'attribut._callback_tensor_inputsde votre classe de pipeline. - max_sequence_length (
int, par défaut224) — Longueur maximale de la séquence dans le prompt encodé. Peut être définie à d'autres valeurs, mais cela peut entraîner des résultats moins bons.
Retourne
~pipelines.cogview4.pipeline_CogView4.CogView4PipelineOutput ou tuple
~pipelines.cogview4.pipeline_CogView4.CogView4PipelineOutput si return_dict est True, sinon un
tuple. En cas de 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 CogView4Pipeline
>>> pipe = CogView4Pipeline.from_pretrained("THUDM/CogView4-6B", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt).images[0]
>>> image.save("output.png")encode_prompt
< source >( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonedo_classifier_free_guidance: bool = Truenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonedevice: typing.Optional[torch.device] = Nonedtype: typing.Optional[torch.dtype] = Nonemax_sequence_length: int = 1024 )
Paramètres
- prompt (
stroulist[str], facultatif) — prompt à encoder - negative_prompt (
stroulist[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 passernegative_prompt_embedsà la place. Ignoré lorsque le guidage n’est pas utilisé (c’est-à-dire ignoré siguidance_scaleest inférieur à1). - do_classifier_free_guidance (
bool, facultatif, valeur par défautTrue) — Indique s'il faut utiliser le classifier free guidance ou non. - num_images_per_prompt (
int, facultatif, valeur par défaut 1) — Nombre d'images à générer par invite. Appareil torch sur lequel placer les embeddings résultants - 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éeprompt. - 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éenegative_prompt. - device — (
torch.device, facultatif) : torch device - dtype — (
torch.dtype, facultatif) : dtype torch - max_sequence_length (
int, par défaut1024) — Longueur maximale de la séquence dans le prompt encodé. Peut être définie à d'autres valeurs, mais cela peut entraîner des résultats moins bons.
Encode le prompt dans les états cachés de l'encodeur de texte.
CogView4PipelineOutput
classe diffusers.pipelines.cogview4.pipeline_output.CogView4PipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Classe de sortie pour les pipelines CogView3.