מדריך ליצירת תמונות

משימת מחולל תמונות

המשימה 'יצירת תמונות ב-MediaPipe' מאפשרת ליצור תמונות על סמך הנחיה בטקסט. במשימה הזו נעשה שימוש במודל טקסט לתמונה כדי ליצור תמונות באמצעות שיטות דיפוזיה.

המשימה מקבלת הנחיה בטקסט כקלט, יחד עם תמונה אופציונלית של תנאי שהמודל יכול להוסיף ולהשתמש בה כמקור ליצירה. למידע נוסף על יצירת תמונות מותנות מטקסט, אפשר לעיין במאמר יישומי פלאגין של דיפוזיה במכשיר ליצירת תמונות מותנות מטקסט.

הכלי ליצירת תמונות יכול גם ליצור תמונות על סמך מושגים ספציפיים שסיפקתם למודל במהלך האימון או האימון מחדש. מידע נוסף זמין במאמר התאמה אישית באמצעות LoRa.

תחילת העבודה

כדי להתחיל להשתמש במשימה הזו, פועלים לפי אחד מהמדריכים הבאים להטמעה בפלטפורמת היעד. במדריכים הספציפיים לפלטפורמות האלה מוסבר איך מטמיעים את המשימה הזו, עם דוגמאות קוד שמשתמשות במודל ברירת המחדל ובאפשרויות ההגדרה המומלצות:

פרטי המשימה

בקטע הזה מוסבר על היכולות, הקלט, הפלט והאפשרויות להגדרה של המשימה הזו.

תכונות

אפשר להשתמש ב-Image Generator כדי להטמיע את הפעולות הבאות:

  1. יצירת תמונות מטקסט – יצירת תמונות באמצעות הנחיה בטקסט.
  2. יצירת תמונות באמצעות תמונות תנאי – יצירת תמונות באמצעות הנחיה בטקסט ותמונה לדוגמה. הכלי ליצירת תמונות משתמש בתמונות מותנות בדרכים שדומות ל-ControlNet.
  3. יצירת תמונות באמצעות משקלים של LoRA – יצירת תמונות של אנשים, אובייקטים וסגנונות ספציפיים באמצעות הנחיה בטקסט, באמצעות משקלים מותאמים אישית של מודלים.
קלט של משימות פלט של משימות
הכלי ליצירת תמונות מקבל את הקלטות הבאות:
  • הנחיה לטקסט
  • מילת מפתח ראשונית
  • מספר החזרות של היצירה
  • אופציונלי: תמונת התנאי
התוצאות הבאות מוצגות כפלט של הכלי ליצירת תמונות:
  • תמונה שנוצרה על סמך הקלט.
  • אופציונלי: קובצי snapshot חוזרים של התמונה שנוצרה.

אפשרויות הגדרה

למשימה הזו יש את אפשרויות ההגדרה הבאות:

שם האפשרות תיאור טווח ערכים
imageGeneratorModelDirectory ספריית המודל של הגנרטורים של התמונות שמאחסנת את משקלי המודל. PATH
loraWeightsFilePath הגדרת הנתיב לקובץ המשקלים של LoRA. אופציונלי ורלוונטי רק אם הדגם מותאם אישית באמצעות LoRA. PATH
errorListener הגדרת מאזין אופציונלי לשגיאות. N/A

המשימה תומכת גם במודלים של יישומי פלאגין, שמאפשרים למשתמשים לכלול תמונות תנאי בקלט של המשימה, והמודל הבסיסי יכול להוסיף אותן ולהשתמש בהן כמקור עזר ליצירה. התמונות האלה יכולות להיות ציוני דרך בפנים, קווי מתאר של קצוות ותחזיות עומק. המודל משתמש בהן כמידע נוסף להקשר ליצירת תמונות.

כשמוסיפים מודל פלאגין למודל הבסיס, צריך גם להגדיר את אפשרויות הפלאגין. הפלאגין של ציון מקום בפנים משתמש ב-faceConditionOptions, הפלאגין של קצה Canny משתמש ב-edgeConditionOptions והפלאגין של עומק משתמש ב-depthConditionOptions.

אפשרויות של קווי Canny

מגדירים את האפשרויות הבאות ב-edgeConditionOptions.

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
threshold1 הסף הראשון של תהליך ההיסטריה. Float 100
threshold2 הסף השני של תהליך ההייסטרזיס. Float 200
apertureSize גודל הצמצם של אופרטור Sobel. הטווח האופייני הוא בין 3 ל-7. Integer 3
l2Gradient האם נעשה שימוש בתקן L2 כדי לחשב את עוצמת שיפוע התמונה, במקום התקן L1 שמוגדר כברירת מחדל. BOOLEAN False
EdgePluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

מידע נוסף על אופן הפעולה של אפשרויות ההגדרה האלה זמין במאמר חיפוש קצוות של Canny.

אפשרויות של נקודות ציון בפנים

