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

Identity-Preserving Text-to-Video Generation by Frequency Decomposition từ Đại học Bắc Kinh & Đại học Rochester & v.v., bởi Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan.

Tóm tắt từ bài báo là:

Việc tạo video từ văn bản có bảo toàn danh tính (IPT2V) nhằm mục đích tạo ra các video có độ trung thực cao với danh tính con người nhất quán. Đây là một nhiệm vụ quan trọng trong tạo video nhưng vẫn là một vấn đề mở đối với các mô hình sinh. Bài báo này đẩy lùi ranh giới kỹ thuật của IPT2V theo hai hướng chưa được giải quyết trong tài liệu: (1) Một pipeline không cần tinh chỉnh mà không phải tinh chỉnh lại từng trường hợp một, và (2) Một phương án điều khiển dựa trên Diffusion Transformer (DiT) có bảo toàn danh tính và nhận thức tần số. Để đạt được những mục tiêu này, chúng tôi đề xuất ConsisID, một mô hình IPT2V có thể điều khiển dựa trên DiT, không cần tinh chỉnh, để giữ cho danh tính con người identity consistent trong video được tạo ra. Lấy cảm hứng từ các phát hiện trước đó về phân tích tần số của vision/diffusion transformers, nó sử dụng các tín hiệu điều khiển danh tính trong miền tần số, nơi các đặc điểm khuôn mặt có thể được phân tách thành các đặc điểm toàn cục tần số thấp (ví dụ: hồ sơ, tỷ lệ) và các đặc điểm nội tại tần số cao (ví dụ: các dấu hiệu danh tính không bị ảnh hưởng bởi sự thay đổi tư thế). Thứ nhất, từ góc nhìn tần số thấp, chúng tôi giới thiệu một bộ trích xuất khuôn mặt toàn cục, mã hóa hình ảnh tham chiếu và các điểm chính của khuôn mặt vào không gian tiềm ẩn, tạo ra các đặc điểm được làm giàu với thông tin tần số thấp. Các đặc điểm này sau đó được tích hợp vào các lớp nông của mạng để giảm bớt các thách thức huấn luyện liên quan đến DiT. Thứ hai, từ góc nhìn tần số cao, chúng tôi thiết kế một bộ trích xuất khuôn mặt cục bộ để nắm bắt các chi tiết tần số cao và tiêm chúng vào các khối transformer, tăng cường khả năng của mô hình trong việc bảo toàn các đặc điểm chi tiết. Để tận dụng thông tin tần số cho việc bảo toàn danh tính, chúng tôi đề xuất một chiến lược huấn luyện phân cấp, biến đổi một mô hình tạo video được huấn luyện trước thông thường thành một mô hình IPT2V. Các thí nghiệm rộng rãi cho thấy rằng phương án nhận thức tần số mang tính trực giác của chúng tôi cung cấp một giải pháp điều khiển tối ưu cho các mô hình dựa trên DiT. Nhờ phương án này, ConsisID của chúng tôi đạt được kết quả xuất sắc trong việc tạo ra các video chất lượng cao, có bảo toàn danh tính, tạo bước tiến hướng tới IPT2V hiệu quả hơn. Trọng số mô hình của ConsID được công khai tại https://github.com/PKU-YuanGroup/ConsisID.

Hãy chắc chắn xem qua hướng dẫn về Schedulers để tìm hiểu cách khám phá sự đánh đổi giữa tốc độ và chất lượng của scheduler, và xem phần tái sử dụng các thành phần giữa các pipeline để tìm hiểu cách nạp các thành phần giống nhau vào nhiều pipeline một cách hiệu quả.

Pipeline này được đóng góp bởi SHYuanBest. Mã nguồn gốc có thể được tìm thấy tại đây. Trọng số gốc có thể được tìm thấy tại hf.co/BestWishYsh.

Có hai checkpoint chính thức của ConsisID cho việc tạo video từ văn bản mà vẫn giữ nguyên danh tính.

