Buckets:
| # | |
| # Licenciado sob a Apache License, Versão 2.0 (a "Licença"); | |
| # você não pode usar este arquivo, exceto em conformidade com a Licença. | |
| # Você pode obter uma cópia da Licença em | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # A menos que exigido pela lei aplicável ou acordado por escrito, o software | |
| # distribuído sob a Licença é distribuído em uma base "COMO ESTÁ", | |
| # SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. | |
| # Consulte a Licença para o idioma específico que rege as permissões e | |
| # limitações sob a Licença. | |
| --> | |
| # Mochi 1 Preview | |
| > [!TIP] | |
| > No momento, apenas uma pré-visualização de pesquisa dos pesos do modelo está disponível. | |
| [Mochi 1](https://huggingface.co/genmo/mochi-1-preview) é um modelo de geração de vídeo da Genmo com forte foco na aderência ao prompt e na qualidade do movimento. O modelo apresenta uma arquitetura de Asmmetric Diffusion Transformer (AsymmDiT) com 10B parâmetros e utiliza camadas de projeção QKV e de saída não quadradas para reduzir os requisitos de memória de inferência. Um único modelo T5-XXL é usado para codificar os prompts. | |
| *O Mochi 1 preview é um modelo aberto de geração de vídeo com estado da arte, apresentando movimento de alta fidelidade e forte aderência ao prompt em avaliações preliminares. Este modelo reduz drasticamente a lacuna entre sistemas fechados e abertos de geração de vídeo. O modelo é liberado sob a licença permissiva Apache 2.0.* | |
| > [!TIP] | |
| > Certifique-se de consultar o [guia](../../using-diffusers/schedulers) de Schedulers para aprender a explorar o compromisso entre a velocidade e a qualidade do scheduler, e veja a seção [reutilização de componentes entre pipelines](../../using-diffusers/loading#reusing-models-in-multiple-pipelines) para aprender a carregar eficientemente os mesmos componentes em vários pipelines. | |
| ## Quantização | |
| A quantização ajuda a reduzir os requisitos de memória de modelos muito grandes armazenando os pesos do modelo em um tipo de dados de menor precisão. No entanto, a quantização pode ter um impacto variável na qualidade do vídeo, dependendo do modelo de vídeo. | |
| Consulte a visão geral de [Quantization](../../quantization/overview) para saber mais sobre os backends de quantização suportados e sobre como selecionar um backend de quantização que atenda ao seu caso de uso. O exemplo abaixo demonstra como carregar um [MochiPipeline](/docs/diffusers/main/pt/api/pipelines/mochi#diffusers.MochiPipeline) quantizado para inferência com bitsandbytes. | |
| ```py | |
| import torch | |
| from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig, MochiTransformer3DModel, MochiPipeline | |
| from diffusers.utils import export_to_video | |
| from transformers import BitsAndBytesConfig as BitsAndBytesConfig, T5EncoderModel | |
| quant_config = BitsAndBytesConfig(load_in_8bit=True) | |
| text_encoder_8bit = T5EncoderModel.from_pretrained( | |
| "genmo/mochi-1-preview", | |
| subfolder="text_encoder", | |
| quantization_config=quant_config, | |
| dtype=torch.float16, | |
| ) | |
| quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=True) | |
| transformer_8bit = MochiTransformer3DModel.from_pretrained( | |
| "genmo/mochi-1-preview", | |
| subfolder="transformer", | |
| quantization_config=quant_config, | |
| dtype=torch.float16, | |
| ) | |
| pipeline = MochiPipeline.from_pretrained( | |
| "genmo/mochi-1-preview", | |
| text_encoder=text_encoder_8bit, | |
| transformer=transformer_8bit, | |
| dtype=torch.float16, | |
| device_map="balanced", | |
| ) | |
| video = pipeline( | |
| "Close-up of a cats eye, with the galaxy reflected in the cats eye. Ultra high resolution 4k.", | |
| num_inference_steps=28, | |
| guidance_scale=3.5 | |
| ).frames[0] | |
| export_to_video(video, "cat.mp4") | |
| ``` | |
| ## Gerando vídeos com Mochi-1 Preview | |
| O exemplo a seguir baixará os pesos de precisão completa do `mochi-1-preview` e produzirá os resultados de maior qualidade, mas exigirá pelo menos 42GB de VRAM para ser executado. | |
| ```python | |
| import torch | |
| from diffusers import MochiPipeline | |
| from diffusers.utils import export_to_video | |
| pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview") | |
| # Enable memory savings | |
| pipe.enable_model_cpu_offload() | |
| pipe.vae.enable_tiling() | |
| prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k." | |
| with torch.autocast("cuda", torch.bfloat16, cache_enabled=False): | |
| frames = pipe(prompt, num_frames=85).frames[0] | |
| export_to_video(frames, "mochi.mp4", fps=30) | |
| ``` | |
| ## Usando uma variante de menor precisão para economizar memória | |
| O exemplo a seguir usará a variante `bfloat16` do modelo e requer 22GB de VRAM para ser executado. Como resultado, há uma leve queda na qualidade do vídeo gerado. | |
| ```python | |
| import torch | |
| from diffusers import MochiPipeline | |
| from diffusers.utils import export_to_video | |
| pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview", variant="bf16", dtype=torch.bfloat16) | |
| # Enable memory savings | |
| pipe.enable_model_cpu_offload() | |
| pipe.vae.enable_tiling() | |
| prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k." | |
| frames = pipe(prompt, num_frames=85).frames[0] | |
| export_to_video(frames, "mochi.mp4", fps=30) | |
| ``` | |
| ## Reproduzindo os resultados do repositório Genmo Mochi | |
| A [implementação do Genmo Mochi](https://github.com/genmoai/mochi/tree/main) usa valores de precisão diferentes para cada etapa do processo de inferência. O codificador de texto e o VAE usam `torch.float32`, enquanto o DiT usa `torch.bfloat16` com o [kernel de atenção](https://pytorch.org/docs/stable/generated/torch.nn.attention.sdpa_kernel.html#torch.nn.attention.sdpa_kernel) definido como `EFFICIENT_ATTENTION`. Os pipelines do Diffusers atualmente não suportam a configuração de `dtypes` diferentes para diferentes etapas do pipeline. Para executar a inferência da mesma forma que na implementação original, consulte o exemplo a seguir. | |
| > [!TIP] | |
| > A implementação original do Mochi zera prompts vazios. No entanto, habilitar essa opção e colocar o pipeline inteiro sob autocast pode levar a estouro numérico com o codificador de texto T5. | |
| > | |
| > Ao habilitar `force_zeros_for_empty_prompt`, recomenda-se executar a etapa de codificação de texto fora do contexto de autocast, em precisão total. | |
| > [!TIP] | |
| > Decodificar os latentes em precisão completa é muito intensivo em memória. Você precisará de pelo menos 70GB de VRAM para gerar os 163 frames neste exemplo. Para reduzir a memória, reduza o número de frames ou execute a etapa de decodificação em `torch.bfloat16`. | |
| ```python | |
| import torch | |
| from torch.nn.attention import SDPBackend, sdpa_kernel | |
| from diffusers import MochiPipeline | |
| from diffusers.utils import export_to_video | |
| from diffusers.video_processor import VideoProcessor | |
| pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview", force_zeros_for_empty_prompt=True) | |
| pipe.vae.enable_tiling() | |
| pipe.enable_model_cpu_offload() | |
| prompt = "An aerial shot of a parade of elephants walking across the African savannah. The camera showcases the herd and the surrounding landscape." | |
| with torch.no_grad(): | |
| prompt_embeds, prompt_attention_mask, negative_prompt_embeds, negative_prompt_attention_mask = ( | |
| pipe.encode_prompt(prompt=prompt) | |
| ) | |
| with torch.autocast("cuda", torch.bfloat16): | |
| with sdpa_kernel(SDPBackend.EFFICIENT_ATTENTION): | |
| frames = pipe( | |
| prompt_embeds=prompt_embeds, | |
| prompt_attention_mask=prompt_attention_mask, | |
| negative_prompt_embeds=negative_prompt_embeds, | |
| negative_prompt_attention_mask=negative_prompt_attention_mask, | |
| guidance_scale=4.5, | |
| num_inference_steps=64, | |
| height=480, | |
| width=848, | |
| num_frames=163, | |
| generator=torch.Generator("cuda").manual_seed(0), | |
| output_type="latent", | |
| return_dict=False, | |
| )[0] | |
| video_processor = VideoProcessor(vae_scale_factor=8) | |
| has_latents_mean = hasattr(pipe.vae.config, "latents_mean") and pipe.vae.config.latents_mean is not None | |
| has_latents_std = hasattr(pipe.vae.config, "latents_std") and pipe.vae.config.latents_std is not None | |
| if has_latents_mean and has_latents_std: | |
| latents_mean = ( | |
| torch.tensor(pipe.vae.config.latents_mean).view(1, 12, 1, 1, 1).to(frames.device, frames.dtype) | |
| ) | |
| latents_std = ( | |
| torch.tensor(pipe.vae.config.latents_std).view(1, 12, 1, 1, 1).to(frames.device, frames.dtype) | |
| ) | |
| frames = frames * latents_std / pipe.vae.config.scaling_factor + latents_mean | |
| else: | |
| frames = frames / pipe.vae.config.scaling_factor | |
| with torch.no_grad(): | |
| video = pipe.vae.decode(frames.to(pipe.vae.dtype), return_dict=False)[0] | |
| video = video_processor.postprocess_video(video)[0] | |
| export_to_video(video, "mochi.mp4", fps=30) | |
| ``` | |
| ## Executando inferência com múltiplas GPUs | |
| É possível dividir o grande transformer Mochi entre várias GPUs usando as opções `device_map` e `max_memory` em `from_pretrained`. No exemplo a seguir, dividimos o modelo entre duas GPUs, cada uma com 24GB de VRAM. | |
| ```python | |
| import torch | |
| from diffusers import MochiPipeline, MochiTransformer3DModel | |
| from diffusers.utils import export_to_video | |
| model_id = "genmo/mochi-1-preview" | |
| transformer = MochiTransformer3DModel.from_pretrained( | |
| model_id, | |
| subfolder="transformer", | |
| device_map="auto", | |
| max_memory={0: "24GB", 1: "24GB"} | |
| ) | |
| pipe = MochiPipeline.from_pretrained(model_id, transformer=transformer) | |
| pipe.enable_model_cpu_offload() | |
| pipe.vae.enable_tiling() | |
| with torch.autocast(device_type="cuda", dtype=torch.bfloat16, cache_enabled=False): | |
| frames = pipe( | |
| prompt="Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k.", | |
| negative_prompt="", | |
| height=480, | |
| width=848, | |
| num_frames=85, | |
| num_inference_steps=50, | |
| guidance_scale=4.5, | |
| num_videos_per_prompt=1, | |
| generator=torch.Generator(device="cuda").manual_seed(0), # or "mps", "xpu", "cpu" | |
| max_sequence_length=256, | |
| output_type="pil", | |
| ).frames[0] | |
| export_to_video(frames, "output.mp4", fps=30) | |
| ``` | |
| ## Usando o carregamento de arquivo único com o Mochi Transformer | |
| Você pode usar `from_single_file` para carregar o transformer Mochi em seu formato original. | |
| > [!TIP] | |
| > O Diffusers atualmente não suporta o uso das versões FP8 escalonadas dos checkpoints de arquivo único do Mochi. | |
| ```python | |
| import torch | |
| from diffusers import MochiPipeline, MochiTransformer3DModel | |
| from diffusers.utils import export_to_video | |
| model_id = "genmo/mochi-1-preview" | |
| ckpt_path = "https://huggingface.co/Comfy-Org/mochi_preview_repackaged/blob/main/split_files/diffusion_models/mochi_preview_bf16.safetensors" | |
| transformer = MochiTransformer3DModel.from_pretrained(ckpt_path, dtype=torch.bfloat16) | |
| pipe = MochiPipeline.from_pretrained(model_id, transformer=transformer) | |
| pipe.enable_model_cpu_offload() | |
| pipe.vae.enable_tiling() | |
| with torch.autocast(device_type="cuda", dtype=torch.bfloat16, cache_enabled=False): | |
| frames = pipe( | |
| prompt="Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k.", | |
| negative_prompt="", | |
| height=480, | |
| width=848, | |
| num_frames=85, | |
| num_inference_steps=50, | |
| guidance_scale=4.5, | |
| num_videos_per_prompt=1, | |
| generator=torch.Generator(device="cuda").manual_seed(0), # or "mps", "xpu", "cpu" | |
| max_sequence_length=256, | |
| output_type="pil", | |
| ).frames[0] | |
| export_to_video(frames, "output.mp4", fps=30) | |
| ``` | |
| ## MochiPipeline[[diffusers.MochiPipeline]] | |
| #### diffusers.MochiPipeline[[diffusers.MochiPipeline]] | |
| ```python | |
| diffusers.MochiPipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLMochi, text_encoder: T5EncoderModel, tokenizer: T5Tokenizer, transformer: MochiTransformer3DModel, force_zeros_for_empty_prompt: bool = False) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/mochi/pipeline_mochi.py#L138) | |
| **Parâmetros:** | |
| transformer ([MochiTransformer3DModel](/docs/diffusers/main/pt/api/models/mochi_transformer3d#diffusers.MochiTransformer3DModel)) : Arquitetura de Transformer condicional para desruidar os latentes de vídeo codificados. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Um scheduler a ser usado em combinação com `transformer` para desruidar os latentes da imagem codificada. | |
| vae ([AutoencoderKLMochi](/docs/diffusers/main/pt/api/models/autoencoderkl_mochi#diffusers.AutoencoderKLMochi)) : Modelo de Variational Auto-Encoder (VAE) para codificar e decodificar vídeos para e a partir de representações latentes. | |
| text_encoder (`T5EncoderModel`) : [T5](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5EncoderModel), especificamente a variante [google/t5-v1_1-xxl](https://huggingface.co/google/t5-v1_1-xxl). | |
| tokenizer (`CLIPTokenizer`) : Tokenizer da classe [CLIPTokenizer](https://huggingface.co/docs/transformers/en/model_doc/clip#transformers.CLIPTokenizer). | |
| tokenizer (`T5TokenizerFast`) : Segundo Tokenizer da classe [T5TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/t5#transformers.T5TokenizerFast). | |
| O pipeline mochi para geração de texto para vídeo. | |
| Referência: https://github.com/genmoai/models | |
| #### __call__[[diffusers.MochiPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_frames: int = 19, num_inference_steps: int = 64, timesteps: list[int] = None, guidance_scale: float = 4.5, num_videos_per_prompt: int | None = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 256) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/mochi/pipeline_mochi.py#L444) | |
| **Parâmetros:** | |
| prompt (`str` ou `list[str]`, *opcional*) : O prompt ou os prompts para orientar a geração da imagem. Se não definido, é necessário passar `prompt_embeds` em vez disso. | |
| negative_prompt (`str` ou `list[str]`, *opcional*) : O prompt ou os prompts que não devem orientar a geração da imagem. Se não definido, é necessário passar `negative_prompt_embeds` em vez disso. Ignorado quando não está usando orientação (`guidance_scale < 1`). | |
| height (`int`, *opcional*, padrão `self.default_height`) : A altura em pixels da imagem gerada. Por padrão, é definida como 480 para os melhores resultados. | |
| width (`int`, *opcional*, padrão `self.default_width`) : A largura em pixels da imagem gerada. Por padrão, é definida como 848 para os melhores resultados. | |
| num_frames (`int`, padrão `19`) : O número de quadros de vídeo a serem gerados | |
| num_inference_steps (`int`, *opcional*, padrão 50) : O número de etapas de desruidamento. Mais etapas de desruidamento geralmente resultam em uma imagem de maior qualidade, em detrimento de uma inferência mais lenta. | |
| timesteps (`list[int]`, *opcional*) : Passos de tempo personalizados para usar no processo de remoção de ruído com agendadores que suportam um argumento `timesteps` em seu método `set_timesteps`. Se não definido, o comportamento padrão quando `num_inference_steps` é passado será usado. Deve estar em ordem decrescente. | |
| guidance_scale (`float`, padrão `4.5`) : Escala de orientação definida em [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` é definido como `w` da equação 2. do [Imagen Paper](https://huggingface.co/papers/2205.11487). A escala de orientação é ativada ao definir `guidance_scale > 1`. Uma escala de orientação maior incentiva a geração de imagens que estão intimamente ligadas ao `prompt` de texto, geralmente em detrimento de uma menor qualidade de imagem. | |
| num_videos_per_prompt (`int`, *opcional*, padrão 1) : O número de vídeos a serem gerados por prompt. | |
| generator (`torch.Generator` ou `list[torch.Generator]`, *opcional*) : Um ou uma lista de [geradores do torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) para tornar a geração determinística. | |
| latents (`torch.Tensor`, *opcional*) : Latentes ruidosos pré-gerados, amostrados de uma distribuição gaussiana, a serem usados como entradas para a geração de imagens. Pode ser usado para ajustar a mesma geração com diferentes prompts. Se não for fornecido, um tensor de latentes será gerado por amostragem usando o `generator` aleatório fornecido. | |
| prompt_embeds (`torch.Tensor`, *opcional*) : Embeddings de texto pré-gerados. Podem ser usados para ajustar facilmente as entradas de texto, *por exemplo*, ponderação de prompts. Se não forem fornecidos, os embeddings de texto serão gerados a partir do argumento de entrada `prompt`. | |
| prompt_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção pré-gerada para embeddings de texto. | |
| negative_prompt_embeds (`torch.FloatTensor`, *opcional*) : Embeddings de texto negativo pré-gerados. Para o PixArt-Sigma, este prompt negativo deve ser "". Se não for fornecido, negative_prompt_embeds será gerado a partir do argumento de entrada `negative_prompt`. | |
| negative_prompt_attention_mask (`torch.FloatTensor`, *opcional*) : Máscara de atenção pré-gerada para embeddings de texto negativos. | |
| output_type (`str`, *opcional*, padrão `"pil"`) : O formato de saída da imagem gerada. Escolha entre [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` ou `np.array`. | |
| return_dict (`bool`, *opcional*, padrão `True`) : Se deve ou não retornar um `~pipelines.mochi.MochiPipelineOutput` em vez de uma tupla simples. | |
| attention_kwargs (`dict`, *opcional*) : Um dicionário de kwargs que, se especificado, é passado para o `AttentionProcessor` conforme definido em `self.processor` em [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`, *opcional*) : Uma função que é chamada no final de cada etapa de desruidamento durante a inferência. A função é chamada com os seguintes argumentos: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` incluirá uma lista de todos os tensores, conforme especificado por `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *opcional*) : A lista de entradas de tensor para a função `callback_on_step_end`. Os tensores especificados na lista serão passados como argumento `callback_kwargs`. Você só poderá incluir variáveis listadas no atributo `._callback_tensor_inputs` da sua classe de pipeline. | |
| max_sequence_length (`int` padrão é `256`) : Comprimento máximo da sequência a ser usado com o `prompt`. | |
| **Retorna:** `~pipelines.mochi.MochiPipelineOutput` ou `tuple` | |
| Se `return_dict` for `True`, `~pipelines.mochi.MochiPipelineOutput` é retornado; caso contrário, uma `tuple` é retornada, onde o primeiro elemento é uma lista com as imagens geradas. | |
| Função invocada ao chamar o pipeline para geração. | |
| Exemplos: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import MochiPipeline | |
| >>> from diffusers.utils import export_to_video | |
| >>> pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview", torch_dtype=torch.bfloat16) | |
| >>> pipe.enable_model_cpu_offload() | |
| >>> pipe.vae.enable_tiling() | |
| >>> prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k." | |
| >>> frames = pipe(prompt, num_inference_steps=28, guidance_scale=3.5).frames[0] | |
| >>> export_to_video(frames, "mochi.mp4") | |
| ``` | |
| #### encode_prompt[[diffusers.MochiPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 256, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/mochi/pipeline_mochi.py#L254) | |
| **Parâmetros:** | |
| prompt (`str` ou `list[str]`, *opcional*) : prompt a ser codificado | |
| negative_prompt (`str` ou `list[str]`, *opcional*) : O prompt ou os prompts que não devem orientar a geração da imagem. Se não definido, é necessário passar `negative_prompt_embeds` em vez disso. Ignorado quando não se usa orientação (ou seja, ignorado se `guidance_scale` for menor que `1`). | |
| do_classifier_free_guidance (`bool`, *opcional*, padrão `True`) : Se deve ou não usar classifier free guidance. | |
| num_videos_per_prompt (`int`, *opcional*, padrão 1) : Número de vídeos que devem ser gerados por prompt. Dispositivo torch para colocar os embeddings resultantes | |
| prompt_embeds (`torch.Tensor`, *opcional*) : Embeddings de texto pré-gerados. Podem ser usados para ajustar facilmente as entradas de texto, *por exemplo*, ponderação de prompts. Se não forem fornecidos, os embeddings de texto serão gerados a partir do argumento de entrada `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opcional*) : Embeddings de texto negativos pré-gerados. Podem ser usados para ajustar facilmente as entradas de texto, *por exemplo*, ponderação de prompts. Se não forem fornecidos, negative_prompt_embeds será gerado a partir do argumento de entrada `negative_prompt`. | |
| device : (`torch.device`, *opcional*): dispositivo torch | |
| dtype : (`torch.dtype`, *opcional*): dtype do torch | |
| Codifica o prompt em estados ocultos do codificador de texto. | |
| ## MochiPipelineOutput[[diffusers.pipelines.mochi.pipeline_output.MochiPipelineOutput]] | |
| #### diffusers.pipelines.mochi.pipeline_output.MochiPipelineOutput[[diffusers.pipelines.mochi.pipeline_output.MochiPipelineOutput]] | |
| ```python | |
| diffusers.pipelines.mochi.pipeline_output.MochiPipelineOutput(frames: Tensor) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/mochi/pipeline_output.py#L9) | |
| **Parâmetros:** | |
| frames (`torch.Tensor`, `np.ndarray` ou list[list[PIL.Image.Image]]) : lista de saídas de vídeo - Pode ser uma lista aninhada de comprimento `batch_size,` em que cada sublista contém sequências de imagens PIL desruidas de comprimento `num_frames.` Também pode ser um array NumPy ou um tensor Torch de forma `(batch_size, num_frames, channels, height, width)`. | |
| Classe de saída para pipelines do Mochi. | |
Xet Storage Details
- Size:
- 23.3 kB
- Xet hash:
- 3bd788529104d070a2bac03e03d815d8669f5decb3a8e815ca1b33db5965602b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.