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

Генерация видео из текста с сохранением идентичности с помощью частотного разложения от 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-previewtorch.bfloat16
BestWishYsh/ConsisID-1.5torch.bfloat16

Оптимизация памяти

ConsisID требует около 44 ГБ видеопамяти GPU для декодирования 49 кадров (6 секунд видео при 8 FPS) с разрешением вывода 720x480 (W x H), что делает невозможным его запуск на потребительских GPU или бесплатных T4 Colab. Для снижения потребления памяти можно использовать следующие оптимизации. Для воспроизведения результатов вы можете обратиться к этому скрипту.

Функция (наложить предыдущую)Максимально выделенная памятьМаксимальный зарезервированный объем памяти
-37 ГБ44 ГБ
enable_model_cpu_offload22 ГБ25 ГБ
enable_sequential_cpu_offload16 ГБ22 ГБ
vae.enable_slicing16 ГБ22 ГБ
vae.enable_tiling5 ГБ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 с помощью следующих ресурсов.

ConsisIDPipeline

класс diffusers.ConsisIDPipeline

< >

( *args**kwargs )

__call__

( *args**kwargs )

Вызовите self как функцию.

ConsisIDPipelineOutput

класс diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput

< >

( 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.

Update on GitHub