מגדירים את האפשרויות הבאות ב-faceConditionOptions.

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
minFaceDetectionConfidence דירוג האמון המינימלי שדרוש כדי שזיהוי הפנים יחשב כהצלחה. Float [0.0,1.0] 0.5
minFacePresenceConfidence דירוג הוודאות המינימלי של דירוג נוכחות הפנים בזיהוי נקודות ציון בפנים. Float [0.0,1.0] 0.5
faceModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של המודל שיוצר את קובץ האימג' של התנאי. אובייקט BaseOptions N/A
FacePluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

מידע נוסף על אופן הפעולה של אפשרויות ההגדרה האלה זמין במאמר משימה של זיהוי נקודות ציון בפנים.

אפשרויות עומק

מגדירים את האפשרויות הבאות ב-depthConditionOptions.

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
depthModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של המודל שיוצר את קובץ האימג' של התנאי. אובייקט BaseOptions N/A
depthPluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

דגמים

כדי להשתמש ב-Image Generator נדרש מודל בסיס, שהוא מודל AI להמרת טקסט לתמונה שמשתמש בשיטות של דיפוזיה כדי ליצור תמונות חדשות. המודלים הבסיסיים שמפורטים בקטע הזה הם מודלים קלים שהותאמו לפעולה בסמארטפונים מתקדמים.

מודלים של יישומי פלאגין הם אופציונליים ותורמים למודלים הבסיסיים. הם מאפשרים למשתמשים לספק תמונה נוספת של תנאי יחד עם הנחיה בטקסט, כדי ליצור תמונות ספציפיות יותר. התאמה אישית של מודלים בסיסיים באמצעות משקלים של LoRA היא אפשרות שמאפשרת ללמד את המודל הבסיסי על קונספט ספציפי, כמו אובייקט, אדם או סגנון, ולהחדיר אותם לתמונות שנוצרות.

למודלים בסיסיים

מודלים בסיסיים הם מודלים סמויים של דיפוזיה מסוג טקסט לתמונה, שמפיקים תמונות מהנחיה בטקסט. יצירת התמונות דורשת שמודל הבסיס יתאים לפורמט המודל runwayml/stable-diffusion-v1-5 EMA-only, על סמך המודל הבא:

גם המודלים הבאים תואמים ל-Image Generator:

אחרי שמורידים מודל בסיס, משתמשים ב-image_generator_converter כדי להמיר את המודל לפורמט המתאים במכשיר ל-Image Generator.

מתקינים את יחסי התלות הנדרשים:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

מריצים את הסקריפט convert.py:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

מודלים של פלאגינים

מודלי הפלאגין בקטע הזה פותחו על ידי Google, וצריך להשתמש בהם בשילוב עם מודל בסיס. מודלים של פלאגין מאפשרים ל-Image Generator לקבל תמונה של תנאי יחד עם הנחיית טקסט כקלט, וכך לשלוט במבנה של התמונות שנוצרות. מודלים של הפלאגין מספקים יכולות דומות ל-ControlNet, עם ארכיטקטורה חדשנית שמיועדת במיוחד להפצה במכשיר.

צריך לציין את המודלים של הפלאגין באפשרויות הבסיס, וייתכן שתצטרכו להוריד קבצים נוספים של מודלים. לכל פלאגין יש דרישות ייחודיות לתמונה של התנאי, שאפשר ליצור באמצעות הכלי ליצירת תמונות.

פלאגין Canny Edge

דוגמה לפלט של שתי תמונות שנוצרו באמצעות תמונה של תנאי שסופקה עם קו מתאר חזק של לבנים וההנחיה

הפלאגין Canny Edge מקבל קובץ תמונה של תנאי שמציג את קווי המתאר של הקצוות המיועדים של התמונה שנוצרה. מודל הבסיס משתמש בקצוות שמשתמעים מתמונת התנאי, ויוצר תמונה חדשה על סמך הנחיית הטקסט. הכלי ליצירת תמונות מכיל יכולות מובנות ליצירת קובצי אימג' מותנים, והוא דורש רק הורדה של מודל הפלאגין.

הורדת הפלאגין Canny Edge

הפלאגין Canny Edge מכיל את אפשרויות ההגדרה הבאות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
threshold1 הסף הראשון של תהליך ההיסטריה. Float 100
threshold2 הסף השני של תהליך ההייסטרזיס. Float 200
apertureSize גודל הצמצם של אופרטור Sobel. הטווח האופייני הוא בין 3 ל-7. Integer 3
l2Gradient האם נעשה שימוש בתקן L2 כדי לחשב את עוצמת שיפוע התמונה, במקום התקן L1 שמוגדר כברירת מחדל. BOOLEAN False
EdgePluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

מידע נוסף על אופן הפעולה של אפשרויות ההגדרה האלה זמין במאמר חיפוש קצוות של Canny.

הפלאגין 'ציון דרך בפנים'

