Diffusers documentation
ConsisID
ConsisID
Geração de Texto para Vídeo Preservando a Identidade por Decomposição de Frequência da Universidade de Pequim & Universidade de Rochester & etc, por Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan.
O resumo do artigo é:
A geração de texto para vídeo com preservação de identidade (IPT2V) visa criar vídeos de alta fidelidade com identidade humana consistente. É uma tarefa importante na geração de vídeos, mas permanece como um problema aberto para modelos generativos. Este artigo avança a fronteira técnica da IPT2V em duas direções que não foram resolvidas na literatura: (1) um pipeline sem ajuste (tuning-free) que dispensa o tedioso ajuste fino caso a caso, e (2) um esquema de controle baseado em Diffusion Transformer (DiT) com preservação de identidade e sensível a frequência. Para alcançar esses objetivos, propomos o ConsisID, um modelo controlável de IPT2V baseado em DiT e sem ajuste (tuning-free) para manter a identidade consistente no vídeo gerado. Inspirado em descobertas anteriores na análise de frequência de transformers de visão/difusão, ele emprega sinais de controle de identidade no domínio da frequência, onde os recursos faciais podem ser decompostos em recursos globais de baixa frequência (por exemplo, perfil, proporções) e recursos intrínsecos de alta frequência (por exemplo, marcadores de identidade que permanecem inalterados por mudanças de pose). Primeiro, de uma perspectiva de baixa frequência, introduzimos um extrator facial global, que codifica a imagem de referência e os pontos-chave faciais em um espaço latente, gerando recursos enriquecidos com informações de baixa frequência. Esses recursos são então integrados nas camadas mais rasas da rede para aliviar os desafios de treinamento associados ao DiT. Segundo, de uma perspectiva de alta frequência, projetamos um extrator facial local para capturar detalhes de alta frequência e injetá-los nos blocos do transformer, aprimorando a capacidade do modelo de preservar recursos finos. Para aproveitar as informações de frequência para a preservação de identidade, propomos uma estratégia de treinamento hierárquica, transformando um modelo pré-treinado de geração de vídeo em um modelo de IPT2V. Experimentos extensos demonstram que nosso esquema heurístico sensível a frequência fornece uma solução de controle ótima para modelos baseados em DiT. Graças a esse esquema, nosso ConsisID alcança excelentes resultados na geração de vídeos de alta qualidade com preservação de identidade, dando passos em direção a uma IPT2V mais eficaz. O peso do modelo ConsID está publicamente disponível em https://github.com/PKU-YuanGroup/ConsisID.
Certifique-se de consultar o guia 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 para aprender a carregar eficientemente os mesmos componentes em vários pipelines.
Este pipeline foi contribuído por SHYuanBest. A base de código original pode ser encontrada aqui. Os pesos originais podem ser encontrados em hf.co/BestWishYsh.
Existem dois checkpoints oficiais do ConsisID para texto-para-vídeo com preservação de identidade.
| checkpoints | dtype de inferência recomendado |
|---|---|
BestWishYsh/ConsisID-preview | torch.bfloat16 |
BestWishYsh/ConsisID-1.5 | torch.bfloat16 |
Otimização de memória
ConsisID requer cerca de 44 GB de memória de GPU para decodificar 49 quadros (6 segundos de vídeo a 8 FPS) com resolução de saída 720x480 (L x A), o que torna impossível executá-lo em GPUs de consumo ou no Colab T4 gratuito. As seguintes otimizações de memória podem ser usadas para reduzir o consumo de memória. Para replicação, você pode consultar o script.
| Recurso (sobrepor ao anterior) | Memória Máxima Alocada | Memória Máxima Reservada |
|---|---|---|
| - | 37 GB | 44 GB |
| enable_model_cpu_offload | 22 GB | 25 GB |
| enable_sequential_cpu_offload | 16 GB | 22 GB |
| vae.enable_slicing | 16 GB | 22 GB |
| vae.enable_tiling | 5 GB | 7 GB |
Carregar checkpoints de modelos
Os pesos do modelo podem estar armazenados em subpastas separadas no Hub ou localmente, caso em que você deve usar o método from_pretrained().
# !pip install consisid_eva_clip insightface facexlib
import torch
from diffusers import ConsisIDPipeline
from diffusers.pipelines.consisid.consisid_utils import prepare_face_models, process_face_embeddings_infer
from huggingface_hub import snapshot_download
# Download ckpts
snapshot_download(repo_id="BestWishYsh/ConsisID-preview", local_dir="BestWishYsh/ConsisID-preview")
# Load face helper model to preprocess input face image
face_helper_1, face_helper_2, face_clip_model, face_main_model, eva_transform_mean, eva_transform_std = prepare_face_models("BestWishYsh/ConsisID-preview", device="cuda", dtype=torch.bfloat16) # or "mps", "xpu", "cpu"
# Load consisid base model
pipe = ConsisIDPipeline.from_pretrained("BestWishYsh/ConsisID-preview", dtype=torch.bfloat16)
pipe.to("cuda")Texto para vídeo que preserva a identidade
Para texto-para-vídeo que preserva a identidade, passe um prompt de texto e uma imagem contendo um rosto claro (por exemplo, de preferência meio corpo ou corpo inteiro). Por padrão, o ConsisID gera um vídeo de 720x480 para os melhores resultados.
from diffusers.utils import export_to_video
prompt = "The video captures a boy walking along a city street, filmed in black and white on a classic 35mm camera. His expression is thoughtful, his brow slightly furrowed as if he's lost in contemplation. The film grain adds a textured, timeless quality to the image, evoking a sense of nostalgia. Around him, the cityscape is filled with vintage buildings, cobblestone sidewalks, and softly blurred figures passing by, their outlines faint and indistinct. Streetlights cast a gentle glow, while shadows play across the boy's path, adding depth to the scene. The lighting highlights the boy's subtle smile, hinting at a fleeting moment of curiosity. The overall cinematic atmosphere, complete with classic film still aesthetics and dramatic contrasts, gives the scene an evocative and introspective feel."
image = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/consisid/consisid_input.png?download=true"
id_cond, id_vit_hidden, image, face_kps = process_face_embeddings_infer(face_helper_1, face_clip_model, face_helper_2, eva_transform_mean, eva_transform_std, face_main_model, "cuda", torch.bfloat16, image, is_align_face=True)
video = pipe(image=image, prompt=prompt, num_inference_steps=50, guidance_scale=6.0, use_dynamic_cfg=False, id_vit_hidden=id_vit_hidden, id_cond=id_cond, kps_cond=face_kps, generator=torch.Generator("cuda").manual_seed(42))
export_to_video(video.frames[0], "output.mp4", fps=8)| Imagem de Rosto | Vídeo | Descrição |
|---|---|---|
![]() | ![]() | O vídeo, em um estilo de animação belamente elaborado, apresenta uma mulher confiante montando a cavalo por uma clareira exuberante na floresta. Sua expressão é focada, porém serena, enquanto ela ajusta seu chapéu de aba larga com uma mão experiente. Ela veste um vestido boêmio fluido, que se move graciosamente ao ritmo do cavalo, com o tecido fluindo de forma fluida no movimento animado. A luz solar filtrada pelas árvores projeta padrões suaves e pictóricos no chão da floresta. Sua postura é elegante, demonstrando tanto controle quanto elegância enquanto guia o cavalo com facilidade. O estilo suave e fluido da animação adiciona uma qualidade onírica à cena, com a postura calma da mulher e o ambiente pacífico evocando uma sensação de liberdade e harmonia. |
![]() | ![]() | O vídeo, em um estilo animado cativante, mostra uma mulher de pé no centro de uma floresta nevada, com os olhos semicerrados em concentração enquanto estende a mão para frente. Ela veste um manto azul profundo, e sua respiração é visível no ar frio, que é renderizado com traços suaves e etéreos. Um leve sorriso surge em seus lábios enquanto ela invoca um fio de magia de gelo, observando com foco enquanto as árvores ao redor e o chão começam a cintilar e congelar, cobertos por delicados cristais de gelo. O movimento fluido da animação dá vida à magia, com a geada se espalhando para fora em padrões intrincados e brilhantes. O ambiente é pintado com tons suaves, semelhantes a aquarela, realçando a atmosfera mágica e onírica. O clima geral é sereno, porém poderoso, com o ar quieto do inverno amplificando a beleza delicada da cena congelada. |
![]() | ![]() | A animação apresenta um retrato lúdico de um vendedor de balões em pé, sob uma brisa suave, capturado com pinceladas suaves e nebulosas que evocam a sensação de um dia sereno de primavera. Seu rosto é emoldurado por um sorriso gentil, seus olhos levemente semicerrados contra o sol, enquanto alguns fios de cabelo balançam ao vento. Ele veste uma camisa clara, em tons pastel, e os balões ao seu redor balançam com o vento, adicionando um senso de brincadeira à cena. O fundo se desfoca suavemente, com indícios de um mercado vibrante ou um parque, realçando o clima leve, porém terno, do momento. |
![]() | ![]() | O vídeo captura um menino caminhando por uma rua da cidade, filmado em preto e branco em uma câmera clássica de 35mm. Sua expressão é pensativa, com a sobrancelha levemente franzida, como se estivesse absorto em contemplação. O grão do filme adiciona uma qualidade texturizada e atemporal à imagem, evocando um senso de nostalgia. Ao seu redor, a paisagem urbana é repleta de prédios vintage, calçadas de paralelepípedos e figuras suavemente desfocadas passando por perto, com contornos tênues e indistintos. Os postes de luz projetam um brilho suave, enquanto sombras dançam pelo caminho do menino, adicionando profundidade à cena. A iluminação destaca o sorriso sutil do menino, sugerindo um momento fugaz de curiosidade. A atmosfera cinematográfica geral, completa com a estética de fotogramas de filmes clássicos e contrastes dramáticos, confere à cena um tom evocativo e introspectivo. |
![]() | ![]() | O vídeo mostra um bebê vestindo uma capa de super-herói vibrante, de pé com confiança e os braços erguidos em uma pose poderosa. O bebê tem uma expressão determinada no rosto, com os olhos arregalados e os lábios cerrados em concentração, como se estivesse pronto para enfrentar um desafio. O cenário parece lúdico, com brinquedos coloridos espalhados ao redor e um tapete macio sob os pés, enquanto a luz do sol entra por uma janela próxima, destacando a capa ao bater e reforçando a impressão de heroísmo. A atmosfera geral é leve e divertida, com as expressões do bebê capturando uma mistura de inocência e uma tentativa adorável de bravura, como se estivesse realmente pronto para salvar o dia. |
Recursos
Saiba mais sobre ConsisID com os seguintes recursos.
- Um vídeo demonstrando os principais recursos do ConsisID.
- O artigo de pesquisa, Identity-Preserving Text-to-Video Generation by Frequency Decomposition, para mais detalhes.
ConsisIDPipeline
ConsisIDPipelineOutput
classe diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput
< source >( frames: Tensor )
Parâmetros
- frames (
torch.Tensor,np.ndarrayou list[list[PIL.Image.Image]]) — lista de saídas de vídeo - Pode ser uma lista aninhada de comprimentobatch_size,com cada sublista contendo sequências de imagens PIL desruidas de comprimentonum_frames.Também pode ser um array NumPy ou tensor Torch de forma(batch_size, num_frames, channels, height, width).
Classe de saída para pipelines ConsisID.









