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

Generasi Teks-ke-Video yang Mempertahankan Identitas melalui Dekomposisi Frekuensi dari Peking University & University of Rochester & lainnya, oleh Shenghai Yuan, Jinfa Huang, Xianyi He, Yunyang Ge, Yujun Shi, Liuhan Chen, Jiebo Luo, Li Yuan.

Abstrak dari makalah tersebut adalah:

Generasi teks-ke-video yang mempertahankan identitas (IPT2V) bertujuan untuk membuat video ber-fidelitas tinggi dengan identitas manusia yang konsisten. Ini adalah tugas penting dalam generasi video, tetapi masih menjadi masalah terbuka bagi model generatif. Kertas ini mendorong batas teknis IPT2V dalam dua arah yang belum terselesaikan dalam literatur: (1) pipeline tanpa penyetelan (tuning-free) tanpa penyetelan ulang (finetuning) yang melelahkan untuk setiap kasus, dan (2) skema kontrol berbasis Diffusion Transformer (DiT) yang mempertahankan identitas dan peka terhadap frekuensi. Untuk mencapai tujuan ini, kami mengusulkan ConsisID, model IPT2V yang dapat dikendalikan dan berbasis DiT tanpa penyetelan (tuning-free) untuk menjaga identitas manusia tetap consisten dalam video yang dihasilkan. Terinspirasi oleh temuan sebelumnya dalam analisis frekuensi dari transformer visi/difusi, model ini menggunakan sinyal kontrol identitas di domain frekuensi, di mana fitur wajah dapat didekomposisi menjadi fitur global berfrekuensi rendah (misalnya, profil, proporsi) dan fitur intrinsik berfrekuensi tinggi (misalnya, penanda identitas yang tidak terpengaruh oleh perubahan pose). Pertama, dari perspektif frekuensi rendah, kami memperkenalkan ekstraktor wajah global, yang mengkodekan gambar referensi dan titik-titik kunci wajah ke dalam ruang laten, menghasilkan fitur yang diperkaya dengan informasi frekuensi rendah. Fitur-fitur ini kemudian diintegrasikan ke dalam lapisan dangkal jaringan untuk meredakan tantangan pelatihan yang terkait dengan DiT. Kedua, dari perspektif frekuensi tinggi, kami merancang ekstraktor wajah lokal untuk menangkap detail frekuensi tinggi dan menyuntikkannya ke dalam blok transformer, meningkatkan kemampuan model untuk mempertahankan fitur berbutir halus. Untuk memanfaatkan informasi frekuensi untuk pelestarian identitas, kami mengusulkan strategi pelatihan hierarkis, yang mengubah model generasi video pra-dilatih biasa menjadi model IPT2V. Eksperimen ekstensif menunjukkan bahwa skema heuristik peka-frekuensi kami menyediakan solusi kontrol optimal untuk model berbasis DiT. Berkat skema ini, ConsisID kami mencapai hasil yang sangat baik dalam menghasilkan video berkualitas tinggi yang mempertahankan identitas, melangkah menuju IPT2V yang lebih efektif. Bobot model ConsisID tersedia secara publik di https://github.com/PKU-YuanGroup/ConsisID.

Pastikan untuk melihat panduan Schedulers untuk mempelajari cara mengeksplorasi tradeoff antara kecepatan dan kualitas scheduler, serta lihat bagian reuse components across pipelines untuk mempelajari cara memuat komponen yang sama secara efisien ke dalam beberapa pipeline.

Pipeline ini disumbangkan oleh SHYuanBest. Basis kode aslinya dapat ditemukan di sini. Bobot aslinya dapat ditemukan di bawah hf.co/BestWishYsh.

Terdapat dua checkpoint resmi ConsisID untuk text-to-video yang mempertahankan identitas.

checkpointsdtype inferensi yang direkomendasikan
BestWishYsh/ConsisID-previewtorch.bfloat16
BestWishYsh/ConsisID-1.5torch.bfloat16

Optimasi memori

ConsisID membutuhkan sekitar 44 GB memori GPU untuk mendekode 49 frame (6 detik video pada 8 FPS) dengan resolusi output 720x480 (W x H), sehingga tidak dapat dijalankan pada GPU konsumen atau Colab T4 tier gratis. Optimasi memori berikut dapat digunakan untuk mengurangi jejak memori. Untuk replikasi, Anda dapat merujuk pada skrip ini.

Fitur (tumpuk yang sebelumnya)Memori Maksimum yang DialokasikanMemori Maksimum yang Dipesan
-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

Muat Poin Pemeriksaan Model

Bobot model mungkin disimpan di subfolder terpisah di Hub atau secara lokal, dalam hal ini, Anda harus menggunakan metode 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")

Teks-ke-Video yang Menjaga Identitas