דוגמה לפלט של שתי תמונות שנוצרו באמצעות תמונת תנאי של ציור פנים ושני פריטים שונים של הנחיה, כדי להראות שאפשר להשתמש באותה תמונת תנאי כדי ליצור תמונות שונות מאוד

הפלאגין Face Landmark מקבל את הפלט מ-Face Landmark של MediaPipe כתמונה של התנאי. 'ציון דרך בפנים' מספק רשת פנים מפורטת של פנים אחת, שממפה את הנוכחות והמיקום של תכונות הפנים. מודל הבסיס משתמש במיפוי הפנים שמשתמע מתמונת התנאי, ויוצר פנים חדשות מעל הרשת.

הורדת הפלאגין של זיהוי נקודות ייחודיות בפנים

כדי ליצור את תמונת התנאי, נדרש גם חבילת המודל של Face Landmarker לפלאגין של זיהוי נקודות ציון בפנים. חבילת המודל הזו זהה לחבילה שבה משתמשים במשימה Face Landmarker.

הורדת חבילת מודל של נקודות ציון בפנים

הפלאגין Face Landmark מכיל את אפשרויות התצורה הבאות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
minFaceDetectionConfidence דירוג האמון המינימלי שדרוש כדי שזיהוי הפנים יחשב כהצלחה. Float [0.0,1.0] 0.5
minFacePresenceConfidence דירוג הוודאות המינימלי של דירוג נוכחות הפנים בזיהוי נקודות ציון בפנים. Float [0.0,1.0] 0.5
faceModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של המודל שיוצר את קובץ האימג' של התנאי. אובייקט BaseOptions N/A
FacePluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

מידע נוסף על אופן הפעולה של אפשרויות ההגדרה האלה זמין במאמר משימה של זיהוי נקודות ציון בפנים.

פלאגין עומק

דוגמה לתוצאה של שתי תמונות שנוצרו באמצעות תמונה של תנאי שסופקה, שבה מוצגת הצורה הכללית של רכב. התמונות האלה נועדו להראות שפלאגין העומק יכול ליצור תמונות שמוסיפות עומק לתמונה שטוחה.

הפלאגין Depth מקבל תמונה של תנאי שמציינת את העומק החד-עיני של אובייקט. מודל הבסיס משתמש בתמונת התנאי כדי להסיק את הגודל והעומק של האובייקט שייווצר, ויוצר תמונה חדשה על סמך ההנחיה בטקסט.

הורדת הפלאגין Depth

כדי ליצור את התמונה של תנאי הבדיקה, נדרש גם מודל להערכת עומק בפלאגין Depth.

הורדת מודל להערכת עומק

הפלאגין Depth מכיל את אפשרויות ההגדרה הבאות:

שם האפשרות תיאור טווח ערכים ערך ברירת מחדל
depthModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של המודל שיוצר את קובץ האימג' של התנאי. אובייקט BaseOptions N/A
depthPluginModelBaseOptions האובייקט BaseOptions שמגדיר את הנתיב של מודל הפלאגין. אובייקט BaseOptions N/A

התאמה אישית באמצעות LoRA

התאמה אישית של מודל באמצעות LoRA יכולה לאפשר ל-Image Generator ליצור תמונות על סמך מושגים ספציפיים, שזוהו באמצעות אסימונים ייחודיים במהלך האימון. בעזרת המשקלים החדשים של LoRA אחרי האימון, המודל יכול ליצור תמונות של הקונספט החדש כשהאסימון מצוין בהנחיית הטקסט.

כדי ליצור משקלים של LoRA, צריך לאמן מודל בסיס על תמונות של אובייקט, אדם או סגנון ספציפיים. כך המודל יוכל לזהות את הקונספט החדש ולהחיל אותו בזמן יצירת התמונות. אם אתם יוצרים משקלות LoRa כדי ליצור תמונות של אנשים ופנים ספציפיים, השתמשו בפתרון הזה רק בפנים שלכם או בפנים של אנשים שנתתם להם הרשאה לעשות זאת.

בהמשך מוצג הפלט של מודל מותאם אישית שהודרן על תמונות של קומקומים ממערך הנתונים DreamBooth, באמצעות האסימון monadikos teapot:

תמונה פוטו-ריאליסטית שנוצרה של כלי תה שיושב על שולחן ליד מראה שמותקנת על קיר

הנחיה: קנקן תה של monadikos לצד מראה

המודל המותאם אישית קיבל את האסימון בהנחיה והחדיר ספל תה שהוא למד לתאר מהמשקלים של LoRA, והציב אותו בתמונה לצד מראה כפי שביקשו בהנחיה.

LoRA עם Vertex AI

מידע נוסף זמין במדריך להתאמה אישית, שבו נעשה שימוש ב-Model Garden ב-Vertex AI כדי להתאים אישית מודל על ידי החלת משקלים של LoRA על מודל בסיס.