Diffusers documentation
ConsisID
ConsisID
Peking University & University of Rochester & etc의 Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan의 Identity-Preserving Text-to-Video Generation by Frequency Decomposition
해당 논문의 초록은 다음과 같습니다:
정체성 보존 텍스트-투-비디오(IPT2V) 생성은 일관된 인간 정체성을 가진 고충실도 비디오를 생성하는 것을 목표로 합니다. 이는 비디오 생성에서 중요한 과제이지만 생성 모델에 있어서는 여전히 미해결 과제로 남아 있습니다. 본 논문은 문헌에서 해결되지 않은 두 가지 방향으로 IPT2V의 기술적 한계를 확장합니다: (1) 번거로운 사례별 미세 조정 없이 작동하는 튜닝 프리 파이프라인, (2) 주파수 인식 휴리스틱 정체성 보존 Diffusion Transformer(DiT) 기반 제어 스킴. 이러한 목표를 달성하기 위해, 우리는 생성된 비디오에서 인간 identity consistent를 유지하는 튜닝 프리 DiT 기반 제어 가능한 IPT2V 모델인 ConsisID를 제안합니다. 비전/디퓨전 트랜스포머의 주파수 분석에 대한 기존 연구 결과를 참고하여, 얼굴 특징을 저주파 전역 특징(예: 프로필, 비율)과 고주파 고유 특징(예: 자세 변화에 영향을 받지 않는 정체성 마커)으로 분해할 수 있는 주파수 영역에서 정체성 제어 신호를 활용합니다. 먼저, 저주파 관점에서, 참조 이미지와 얼굴 키 포인트를 잠재 공간으로 인코딩하여 저주파 정보가 풍부해진 특징을 생성하는 전역 얼굴 추출기를 도입합니다. 이러한 특징은 네트워크의 얕은 레이어에 통합되어 DiT와 관련된 학습 난이도를 완화합니다. 둘째, 고주파 관점에서, 고주파 세부 사항을 포착하여 트랜스포머 블록에 주입함으로써 모델의 세밀한 특징 보존 능력을 향상시키는 로컬 얼굴 추출기를 설계합니다. 정체성 보존을 위해 주파수 정보를 활용하기 위해, 우리는 바닐라 사전 학습 비디오 생성 모델을 IPT2V 모델로 변환하는 계층적 학습 전략을 제안합니다. 광범위한 실험은 우리의 주파수 인식 휴리스틱 스킴이 DiT 기반 모델에 대해 최적의 제어 솔루션을 제공함을 보여줍니다. 이 스킴 덕분에, 우리의 ConsisID는 고품질, 정체성 보존 비디오 생성에서 뛰어난 결과를 달성하여 더 효과적인 IPT2V로 나아가는 데 기여합니다. ConsID의 모델 가중치는 https://github.com/PKU-YuanGroup/ConsisID에서 공개되어 있습니다.
Scheduler의 가이드를 확인하여 스케줄러의 속도와 품질 사이의 트레이드오프를 탐색하는 방법을 배우고, 파이프라인 간 구성 요소 재사용 섹션을 확인하여 동일한 구성 요소를 여러 파이프라인에 효율적으로 로드하는 방법을 배워보세요.
이 파이프라인은 SHYuanBest님이 기여했습니다. 원본 코드베이스는 여기에서 찾을 수 있습니다. 원본 가중치는 hf.co/BestWishYsh에서 찾을 수 있습니다.
정체성을 유지하는 텍스트-투-비디오를 위한 공식 ConsisID 체크포인트가 두 가지 있습니다.
| checkpoints | 권장 추론 dtype |
|---|---|
BestWishYsh/ConsisID-preview | torch.bfloat16 |
BestWishYsh/ConsisID-1.5 | torch.bfloat16 |
메모리 최적화
ConsisID는 720x480(W x H) 출력 해상도로 49프레임(8 FPS 기준 6초 분량의 비디오)을 디코딩하는 데 약 44 GB의 GPU 메모리가 필요하므로, 소비자용 GPU나 무료 티어 T4 Colab에서는 실행할 수 없습니다. 메모리 사용량을 줄이기 위해 다음 메모리 최적화 기법을 사용할 수 있습니다. 재현을 위해 이 스크립트를 참고할 수 있습니다.
| Feature (이전 항목 위에 겹치기) | 할당된 최대 메모리 | 예약된 최대 메모리 |
|---|---|---|
| - | 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 |
모델 체크포인트 로드
모델 가중치가 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")I cannot complete this request because the provided text is a single phrase without the required markup tags (e.g., , ) that define the structure and content boundaries for translation. Please provide the full block with the appropriate tags.
신원 보존 텍스트-투-비디오를 위해 텍스트 프롬프트와 명확한 얼굴이 포함된 이미지(예: 반신 또는 전신이 권장됨)를 전달합니다. 기본적으로 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)| 얼굴 이미지 | Video | 설명 |
|---|---|---|
![]() | ![]() | 아름다운 애니메이션 스타일로 제작된 이 영상에서는 자신감 있는 여성이 울창한 숲의 빈터를 말에 올라 타고 있는 모습이 담겨 있습니다. 그녀는 숙련된 손길로 넓은 챙 모자를 고치며 집중하면서도 평온한 표정을 짓고 있습니다. 흐르는 듯한 보헤미안 드레스를 입은 그녀는 말의 리듬에 맞춰 우아하게 움직이며, 애니메이션의 부드러운 움직임 속에서 원단이 유려하게 흘러갑니다. 나무 사이로 스며드는 반점 같은 햇살이 숲 바닥에 부드럽고 그림 같은 무늬를 만들어냅니다. 그녀는 말에 쉽게 지시를 내리며 우아함과 통제력을 동시에 보여주는 자세를 취하고 있습니다. 애니메이션의 부드럽고 유려한 스타일은 장면 전체에 몽환적인 분위기를 더하며, 여성의 차분한 태도와 평화로운 주변 환경은 자유와 조화의 느낌을 자아냅니다. |
![]() | ![]() | 매혹적인 애니메이션 스타일의 영상에서, 한 여성이 눈 덮인 숲의 중앙에 서 있습니다. 그녀는 깊은 파란색 망토를 걸치고 있으며, 차가운 공기 속에서 숨결이 보일 정도로 집중된 눈빛으로 손을 앞으로 뻗고 있습니다. 차가운 공기는 부드럽고 몽환적인 붓질로 표현되어 있습니다. 그녀는 입가에 은은한 미소를 띠며 얼음 마법의 가느다란 기운을 불러오며, 주변 나무와 땅이 섬세한 얼음 결정으로 덮이며 반짝이고 얼어붙기 시작하는 것을 집중하여 지켜봅니다. 애니메이션의 유려한 움직임은 마법을 생생하게 구현하며, 서리가 정교하고 반짝이는 패턴으로 바깥쪽으로 퍼져 나갑니다. 환경은 부드러운 수채화 같은 색조로 그려져 마법적이고 꿈결 같은 분위기를 한층 더 강조합니다. 전반적인 분위기는 고요하면서도 강렬하며, 고요한 겨울 공기가 얼어붙은 장면의 섬세한 아름다움을 더욱 돋보이게 합니다. |
![]() | ![]() | 애니메이션은 부드러운 봄날의 분위기를 자아내는 부드럽고 흐릿한 붓질로 포착된, 은은한 바람 속에 서 있는 풍선 판매원의 환상적인 초상화를 보여줍니다. 그의 얼굴은 부드러운 미소로 감싸여 있고, 햇빛을 향해 눈이 살짝 가늘어지며 몇 가닥의 머리카락이 바람에 날립니다. 그는 밝고 파스텔 톤의 셔츠를 입고 있으며, 주위의 풍선들이 바람에 흔들리며 장면의 장난기 어린 느낌을 더합니다. 배경은 생동감 있는 시장이나 공원의 흔적이 어렴풋이 보일 정도로 부드럽게 흐려져, 이 순간의 경쾌하면서도 다정한 분위기를 한층 더 강조합니다. |
![]() | ![]() | 이 영상은 고전적인 35mm 카메라로 흑백으로 촬영된 도시 거리를 걷는 소년을 담고 있습니다. 그의 표정은 사색에 잠긴 듯하며, 마치 깊은 생각에 빠져 있는 것처럼 이마가 살짝 찌푸려져 있습니다. 필름 그레인은 이미지에 질감 있고 시대를 초월한 느낌을 더해 향수를 불러일으킵니다. 그의 주변에는 빈티지한 건물, 자갈길, 그리고 흐릿하게 보이며 지나가는 사람들의 실루엣으로 가득한 도시 풍경이 펼쳐져 있습니다. 가로등은 은은한 빛을 발산하고, 소년의 발길 아래 그림자가 춤을 추며 장면의 깊이를 더합니다. 조명은 소년의 미묘한 미소를 부각시켜, 잠깐 스치는 호기심의 순간을 암시합니다. 고전적인 필름 스틸의 미학과 드라마틱한 대비가 어우러진 전반적인 시네마틱한 분위기는 이 장면에 감성적이고 내성적인 느낌을 부여합니다. |
![]() | ![]() | 영상에는 밝은 색의 슈퍼히어로 망토를 두른 아기가 강렬한 자세로 팔을 들어 자신감 있게 서 있는 모습이 담겨 있습니다. 아기의 얼굴에는 결의가 서려 있으며, 눈은 동그래지고 입술은 집중된 듯 오므라져 있어 도전을 받아들일 준비가 된 것처럼 보입니다. 주변에는 알록달록한 장난감이 흩어져 있고 발밑에는 부드러운 카펫이 깔려 있어 장난기 어린 분위기를 자아내며, 근처 창문으로 들어오는 햇살이 나부끼는 망토를 비추며 영웅적인 인상을 더합니다. 전반적인 분위기는 가볍고 재미있으며, 아기의 표정은 순수함과 사랑스러운 용기 있는 시도가 어우러져 마치 정말로 세상을 구할 준비가 된 것처럼 보입니다. |
리소스
다음 리소스를 통해 ConsisID에 대해 자세히 알아보세요.
- ConsisID의 주요 기능을 보여주는 동영상입니다.
- 자세한 내용은 연구 논문 주파수 분해를 통한 신원 보존 텍스트-비디오 생성을 참고하세요.
ConsisIDPipeline
ConsisIDPipelineOutput
클래스 diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput
< source >( frames: Tensor )
ConsisID 파이프라인의 출력 클래스입니다.









