המשימה MediaPipe Image Generator מאפשרת ליצור תמונות על סמך הנחיית טקסט. במשימה הזו נעשה שימוש במודל יצירת תמונות לפי טקסט כדי ליצור תמונות באמצעות טכניקות דיפוזיה.
המשימה מקבלת הנחיית טקסט כקלט, יחד עם תמונת תנאי אופציונלית שהמודל יכול לשפר ולהשתמש בה כהפניה ליצירה. מידע נוסף על יצירת תמונות לפי טקסט מותנות זמין במאמר תוספים של דיפוזיה במכשיר ליצירת תמונות לפי טקסט מותנות.
הכלי ליצירת תמונות יכול גם ליצור תמונות על סמך מושגים ספציפיים שסופקו למודל במהלך האימון או האימון מחדש. מידע נוסף זמין במאמר בנושא התאמה אישית באמצעות LoRA.
שנתחיל?
כדי להתחיל להשתמש במשימה הזו, צריך לפעול לפי אחד ממדריכי ההטמעה האלה בהתאם לפלטפורמת היעד שלכם. במדריכים הספציפיים לפלטפורמה מוסבר איך לבצע הטמעה בסיסית של המשימה הזו, עם דוגמאות לקוד שמשתמשות במודל ברירת מחדל ובאפשרויות ההגדרה המומלצות:
פרטי המשימה
בקטע הזה מוסבר על היכולות, הקלטים, הפלטים ואפשרויות ההגדרה של המשימה הזו.
תכונות
אתם יכולים להשתמש בכלי ליצירת תמונות כדי להטמיע את הפעולות הבאות:
- יצירת תמונות לפי טקסט – יצירת תמונות באמצעות הנחיית טקסט.
- יצירת תמונות עם תמונות לדוגמה – יצירת תמונות באמצעות הנחיית טקסט ותמונה לדוגמה. הכלי ליצירת תמונות משתמש בתמונות של תנאים בדרכים דומות ל-ControlNet.
- יצירת תמונות עם משקלים של LoRA – יצירת תמונות של אנשים, אובייקטים וסגנונות ספציפיים באמצעות הנחיית טקסט עם משקלים מותאמים אישית של המודל.
| קלט למשימה | פלט של משימות |
|---|---|
הכלי ליצירת תמונות מקבל את הקלט הבא:
|
מחולל התמונות מפיק את התוצאות הבאות:
|
אפשרויות הגדרה
אלה אפשרויות ההגדרה של המשימה הזו:
| שם האפשרות | תיאור | טווח ערכים |
|---|---|---|
imageGeneratorModelDirectory |
ספריית מודל כלי ליצירת תמונות שבה מאוחסנים משקלי המודל. | PATH |
loraWeightsFilePath |
ההגדרה קובעת את הנתיב לקובץ המשקלים של LoRA. אופציונלי ורלוונטי רק אם המודל עבר התאמה אישית באמצעות LoRA. | PATH |
errorListener |
מגדיר פונקציית event listener אופציונלית לשגיאות. | N/A |
בנוסף, המשימה תומכת במודלים של תוספים, שמאפשרים למשתמשים לכלול תמונות של תנאים בקלט של המשימה. המודל הבסיסי יכול להגדיל את התמונות האלה ולהשתמש בהן כהפניה ליצירה. תמונות התנאים יכולות להיות נקודות ציון בפנים, קווי מתאר של קצוות והערכות עומק. המודל משתמש בהן כהקשר ומידע נוספים כדי ליצור תמונות.
כשמוסיפים מודל פלאגין למודל הבסיס, צריך גם להגדיר את אפשרויות הפלאגין. הפלאגין Face landmark משתמש ב-faceConditionOptions, הפלאגין Canny edge משתמש ב-edgeConditionOptions והפלאגין Depth משתמש ב-depthConditionOptions.
אפשרויות של קצה חד
מגדירים את האפשרויות הבאות ב-edgeConditionOptions.
| שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
|---|---|---|---|
threshold1 |
הסף הראשון להליך ההיסטרזיס. | Float |
100 |
threshold2 |
הסף השני להליך ההיסטרזיס. | Float |
200 |
apertureSize |
גודל הצמצם של אופרטור סובל. הטווח האופייני הוא בין 3 ל-7. | Integer |
3 |
l2Gradient |
האם נעשה שימוש בנורמת L2 כדי לחשב את גודל הגרדיאנט של התמונה, במקום בנורמת L1 שמוגדרת כברירת מחדל. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
האובייקט BaseOptions שמגדיר את הנתיב למודל של הפלאגין. |
אובייקט BaseOptions |
N/A |
מידע נוסף על אפשרויות ההגדרה האלה זמין במאמר בנושא Canny edge detector.
אפשרויות של נקודות ציון בפנים
מגדירים את האפשרויות הבאות ב-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 |
מודלים
כדי להשתמש בכלי ליצירת תמונות, צריך מודל בסיס, שהוא מודל AI ליצירת תמונות לפי טקסט. המודל הזה משתמש בטכניקות דיפוזיה כדי ליצור תמונות חדשות. מודלי הבסיס שמפורטים בקטע הזה הם מודלים קלי משקל שעברו אופטימיזציה להפעלה בסמארטפונים מתקדמים.
מודלים של תוספים הם אופציונליים ומשלימים את מודלי הבסיס, ומאפשרים למשתמשים לספק תמונה נוספת של תנאי יחד עם הנחיית טקסט, ליצירת תמונה ספציפית יותר. אפשרות נוספת היא להתאים אישית את מודלי הבסיס באמצעות משקלי LoRA, כדי ללמד את מודל הבסיס על קונספט ספציפי, כמו אובייקט, אדם או סגנון, ולהוסיף אותם לתמונות שנוצרות.
למודלים בסיסיים
מודלי הבסיס הם מודלים של דיפוזיה סמויה ליצירת תמונות לפי טקסט, שיוצרים תמונות מהנחיה בטקסט. כדי להשתמש בכלי ליצירת תמונות, מודל הבסיס צריך להתאים לפורמט המודל stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only, על סמך המודל הבא:
מודלי הבסיס הבאים תואמים גם לכלי ליצירת תמונות:
אחרי שמורידים מודל בסיסי, משתמשים ב-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, וצריך להשתמש בהם בשילוב עם מודל בסיס. מודלים של פלאגינים מאפשרים לכלי ליצירת תמונות לקבל תמונת תנאי יחד עם הנחיית טקסט כקלט, וכך לשלוט במבנה של התמונות שנוצרות. מודלים של פלאגינים מספקים יכולות דומות ל-ControlNet, עם ארכיטקטורה חדשנית שמתאימה במיוחד ל-on-device diffusion.
צריך לציין את מודלים הפלאגין באפשרויות הבסיסיות, ויכול להיות שתצטרכו להוריד קבצים נוספים של מודלים. לכל תוסף יש דרישות ייחודיות לגבי תמונת התנאי, שאפשר ליצור באמצעות הכלי ליצירת תמונות.
פלאגין Canny Edge
התוסף Canny Edge מקבל תמונה של תנאי שמתווה את הקצוות המיועדים של התמונה שנוצרה. מודל הבסיס משתמש בקצוות שמשתמעים מתמונת התנאי, ויוצר תמונה חדשה על סמך הנחיית הטקסט. כלי יצירת התמונות כולל יכולות מובנות ליצירת תמונות של מצבים, וצריך רק להוריד את מודל הפלאגין.
תוסף Canny Edge מכיל את אפשרויות ההגדרה הבאות:
| שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
|---|---|---|---|
threshold1 |
הסף הראשון להליך ההיסטרזיס. | Float |
100 |
threshold2 |
הסף השני להליך ההיסטרזיס. | Float |
200 |
apertureSize |
גודל הצמצם של אופרטור סובל. הטווח האופייני הוא בין 3 ל-7. | Integer |
3 |
l2Gradient |
האם נעשה שימוש בנורמת L2 כדי לחשב את גודל הגרדיאנט של התמונה, במקום בנורמת L1 שמוגדרת כברירת מחדל. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
האובייקט BaseOptions שמגדיר את הנתיב למודל של הפלאגין. |
אובייקט BaseOptions |
N/A |
מידע נוסף על אפשרויות ההגדרה האלה זמין במאמר בנושא Canny edge detector.
תוסף Face Landmark
התוסף Face Landmark מקבל את הפלט מ-Face Landmarker של MediaPipe כתמונת התנאי. ה-Face Landmarker מספק רשת פנים מפורטת של פנים בודדות, שממפה את הנוכחות והמיקום של תווי הפנים. מודל הבסיס משתמש במיפוי הפנים שמשתמע מתמונת התנאי, ומייצר פנים חדשות על הרשת.
הפלאגין Face landmark דורש גם את חבילת המודלים 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 (עומק) דורש גם מודל להערכת עומק כדי ליצור את תמונת התנאי.
תוסף העומק מכיל את אפשרויות ההגדרה הבאות:
| שם האפשרות | תיאור | טווח ערכים | ערך ברירת מחדל |
|---|---|---|---|
depthModelBaseOptions |
אובייקט BaseOptions שמגדיר את הנתיב של המודל שיוצר את תמונת התנאי. |
אובייקט BaseOptions |
N/A |
depthPluginModelBaseOptions |
האובייקט BaseOptions שמגדיר את הנתיב למודל של הפלאגין. |
אובייקט BaseOptions |
N/A |
התאמה אישית באמצעות LoRA
התאמה אישית של מודל באמצעות LoRA יכולה לאפשר ליוצר התמונות ליצור תמונות על סמך מושגים ספציפיים, שמזוהים על ידי טוקנים ייחודיים במהלך האימון. אחרי האימון עם משקלי LoRA החדשים, המודל יכול ליצור תמונות של הקונספט החדש כשמציינים את הטוקן בהנחיית הטקסט.
כדי ליצור משקלים של LoRA, צריך לאמן מודל בסיסי על תמונות של אובייקט, אדם או סגנון ספציפיים. כך המודל יוכל לזהות את הקונספט החדש ולהשתמש בו כשיוצרים תמונות. אם אתם יוצרים משקלים של LoRa כדי ליצור תמונות של אנשים ופנים ספציפיים, אתם יכולים להשתמש בפתרון הזה רק עם הפנים שלכם או עם הפנים של אנשים שנתנו לכם אישור לעשות זאת.
בהמשך מוצג הפלט של מודל מותאם אישית שאומן על תמונות של קומקומי תה מתוך מערך הנתונים של DreamBooth, באמצעות הטוקן 'קומקום תה monadikos':
הנחיה: קנקן תה מסוג Monadikos לצד מראה
המודל המותאם אישית קיבל את הטוקן בהנחיה והוסיף קומקום שהוא למד לצייר מהמשקלים של LoRA, והוא ממוקם בתמונה לצד מראה כפי שנדרש בהנחיה.
מידע נוסף זמין במדריך להתאמה אישית, שבו נעשה שימוש בModel Garden ב-Vertex AI כדי להתאים אישית מודל על ידי החלת משקולות LoRA על מודל בסיסי.