مايكروسوفت تقدم Trellis: يحول الصورة إلى كائنات ثلاثية الأبعاد بالذكاء الاصطناعي 2025
قبل بضعة أسابيع، كشفت شركة مايكروسوفت عن طريقة جديدة ومبتكرة لإنشاء نماذج ثلاثية الأبعاد عالية الجودة تُدعى تريليس (Trellis). تعتمد هذه الطريقة على تمثيل كامن موحد يُعرف بـ SLAT (Structured LATent)، والذي يمكن فك تشفيره إلى تنسيقات مختلفة مثل Radiance Fields و 3D Gaussians والشبكات ثلاثية الأبعاد (meshes). يتم ذلك من خلال دمج شبكات ثلاثية الأبعاد متفرقة مع ميزات بصرية متعددة الزوايا.
قد يبدو هذا الكلام معقدًا، ولكن ببساطة، Trellis بارع في إنشاء نماذج ثلاثية الأبعاد عالية الجودة تبدو واقعية وتتناسب مع الأوصاف أو الصور التي تقدمها. إنها أداة مذهلة للفنانين والمطورين والمصممين لإنشاء محتوى ثلاثي الأبعاد مذهل بكفاءة عالية.

لقد تحدثت في السابق عن أدوات إنشاء الكائنات ثلاثية الأبعاد المدعومة بالذكاء الاصطناعي، ولكن تريليس يبرز بشكل خاص من حيث السرعة والجودة.
جدول المحتويات
كيف تعمل Trellis؟
تعتمد الطريقة على محولات تدفق مصححة (rectified flow transformers)، وتحقق نتائج متفوقة مقارنة بالأساليب الحالية، مع إظهار قدرات تحرير مرنة. يتم تدريب النموذج على مجموعة كبيرة من البيانات تحتوي على 500 ألف كائن ثلاثي الأبعاد، ويتفوق على الأساليب الحالية من حيث الجودة والتنوع، كما تم إثبات ذلك من خلال تجارب مكثفة ودراسات مستخدمين.
عملية إنشاء الكائنات ثلاثية الأبعاد في Trellis؟
تتم عملية إنشاء الكائنات ثلاثية الأبعاد في تريليس على مرحلتين باستخدام رمز خاص يُسمى “SLAT” (Structured LATent). إليك كيف تعمل:
المرحلة الأولى: بناء الهيكل
- الهيكل المتفرق: تبدأ تريليس بإنشاء إطار أساسي للكائن باستخدام مجموعة من “الفوكسلات النشطة” (active voxels). والفوكسلات تشبه المكعبات الصغيرة في الفضاء ثلاثي الأبعاد. تقوم الفوكسلات النشطة برسم الشكل العام للكائن. تخيل أنك تبني نموذجًا من الليغو، حيث تضع أولًا القطع الرئيسية للحصول على الشكل العام.
- ضغط الهيكل: لجعل العملية أكثر كفاءة، تقوم تريليس بضغط هذا الإطار إلى مجموعة أصغر من التعليمات باستخدام تقنية تُعرف باسم “VAE” (Variational Autoencoder).
- إنشاء الإطار: تستخدم Trellis نوعًا خاصًا من الذكاء الاصطناعي يُسمى “Rectified Flow Transformer” لتحويل هذه التعليمات إلى خطة تفصيلية لهيكل الكائن. تُحدد هذه الخطة للكمبيوتر مكان وضع الفوكسلات النشطة بدقة في الفضاء ثلاثي الأبعاد.
المرحلة الثانية: إضافة التفاصيل
بعد أن يتم بناء الهيكل الأساسي، تأتي المرحلة الأكثر إثارة: إضافة التفاصيل الدقيقة التي تجعل النموذج ثلاثي الأبعاد يبدو حقيقيًا ومليئًا بالحيوية. هنا كيف يحدث ذلك:
- التمثيلات المحلية (Local Latents):
بمجرد اكتمال الهيكل، تقوم Trellis بإضافة التفاصيل إلى كل فوكسل نشط باستخدام ما يُعرف بـ “التمثيلات المحلية”. هذه التمثيلات تحتوي على معلومات حول مظهر الكائن، مثل الألوان والقوام، مما يجعل النموذج يبدو أكثر واقعية. - تجميع الميزات (Feature Aggregation):
لتحديد الشكل الذي يجب أن تبدو عليه كل تمثيل محلي، تستخدم Trellis نموذج رؤية قويًا يُدعى “DINOv2”. هذا النموذج يحلل صور الكائن من زوايا متعددة ويستخرج الميزات المهمة، مثل الحواف والأشكال والألوان. تخيل أن النموذج ينظر إلى الكائن من كل الزوايا الممكنة لالتقاط أدق التفاصيل. - إنشاء التفاصيل:
بعد ذلك، تستخدم Trellis محول تدفق مصحح آخر (Rectified Flow Transformer) لتحويل هذه الميزات إلى تمثيلات محلية تفصيلية. ثم يتم إرفاق هذه التمثيلات بالفوكسلات النشطة لإكمال النموذج ثلاثي الأبعاد.
هذه العملية ذات المرحلتين تسمح لـتريليس بإنشاء نماذج ثلاثية الأبعاد عالية الجودة بكفاءة كبيرة. حيث تستفيد من قوة الذكاء الاصطناعي ورؤية الكمبيوتر لفهم وإعادة إنشاء الكائنات المعقدة من أوصاف نصية أو صور.
تحويل التمثيل إلى تنسيقات مختلفة
يمكن لـتريليس تحويل التمثيل الكامن الموحد (SLAT) إلى تنسيقات مختلفة للنماذج ثلاثية الأبعاد، مثل:
- 3D Gaussians: لتقديم تفاصيل دقيقة وواقعية.
- Radiance Fields: لإنشاء مشاهد غنية بالإضاءة والظلال.
- Meshes: لإنشاء شبكات ثلاثية الأبعاد قابلة للتحرير.
جرب تريليس بنفسك!
إذا كنت متحمسًا لتجربة هذه الأداة الرائعة، يمكنك الوصول إلى Trellis عبر منصة HuggingFace. كل ما عليك فعله هو تحميل صورة والنقر على “Generate” لإنشاء نموذج ثلاثي الأبعاد. إذا كانت الصورة تحتوي على قناة ألفا (alpha channel)، فسيتم استخدامها كقناع. يمكنك أيضًا التعديل على إعدادات الإنشاء أو إعدادات استخراج ملف GLB، أو ببساطة تركها كما هي.
بمجرد أن تشعر بالرضا عن النموذج، يمكنك النقر على Extract GLB لاستخراج الملف وتنزيله. يمكنك أيضًا عرض النموذج باستخدام أدوات مثل GLTF Viewer.
أمثلة مذهلة