checkpointsdtype suy luận được khuyến nghị
BestWishYsh/ConsisID-previewtorch.bfloat16
BestWishYsh/ConsisID-1.5torch.bfloat16

Tối ưu hóa bộ nhớ

ConsisID cần khoảng 44 GB bộ nhớ GPU để giải mã 49 khung hình (6 giây video ở 8 FPS) với độ phân giải đầu ra 720x480 (Rộng x Cao), khiến việc chạy trên GPU tiêu dùng hoặc T4 Colab miễn phí trở nên không khả thi. Các tối ưu hóa bộ nhớ sau đây có thể được sử dụng để giảm dung lượng bộ nhớ. Để tái hiện, bạn có thể tham khảo script này.

Tính năng (chồng lên tính năng trước đó)Bộ nhớ tối đa đã cấp phátBộ nhớ tối đa được dành
-37 GB44 GB
enable_model_cpu_offload22 GB25 GB
enable_sequential_cpu_offload16 GB22 GB
vae.enable_slicing16 GB22 GB
vae.enable_tiling5 GB7 GB

Tải các điểm kiểm tra của mô hình

Trọng số mô hình có thể được lưu trong các thư mục con riêng biệt trên Hub hoặc cục bộ, trong trường hợp đó, bạn nên sử dụng phương thức 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")

Tạo video từ văn bản giữ nguyên danh tính

