توليد البيانات المرئية - الذكاء الاصطناعي - ثالث ثانوي
الجزء الأول
1. أساسيات الذكاء الاصطناعي
2. خوارزميات الذكاء الاصطناعي
3. معالجة اللغات الطبيعية
الجزء الثاني
4. التعرف على الصور
5. خوارزميات التحسين واتخاذ القرار
6. الذكاء الاصطناعي والمجتمع
رابط الدرس الرقمي الدرس الثالث توليد البيانات المرئية استخدام الذكاء الاصطناعي في توليد و الصور Using Al to Generate Images بينما ركزت خوارزميات رؤية الحاسب التي تم توضيحها في الدرسين السابقين من هذه الوحدة على فهم الجوانب المختلفة لصورة معينة، يُركّز مجال توليد الصور (Image Generation) في هذا الدرس على إنشاء صور جديدة. فمجال توليد الصور (Image Generation) له تاريخ طويل يعود إلى الخمسينيات والستينيات من القرن العشرين عندما بدأ الباحثون لأول مرة في إجراء تجارب على معادلات رياضية لإنشاء الصور، وفي عصرنا الحالي نما هذا المجال ليشمل مجموعة واسعة من التقنيات. يُعدُّ استخدام الفراكتلات (Fractals) من أقدم وأشهر تقنيات إنشاء الصور ، والفراكتل هو شكل أو نمط هندسي مشابه لذاته، مما يعني أنه يبدو متشابها عند تكبيره بمقاييس مختلفة، وأشهر فراكتل هو الذي يضم مجموعة ماندلبروت (Mandelbrot الموضح في الشكل 4.25. شكل 4.25 فراكتل ماندلبروت www.ien.edu.sa في أواخر القرن العشرين، بدأ الباحثون في استكشاف أساليب أكثر تقدماً لتوليد الصور مثل الشبكات العصبية. يُعدُّ إنشاء صورة من نص (Text-to-Image Synthesis) من أكثر التقنيات شيوعًا لإنشاء الصور باستخدام الشبكات العصبية، وتتضمن هذه التقنية تدريب شبكة عصبية على توليد صور من أوصاف نصيَّة، فتُدرَّب الشبكة العصبية على مجموعة بيانات من الصور والأوصاف النصيَّة المرتبطة بها. وتتعلّم الشبكة ربط كلمات أو عبارات معينة بخصائص معينة للصورة مثل: شكل العنصر أو لونه، وبمجرد أن تُدرَّب الشبكة يصبح من الممكن استخدامها في إنشاء صور جديدة بناءً على الأوصاف الواردة في النص، وتستخدم هذه التقنية في إنشاء مجموعة واسعة من الصور تتراوح ما بين العناصر البسيطة إلى المشاهد المعقدة. وهناك تقنية أخرى لتوليد الصورة تتمثّل في إنشاء صورة من صورة Image-to-Image thesis ) ، وتتضمن هذه التقنية تدريب شبكة عصبية على مجموعة بيانات من الصور؛ لتتعلّم التعرّف على الخصائص الفريدة للصورة حتّى تولّد صورًا جديدة مشابهة للصورة الموجودة، ولكن مع وجود اختلافات في الآونة الأخيرة استكشف الباحثون إنشاء صورة من صورة بالاسترشاد بنص (Text-Guided Image-to-Image Synthesis) ، مما يجمع بين نقاط القوة في طرائق إنشاء صورة من نص، وطرائق إنشاء صورة من صورة من خلال السماح للمستخدم بتوجيه عملية الإنشاء باستخدام توجيهات نصية (Text Prompts)، وتُستخدم هذه التقنية في توليد صور عالية الجودة تتوافق مع التوجيه النصي، وتكون في الوقت ذاته مشابهة بصريا للصورة الطبيعية. وأخيرًا، هناك تقنية أخرى من أحدث التقنيات في هذا المجال تتمثل في رسم صورة بالاسترشاد بنص (Text-Guided Image-Inpainting) ، ويُركّز على ملء الأجزاء المفقودة أو التالفة من الصورة بناءً على وصف نصي معين، ويقدِّم الوصف النصي معلومات عن الشكل الذي يجب أن تبدو عليه الأجزاء المفقودة أو التالفة من الصورة، والهدف من خوارزمية الرسم هذه أن تُستخدم المعلومات؛ لإنشاء صورة واقعية ومترابطة. يقدِّم هذا الدرس أمثلة عملية على توليد الصور من خلال: إنشاء صورة من نصّ، وإنشاء صورة من صورة بالاسترشاد بنص ، ورسم صور بالاسترشاد بنص. 236 وزارة التعليم Ministry of Education 2024-1446
237 توليد الصور والموارد الحاسوبية Image Generation and Computational Resources و (Graphics Processing Unit - GPU) إنشاء الصور مُهمَّة مكلَّفة من الناحية الحاسوبية؛ لأنها تتضمن استخدام وحدة معالجة الرسومات خوارزميات معقدة تتطلب قدرات عالية من قوة المعالجة، وعادةً تتضمن هذه الخوارزميات معالجة كميات كبيرة من البيانات مثل: نماذج ثلاثية الأبعاد ، والنقوش، ومعلومات الإضاءة ، مما يمكن أن يؤدي أيضًا إلى زيادة و و الله لل هي نوع خاص من أنواع المعالجات مصمم للتعامل مع كميات كبيرة من العمليات الحسابية المتطلبات الحاسوبية للمهِمَّة. يُعدُّ استخدام وحدات معالجة الرسومات المطلوبة لمعالجة الصور والفيديوهات. (Graphics Processing Units – GPUS أحد التقنيات الرئيسة التي تُستخدم لتسريع توليد الصور. وعلى عكس وحدة المعالجة المركزية ( Central Processing Unit - CPU) التقليدية المُصمَّمة للتعامل مع مجموعة واسعة من المهام، تم تحسين وحدة معالجة الرسومات حتّى تتناسب مع أنواع العمليات الحسابية المطلوبة لمعالجة الصور والمهام الأخرى المتعلقة بالرسومات، مما يجعلها أكثر كفاءة في التعامل مع كميات كبيرة من البيانات وإجراء عمليات حسابية معقدة، ويُعدُّ هذا سببًا في استخدامها عادة في توليد الصور والمهام الأخرى المكلّفة حاسوبيا . يوضّح هذا الدرس كيف يمكنك استخدام منصة قوقل كولاب Google Colab) الشهيرة للوصول إلى بنية تحتية قوية قائمة على وحدة معالجة الرسومات دون أي تكلفة، وذلك باستخدام حساب عادي على قوقل، وقوقل کولاب هو منصة مجانية تعتمد على التقنية السحابية، وتتيح للمستخدمين كتابة المقاطع البرمجية، وتنفيذها، وإجراء التجارب وتدريب النماذج في بيئة مفكرة جوبيتر (Jupyter Notebook). للوصول إلى منصة قوقل كولاب > اذهب إلى : https://colab.research.google.com.1 > سجل الدخول بحساب Google ( قوقل) الخاص بك. 2 > اضغط على Edit ، تحرير ، ثم Notebook settings ) إعدادات المفكرة ) . وزارة التعليم Ministry of Education 2024-1446 Co Welcome To Colaboratory - Cola x + A https://colab.research.google.com Welcome To Colaboratory 1 File Edit View Insert Runtime Tools Help > اختر GPU ( وحدة معالجة الرسومات) ، ( ثم اضغط على Save ( حفظ ) . 5 X A 2 Share Sign in Editing Undo Table o Redo Ctrl+M Z ext Ctrl+Shift+Y Copy to Drive Connect Getting Data s Select all cells Ctrl+Shift+A ne to Colab! {x} Machii More F Fe Cut cell or selection Copy cell or selection Paste eady familiar with Colab, check out this video to learn about interactive tables, the ›de history view, and the command palette. Delete selected cells Ctrl+M D + Se Find and replace Find next Find previous Notebook settings Clear all outputs Ctrl+H Ctrl+G Ctrl+Shift+G 3 3 Cool Google Colab Features Notebook settings Hardware accelerator What is Colab: Colab, or "Colaboratory", allows you to write and execut ⚫ Zero configuration required شكل 4.26 : الوصول إلى منصة قوقل كولاب None None GPU TPU 4 tput when saving this notebo 5 Cancel Save
CO !!! Ő لاستخدام مفكرة البايثون : > اضغط على File (ملف) ، ثم على New notebook ( مفكرة جديدة. > اضغط على Files (ملفات) ، 2 وفي المنطقة المجاورة التي ستظهر لك اسحب وأفلت images ( الصور التي ستستخدمها في الدرس 3 > يمكنك الآن كتابة مقطعك البرمجى بلغة البايثون داخل خلية المقطع البرمجي، 4 ثم شغله من خلال الضغط على الزر الموجود بجانب خلية المقطع البرمجي. 5 Welcome To Colaboratory File Edit View Insert Runtime Tools Help New notebook 1 Ta Open notebook Upload notebook {x} ☐ Rename Save a copy in Drive Save a copy as a GitHub Gist Save a copy in GitHub وزارة التعليم Ministry of Education 2024-1446 Save Revision history Download Print Code + Text Copy to Drive Ctrl+O ▲ Untitled1.ipynb File Edit View Insert Runtime Tools Help All changes saved = Files Ca Ctr {x} sample_data 2 Ctr X + Code + Text 4 5 3 تعمل بيئة قوقل كولاب بشكل مشابه لعمل مفكرة جوبيتر ، وفيما يلي تجد مثال Hello World (مرحبا بالعالم) التقليدي: CO Untitled1.ipynb ✩ File Edit View Insert Runtime Tools Help All changes + Code + Text print("hello world") hello world Os !!! Ő {x} خوارزميات توليد الصور (Image Generation) التي وصفناها في هذا الفصل مصممة بطريقة تجعلها إبداعية وبالتالي فهي ليست ثابتة، مما يعني أنه من غير المضمون أن تقوم دائما بتوليد الصورة نفسها للمدخلات نفسها. وعليه، فإن الصور المولدة المدرجة في هذا الفصل مجرد أمثلة على الصور التي يمكن توليدها باستخدام المقطع البرمجـ شكل :4.27 استخدام مفكرة البايثون نماذج الانتشار والشبكة التوليدية التنافسية Diffusion Models and Generative Adversarial Networks في السنوات الأخيرة شهد مجال توليد الصور تقدمًا كبيرًا مع تطوير أساليب ونماذج مختلفة يمكنها توليد صور واقعية وعالية الجودة من مصادر مختلفة للمعلومات، وهناك تقنيتان من أكثر التقنيات شيوعًا واستخداما على نطاق واسع لتوليد الصور :هما الشبكة التوليدية التنافسية ( GANS) ، ونموذج الانتشار المستقر (Stable Diffusion) . ستتعرف في هذا القسم على المفاهيم والأساليب الرئيسة الخاصة بالشبكة التوليدية التنافسية ونموذج الانتشار المستقر ، كما سيتم تقديم نظرة عامة على تطبيقاتها في توليد الصور، وسيتم مناقشة أوجه التشابه والاختلاف بينهما، ومزايا كل تقنية وعيوبها . . 238
توليد الصور بالشبكة التوليدية التنافسية Generating Images with Generative Adversarial Networks (GANS) الشبكة التوليدية التنافسية هي فئة من النماذج التوليدية التي تتكون من مكونين رئيسين وهما المولّد (Generator) والمميز (Discriminator) ، حيث يقوم المولّد بتوليد صور زائفة، بينما يحاول المميّز تمييز الصور المولدة من الصور الحقيقية، ويُدرب هذان المكونان تدريبًا تنافسيًّا، إذ يحاول المولد أن يخدع" المميّز ، ويحاول المميّز أن يصبح أفضل في اكتشاف الصور الزائفة. تتمثل إحدى المزايا الرئيسة للشبكة التوليدية التنافسية في قدرتها على توليد صور عالية الجودة وواقعية يصعب تمييزها عن الصور الحقيقية، ولكن يوجد بها أيضًا بعض القيود مثل عدم التقارب (Non-convergence أو بعبارة أخرى، فشل شبكتي المولد والمميز في التحسن مع مرور الوقت، ونقص التنوع Mode Collapse ) في المخرجات، حيث ينتج النموذج نفس المخرجات المتشابهة مراراً وتكرارًا بغض النظر عن المدخلات. يُطبق المولد والمميز في الشبكة التوليدية التنافسية في العادة باستخدام الشبكات العصبية الترشيحية (CNN) أو أي معمارية مشابهة. صور حقيقية المميز عناوين تم التنبؤ بها ضوضاء عشوائية المولد صور زائفة الخسارة شكل :4.28 معمارية الشبكة التوليدية التنافسية ، توليد الصور بالانتشار المستقر Generating Images with Stable Diffusion الانتشار المستقر هو نموذج تعلم عميق لتوليد صورة من نص، وتتكون هذه الطريقة من مكونين رئيسين: مُرمز النص Text Encoder ) ومفكك الترميز المرئي(Visual Decoder). ويُدرَّب مرمز النص ومفكك الترميز المرئي معا على مجموعة بيانات مكونة من بيانات نصوص وبيانات صور مقترنة ببعضها؛ حيث يقترن كل مُدخَل نصي بصورة مقابلة أو أكثر. مرمز النص هو شبكة عصبية تأخذ مدخلات نصيَّة مثل: جملة أو فقرة وتحولها إلى تضمين (Embedding) ، والتضمين هو متّجه عددي له عدد ثابت من القيم، ويلتقط تمثيل التضمين هذا معنى النص المدخل. يتم استخدام نهج مشابه في نموذج الكلمة إلى المتَّجه (Word2Vec) ونموذج ترميز الجمل ثنائية الاتجاه من المحولات (SBERT) اللذين تم توضيحهما في الوحدة الثالثة، حيث يولدان تضمينات للكلمات والجمل الفردية على الترتيب. ويُمرر بعد ذلك تضمين النص (Text Embedding الذي أنشأه المرمز عبر مفكّك الترميز المرئي لتوليد صورة، ومفكك الترميز المرئي هو أيضًا نوع من الشبكات العصبية ويُنفذ عادةً باستخدام شبكة عصبية ترشيحية (CNN) أو معمارية مشابهة، وتُقارن الصورة المولَّدة بالصورة الحقيقية المقابلة الموجودة في مجموعة البيانات، ويُستخدم الفرق بينهما لحساب الخسارة ( Loss) ، ثم تُستخدم الخسارة لتحديث متغيرات مرمز النص ومفكّك الترميز المرئي؛ لتقليل الاختلاف بين الصور التي ولدت والصور الحقيقية. و جدول 4.4 عملية تدريب الانتشار المستقر لک و 1. مرّر المدخلات النصية عبر مرمز النصّ للحصول على تضمين النص. .2 مرر تضمين النصّ عبر مفكّك الترميز المرئي لتوليد صورة. و لل 3. احسب الخسارة ( الاختلاف بين الصورة المولدة والصورة الحقيقية المقابلة لها الموجودة في مجموعة البيانات. .4. استخدم الخسارة؛ لتحديث متغيّرات مُرمز النصّ ومفكّك الترميز المرئي، وعندما يكون المستوى عاليًا يتضمن ذلك مكافأة (Rewarding) الخلايا العصبية التي ساعدت على تقليل الخسارة ومعاقبة (Punishing) الخلايا العصبية التى ساهمت في زيادتها. .5 كرّر الخطوات المذكورة سابقًا مع أزواج متعددة من النصوص والصور في مجموعة البيانات. 239 وزارة التعليم Ministry of Education 2024-1446
240 و كل من نموذج الشبكة التوليدية التنافسية ونموذج الانتشار المستقر نتائج مبهرة في مجال توليد الصور، ويُركّز نگ الجزء المتبقي من هذا الدرس على تقديم أمثلة عملية بلغة البايثون على النهج القائم على الانتشار (Diffusion-Based ) والذي يُعدُّ حاليًا أحدث ما توصلت إليه التقنية. كما تم التوضيح من قبل، يُعدُّ توليد الصور مُهمَّة مكلّفة حاسوبيًّا ، ولذلك نوصيك بشدة بأن تطبق جميع أمثلة البايثون على نظام قوقل كولاب الأساسي أو أي بنية أساسية مختلفة تدعمها وحدة معالجة رسومات يكون لديك حق الوصول إليها. يستخدم هذا الفصل مكتبة diffusers التي تُعدُّ حاليًا أفضل مكتبة مفتوحة المصدر للنماذج القائمة على الانتشار، ويقوم المقطع البرمجي التالي بتثبيت المكتبة، وكذلك بعض المكتبات الإضافية المطلوبة %%capture !pip install diffusers !pip install transformers !pip install accelerate import matplotlib.pyplot as plt from PIL import Image # used to represent images توليد الصورة من نص Text-to-Image Generation يوضّح هذا القسم الطريقة التي يمكن بها استخدام مكتبة diffusers لتوليد صور تعتمد على التوجيه النصي الذي يقدمه المستخدم ، وتُستخدم الأمثلة الواردة في هذا القسم نموذج -4-stable-diffusion-v1 (الانتشار المستقر - الإصدار 1-4 ) ، وهو نموذج شائع مُدرَّب مسبقًا لتوليد الصورة من نص. # a tool used to generate images using stable diffusion from diffusers import Diffusion Pipeline generator = DiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4 " ) # specifies what GPUs should be used for this generation generator.to("cuda") image = generator("A photo of a white lion in the jungle.").images[0] plt.imshow(image); شكل :4.29 صورة مولدة لأسد أبيض في الغابة يستجيب النموذج للتوجيه A photo of a white lion in the jungle ( صورة أسد أبيض في الغابة بصورة مبهرة وواقعية جدًا، كمـا هـو موضح في الشكل ،4.29 ويُعد التجريب باستخدام التوجيهات الإبداعية هو أفضل طريقة لاكتساب الخبرة وفهم قدرات هذا النهج ونقاط ضعفه. ، معلومة معمارية أجهزة الحاسب الموحد (Compute Unified Device Architecture - CUDA) هي منصة حوسبة موازية تتيح استخدام وحدات معالجة الرسومات (GPUS). وزارة التعليم Ministry of Education 2024-1446
معلومة: معمارية أجهزة الحاسب الموحد ( compute unified device architecture - CUDA) هي منصة حوسبة موازية تتيح استخدام وحدات معالجة الرسومات GPUs
241 يضيف التوجيه (Prompt) التالي بُعدًا إضافيًا لعملية التوليد، إذ يطلب أن يُرسم أسد أبيض بطريقة بابلو بيكاسو Pablo Picasso ، وهو من أشهر الرسامين في القرن العشرين. image = generator("A painting of a white lion in the style of Picasso."). images[0] plt.imshow(image); ومرة أخرى، النتائج مبهرة وتُظهر الإبداع في عملية الانتشار المستقر ، فالصورة الناتجة عن العملية هي في الواقع صورة أسد أبيض. ولكن على عكس التوجيه السابق، يؤدي التوجيه الجديد إلى صور تشبه الرسم بدلا من أن تشبه الصور الفوتوغرافية، بالإضافة إلى ذلك، فإن أسلوب اللوحة يشبه بالفعل وبشكل ملحوظ أسلوب بابلو بيكاسو. توليد صورة من صورة من خلال الاسترشاد بنص Image-to-Image Generation with Text Guidance يستخدم المثال التالي مكتبة diffusers لتوليد صورة بناءً شكل 4.30 صورة مولّدة لأسد على نمط بيكاسو على مدخلين هما: صورة موجودة تعمل كأساس للصورة الجديدة التي سيتم إنشاؤها ، وتوجيه نصي يصف الشكل m الذي يجب أن تبدو عليه الصورة المنتجة. بما أن مُهِمَّة تحويل النص إلى الصورة الموضّحة في القسم السابق كانت محدودة فقط بتوجيه نصي، فيجب أن تضمن المهِمَّة الجديدة أن تكون الصورة الجديدة مشابهة للصورة الأصلية، ومُمثّلةً بشكل دقيق للوصف الوارد في التوجيه النصي. وزارة التعليم Ministry of Education 2024-1446 #pipeline used for image to image generation with stable diffusion from diffusers import Stable DiffusionImg2Img Pipeline # loads a pretrained generator model generator = StableDiffusionImg2ImgPipeline.from_pretrained("runwayml/stable- diffusion-v1-5") # moves the generator model to the GPU (CUDA) for faster processing generator.to("cuda") init_image = Image.open("landscape.jpg") init_image.thumbnail((768, 768)) #resizes the image to prepare it as input of the model plt.imshow(init_image);
6 شكل 4.31 صورة المنظر الطبيعي الأصلية المثال الموجود في الشكل 4.31 يستخدم النموذج المدرب مسبقا 4-stable-diffusion-v1 المناسب لتوليد صورة من صورة من خلال التوجيه النصي. # a detailed prompt describing the desired visual # for the produced image = prompt "A realistic mountain landscape with a large castle." image = generator(prompt=prompt, image = init_image, strength=0.75). images[0] plt.imshow(image); شكل :4.32 صورة منظر طبيعي مولدة بقوة = 0.75 في الواقع، يولد النموذج صورة مستجيبةً للتوجيه النصي ومشابهة بصريا للصورة الأصلية، ويُستخدم متغير strength ( القوة ) للتحكم في الاختلاف البصري بين الصورة الأصلية والصورة الجديدة ، ويتخذ المتغيّر قيما بين 0 و1، وتسمح القيم الأعلى للنموذج بأن يكون أكثر مرونة وأقل تقيُّدًا بالصورة الأصلية. على سبيل المثال، يُستخدم المقطع البرمجي التالي لنفس prompt ( التوجيه ) من خلال ضبط المتغيّر strength ليساوي 1. شكل :4.33 صورة منظر طبيعي مولدة بقوة = 1 شكل 4.34 صورة القصّة الأصلية وزارة التعليم Ministry of Education 2024-1446 # generate a new image based on the prompt and the # initial image using the generator model image = generator(prompt=prompt, image = init_image, strength=1).images[0] plt.imshow(image); تؤكد الصورة الناتجة في شكل 4.33 أن زيادة قيمة متغيّر القوة تؤدي إلى شكل بصري أفضل بالإرشاد الوارد في التوجيه النصي، ولكنه أيضًا أقل تشابها إلى حد كبير مع الصورة المدخلة. وهذا مثال نموذجي آخر، يتضح مخرجه في الشكل 4.34. init_image = Image.open("cat_1.jpg") init_image.thumbnail ((768, 768)) plt.imshow(init_image); 242
وسيستخدم المقطع البرمجي التالي لتحويل هذه الصورة إلى صورة tiger (نمر): prompt = "A photo of a tiger" image = generator(prompt=prompt, image=init_image, strength=0.5).images[0] plt.imshow(image); لل تتقيد المحاولة الأولى بقيمة المتغيّر strength ، مما أدى إلى صورة تبدو وكأنها مزيج بين النمر والقصّة الموجودة في الصورة الأصلية، كما هو موضح في الشكل 4.35، وتدل الصورة الجديدة على أن الخوارزمية لم تكن لديها القوة الكافية لتحويل وجه القطّة تحويلا صحيحًا إلى وجه نمر ، وتظل الخلفية مشابهة جدا لخلفية الصورة الأصلية. بعد ذلك، تتم زيادة المتغير strength للسماح للنموذج بالابتعاد عن الصورة الأصلية والاقتراب أكثر من التوجيه النصي. image = generator(prompt=prompt, image = init_image, strength=0.75). images[0] plt.imshow(image); في الواقع، الصورة الجديدة المعروضة هي صورة نمر ولكن لاحظ أن البيئة المحيطة بالحيوان ووضعية جلوسه وزواياه تظل شديدة الشبه بالصورة الأصلية، ويدل ذلك على أن النموذج ما زال واعيًا بالصورة الأصلية وحاول أن يحافظ على عناصر كان لا بد ألا تُغير؛ حتى يقترب أكثر من التوجيه النصي. ، شكل 4.35 صورة نمر مولدة بقوة = 0.5 شكل 4.36 صورة النمر مولدة بقوة = 0.75 243 وزارة التعليم Ministry of Education 2024-1446
رسم صورة بالاسترشاد بنص Text-Guided Image-Inpainting يُركّز المثال التالي على استخدام نموذج الانتشار المستقر لاستبدال شكل بصري جديد يصفه التوجيه النصي بأجزاء محددة من صورة معينة، ويُستخدم لهذا الغرض النموذج المدرب مسبقًا stable-diffusion-inpainting (رسم - الانتشار - المستقر ) ، ويقوم المقطع البرمجي التالي بتحميل صورة قطّة على مقعد، وهناك قناع (Mask) يعزل الأجزاء المحددة من الصورة التي تغطيها القطّة: وزارة التعليم Ministry of Education 2024-1446 # tool used for text-guided image in-painting from diffusers import StableDiffusionInpaintPipeline init_image = Image.open("cat_on_bench.png").resize((512, 512)) plt.imshow(init_image); mask_image = Image.open("cat_mask.jpg").resize((512, 512)) plt.imshow(mask_image); شكل :4.37 صورة القطة الأصلية شكل 4.38: قناع صورة القطة القناع Mask ) هو صورة بسيطة بالأبيض والأسود لها نفس أبعاد الصورة الأصلية بالضبط، والأجزاء التي استبدلت في الصورة الجديدة تُميز باللون الأبيض، في حين أن الأجزاء الأخرى من القناع سوداء. بعد ذلك، يتم تحميل النموذج المدرب مسبقًا، ويتم إنشاء prompt التوجيه) لكي توضع صورة رائد الفضاء مكان القطة التي في الصورة الأصلية، كما يظهر في الشكل 4.39. لل generator = StableDiffusionInpaintPipeline.from_pretrained("runwayml/stable- diffusion-inpainting") generator = generator.to("cuda " ) prompt image = "A photo of an astronaut" = generator(prompt=prompt, image=init_image, mask_image=mask_image). images[0] plt.imshow(image); 244
نجحت الصورة الجديدة في أن تظهر صورة واقعية للغاية لرائد الفضاء الذي وضعته مكان القطة التي كانت في الصورة الأصلية، كما يمتزج هذا الشكل البصري بسلاسة مع عناصر الخلفية والإضاءة في الصورة. في الواقع، حتّى لو كان القناع أبسط وأقل دقة، يمكن إنتاج بديل واقعي. لاحظ صورة المدخل والقناع التاليين: شكل 4.39: صورة رائد فضاء مولدة init_image = Image.open("desk.jpg").resize((512, 512)) plt.imshow(init_image); mask_image = Image.open("desk_mask.jpg").resize((512, 512)) plt.imshow(mask_image); شكل 4.40 صورة المكتب الأصلية شكل 4.41: قناع صورة المكتب و في هذا المثال، يغطي القناع جهاز الحاسب المحمول الموجود في وسط الصورة، ثم يستخدم prompt ( التوجيه) التالي والمقطع البرمجي ليتم وضع صورة الكتاب مكان جهاز الحاسب المحمول الموجود في الصورة الأصلية prompt = "A photo of a book" image = generator(prompt=prompt, image=init_image, mask_image=mask_image). images[0] plt.imshow(image); على الرغم من أن prompt ( التوجيه ) طلب إدخال كائن (كتاب) يختلف اختلافًا كبيرًا عن الكائن الذي استبدل وهو ( جهاز الحاسب المحمول ) ، فقد قام النموذج بعمل جيد في مزج الأشكال والألوان؛ لإنشاء شكل بصري دقيق، ومع التقدم المستمر في تقنيات تعلُّم الآلة ورسومات الحاسب من المحتمل أن تُنش صورًا أكثر إبهارا وأكثر واقعية في المستقبل. شكل :4.42 صورة مكتب مولّدة وعليها كتاب 245 وزارة التعليم Ministry of Education 2024-1446
وزارة التعليم Ministry of Education 2024-1446 تمرينات صف باختصار عملية رسم صورة بالاسترشاد بنص. صف عملية تدريب نماذج الانتشار المستقر. 1 2 246
3 صف المولد والمميز في الشبكة التوليدية التنافسية. 4 استخدم أداة DiffusionPipeline من مكتبة diffusers لإنشاء صورة لحيوانك المفضل وهو يأكل طعامك المفضل. يمكنك استخدام منصة قوقل كولاب في هذه المهمة. 5) استخدم أداة StableDiffusion2ImagePipleline من مكتبة diffusers لتحويل الحيوان في الصورة المرسومة في التمرين السابق إلى حيوان آخر من اختيارك. يمكنك استخدام منصة قوقل كولاب في هذه المهمة. 247 وزارة التعليم Ministry of Education 2024-1446