تحدث مع الصورة الرمزية التفصيلية ثلاثية الأبعاد المدعومة بالذكاء الاصطناعي. استخدم نموذج اللغة الكبير (LLM)، وتحويل النص إلى كلام (TTS)، ومحرك الألعاب Unity، ومزامنة الشفاه لإضفاء الحيوية على الشخصية.
في الفيديو نسأل الشخصية "من هو مايكل جوردان؟". الصورة الرمزية "تجيب" على السؤال بعد تأخير قصير. باستخدام الرسائل السابقة كسياق، يمكننا إجراء محادثات كاملة. لاحظ فيزياء الشعر والوميض!
عرض الأحداث البعيدة التي يتم تشغيلها من متصفح الويب. بعد تحديد كل مؤثرات بصرية، يتم تشغيل نظام الجسيمات المعني. الاستخدام الشائع هو تأثير جسيمات الألعاب النارية عندما يتبرع شخص ما بمبلغ 5 دولارات على Twitch وما إلى ذلك. أثناء المؤثرات البصرية الممطرة، قد تلاحظ دفقة وارتدادًا عندما تتفاعل القطرة مع الشخصية (أعلى الشعر).
الوظيفة الأساسية هي نموذج ثلاثي الأبعاد مخصص "يتحدث". يصدر صوتًا ويستخدم مكتبة مزامنة الشفاه الخاصة بـ Oculus لإعطاء انطباع (نأمل أن يكون مقنعًا). هنا مجموعة الميزات:
لا يعتمد التدفق على أي تنفيذ معين. لا تتردد في مزج ومطابقة LLMs أو TTSs أو أي نماذج ثلاثية الأبعاد مناسبة (تتطلب مفاتيح أشكال محددة). وكما قد تلاحظ، فإن هذه البنية تمنحنا مرونة مطلقة. كما قد تتخيل، الجملة السابقة هي بخس.
لا يوجد التعرف على الكلام، الموجه هو نص فقط. سيكون من السهل إضافة هذه الميزة باستخدام Whisper Fast. انظر أدناه للحصول على التعليمات. TL;DR يرسل GET أو POST إلى
/prompt
.
باستخدام TTS مع البث وDeepSpeed، عادةً ما أحصل على استجابة أقل من 4 ثوانٍ (من إرسال المطالبة إلى الصوت الأول). إنها صغيرة بما يكفي، بحيث تبدو تلك المحادثة في الوقت الفعلي. في هذه المرحلة، عنق الزجاجة هو LLM. على وحدة معالجة رسومات واحدة، لا يمكنك تشغيل LLM وTTS في نفس الوقت (لقد حاولت، تحقق من الأسئلة الشائعة حول خيار التكوين tts.chunk_size
). يتعين علينا أولاً إنشاء كافة الرموز النصية وبعد ذلك فقط إنشاء الصوت. لقد حاولت تفريغ تحويل النص إلى كلام (TTS) إلى وحدة المعالجة المركزية (CPU)، ولكن هذا أيضًا يواجه صعوبة.
البث يعني أننا نقوم بتقسيم النص الناتج إلى أجزاء أصغر. هناك تداخل صغير لإخفاء انتقالات القطعة. القطعة الأولى الصغيرة تعني وقتًا سريعًا لإصدار الصوت الأول. DeepSpeed هي مكتبة مايكروسوفت لتسريع استنتاج GPT. يعد كل من البث وDeepSpeed اختياريين ولكن يوصى بهما.
دائمًا ما يستغرق السؤال الأول بعد بدء تشغيل الخادم وقتًا أطول (حوالي 10 ثوانٍ) حيث يتعين على الخادم تحميل نماذج الذكاء الاصطناعي. عند استخدامه في محرر Unity، نادرًا ما يكون لديك توقف مؤقت لجمع البيانات المهملة (يمكن ملاحظته نوعًا ما مع الصوت). لكنني سأفاجأ إذا حصلت بالفعل على مشكلة GC في بناء الإنتاج.
يجب أن أقول، أنا مسليا. كنت أتوقع بعض المشاكل عند استخدام نفس وحدة معالجة الرسومات لكل من عرض Unity والذكاء الاصطناعي. كنت أعلم أن تطبيق Android/iOS كان وسيلة احتياطية سهلة لإلغاء تحميل تكلفة Unity على جهاز منفصل. ولكن ليس من الضروري على أجهزتي. من غير المتوقع أن يعمل بسلاسة. لن أشتكي. لقد قمت أيضًا بتقييد Unity بـ 30 إطارًا في الثانية (فقط في حالة).
إذا ذهبت إلى لوحة التحكم سوف ترى التوقيتات الخاصة بكل مرحلة استجابة. بالنسبة إلى Unity، استخدم ملف التعريف المدمج.
راجع INSTALL_AND_USAGE.md. ويتضمن أيضًا إرشادات حول كيفية استخدام/توسيع الميزات الحالية.
الأسئلة أدناه تدور حول الفلسفة العامة لهذا التطبيق. للحصول على المزيد من الأسئلة الشائعة الموجهة نحو الاستخدام، راجع INSTALL_AND_USAGE.md.
يوضح هذا التطبيق أن لدينا بالفعل التكنولوجيا اللازمة لتقديم صورة رمزية ثلاثية الأبعاد مفصلة وتشغيل عدد قليل من الشبكات المحايدة على وحدة معالجة رسومات واحدة من فئة المستهلك في الوقت الفعلي. إنه قابل للتخصيص ولا يحتاج إلى اتصال بالإنترنت. ويمكنه أيضًا العمل في بنية خادم العميل، لتسهيل العرض على الأجهزة المحمولة على سبيل المثال.
كان بإمكاني استخدام نموذج Sintel القياسي. لقد خلقت شخصيتي الخاصة لأنني أستطيع ذلك. من سحب القمم، ورسم القوام، وتحريك الفم، وضبط فيزياء الشعر إلى الصورة الرمزية ثلاثية الأبعاد "الناطقة". إنها هواية ممتعة للغاية إذا قلت ذلك بنفسي.
لقد أردت أيضًا اختبار إعادة إسقاط النسيج من صورة مستقرة تم إنشاؤها بالانتشار. على سبيل المثال، يمكنك إضافة "أصلع" إلى الموجه الإيجابي و"شعر" إلى السالب. إنه يسرع سير العمل كثيرًا. للأسف، سيكون لإعادة الإسقاط نقاط بارزة، وما إلى ذلك، لإزالتها يدويًا.
لقد استخدمت Sintel كشبكة أساسية لأنها تحتوي بالفعل على مفاتيح الشكل الأساسية. خصيصًا للتحكم في كل جزء من الفم - ما عليك سوى إضافة برامج التشغيل المتوافقة مع Blender 4.0. هذا جعل من السهل إنشاء مفاتيح الشكل الملزمة. لقد استخدمت بالفعل نموذج Sintel عدة مرات في الماضي، لذلك كان من السهل التفكير في هذا المشروع.
ملاحظة: أنا أكره التزوير.
ربما تكون قد شاهدت شخصيات افتراضية "ناطقة" ومستقرة ومستقرة في الوقت الفعلي. إنها صورة ثابتة مع تجديد منطقة الفم في كل إطار بناءً على الصوت. ستلاحظ أنه غير مستقر. إذا قمت بتوزيع الأسنان في كل إطار، فسوف تتحرك باستمرار. لقد استخدمت الانتشار المستقر كثيرًا. لقد رأيت حصتي من أجزاء الجسم المشوهة (الأيدي!). إنه... ملحوظ بالأسنان. التطبيق الشائع هو SadTalker. حتى أنه يحتوي على امتداد Stable Diffusion web UI.
بدلاً من ذلك، يستخدم تطبيقي تقنية قديمة مملة كانت موجودة في ألعاب الفيديو لسنوات. إذا كان لديك مئات الساعات من الحوار (Baldur's Gate 3، Cyberpunk 2077، وما إلى ذلك)، فلن تتمكن من تحريك كل شيء يدويًا. يتم استخدام أنظمة مثل JALI في كل عنوان رئيسي.
إذا كنت تريد شخصيات متحركة في الوقت الفعلي، فلماذا تستخدم الذكاء الاصطناعي فقط؟ لماذا لا نبحث عن الحلول التي يستخدمها أكبر قطاع ترفيهي في العالم؟ على الأقل يمكنك استخدامه كقاعدة لـ img2img. في السنوات الأخيرة كان لدينا أيضًا VTubers، الذين يتفوقون كل يوم. يعتمد الكثير من هذه الأشياء على التكنولوجيا التي طورها معجبو Hatsune Miku.
Neuro-sama هي إحدى قنوات البث الافتراضية الشهيرة. إنها شخصية تعتمد على الذكاء الاصطناعي وتلعب ألعاب الفيديو وتتحدث مع منشئها، فيدال. إليك كيفية تكديس تطبيقي ضده:
يتضمن هذا التطبيق كود المصدر/الأصول التي أنشأها أشخاص آخرون. يحتوي كل مثيل على ملف README.md مخصص في مجلده الفرعي الذي يشرح الترخيص. على سبيل المثال، لقد التزمت بكود مصدر الريبو هذا لمكتبة "Oculus Lipsync"، التي لديها ترخيصها الخاص (اقبله قبل الاستخدام!). XTTS v2.0 مخصص أيضًا للاستخدام غير التجاري فقط. تؤثر الفقرات أدناه فقط على الأشياء التي قمت بإنشائها.
انها GPLv3. إنها إحدى تراخيص الحقوق المتروكة. يجب أن تكون تراخيص GPL/الحقوق المتروكة مألوفة لدى معظم المبرمجين من Blender أو Linux kernel. إنه أمر متطرف للغاية، لكنه تمليه طبيعة التطبيق. وعلى وجه الخصوص، أحد الاستخدامات المحتملة.
لقد شاهدت مؤخرًا "كابوس Apple بقيمة 3500 دولار" للمخرج إيدي بورباك. إنها مراجعة لـ Apple Vision Pro بقيمة 3500 دولار (!). يسمح أحد التطبيقات المقدمة للمستخدم بمواعدة "صديقة" تعمل بالذكاء الاصطناعي. تحتوي الواجهة على صورة مستقرة تم إنشاؤها على اليسار (أشم رائحة PastelDiffusedMix مع Seraphine LoRA؟). الدردشة النصية على اليمين. هل هذا هو أحدث ما توصلت إليه التكنولوجيا لهذا النوع من البرامج؟ إنه كسول.
أوفك. كانت تطبيقات المواعدة عبر الهاتف المحمول مليئة بالخلافات منذ البداية. لا ترغب شركة Tinder and Co. في خسارة العملاء المتكررين. هناك الكثير من عمليات الاحتيال حتى قبل أن نصل إلى التعلم الآلي. هناك الملايين من ملفات تعريف الذكاء الاصطناعي على Tinder. ومع المواعدة المباشرة باستخدام الذكاء الاصطناعي، فهي مشكلة أخرى تمامًا.
يمكنك استخدام أي نموذج تريد. تستخدم مزامنة الشفاه مفاتيح الشكل التي تتوافق مع نصوص ovrlipsync. من خلال العرض التكنولوجي لـ "الأعداء"، أثبتت Unity قدرتها على تقديم بشر واقعيين.
أنا شخصياً سأستخدم الإنسان الخارق لـ Unreal Engine. سيكون عليك إعادة كتابة رمز الوحدة الخاص بي. مقابل هذا الجهد، ستحصل على منصة حديثة وأصول مجانية عالية الدقة. يمكنك أيضًا محاولة استيراد metahuman إلى Unity.
لسبب ما، لا تحتوي Unity على مسار مدمج للشخصيات البشرية. حتى عند إنشاء الفيلم السينمائي "الأعداء" المرتبط أعلاه، لم يكلفوا أنفسهم عناء جعله قابلاً للحياة على مستوى المجتمع. إنها مجموعة مخصصة من الأدوات المصممة خصيصًا لبرنامج Autodesk Maya. ولم أسمع قط عن تنسيق ملف المقطع رباعي الأبعاد. تهانينا لقائد المشروع! إنه قرار محير. على سبيل المثال، لديهم HairFX الخاص بهم لتمثيل الشعر ومحاكاته. يعتمد على TressFX. لقد قمت بنقل TressFX إلى OpenGL وWebGL وVulkan. أنا أفهم ذلك جيدا. وبعد هذا التطبيق يستخدم بطاقات الشعر! يحتوي Sintel الأصلي على شعر قائم على الخيوط، وكان من المفترض أن تكون هذه عملية تصدير بسيطة. تحتاج هذه الأنظمة إلى التوثيق المناسب.
وفي نهاية المطاف، الأداة هي مجرد أداة. أتمنى أن يكون الاتحاد قد رتب أولوياته. أود أن أقول إن تقديم الأشخاص أمر مهم للغاية في سوق اليوم.
نعم، ولكن تأكد من أنك تفهم سبب رغبتك في استخدام محرك ثلاثي الأبعاد لتقنية العرض ثنائي الأبعاد. بالنسبة إلى Guilty Gear Xrd، كان على المؤلفين تعديل المعايير على أساس كل إطار. حتى يومنا هذا، لا تزال تقنية 3D تثير استياء محبي الأنيمي. الاستثناء الوحيد (على حد علمي) هو أرض اللامعة. ويساعد في ذلك تكوين اللقطة المذهل.
بالنظر إلى الرسوم المتحركة الغربية في الوقت الفعلي، فلدينا على سبيل المثال Borderlands. إنه يكرر أسلوب الكتاب الهزلي باستخدام الإضاءة المسطحة والألوان الصامتة وخطوط الحبر السميكة. هناك الكثير من البرامج التعليمية على YouTube للتظليل المسطح، لكنك لن تحصل على نتيجة قريبة دون أن تكون جيدًا في رسم الأنسجة.
على الرغم من أن هذا قد يبدو محبطًا، إلا أنني أريدك أن تفكر في هدفك. هناك سبب يجعل الجميع يستخدمون VTubeStudio وLive2D. إنشاء نماذج ثنائية وثلاثية الأبعاد ليس له أي مقارنة من حيث التعقيد، فهو ليس حتى نفس الشكل الفني.
تجاهل كل ما قلته أعلاه إذا كنت تعمل لدى Riot Games، أو Fortiche، أو Disney/Pixar DreamWorks، أو Sony Pictures Animation.
حجم تثبيت الوحدة أصغر. وهو يستهدف الهواة. يمكنك فقط كتابة برنامج نصي C# وإفلاته على كائن لإضافة سلوك جديد. في حين أن تجربة المستخدم يمكن أن تكون في كل مكان، إلا أنها لا تحتوي على أي احتكاك في الجوانب الأساسية.
يتفوق Unity على UE5 في سهولة الاستخدام ووقت التكرار. السبب الرئيسي للتبديل إلى UE5 هو أن يكون إنسانًا خارقًا (!) أو إنتاجًا افتراضيًا أو mocap متوافقًا مع معايير الصناعة.
يعتمد على نموذج LLM. الافتراضي gemma:2b-instruct
صغير جدًا (3 مليار معلمة). يمكنه إنشاء جمل متماسكة، ولكن هذا هو المدى الذي يمكن أن يصل إليه في الغالب. إذا كان بإمكانك استخدام نموذج 7B المتطور (حتى مع التكميم)، أو نموذج أكبر، فافعله. يمكنك دائمًا استبداله بـ ChatGPT أيضًا. أو استخدم إعداد GPU متعدد. أو، قم بتشغيل Unity على هاتف محمول، أو تشغيل TTS على Raspberry PI، واحصل على VRAM كامل لـ LLM.
لم أقم بإضافة هذا. سيتطلب إضافة حالات خاصة إلى النموذج ثلاثي الأبعاد. على سبيل المثال، قد يكون من الصعب تحريك الفم أثناء مزامنة الشفاه. يتم عادةً احمرار الخدود باستخدام الصور الرمزية ثلاثية الأبعاد عن طريق مزج نسيج خاص في رسم بياني للتظليل.
ومع ذلك، فإن التكنولوجيا الأساسية موجودة بالفعل. إذا كنت تريد اكتشاف المشاعر في النص، فيمكنك استخدام LLM لتحليل المشاعر. لقد أضفت أيضًا التقنية لتشغيل الأحداث باستخدام WebSocket. أجهزة الصراف الآلي بدأت تأثير الجسيمات. يتعامل نصف كود C# مع تشغيل مفاتيح الشكل. الوميض هو وظيفة يتم استدعاؤها كل بضع ثوانٍ. بمجرد إنشاء تفاعل على النموذج ثلاثي الأبعاد، يمكنك البدء به في أي وقت. إنها تستغرق وقتًا طويلاً فقط في الإنشاء.
نعم، حاولت (لم تتم إضافته إلى هذا الريبو). كانت الخطة الأصلية هي نقل نمط الإطار المقدم إلى صورة ثابتة يتم إنشاؤها بالانتشار. من خلال تجاربي السريعة، بالإضافة إلى مشاكل الأداء، فإن أبسط الحلول لا تتمتع بالجودة اللازمة أو الاستقرار الزمني.
ليس لدينا ميزانية أداء لتشغيل VGG16/19. وهذا يستثني التقنيات "الأصلية" مثل "الخوارزمية العصبية للأسلوب الفني" [Gatys2015] أو "الخسائر الإدراكية لنقل النمط في الوقت الفعلي والدقة الفائقة" [Johnson2016]. لم ينظر أي منهم أيضًا إلى الخفقان. لقد تم تصميمها فقط للصور الثابتة وليس لمقاطع الفيديو. وكانت هناك أعمال أخرى بحثت في هذه المشكلة: [Jamriska2019]، [Texler2020].
أعلم أن Unity حاولت أيضًا نقل النمط في الوقت الفعلي في عام 2020: "نقل النمط في الوقت الفعلي في Unity باستخدام الشبكات العصبية العميقة".
بعد ذلك، نحن في منطقة المحولات (مفاجأة!). في العام الماضي، استخدم "تعزيز البيانات باستخدام نماذج الانتشار (DATUM)" [CVPR-W 2023] الانتشار (مرة أخرى، مفاجأة!). هناك فئة أوراق تحتوي على كود تسمى الترجمة الاصطناعية إلى الحقيقية إذا كنت تريد تتبع أحدث التطورات.
في هذه المرحلة، قررت أن محاولة دمج هذا في التطبيق كان بمثابة زحف للميزات.
كانت هناك حلقة من "ورقتين في الدقيقة" تناولت تقنيات مماثلة: "لعبة الفيديو من Intel تبدو مثل الواقع!". استنادًا إلى "تحسين تحسين الصورة الواقعية" من Intel [Richter2021].
نعم، تحقق من .fbx داخلUnity-project/Assets/Sintel.
جميع مشاريعي لها أسماء نفعية. هذه المرة أردت شيئًا أكثر تميزًا. القزحية هي زهرة أرجوانية زرقاء. القزحية هي جزء من العين. بدا مناسبا؟ خاصة وأن العيون والشعر هما المشكلتان في شخصيات CG.