Buckets:
| # | |
| # Лицензия Apache License, Version 2.0 («Лицензия»); | |
| # вы можете использовать этот файл только в соответствии с Лицензией. | |
| # Вы можете получить копию Лицензии по адресу | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Если это не требуется применимым законодательством или не оговорено письменно, программное | |
| # распространяется по Лицензии на условиях «КАК ЕСТЬ», | |
| # БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, прямо указанных или подразумеваемых. | |
| # См. Лицензию для получения конкретных условий, регулирующих разрешения и | |
| # ограничениями, предусмотренными Лицензией. | |
| --> | |
| # ConsisID | |
| [Генерация видео из текста с сохранением идентичности с помощью частотного разложения](https://huggingface.co/papers/2411.17440) от 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 без тюнинга, которая сохраняет человеческую **id**entity **consis**tent в сгенерированном видео. Вдохновленные предыдущими результатами анализа частот в vision/diffusion transformers, модель использует сигналы управления идентичностью в частотной области, где черты лица можно разложить на низкочастотные глобальные признаки (например, профиль, пропорции) и высокочастотные внутренние признаки (например, маркеры идентичности, не подверженные влиянию изменений позы). Во-первых, с точки зрения низких частот мы вводим глобальный экстрактор лица, который кодирует эталонное изображение и ключевые точки лица в латентное пространство, генерируя признаки, обогащенные низкочастотной информацией. Затем эти признаки интегрируются в поверхностные слои сети, чтобы смягчить трудности обучения, связанные с DiT. Во-вторых, с точки зрения высоких частот мы проектируем локальный экстрактор лица для захвата высокочастотных деталей и их инъекции в блоки трансформера, что повышает способность модели сохранять тонкие признаки. Для использования частотной информации для сохранения идентичности мы предлагаем иерархическую стратегию обучения, превращающую стандартную предобученную модель генерации видео в модель IPT2V. Обширные эксперименты демонстрируют, что наша частотно-осведомленная эвристическая схема обеспечивает оптимальное решение для управления моделями на основе DiT. Благодаря этой схеме наша **ConsisID** достигает отличных результатов в генерации высококачественных видео с сохранением идентичности, продвигаясь к более эффективному IPT2V. Веса модели ConsisID общедоступны по адресу https://github.com/PKU-YuanGroup/ConsisID.* | |
| > [!TIP] | |
| > Обязательно ознакомьтесь с [руководством по планировщикам](../../using-diffusers/schedulers), чтобы узнать, как исследовать баланс между скоростью и качеством планировщика, а также с разделом [повторное использование компонентов в разных конвейерах](../../using-diffusers/loading#reusing-models-in-multiple-pipelines), чтобы узнать, как эффективно загружать одни и те же компоненты в несколько конвейеров. | |
| Этот конвейер был предложен пользователем [SHYuanBest](https://github.com/SHYuanBest). Исходная кодовая база доступна [здесь](https://github.com/PKU-YuanGroup/ConsisID). Исходные веса можно найти по адресу [hf.co/BestWishYsh](https://huggingface.co/BestWishYsh). | |
| Существуют две официальные контрольные точки ConsisID для генерации видео из текста с сохранением идентичности. | |
| | чекпоинты | рекомендуемый тип данных для вывода | | |
| |:---:|:---:| | |
| | [`BestWishYsh/ConsisID-preview`](https://huggingface.co/BestWishYsh/ConsisID-preview) | torch.bfloat16 | | |
| | [`BestWishYsh/ConsisID-1.5`](https://huggingface.co/BestWishYsh/ConsisID-preview) | torch.bfloat16 | | |
| ### Оптимизация памяти | |
| ConsisID требует около 44 ГБ видеопамяти GPU для декодирования 49 кадров (6 секунд видео при 8 FPS) с разрешением вывода 720x480 (W x H), что делает невозможным его запуск на потребительских GPU или бесплатных T4 Colab. Для снижения потребления памяти можно использовать следующие оптимизации. Для воспроизведения результатов вы можете обратиться к [этому](https://gist.github.com/SHYuanBest/bc4207c36f454f9e969adbb50eaf8258) скрипту. | |
| | Функция (наложить предыдущую) | Максимально выделенная память | Максимальный зарезервированный объем памяти | | |
| | :----------------------------- | :------------------- | :------------------ | | |
| | - | 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()](/docs/diffusers/main/ru/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained). | |
| ```python | |
| # !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 для достижения наилучших результатов. | |
| ```python | |
| 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) | |
| ``` | |
| Face Image Video Description | |
| Видео, выполненное в изысканном анимационном стиле, показывает уверенную женщину, верхом на лошади проезжающую через густую лесную поляну. Её выражение лица сосредоточенное, но спокойное, пока она привычным движением руки поправляет шляпу с широкими полями. На ней свободное платье в богемном стиле, которое грациозно движется в ритме скачущей лошади, ткань плавно струится в анимированном движении. Пятнистый солнечный свет проникает сквозь деревья, отбрасывая на лесную подстилку мягкие, живописные узоры. Её осанка безупречна, демонстрируя как контроль, так и элегантность, когда она легко направляет лошадь. Мягкий, плавный стиль анимации придаёт сцене сновидческий характер, а спокойное demeanor женщины и мирное окружение вызывают чувство свободы и гармонии. | |
| Видео в захватывающем анимационном стиле показывает женщину, стоящую в центре снежного леса. Она сужает глаза от сосредоточенности и вытягивает руку вперёд. На ней тёмно-синий плащ, а её дыхание видно в холодном воздухе, который изображён мягкими, эфирными штрихами. На её губах играет едва заметная улыбка, пока она призывает искру ледяной магии, сфокусированно наблюдая, как окружающие деревья и земля начинают мерцать и замерзать, покрываясь хрупкими ледяными кристаллами. Плавное движение анимации оживляет магию, и иней распространяется наружу, образуя сложные, сверкающие узоры. Окружение нарисовано мягкими, акварельными оттенками, что усиливает магическую, сновидческую атмосферу. Общее настроение — спокойное, но мощное, а тихий зимний воздух подчёркивает хрупкую красоту замёрзшей сцены. | |
| В анимации изображён причудливый портрет продавца воздушных шаров, стоящего в лёгком бризе. Мягкие, дымчатые мазки кисти передают ощущение спокойного весеннего дня. Его лицо обрамлено нежной улыбкой, глаза слегка прищурены от солнца, а несколько прядей волос развеваются на ветру. Он одет в лёгкую рубашку пастельных тонов, а воздушные шары вокруг него покачиваются на ветру, придавая сцене игривость. Фон мягко размывается, угадывая яркие детали рынка или парка, что подчёркивает лёгкое, но трогательное настроение момента. | |
| Видео показывает мальчика, идущего по городской улице, снятого на классическую 35-мм камеру в чёрно-белом формате. Его выражение задумчивое, брови слегка нахмурены, словно он погружён в размышления. Зернистость плёнки придаёт изображению фактурность и вневременность, вызывая чувство ностальгии. Вокруг него городской пейзаж заполнен старинными зданиями, брусчаткой и мягко размытыми силуэтами прохожих, чьи очертания кажутся бледными и нечёткими. Уличные фонари отбрасывают мягкое свечение, а тени играют на пути мальчика, добавляя сцене глубину. Освещение подчёркивает едва заметную улыбку на лице мальчика, намекая на мимолётный момент любопытства. Общая кинематографичная атмосфера, дополненная эстетикой классических кинокадров и драматичными контрастами, придаёт сцене выразительное и интроспективное настроение. | |
| Видео показывает малыша в ярком супергеройском плаще, уверенно стоящего с поднятыми руками в мощной позе. На лице ребенка решительное выражение: глаза широко раскрыты, губы сжаты в концентрированном усилии, словно он готов принять вызов. Обстановка выглядит игривой: вокруг разбросаны яркие игрушки, под ногами лежит мягкий коврик, а солнечный свет, пробивающийся через ближайшее окно, подсвечивает развевающийся плащ и усиливает ощущение героизма. Общая атмосфера легкая и веселая, а выражения лица малыша передают смесь невинности и трогательной попытки проявить храбрость, словно он действительно готов спасти день. | |
| ## Ресурсы | |
| Узнайте больше о ConsisID с помощью следующих ресурсов. | |
| - Видео [video](https://www.youtube.com/watch?v=PhlgC-bI5SQ), демонстрирующее основные возможности ConsisID. | |
| - The research paper, [Identity-Preserving Text-to-Video Generation by Frequency Decomposition](https://hf.co/papers/2411.17440) for more details. | |
| ## ConsisIDPipeline[[diffusers.ConsisIDPipeline]] | |
| #### diffusers.ConsisIDPipeline[[diffusers.ConsisIDPipeline]] | |
| ```python | |
| diffusers.ConsisIDPipeline(*args, **kwargs) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/dummy_torch_and_transformers_and_opencv_objects.py#L5) | |
| #### __call__[[diffusers.ConsisIDPipeline.__call__]] | |
| ```python | |
| __call__(*args, **kwargs) | |
| ``` | |
| Вызовите self как функцию. | |
| ## ConsisIDPipelineOutput[[diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput]] | |
| #### diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput[[diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput]] | |
| ```python | |
| diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput(frames: Tensor) | |
| ``` | |
| [Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/consisid/pipeline_output.py#L9) | |
| **Параметры:** | |
| 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. | |
Xet Storage Details
- Size:
- 20.4 kB
- Xet hash:
- fb120a7ad91ef08ee15390d1794695f08b071a157210c6170226d13c20d8ca5b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.