Diffusers documentation

ConsisID

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

ConsisID

LoRA

Génération de vidéos à partir de texte préservant l'identité par décomposition en fréquences de l'Université de Pékin & de l'Université de Rochester & autres, par Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan.

L'abstract de l'article est :

La génération de texte vers vidéo préservant l'identité (IPT2V) vise à créer des vidéos haute fidélité avec une identité humaine cohérente. C'est une tâche importante en génération vidéo, mais elle reste un problème ouvert pour les modèles génératifs. Cet article repousse la frontière technique de l'IPT2V dans deux directions qui n'ont pas été résolues dans la littérature : (1) un pipeline sans réglage (tuning-free) sans finetuning fastidieux cas par cas, et (2) un schéma de contrôle basé sur un Diffusion Transformer (DiT) préservant l'identité et sensible aux fréquences. Pour atteindre ces objectifs, nous proposons ConsisID, un modèle IPT2V contrôlable basé sur DiT et sans réglage (tuning-free) pour maintenir l'identité consisante dans la vidéo générée. Inspiré par des travaux antérieurs sur l'analyse en fréquence des transformers de vision/diffusion, il utilise des signaux de contrôle d'identité dans le domaine fréquentiel, où les traits du visage peuvent être décomposés en fonctionnalités globales basse fréquence (par exemple, le profil, les proportions) et en fonctionnalités intrinsèques haute fréquence (par exemple, les marqueurs d'identité qui restent inchangés par les variations de pose). D'abord, d'un point de vue basse fréquence, nous introduisons un extracteur facial global, qui encode l'image de référence et les points clés du visage dans un espace latent, générant des fonctionnalités enrichies d'informations basse fréquence. Ces fonctionnalités sont ensuite intégrées dans les couches superficielles du réseau pour atténuer les défis d'entraînement associés à DiT. Deuxièmement, d'un point de vue haute fréquence, nous concevons un extracteur facial local pour capturer les détails haute fréquence et les injecter dans les blocs transformer, renforçant la capacité du modèle à préserver les fonctionnalités fines. Pour exploiter les informations fréquentielles pour la préservation de l'identité, nous proposons une stratégie d'entraînement hiérarchique, transformant un modèle de génération vidéo pré-entraîné standard en modèle IPT2V. Des expériences étendues démontrent que notre schéma heuristique sensible aux fréquences fournit une solution de contrôle optimale pour les modèles basés sur DiT. Grâce à ce schéma, notre ConsisID obtient d'excellents résultats dans la génération de vidéos de haute qualité préservant l'identité, faisant des progrès vers un IPT2V plus efficace. Les poids du modèle ConsID sont publiquement disponibles à l'adresse https://github.com/PKU-YuanGroup/ConsisID.

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 SHYuanBest. La base de code originale peut être trouvée ici. Les poids originaux sont disponibles sous hf.co/BestWishYsh.

Il existe deux points de contrôle officiels de ConsisID pour la génération de vidéos à partir de texte préservant l'identité.

checkpointsdtype d'inférence recommandé
BestWishYsh/ConsisID-previewtorch.bfloat16
BestWishYsh/ConsisID-1.5torch.bfloat16

Optimisation de la mémoire

ConsisID nécessite environ 44 Go de mémoire GPU pour décoder 49 images (6 secondes de vidéo à 8 FPS) avec une résolution de sortie de 720x480 (L x H), ce qui rend son exécution impossible sur des GPU grand public ou sur des T4 Colab gratuits. Les optimisations de mémoire suivantes peuvent être utilisées pour réduire l’empreinte mémoire. Pour la réplication, vous pouvez consulter ce script.

Fonction (superposer à la précédente)Mémoire maximale allouéeMémoire maximale réservée
-37 Go44 Go
enable_model_cpu_offload22 Go25 Go
enable_sequential_cpu_offload16 Go22 Go
vae.enable_slicing16 Go22 Go
vae.enable_tiling5 Go7 Go

Charger des points de contrôle de modèle

Les poids du modèle peuvent être stockés dans des sous-dossiers distincts sur le Hub ou localement, auquel cas vous devez utiliser la méthode 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")

Texte-vers-vidéo préservant l'identité

Pour la génération de texte vers vidéo préservant l’identité, transmettez un prompt texte et une image contenant un visage net (par exemple, de préférence en buste ou en pied). Par défaut, ConsisID génère une vidéo de 720x480 pour de meilleurs résultats.

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)
Image du visageVidéoDescription
La vidéo, réalisée dans un style animé soigneusement travaillé, met en scène une femme confiante chevauchant un cheval à travers une clairière boisée luxuriante. Son expression est concentrée mais sereine tandis qu’elle ajuste son chapeau à large bord d’une main experte. Elle porte une robe bohème fluide, qui se meut gracieusement au rythme du cheval, le tissu ondulant avec fluidité dans le mouvement animé. La lumière du soleil, tamisée par les arbres, projette des motifs doux et picturaux sur le sol de la forêt. Sa posture est posée, dégageant à la fois maîtrise et élégance alors qu’elle guide le cheval avec aisance. Le style doux et fluide de l’animation confère à la scène une qualité onirique, l’attitude calme de la femme et l’environnement paisible évoquant un sentiment de liberté et d’harmonie.
La vidéo, dans un style animé captivant, montre une femme debout au centre d'une forêt enneigée, les yeux plissés de concentration tandis qu'elle tend la main en avant. Elle est vêtue d'une cape bleu profond, son souffle visible dans l'air froid, rendu par des traits doux et éthérés. Un léger sourire flotte sur ses lèvres alors qu'elle invoque un filet de magie glaciale, observant avec attention les arbres et le sol environnants commencer à scintiller et à geler, recouverts de délicats cristaux de glace. Le mouvement fluide de l'animation donne vie à la magie, la givre s'étendant vers l'extérieur dans des motifs complexes et scintillants. L'environnement est peint avec des teintes douces, semblables à de l'aquarelle, renforçant l'atmosphère magique et onirique. L'ambiance générale est sereine mais puissante, l'air hivernal silencieux amplifiant la beauté délicate de la scène gelée.
L'animation présente un portrait plein de fantaisie d'un vendeur de ballons se tenant dans une brise légère, capturé par des coups de pinceau doux et voilés qui évoquent l'atmosphère d'une journée de printemps sereine. Son visage est encadré par un sourire doux, ses yeux plissés légèrement face au soleil, tandis que quelques mèches de cheveux flottent dans le vent. Il porte une chemise légère aux couleurs pastel, et les ballons autour de lui se balancent au gré du vent, ajoutant une touche de légèreté à la scène. L'arrière-plan est flou et doux, avec des indices d'un marché vibrant ou d'un parc, renforçant l'ambiance à la fois légère et tendre de l'instant.
La vidéo capture un garçon marchant le long d'une rue de ville, filmé en noir et blanc sur un appareil photo classique 35 mm. Son expression est réfléchie, son front légèrement froncé comme s'il était perdu dans la contemplation. Le grain du film ajoute une qualité texturée et intemporelle à l'image, évoquant un sentiment de nostalgie. Autour de lui, le paysage urbain est rempli de bâtiments vintage, de trottoirs en pavés et de silhouettes floues qui passent, leurs contours vagues et indistincts. Les lampadaires projettent une lueur douce, tandis que les ombres dansent sur le chemin du garçon, ajoutant de la profondeur à la scène. L'éclairage met en valeur le sourire subtil du garçon, laissant entrevoir un moment fugace de curiosité. L'atmosphère cinématographique générale, avec ses esthétiques de plan fixe classique et ses contrastes dramatiques, confère à la scène un sentiment évocateur et introspectif.
La vidéo montre un bébé portant une cape de super-héros éclatante, debout avec assurance, les bras levés dans une posture puissante. Le bébé arbore un air déterminé, les yeux écarquillés et les lèvres pincées de concentration, comme s'il était prêt à relever un défi. Le décor semble ludique, avec des jouets colorés éparpillés autour et un tapis moelleux sous les pieds, tandis que la lumière du soleil filtre par une fenêtre voisine, mettant en valeur la cape qui flotte et renforçant l'impression d'héroïsme. L'atmosphère générale est légère et amusante, les expressions du bébé capturant un mélange d'innocence et d'une adorable tentative de bravoure, comme s'il était véritablement prêt à sauver la situation.

Ressources

En savoir plus sur ConsisID grâce aux ressources suivantes.

ConsisIDPipeline

classe diffusers.ConsisIDPipeline

< >

( *args**kwargs )

__call__

( *args**kwargs )

Appeler self en tant que fonction.

ConsisIDPipelineOutput

classe diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput

< >

( frames: Tensor )

Paramètres

  • frames (torch.Tensor, np.ndarray ou list[list[PIL.Image.Image]]) — liste des sorties vidéo - Il peut s'agir d'une liste imbriquée de longueur batch_size, où chaque sous-liste contient des séquences d'images PIL débruitées de longueur num_frames. Il peut également s'agir d'un tableau NumPy ou d'un tenseur Torch de forme (batch_size, num_frames, channels, height, width).

Classe de sortie pour les pipelines ConsisID.

Update on GitHub