Diffusers documentation
ConsisID
ConsisID
توليد فيديو من نص مع الحفاظ على الهوية عبر التحليل الترددي من جامعة بكين وجامعة روتشستر وغيرهما، بقلم شينغهاي يوان، جينفا هوانغ، شيانيي هيه، يونيانغ غي، يوجون شي، ليوهان تشن، جيبو لوهو، لي يوان.
ملخص الورقة البحثية هو:
تهدف توليد النص إلى الفيديو مع الحفاظ على الهوية (IPT2V) إلى إنشاء فيديوهات عالية الدقة مع هوية بشرية متسقة. وهي مهمة مهمة في توليد الفيديو لكنها لا تزال مشكلة مفتوحة للنماذج التوليدية. يدفع هذا الورق الحدود التقنية لـ IPT2V في اتجاهين لم يتم حلّهما في الأدبيات: (1) خط أنابيب بدون ضبط (tuning-free) دون الحاجة إلى ضبط دقيق (finetuning) متعب لكل حالة على حدة، و (2) مخطط تحكم قائم على تحويل الانتشار (Diffusion Transformer) (DiT) مع الحفاظ على الهوية، واعٍ بالترددات. لتحقيق هذه الأهداف، نقترح ConsisID، وهو نموذج IPT2V قابل للتحكم قائم على DiT وبدون ضبط، للحفاظ على identity consistent في الفيديو المولّد. مستوحى من الاكتشافات السابقة في تحليل الترددات لتحويلات الرؤية/الانتشار، يستخدم إشارات التحكم في الهوية في مجال الترددات، حيث يمكن تفكيك ملامح الوجه إلى ميزات عالمية منخفضة التردد (مثل الملامح العامة، والنسب) وميزات جوهرية عالية التردد (مثل علامات الهوية التي لا تتأثر بتغييرات الوضعية). أولاً، من منظور منخفض التردد، نقدم مستخرجاً عالمياً للوجه، يقوم بتشفير الصورة المرجعية ونقاط الوجه الرئيسية في مساحة كامنة، مولّداً ميزات مُثراء بمعلومات منخفضة التردد. ثم تُدمج هذه الميزات في الطبقات الضحلة من الشبكة لتخفيف تحديات التدريب المرتبطة بـ DiT. ثانياً، من منظور عالي التردد، نصمم مستخرجاً محلياً للوجه لالتقاط التفاصيل عالية التردد وحقنها في كتل التحويلية (transformer blocks)، مما يعزز قدرة النموذج على الحفاظ على الميزات الدقيقة. لاستغلال معلومات الترددات في الحفاظ على الهوية، نقترح استراتيجية تدريب هرمية، تحوّل نموذج توليد الفيديو المُدرَّب مسبقاً العادي إلى نموذج IPT2V. تُظهر التجارب الواسعة نطاقاً أن مخططنا الاستدلالي الواعي بالترددات يوفر حلاً مثالياً للتحكم في النماذج القائمة على DiT. بفضل هذا المخطط، يحقق ConsisID نتائج ممتازة في توليد فيديوهات عالية الجودة مع الحفاظ على الهوية، مما يحقق تقدماً نحو IPT2V أكثر فعالية. أوزان النموذج لـ ConsisID متاحة علنياً على https://github.com/PKU-YuanGroup/ConsisID.
تأكد من الاطلاع على دليل المجدولين لمعرفة كيفية استكشاف التوازن بين سرعة المجدول وجودة النتائج، واطّلع على قسم إعادة استخدام المكونات عبر خطوط الأنابيب لمعرفة كيفية تحميل نفس المكونات بكفاءة في خطوط أنابيب متعددة.
تمت مساهمة خط المعالجة هذا من قِبل SHYuanBest. يمكن العثور على قاعدة الكود الأصلية هنا. يمكن العثور على الأوزان الأصلية تحت hf.co/BestWishYsh.
توجد نقطتا تفتيش رسميتان لـ ConsisID لتوليد الفيديو من النص مع الحفاظ على الهوية.
| نقاط التفتيش | نوع البيانات الموصى به للاستدلال |
|---|---|
BestWishYsh/ConsisID-preview | torch.bfloat16 |
BestWishYsh/ConsisID-1.5 | torch.bfloat16 |
تحسين الذاكرة
يتطلب ConsisID حوالي 44 جيجابايت من ذاكرة وحدة معالجة الرسوميات (GPU) لفك ترميز 49 إطارًا (6 ثوانٍ من الفيديو بمعدل 8 إطارات في الثانية) بدقة إخراج 720x480 (العرض x الارتفاع)، مما يجعل تشغيله غير ممكن على وحدات معالجة الرسوميات المخصصة للمستهلكين أو على T4 Colab المجانية. يمكن استخدام تحسينات الذاكرة التالية لتقليل استهلاك الذاكرة. للتكرار، يمكنك الرجوع إلى هذا السكربت.
| الميزة (تراكب السابقة) | الحد الأقصى للذاكرة المخصصة | الحد الأقصى للذاكرة المحجوزة |
|---|---|---|
| - | 37 جيجابايت | 44 جيجابايت |
| enable_model_cpu_offload | 22 جيجابايت | 25 جيجابايت |
| enable_sequential_cpu_offload | 16 GB | 22 جيجابايت |
| vae.enable_slicing | 16 GB | 22 جيجابايت |
| vae.enable_tiling | 5 جيجابايت | 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)| صورة الوجه | فيديو | الوصف |
|---|---|---|
![]() | ![]() | في فيديو بأسلوب رسوم متحركة مصقول بجمال، تظهر امرأة واثقة تجوب ساحة غابة خضراء على ظهر حصان. تعابير وجهها مركّزة وفي الوقت نفسه هادئة بينما تعدّل قبعتها واسعة الحواف بيد متمرّسة. ترتدي فستانًا بوهيميًا فضفاضًا يتحرك بأناقة مع إيقاع الحصان، حيث تتدفق القماش بسلاسة في الحركة المتحركة. تتسلل أشعة الشمس المتقطعة عبر الأشجار، راسمةً على أرض الغابة أنماطًا ناعمة تشبه اللوحات الفنية. وقفتها رصينة، مما يعكس كلا من السيطرة والأناقة بينما تقود الحصان بسهولة. يضيف الأسلوب اللطيف والسلس للرسوم المتحركة طابعًا حالماً للمشهد، حيث يستحضر هدوء المرأة والمناظر الهادئة إحساسًا بالحرية والانسجام. |
![]() | ![]() | في فيديو بأسلوب رسوم متحركة آسر، تظهر امرأة واقفة في مركز غابة مغطاة بالثلوج، عيناها ضيّقتان في تركيز وهي تمدّ يدها إلى الأمام. ترتدي عباءة زرقاء داكنة، وتظهر أنفاسها في الهواء البارد، وقد رُسمت بلمسات ناعمة وخيالية. يلمع على شفتيها ابتسامة خافتة وهي تستدعي خيطًا من سحر الجليد، تراقب بتركيز كيف تبدأ الأشجار والأرض المحيطة بالوميض والتجمد، مغطاةً بلورات جليد رقيقة. تمنح الحركة السلسة للرسوم المتحركة السحر حياة، مع انتشار الصقيع إلى الخارج في أنماط معقدة متلألئة. رُسمت البيئة بدرجات لونية ناعمة تشبه ألوان الماء، مما يعزز الأجواء السحرية الحالمة. الأجواء العامة هادئة وقوية في آنٍ واحد، حيث يضاعف هواء الشتاء الهادئ جمال المشهد المتجمد الرقيق. |
![]() | ![]() | تُظهر الحركة بورتريهًا خياليًا لبائع بالونات يقف في نسمة هادئة، وقد التقطت بلوحات فرشاة ناعمة ومعتمة تثير إحساس يوم ربيعي هادئ. يحيط بوجهه ابتسامة لطيفة، وتغمض عيناه قليلًا في مواجهة الشمس، بينما تتطاير خصلات قليلة من شعره مع الريح. يرتدي قميصًا فاتحًا بألوان باستيل، وتتمايل البالونات حوله مع الريح، مما يضفي إحساسًا باللعب على المشهد. يذوب الخلفية بنعومة، مع لمحات من سوق نابض بالحياة أو حديقة، مما يعزز الأجواء الخفيفة والحنونة للحظة. |
![]() | ![]() | تُظهر اللقطة فيديو لفتى يمشي على طول شارع في المدينة، وقد صُوِّر بالأبيض والأسود على كاميرا كلاسيكية بحجم 35 ملم. تعبيره حالم، وحاجباه مضمّران قليلاً وكأنه غارق في تأمل. تضيف حبيبات الفيلم ملمساً خالداً للصورة، مُستحِذاً إحساساً بالحنين. حوله، تمتلئ المناظر الحضرية بمبانٍ عتيقة، وأرصفة مرصوفة بالحصى، وأجساد مارة ضبابية النعومة، تبدو ملامحها باهتة وغير واضحة. تُسقط أعمدة الإنارة في الشارع توهجاً لطيفاً، بينما تتراقص الظلال عبر مسار الفتى، مما يضفي عمقاً على المشهد. تُبرز الإضاءة ابتسامة الفتى الخفيفة، مُلمِّحةً إلى لحظة فضول عابرة. تمنح الأجواء السينمائية الشاملة، مع جماليات اللقطات الثابتة الكلاسيكية والتباينات الدرامية، المشهد إحساساً مُستحِذاً وداخلياً. |
![]() | ![]() | يظهر في الفيديو رضيع يرتدي عباءة فائقة سطوع، يقف بثقة مع رفع ذراعيه في وضعية قوية. يحمل الرضيع نظرة حازمة على وجهه، مع عيون واسعة وشفتين مشدودتين في تركيز، وكأنه مستعد لمواجهة تحدٍ. يبدو المكان مرحًا، مع ألعاب ملونة متناثرة حوله وسجادة ناعمة تحت قدميه، بينما تتدفق أشعة الشمس من نافذة قريبة، مما يبرز اهتزاز العباءة ويضيف إلى انطباع البطولة. الأجواء العامة خفيفة وممتعة، حيث تعكس تعابير الرضيع مزيجًا من البراءة ومحاولة شجاعة محببة، وكأنه مستعد حقًا لإنقاذ اليوم. |
الموارد
تعرف على المزيد حول ConsisID من خلال الموارد التالية.
- فيديو يوضح الميزات الرئيسية لـ ConsisID.
- The research paper, Identity-Preserving Text-to-Video Generation by Frequency Decomposition for more details.
ConsisIDPipeline
ConsisIDPipelineOutput
فئة diffusers.pipelines.consisid.pipeline_output.ConsisIDPipelineOutput
< source >( frames: Tensor )
المعاملات
- frames (
torch.Tensorأوnp.ndarrayأو قائمة[قائمة[PIL.Image.Image]]) — قائمة من مخرجات الفيديو - يمكن أن تكون قائمة متداخلة بطولbatch_size,حيث تحتوي كل قائمة فرعية على سلاسل صور PIL منزوعة الضوضاء بطولnum_frames.كما يمكن أن تكون مصفوفة NumPy أو متجه Torch بشكل(batch_size, num_frames, channels, height, width).
فئة الإخراج لخطوط أنابيب ConsisID.









