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. | |
| --> | |
| # EasyAnimate | |
| [EasyAnimate](https://github.com/aigc-apps/EasyAnimate) da Alibaba PAI. | |
| A descrição da sua página no GitHub: *EasyAnimate é um pipeline baseado na arquitetura de transformer, projetado para gerar imagens e vídeos com IA, e para treinar modelos de base e modelos Lora para Diffusion Transformer. Suportamos a predição direta a partir de modelos EasyAnimate pré-treinados, permitindo a geração de vídeos com várias resoluções, com aproximadamente 6 segundos de duração, a 8fps (EasyAnimateV5.1, de 1 a 49 quadros). Além disso, os usuários podem treinar seus próprios modelos de base e Lora para transformações de estilo específicas.* | |
| Este pipeline foi contribuído por [bubbliiiing](https://github.com/bubbliiiing). A base de código original pode ser encontrada [aqui](https://huggingface.co/alibaba-pai). Os pesos originais podem ser encontrados em [hf.co/alibaba-pai](https://huggingface.co/alibaba-pai). | |
| Existem dois checkpoints oficiais do EasyAnimate para texto-para-vídeo e vídeo-para-vídeo. | |
| | checkpoints | dtype de inferência recomendado | | |
| |:---:|:---:| | |
| | [`alibaba-pai/EasyAnimateV5.1-12b-zh`](https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh) | torch.float16 | | |
| | [`alibaba-pai/EasyAnimateV5.1-12b-zh-InP`](https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh-InP) | torch.float16 | | |
| Há um checkpoint oficial do EasyAnimate disponível para image-to-video e video-to-video. | |
| | checkpoints | dtype de inferência recomendado | | |
| |:---:|:---:| | |
| | [`alibaba-pai/EasyAnimateV5.1-12b-zh-InP`](https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh-InP) | torch.float16 | | |
| Existem dois checkpoints oficiais do EasyAnimate disponíveis para control-to-video. | |
| | checkpoints | dtype de inferência recomendado | | |
| |:---:|:---:| | |
| | [`alibaba-pai/EasyAnimateV5.1-12b-zh-Control`](https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh-Control) | torch.float16 | | |
| | [`alibaba-pai/EasyAnimateV5.1-12b-zh-Control-Camera`](https://huggingface.co/alibaba-pai/EasyAnimateV5.1-12b-zh-Control-Camera) | torch.float16 | | |
| Para a série EasyAnimateV5.1: | |
| - Text-to-video (T2V) e Image-to-video (I2V) funcionam para múltiplas resoluções. A largura e a altura podem variar de 256 a 1024. | |
| - Os modelos T2V e I2V suportam geração com 1~49 quadros e funcionam melhor nesse valor. É recomendável exportar os vídeos a 8 FPS. | |
| ## 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 [EasyAnimatePipeline](/docs/diffusers/main/pt/api/pipelines/easyanimate#diffusers.EasyAnimatePipeline) quantizado para inferência com bitsandbytes. | |
| ```py | |
| import torch | |
| from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig, EasyAnimateTransformer3DModel, EasyAnimatePipeline | |
| from diffusers.utils import export_to_video | |
| quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=True) | |
| transformer_8bit = EasyAnimateTransformer3DModel.from_pretrained( | |
| "alibaba-pai/EasyAnimateV5.1-12b-zh", | |
| subfolder="transformer", | |
| quantization_config=quant_config, | |
| dtype=torch.float16, | |
| ) | |
| pipeline = EasyAnimatePipeline.from_pretrained( | |
| "alibaba-pai/EasyAnimateV5.1-12b-zh", | |
| transformer=transformer_8bit, | |
| dtype=torch.float16, | |
| device_map="balanced", | |
| ) | |
| prompt = "A cat walks on the grass, realistic style." | |
| negative_prompt = "bad detailed" | |
| video = pipeline(prompt=prompt, negative_prompt=negative_prompt, num_frames=49, num_inference_steps=30).frames[0] | |
| export_to_video(video, "cat.mp4", fps=8) | |
| ``` | |
| ## EasyAnimatePipeline[[diffusers.EasyAnimatePipeline]] | |
| #### diffusers.EasyAnimatePipeline[[diffusers.EasyAnimatePipeline]] | |
| ```python | |
| diffusers.EasyAnimatePipeline(vae: AutoencoderKLMagvit, text_encoder: transformers.models.qwen2_vl.modeling_qwen2_vl.Qwen2VLForConditionalGeneration | transformers.models.bert.modeling_bert.BertModel, tokenizer: transformers.models.qwen2.tokenization_qwen2.Qwen2Tokenizer | transformers.models.bert.tokenization_bert.BertTokenizer, transformer: EasyAnimateTransformer3DModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/easyanimate/pipeline_easyanimate.py#L186) | |
| **Parâmetros:** | |
| vae ([AutoencoderKLMagvit](/docs/diffusers/main/pt/api/models/autoencoderkl_magvit#diffusers.AutoencoderKLMagvit)) : Modelo de Variational Auto-Encoder (VAE) para codificar e decodificar vídeos a partir de e para representações latentes. | |
| text_encoder (`~transformers.Qwen2VLForConditionalGeneration`, `~transformers.BertModel` | None) : O EasyAnimate usa [qwen2 vl](https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct) na V5.1. | |
| tokenizer (`~transformers.Qwen2Tokenizer`, `~transformers.BertTokenizer` | None) : Um `Qwen2Tokenizer` ou `BertTokenizer` para tokenizar texto. | |
| transformer ([EasyAnimateTransformer3DModel](/docs/diffusers/main/pt/api/models/easyanimate_transformer3d#diffusers.EasyAnimateTransformer3DModel)) : O modelo EasyAnimate desenvolvido pela EasyAnimate Team. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/pt/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Um scheduler para ser usado em combinação com EasyAnimate para desruidar os latentes da imagem codificada. | |
| Pipeline para geração de texto para vídeo usando EasyAnimate. | |
| Este modelo herda de [DiffusionPipeline](/docs/diffusers/main/pt/api/pipelines/overview#diffusers.DiffusionPipeline). Consulte a documentação da superclasse para os métodos genéricos que a biblioteca implementa para todos os pipelines (como download ou salvamento, execução em um dispositivo específico, etc.) | |
| O EasyAnimate usa um único codificador de texto [qwen2 vl](https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct) na V5.1. | |
| #### __call__[[diffusers.EasyAnimatePipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, num_frames: int | None = 49, height: int | None = 512, width: int | None = 512, num_inference_steps: int | None = 50, guidance_scale: float | None = 5.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int | None = 1, eta: float | None = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, timesteps: list[int] | None = 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, output_type: str | None = 'pil', return_dict: bool = True, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], guidance_rescale: float = 0.0) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/easyanimate/pipeline_easyanimate.py#L524) | |
| **Parâmetros:** | |
| prompt (`str` ou `list[str]`, *opcional*) : Prompts de texto para orientar a geração da imagem ou do vídeo. Se não for fornecido, use `prompt_embeds` em vez disso. | |
| num_frames (`int`, *opcional*) : Comprimento do vídeo gerado (em quadros). | |
| height (`int`, *opcional*) : Altura da imagem gerada em pixels. | |
| width (`int`, *opcional*) : Largura da imagem gerada em pixels. | |
| num_inference_steps (`int`, *opcional*, padrão 50) : Número de etapas de remoção de ruído durante a geração. Mais etapas geralmente resultam em imagens de maior qualidade, mas tornam a inferência mais lenta. | |
| guidance_scale (`float`, *opcional*, padrão 5.0) : Incentiva o modelo a alinhar as saídas com os prompts. Um valor mais alto pode diminuir a qualidade da imagem. | |
| negative_prompt (`str` ou `list[str]`, *opcional*) : Prompts indicando o que excluir na geração. Se não for especificado, use `negative_prompt_embeds`. | |
| num_images_per_prompt (`int`, *opcional*, padrão 1) : Número de imagens a serem geradas para cada prompt. | |
| eta (`float`, *opcional*, padrão 0.0) : Aplica-se ao agendamento DDIM. Controlado pelo parâmetro eta da literatura relacionada. | |
| generator (`torch.Generator` ou `list[torch.Generator]`, *opcional*) : Um gerador para garantir a reprodutibilidade na geração de imagens. | |
| latents (`torch.Tensor`, *opcional*) : Tensores latentes predefinidos para condicionar a geração. | |
| prompt_embeds (`torch.Tensor`, *opcional*) : Incorporações de texto para os prompts. Substitui as entradas de strings de prompt para maior flexibilidade. | |
| negative_prompt_embeds (`torch.Tensor`, *opcional*) : Incorporações para prompts negativos. Substitui as entradas de string, se definido. | |
| prompt_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para os embeddings do prompt primário. | |
| negative_prompt_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para incorporações de prompt negativo. | |
| output_type (`str`, *opcional*, padrão "latent") : Formato da saída gerada, seja como uma imagem PIL ou como um array NumPy. | |
| return_dict (`bool`, *opcional*, padrão `True`) : Se `True`, retorna uma saída estruturada. Caso contrário, retorna uma tupla simples. | |
| callback_on_step_end (`Callable`, *opcional*) : Funções chamadas no final de cada etapa de desruidamento. | |
| callback_on_step_end_tensor_inputs (`list[str]`, *opcional*) : Nomes dos tensores a serem incluídos nas chamadas da função de callback. | |
| guidance_rescale (`float`, *opcional*, padrão 0.0) : Ajusta os níveis de ruído com base na escala de orientação. | |
| timesteps (`list[int]`, *opcional*) : Passos de tempo personalizados para usar no processo de desruido. Se não definido, o agendamento padrão do agendador para `num_inference_steps` é utilizado. | |
| **Retorna:** [StableDiffusionPipelineOutput](/docs/diffusers/main/pt/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) ou `tuple` | |
| Se `return_dict` for `True`, [StableDiffusionPipelineOutput](/docs/diffusers/main/pt/api/pipelines/stable_diffusion/img2img#diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput) é retornado; caso contrário, uma `tuple` é retornada, em que o primeiro elemento é uma lista com as imagens geradas e o segundo elemento é uma lista de `bool`s indicando se a imagem gerada correspondente contém conteúdo "not-safe-for-work" (nsfw). | |
| Gera imagens ou vídeos usando o pipeline EasyAnimate com base nos prompts fornecidos. | |
| Exemplos: | |
| ```python | |
| >>> import torch | |
| >>> from diffusers import EasyAnimatePipeline | |
| >>> from diffusers.utils import export_to_video | |
| >>> # Models: "alibaba-pai/EasyAnimateV5.1-12b-zh" | |
| >>> pipe = EasyAnimatePipeline.from_pretrained( | |
| ... "alibaba-pai/EasyAnimateV5.1-7b-zh-diffusers", torch_dtype=torch.float16 | |
| ... ).to("cuda") | |
| >>> prompt = ( | |
| ... "A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. " | |
| ... "The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other " | |
| ... "pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, " | |
| ... "casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. " | |
| ... "The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical " | |
| ... "atmosphere of this unique musical performance." | |
| ... ) | |
| >>> sample_size = (512, 512) | |
| >>> video = pipe( | |
| ... prompt=prompt, | |
| ... guidance_scale=6, | |
| ... negative_prompt="bad detailed", | |
| ... height=sample_size[0], | |
| ... width=sample_size[1], | |
| ... num_inference_steps=50, | |
| ... ).frames[0] | |
| >>> export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| #### encode_prompt[[diffusers.EasyAnimatePipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], num_images_per_prompt: int = 1, do_classifier_free_guidance: bool = True, negative_prompt: str | list[str] | None = None, 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, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None, max_sequence_length: int = 256) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/easyanimate/pipeline_easyanimate.py#L241) | |
| **Parâmetros:** | |
| prompt (`str` ou `list[str]`, *opcional*) : prompt a ser codificado | |
| device : (`torch.device`): dispositivo torch | |
| dtype (`torch.dtype`) : dtype do torch | |
| num_images_per_prompt (`int`) : número de imagens que devem ser geradas por prompt | |
| do_classifier_free_guidance (`bool`) : se deve ou não usar classifier free guidance | |
| 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`). | |
| 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`. | |
| prompt_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para o prompt. Obrigatória quando `prompt_embeds` é passado diretamente. | |
| negative_prompt_attention_mask (`torch.Tensor`, *opcional*) : Máscara de atenção para o prompt negativo. Obrigatória quando `negative_prompt_embeds` é passado diretamente. | |
| max_sequence_length (`int`, *opcional*) : comprimento máximo da sequência a ser usado para o prompt. | |
| Codifica o prompt em estados ocultos do codificador de texto. | |
| ## EasyAnimatePipelineOutput[[diffusers.pipelines.easyanimate.pipeline_output.EasyAnimatePipelineOutput]] | |
| #### diffusers.pipelines.easyanimate.pipeline_output.EasyAnimatePipelineOutput[[diffusers.pipelines.easyanimate.pipeline_output.EasyAnimatePipelineOutput]] | |
| ```python | |
| diffusers.pipelines.easyanimate.pipeline_output.EasyAnimatePipelineOutput(frames: Tensor) | |
| ``` | |
| [Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/easyanimate/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 os pipelines do EasyAnimate. | |
Xet Storage Details
- Size:
- 16.2 kB
- Xet hash:
- 2940d6b66cd9faeda46b07b8e25dcbcc39fea473e70ccec6990540b60670f884
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.