يوتيوب يسير من قبل عيد الغطاس من الذكاء الاصطناعي
هذا هو ميناء سريع ، الحد الأدنى من Dall · e mini (مع الأوزان الضخمة). تم تجريده من أجل الاستدلال وتحويله إلى Pytorch. تبعيات الطرف الثالث الوحيدة هي Numpy ، والطلبات ، والوسادة والشعلة.
لإنشاء شبكة 3 × 3 من الصور الضخمة التي تتطلبها:
إليك تفصيلًا أكثر تفصيلاً للأداء على A100. الائتمان إلى @technobird22 و bot discord neogen الخاص به للرسم البياني. 
يمكن العثور على نموذج الكتان والرمز لتحويله إلى الشعلة هنا.
$ pip install min-dalleقم بتحميل معلمات النموذج مرة واحدة وإعادة استخدام النموذج لإنشاء صور متعددة.
from min_dalle import MinDalle
model = MinDalle (
models_root = './pretrained' ,
dtype = torch . float32 ,
device = 'cuda' ,
is_mega = True ,
is_reusable = True
) سيتم تنزيل النماذج المطلوبة على models_root إذا لم تكن موجودة بالفعل. اضبط dtype على torch.float16 لحفظ ذاكرة GPU. إذا كان لديك GPU Ampere Architecture ، فيمكنك استخدام torch.bfloat16 . اضبط device على "CUDA" أو "وحدة المعالجة المركزية". بمجرد الانتهاء من التهيئة ، اتصل على generate_image مع بعض النصوص عدة مرات كما تريد. استخدم seed إيجابية للنتائج القابلة للتكرار. تؤدي القيم الأعلى لـ supercondition_factor إلى اتفاق أفضل مع النص ولكن مجموعة أضيق من الصور التي تم إنشاؤها. يتم أخذ عينات من كل رمز صورة من الرموز top_k احتمالا. يتم طرح أكبر لوجيت من السجلات لتجنب INFS. ثم يتم تقسيم السجلات على temperature . إذا كان is_seamless صحيحًا ، فستكون شبكة الصورة مبلطة بمساحة رمزية وليس مساحة بكسل.
image = model . generate_image (
text = 'Nuclear explosion broccoli' ,
seed = - 1 ,
grid_size = 4 ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 32 ,
is_verbose = False
)
display ( image )
الائتمان إلى hardmaru على سبيل المثال
يمكن أيضًا إنشاء الصور باعتبارها FloatTensor في حال كنت ترغب في معالجتها يدويًا.
images = model . generate_images (
text = 'Nuclear explosion broccoli' ,
seed = - 1 ,
grid_size = 3 ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 16 ,
is_verbose = False
)للحصول على صورة بتنسيق PIL ، سيتعين عليك أولاً نقل الصور إلى وحدة المعالجة المركزية وتحويل Tensor إلى صفيف numpy.
images = images . to ( 'cpu' ). numpy () ثم الصورة
image = Image . fromarray ( images [ i ])
image . save ( 'image_{}.png' . format ( i )) إذا تم استخدام النموذج بشكل تفاعلي (على سبيل المثال في دفتر ملاحظات) ، يمكن استخدام generate_image_stream لإنشاء دفق من الصور لأن النموذج هو فك تشفير. يضيف Detokenizer تأخيرًا بسيطًا لكل صورة. set progressive_outputs إلى True لتمكين هذا. يتم تنفيذ مثال في كولاب.
image_stream = model . generate_image_stream (
text = 'Dali painting of WALL·E' ,
seed = - 1 ,
grid_size = 3 ,
progressive_outputs = True ,
is_seamless = False ,
temperature = 1 ,
top_k = 256 ,
supercondition_factor = 16 ,
is_verbose = False
)
for image in image_stream :
display ( image )
استخدم image_from_text.py لإنشاء الصور من سطر الأوامر.
$ python image_from_text.py --text= ' artificial intelligence ' --no-mega