Diffusers documentation
ConsisID
ConsisID
Генерация видео из текста с сохранением идентичности с помощью частотного разложения от Peking University & University of Rochester & и др., авторы Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan.
Аннотация из статьи:
Генерация текста в видео с сохранением идентичности (IPT2V) направлена на создание высококачественных видео с последовательной человеческой идентичностью. Это важная задача в области генерации видео, которая остаётся открытой проблемой для генеративных моделей. Данная статья продвигает технический фронт IPT2V в двух направлениях, которые не были решены в литературе: (1) пайплайн без тюнинга, исключающий утомительную поштучную дообучение, и (2) частотно-осведомлённая эвристическая схема управления на основе Diffusion Transformer (DiT) с сохранением идентичности. Для достижения этих целей мы предлагаем ConsisID — модель управляемого IPT2V на основе DiT без тюнинга, которая сохраняет человеческую identity consistent в сгенерированном видео. Вдохновлённые предыдущими результатами в области частотного анализа vision/diffusion transformers, модель использует сигналы управления идентичностью в частотной области, где черты лица можно разложить на низкочастотные глобальные признаки (например, профиль, пропорции) и высокочастотные внутренние признаки (например, маркеры идентичности, не подверженные влиянию изменений позы). Во-первых, с точки зрения низких частот мы вводим глобальный экстрактор лица, который кодирует эталонное изображение и ключевые точки лица в латентное пространство, генерируя признаки, обогащённые низкочастотной информацией. Затем эти признаки интегрируются в поверхностные слои сети, чтобы смягчить трудности обучения, связанные с DiT. Во-вторых, с точки зрения высоких частот мы проектируем локальный экстрактор лица для захвата высокочастотных деталей и их инъекции в блоки трансформера, что повышает способность модели сохранять тонкие признаки. Для использования частотной информации для сохранения идентичности мы предлагаем иерархическую стратегию обучения, превращающую стандартную предобученную модель генерации видео в модель IPT2V. Обширные эксперименты демонстрируют, что наша частотно-осведомлённая эвристическая схема обеспечивает оптимальное решение для управления моделями на основе DiT. Благодаря этой схеме наша ConsisID достигает отличных результатов в генерации высококачественных видео с сохранением идентичности, продвигаясь к более эффективному IPT2V. Веса модели ConsisID общедоступны по адресу https://github.com/PKU-YuanGroup/ConsisID.
Обязательно ознакомьтесь с руководством по планировщикам, чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом повторное использование компонентов в разных конвейерах, чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров.
Этот конвейер был предложен пользователем SHYuanBest. Исходная кодовая база доступна здесь. Исходные веса можно найти по адресу hf.co/BestWishYsh.
Существуют две официальные контрольные точки ConsisID для генерации видео из текста с сохранением идентичности.
| чекпоинты | рекомендуемый тип данных для вывода |
|---|---|
BestWishYsh/ConsisID-preview | torch.bfloat16 |
BestWishYsh/ConsisID-1.5 | torch.bfloat16 |
Оптимизация памяти
ConsisID требует около 44 ГБ видеопамяти GPU для декодирования 49 кадров (6 секунд видео при 8 FPS) с разрешением вывода 720x480 (W x H), что делает невозможным его запуск на потребительских GPU или бесплатных T4 Colab. Для снижения потребления памяти можно использовать следующие оптимизации. Для воспроизведения результатов вы можете обратиться к этому скрипту.
| Функция (наложить предыдущую) | Максимально выделенная память | Максимальный зарезервированный объем памяти |
|---|---|---|
| - | 37 ГБ | 44 ГБ |
| enable_model_cpu_offload | 22 ГБ | 25 ГБ |
| enable_sequential_cpu_offload | 16 ГБ | 22 ГБ |
| vae.enable_slicing | 16 ГБ | 22 ГБ |
| vae.enable_tiling | 5 ГБ | 7 ГБ |
Загрузка контрольных точек модели
Веса модели могут храниться в отдельных подпапках на Hub или локально, в этом случае следует использовать метод 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")Генерация видео из текста с сохранением идентичности
Для создания текста в видео с сохранением идентичности передайте текстовый промпт и изображение с чётко видимым лицом (например, желательно в пол-фигуры или в полный рост). По умолчанию ConsisID генерирует видео с разрешением 720x480 для достижения наилучших результатов.
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)| Изображение лица | Видео | Описание |
|---|---|---|
![]() | ![]() | Видео, выполненное в изысканном анимационном стиле, показывает уверенную женщину, верхом на лошади проезжающую через густую лесную поляну. Её выражение лица сосредоточенное, но спокойное, пока она привычным движением руки поправляет шляпу с широкими полями. На ней свободное платье в богемном стиле, которое грациозно движется в ритме скачущей лошади, ткань плавно струится в анимированном движении. Пятнистый солнечный свет проникает сквозь деревья, отбрасывая на лесную подстилку мягкие, живописные узоры. Её осанка безупречна, демонстрируя как контроль, так и элегантность, когда она легко направляет лошадь. Мягкий, плавный стиль анимации придаёт сцене сновидческий характер, а спокойное demeanor женщины и мирное окружение вызывают чувство свободы и гармонии. |
![]() | ![]() | Видео в захватывающем анимационном стиле показывает женщину, стоящую в центре снежного леса. Она сужает глаза от сосредоточенности и вытягивает руку вперёд. На ней тёмно-синий плащ, а её дыхание видно в холодном воздухе, который изображён мягкими, эфирными штрихами. На её губах играет едва заметная улыбка, пока она призывает искру ледяной магии, сфокусированно наблюдая, как окружающие деревья и земля начинают мерцать и замерзать, покрываясь хрупкими ледяными кристаллами. Плавное движение анимации оживляет магию, и иней распространяется наружу, образуя сложные, сверкающие узоры. Окружение нарисовано мягкими, акварельными оттенками, что усиливает магическую, сновидческую атмосферу. Общее настроение — спокойное, но мощное, а тихий зимний воздух подчёркивает хрупкую красоту замёрзшей сцены. |
![]() | ![]() | В анимации изображён причудливый портрет продавца воздушных шаров, стоящего в лёгком бризе. Мягкие, дымчатые мазки кисти передают ощущение спокойного весеннего дня. Его лицо обрамлено нежной улыбкой, глаза слегка прищурены от солнца, а несколько прядей волос развеваются на ветру. Он одет в лёгкую рубашку пастельных тонов, а воздушные шары вокруг него покачиваются на ветру, придавая сцене игривость. Фон мягко размывается, угадывая яркие детали рынка или парка, что подчёркивает лёгкое, но трогательное настроение момента. |
![]() | ![]() | Видео показывает мальчика, идущего по городской улице, снятого на классическую 35-мм камеру в чёрно-белом формате. Его выражение задумчивое, брови слегка нахмурены, словно он погружён в размышления. Зернистость плёнки придаёт изображению фактурность и вневременность, вызывая чувство ностальгии. Вокруг него городской пейзаж заполнен старинными зданиями, брусчаткой и мягко размытыми силуэтами прохожих, чьи очертания кажутся бледными и нечёткими. Уличные фонари отбрасывают мягкое свечение, а тени играют на пути мальчика, добавляя сцене глубину. Освещение подчёркивает едва заметную улыбку на лице мальчика, намекая на мимолётный момент любопытства. Общая кинематографичная атмосфера, дополненная эстетикой классических кинокадров и драматичными контрастами, придаёт сцене выразительное и интроспективное настроение. |
![]() | ![]() | Видео показывает малыша в ярком супергеройском плаще, уверенно стоящего с поднятыми руками в мощной позе. На лице ребенка решительное выражение: глаза широко раскрыты, губы сжаты в концентрированном усилии, словно он готов принять вызов. Обстановка выглядит игривой: вокруг разбросаны яркие игрушки, под ногами лежит мягкий коврик, а солнечный свет, пробивающийся через ближайшее окно, подсвечивает развевающийся плащ и усиливает ощущение героизма. Общая атмосфера легкая и веселая, а выражения лица малыша передают смесь невинности и трогательной попытки проявить храбрость, словно он действительно готов спасти день. |
Ресурсы
Узнайте больше о ConsisID с помощью следующих ресурсов.
- Видео video, демонстрирующее основные возможности ConsisID.
- The research paper, Identity-Preserving Text-to-Video Generation by Frequency Decomposition for more details.
ConsisIDPipeline
ConsisIDPipelineOutput
класс diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput
< source >( frames: Tensor )
Параметры
- frames (
torch.Tensor,np.ndarrayили list[list[PIL.Image.Image]]) — список видеовыходов. Может быть вложенным списком длиныbatch_size,где каждый под-список содержит последовательности денойзированных изображений PIL длиныnum_frames.Также может быть массивом NumPy или тензором Torch с формой(batch_size, num_frames, channels, height, width).
Класс вывода для пайплайнов ConsisID.