لنلقي نظرة على بعض الأمثلة التي توضح قوة Trellis:
- روبوت كروي بتصميم ذهبي وفضي:
النتيجة العامة تبدو رائعة، مع لمسة أنيقة من الألوان الذهبية والفضية. من مسافة بعيدة، يبدو النموذج مذهلًا، ولكن عند التكبير، قد تلاحظ بعض التفاصيل غير المكررة. ومع ذلك، بالنظر إلى السرعة التي تم إنشاؤه بها، فإن النتيجة أكثر من مرضية. - نموذج ثلاثي الأبعاد من صورة مرجعية:
هنا، يقترب النموذج ثلاثي الأبعاد بشكل مثير للإعجاب من الصورة الأصلية. الشكل العام والهيكل دقيقان للغاية، ولكن التفاصيل الصغيرة مثل الحبال أو القوام المعقد قد لا تكون مثالية. مع ذلك، من مسافة عادية، النتيجة تبدو رائعة. - إنشاء متغيرات متعددة:
تريليس لا يقتصر على إنشاء نموذج واحد فقط. يمكنه إنشاء عدة متغيرات لنفس الكائن بناءً على أوصاف نصية، مما يجعله أداة مثالية للتكرار السريع في التصميم. - تصميمات فنية معقدة:
Trellis أيضًا بارع في إنشاء مشاهد فنية ثلاثية الأبعاد معقدة وغنية بالألوان. النتائج مذهلة وتضع معايير جديدة في عالم الإنشاء ثلاثي الأبعاد.
تشغيل Trellis محليًا
إذا كنت من محبي التجربة والتحكم الكامل، يمكنك تشغيل Trellis على جهازك الشخصي باتباع الخطوات التالية. كل ما تحتاجه هو الوصول إلى كود تريليس المتاح على GitHub، ثم اتباع هذه الخطوات البسيطة:
- نسخ المستودع:
ابدأ بنسخ مستودع Trellis إلى جهازك باستخدام الأمر التالي: git clone –recurse-submodules https://github.com/microsoft/TRELLIS.git
cd TRELLIS - إنشاء بيئة Conda جديدة:
. ./setup.sh --new-env --basic --xformers --flash-attn --diffoctreerast --spconv --mipgaussian --kaolin --nvdiffrast
يمكنك الاطلاع على التفاصيل الكاملة لاستخدام setup.sh عن طريق تشغيل: bashCopy. ./setup.sh –help
خيارات الأداة:
--new-env
: إنشاء بيئة Conda جديدة.--basic
: تثبيت التبعيات الأساسية.--xformers
: تثبيتxformers
.--flash-attn
: تثبيتflash-attn
.--diffoctreerast
: تثبيتdiffoctreerast
.--spconv
: تثبيتspconv
.--mipgaussian
: تثبيتmip-splatting
.--kaolin
: تثبيتkaolin
.--nvdiffrast
: تثبيتnvdiffrast
.--demo
: تثبيت جميع التبعيات اللازمة للتجربة.
مثال عملي لإنشاء نماذج ثلاثية الأبعاد
بعد إعداد البيئة، يمكنك استخدام النماذج المدربة مسبقًا لإنشاء كائنات ثلاثية الأبعاد. إليك مثالًا بسيطًا:
python
import os
# os.environ['ATTN_BACKEND'] = 'xformers' # Can be 'flash-attn' or 'xformers', default is 'flash-attn'
os.environ['SPCONV_ALGO'] = 'native' # Can be 'native' or 'auto', default is 'auto'.
# 'auto' is faster but will do benchmarking at the beginning.
# Recommended to set to 'native' if run only once.
import imageio
from PIL import Image
from trellis.pipelines import TrellisImageTo3DPipeline
from trellis.utils import render_utils, postprocessing_utils
# Load a pipeline from a model folder or a Hugging Face model hub.
pipeline = TrellisImageTo3DPipeline.from_pretrained("JeffreyXiang/TRELLIS-image-large")
pipeline.cuda()
# Load an image
image = Image.open("assets/example_image/T.png")
# Run the pipeline
outputs = pipeline.run(
image,
seed=1,
# Optional parameters
# sparse_structure_sampler_params={
# "steps": 12,
# "cfg_strength": 7.5,
# },
# slat_sampler_params={
# "steps": 12,
# "cfg_strength": 3,
# },
)
# outputs is a dictionary containing generated 3D assets in different formats:
# - outputs['gaussian']: a list of 3D Gaussians
# - outputs['radiance_field']: a list of radiance fields
# - outputs['mesh']: a list of meshes
# Render the outputs
video = render_utils.render_video(outputs['gaussian'][0])['color']
imageio.mimsave("sample_gs.mp4", video, fps=30)
video = render_utils.render_video(outputs['radiance_field'][0])['color']
imageio.mimsave("sample_rf.mp4", video, fps=30)
video = render_utils.render_video(outputs['mesh'][0])['normal']
imageio.mimsave("sample_mesh.mp4", video, fps=30)
# GLB files can be extracted from the outputs
glb = postprocessing_utils.to_glb(
outputs['gaussian'][0],
outputs['mesh'][0],
# Optional parameters
simplify=0.95, # Ratio of triangles to remove in the simplification process
texture_size=1024, # Size of the texture used for the GLB
)
glb.export("sample.glb")
# Save Gaussians as PLY files
outputs['gaussian'][0].save_ply("sample.ply")
ما الذي ستحصل عليه؟
بعد تشغيل الكود، ستحصل على الملفات التالية:
- sample_gs.mp4: فيديو يوضح تمثيل 3D Gaussian.
- sample_rf.mp4: فيديو يوضح تمثيل Radiance Field.
- sample_mesh.mp4: فيديو يوضح تمثيل الشبكة (Mesh).
- sample.glb: ملف GLB يحتوي على الشبكة النهائية مع القوام.
- sample.ply: ملف PLY يحتوي على تمثيل 3D Gaussian.
قد يهمك:- الذكاء الاصطناعي يمكنه الآن استبدال أي ممثل في فيلم!
الخلاصة
Trellis ليست مجرد أداة سريعة وفعالة لإنشاء نماذج ثلاثية الأبعاد عالية الجودة، بل هي أيضًا خطوة كبيرة نحو تبسيط عمليات التصميم المعقدة. بالرغم من أن النتائج قد لا تكون مثالية في بعض التفاصيل الدقيقة، خاصةً في النماذج المعقدة مثل الوجوه البشرية، إلا أنها تظل أداة مذهلة لأولئك الذين يرغبون في إنشاء محتوى ثلاثي الأبعاد دون الحاجة إلى خبرة مسبقة.
كمطور، أنا متحمس جدًا لإمكانية الوصول إلى واجهة برمجة التطبيقات (API) في المستقبل. القدرة على إنشاء أصول ثلاثية الأبعاد بسرعة ستفتح أبوابًا جديدة للإبداع، خاصةً لمطوري الألعاب ومصممي الرسوم المتحركة. لا يمكنني الانتظار لرؤية ما سيبتكره المجتمع باستخدام هذه الأداة الرائعة!