Untuk teks-ke-video yang mempertahankan identitas, berikan prompt teks dan gambar yang menampilkan wajah dengan jelas (misalnya, lebih baik setengah badan atau seluruh badan). Secara default, ConsisID menghasilkan video 720x480 untuk hasil terbaik.

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)
Gambar WajahVideoDeskripsi
Video ini, dengan gaya animasi yang indah dan terukur, menampilkan seorang wanita percaya diri yang menunggang kuda melintasi padang terbuka di hutan yang rimbun. Ekspresinya fokus namun tenang saat ia menyesuaikan topi bertepi lebarnya dengan tangan yang terlatih. Ia mengenakan gaun bohemian yang longgar, yang bergerak anggun mengikuti irama kuda, dengan kain yang mengalir mulus dalam gerakan animasi. Cahaya matahari yang tembus celah pepohonan menyaring ke bawah, menciptakan pola lembut bergaya lukisan di lantai hutan. Posturnya anggun, menunjukkan kontrol dan keanggunan saat ia memandu kuda dengan mudah. Gaya animasi yang lembut dan mengalir ini menambah nuansa mimpi pada adegan, dengan sikap tenang wanita tersebut dan lingkungan yang damai membangkitkan rasa kebebasan dan harmoni.
Video tersebut, dengan gaya animasi yang memikat, menampilkan seorang wanita berdiri di tengah hutan bersalju, matanya menyipit dalam konsentrasi saat ia mengulurkan tangannya ke depan. Ia mengenakan jubah biru tua, napasnya terlihat di udara dingin yang digambarkan dengan goresan lembut dan etereal. Senyum samar terukir di bibirnya saat ia memanggil secercah sihir es, mengamati dengan fokus saat pohon-pohon dan tanah di sekitarnya mulai berkilau dan membeku, tertutup kristal es yang halus. Gerak animasi yang mengalir membuat sihir itu terasa hidup, dengan embun beku yang menyebar ke luar dalam pola rumit yang berkilauan. Lingkungan digambarkan dengan nuansa lembut seperti cat air, meningkatkan suasana magis yang seperti mimpi. Suasana keseluruhan tenang namun kuat, dengan udara musim dingin yang sunyi memperkuat keindahan halus dari adegan yang membeku tersebut.
Animasi ini menampilkan potret imajinatif seorang penjual balon yang berdiri di tengah angin sepoi-sepoi, digambar dengan goresan kuas lembut dan berkabut yang membangkitkan nuansa hari musim semi yang tenang. Wajahnya dihiasi senyum lembut, matanya sedikit menyipit melawan sinar matahari, sementara beberapa helai rambutnya berkibar tertiup angin. Ia mengenakan kemeja berwarna pastel yang ringan, dan balon-balon di sekelilingnya bergoyang tertiup angin, menambah kesan ceria pada adegan. Latar belakangnya buram secara halus, dengan sentuhan pasar atau taman yang hidup, sehingga memperkuat suasana yang ringan namun penuh kelembutan pada momen tersebut.
Video ini menangkap seorang anak laki-laki yang berjalan di sepanjang jalan kota, difilmkan dalam hitam putih menggunakan kamera 35mm klasik. Ekspresinya tampak penuh pikiran, alisnya sedikit berkerut seolah ia tenggelam dalam kontemplasi. Butiran film (film grain) menambah kualitas bertekstur dan abadi pada gambar, membangkitkan rasa nostalgia. Di sekelilingnya, pemandangan kota dipenuhi bangunan bergaya vintage, trotoar berbatu, dan siluet orang-orang yang lewat dengan lembut dan buram, dengan garis luar yang samar dan tidak jelas. Lampu jalan memancarkan cahaya yang lembut, sementara bayangan bermain di sepanjang jalan anak laki-laki tersebut, menambah kedalaman pada adegan. Pencahayaan menyoroti senyum halus anak laki-laki itu, mengisyaratkan momen singkat rasa ingin tahu. Suasana sinematik secara keseluruhan, lengkap dengan estetika still film klasik dan kontras dramatis, memberikan nuansa yang evokatif dan introspektif pada adegan tersebut.
Video ini menampilkan bayi yang mengenakan jubah pahlawan super berwarna cerah, berdiri dengan percaya diri dengan kedua tangan terangkat dalam pose yang kuat. Bayi itu memiliki tatapan yang penuh tekad, dengan mata terbuka lebar dan bibir terkatup dalam konsentrasi, seolah-olah siap menghadapi tantangan. Pengaturannya tampak menyenangkan, dengan mainan-mainan berwarna-warni berserakan di sekitar dan karpet lembut di bawah kaki, sementara sinar matahari masuk melalui jendela di dekatnya, menyoroti jubah yang berkibar dan menambah kesan kepahlawanan. Suasana keseluruhan ringan dan menyenangkan, dengan ekspresi bayi yang menangkap campuran antara kepolosan dan upaya keberanian yang menggemaskan, seolah-olah benar-benar siap menyelamatkan hari.

Sumber daya

Pelajari lebih lanjut tentang ConsisID dengan sumber daya berikut.

ConsisIDPipeline

kelas diffusers.ConsisIDPipeline

< >

( *args**kwargs )

__call__

( *args**kwargs )

Panggil self sebagai fungsi.

ConsisIDPipelineOutput

kelas diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput

< >

( frames: Tensor )

Parameter

  • frames (torch.Tensor, np.ndarray, atau list[list[PIL.Image.Image]]) — daftar output video - Dapat berupa daftar bersarang dengan panjang batch_size, di mana setiap sub-daftar berisi urutan gambar PIL yang telah didenois dengan panjang num_frames. Dapat juga berupa array NumPy atau tensor Torch dengan bentuk (batch_size, num_frames, channels, height, width).

Kelas output untuk pipeline ConsisID.

Update on GitHub