Để tạo video từ văn bản mà vẫn giữ nguyên danh tính, hãy truyền vào một prompt văn bản và một hình ảnh chứa khuôn mặt rõ ràng (ví dụ: ưu tiên ảnh nửa người hoặc toàn thân). Mặc định, ConsisID tạo video 720x480 để đạt kết quả tốt nhất.

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)
Hình ảnh khuôn mặtVideoMô tả
Video, với phong cách hoạt hình được chế tác tinh tế, khắc họa một người phụ nữ tự tin cưỡi ngựa băng qua một khoảng rừng rậm rạp. Vẻ mặt của cô tập trung nhưng vẫn điềm tĩnh khi cô chỉnh chiếc mũ vành rộng bằng bàn tay điêu luyện. Cô mặc một chiếc váy bohemian bay bổng, uyển chuyển theo nhịp bước của con ngựa, chất vải trôi chảy mượt mà trong chuyển động hoạt hình. Ánh nắng chập chờn xuyên qua tán cây, tạo nên những họa tiết mềm mại, mang nét vẽ sơn dầu trên mặt đất rừng. Tư thế của cô đầy khí chất, thể hiện cả sự kiểm soát lẫn vẻ thanh lịch khi cô dẫn dắt con ngựa một cách dễ dàng. Phong cách hoạt hình nhẹ nhàng, lưu loát thêm vào cảnh một chất mơ màng, với vẻ điềm tĩnh của người phụ nữ và khung cảnh yên bình xung quanh gợi lên cảm giác tự do và hài hòa.
Video, với phong cách hoạt hình cuốn hút, cho thấy một người phụ nữ đứng giữa khu rừng tuyết, đôi mắt cô nheo lại trong sự tập trung khi đưa tay về phía trước. Cô khoác chiếc áo choàng màu xanh dương đậm, hơi thở hiện rõ trong không khí lạnh, được thể hiện bằng những nét vẽ mềm mại, huyền ảo. Một nụ cười nhẹ hiện trên môi khi cô triệu hồi một luồng phép thuật băng giá, chăm chú quan sát khi những cây cối và mặt đất xung quanh bắt đầu lấp lánh và đóng băng, phủ đầy những tinh thể băng mỏng manh. Chuyển động mượt mà của hoạt hình thổi hồn vào phép thuật, với lớp sương giá lan ra ngoài theo những hoa văn tinh xảo, lấp lánh. Môi trường được tô điểm bằng những sắc màu mềm mại như tranh nước, làm tăng thêm bầu không khí ma thuật, mơ màng. Tổng thể mang lại cảm giác yên bình nhưng đầy sức mạnh, với không khí mùa đông tĩnh lặng làm nổi bật vẻ đẹp tinh tế của khung cảnh đóng băng.
Đoạn hoạt hình khắc họa chân dung đầy chất thơ của một người bán bóng bay đứng trong làn gió nhẹ, được bắt trọn bằng những nét cọ mềm mại, mờ ảo gợi lên cảm giác của một ngày xuân thanh bình. Khuôn mặt anh được bao quanh bởi nụ cười dịu dàng, đôi mắt hơi nheo lại trước ánh nắng, trong khi vài sợi tóc bay phất phơ trong gió. Anh mặc một chiếc áo sơ mi màu pastel nhạt, và những quả bóng xung quanh anh đung đưa theo gió, thêm vào cảnh vật một nét vui tươi. Nền phía sau mờ dần nhẹ nhàng, với những nét phác gợi nhớ về một khu chợ hoặc công viên rực rỡ, làm nổi bật tâm trạng nhẹ nhàng mà dịu dàng của khoảnh khắc ấy.
Video ghi lại hình ảnh một cậu bé đi dọc theo một con phố trong thành phố, được quay bằng máy ảnh 35mm cổ điển với tông đen trắng. Vẻ mặt của cậu đầy suy tư, đôi mày hơi nhíu lại như thể đang chìm trong dòng suy nghĩ. Lớp hạt phim tạo thêm chất liệu thô ráp, mang tính vượt thời gian cho khung hình, gợi lên cảm giác hoài niệm. Xung quanh cậu, cảnh quan thành phố hiện lên với những tòa nhà cổ kính, lối đi lát đá cuội và những bóng người lướt qua mờ ảo, đường nét phôi pha và không rõ ràng. Ánh đèn đường tỏa ra một vầng sáng dịu dàng, trong khi những bóng đổ trải dài trên lối đi của cậu bé, thêm chiều sâu cho khung cảnh. Ánh sáng làm nổi bật nụ cười nhẹ nhàng của cậu, hé lộ một khoảnh khắc tò mò thoáng qua. Bầu không khí điện ảnh tổng thể, với thẩm mỹ của những khung hình phim cổ điển và sự tương phản kịch tính, mang lại cho cảnh quay một cảm giác gợi cảm và nội tâm.
Video có hình ảnh một em bé đội chiếc áo choàng siêu anh hùng rực rỡ, đứng đầy tự tin với hai cánh tay giơ cao trong tư thế mạnh mẽ. Em bé có vẻ mặt quyết tâm, đôi mắt mở to và đôi môi mím lại trong sự tập trung, như thể sẵn sàng đối mặt với thử thách. Bối cảnh trông vui nhộn, với những món đồ chơi nhiều màu sắc rải rác xung quanh và một tấm thảm mềm dưới chân, trong khi ánh nắng chiếu qua khung cửa sổ gần đó, làm nổi bật chiếc áo choàng bay phấp phới và tăng thêm ấn tượng về sự anh hùng. Bầu không khí tổng thể nhẹ nhàng và vui vẻ, với những biểu cảm của em bé nắm bắt được sự pha trộn giữa nét ngây thơ và nỗ lực dũng cảm đáng yêu, như thể thực sự sẵn sàng cứu rỗi cả ngày.

Tài nguyên

Tìm hiểu thêm về ConsisID với các tài nguyên sau.

ConsisIDPipeline

lớp diffusers.ConsisIDPipeline

< >

( *args**kwargs )

__call__

( *args**kwargs )

Gọi self như một hàm.

ConsisIDPipelineOutput

lớp diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput

< >

( frames: Tensor )

Tham số

  • frames (torch.Tensor, np.ndarray, hoặc list[list[PIL.Image.Image]]) — danh sách các đầu ra video - Có thể là một danh sách lồng nhau có độ dài batch_size, trong đó mỗi danh sách con chứa các chuỗi hình ảnh PIL đã khử nhiễu có độ dài num_frames. Nó cũng có thể là một mảng NumPy hoặc tensor Torch có hình dạng (batch_size, num_frames, channels, height, width).

Lớp đầu ra cho các pipeline ConsisID.

Update on GitHub