מסכת וידאו
תארו נושא במילים פשוטות וקבלו סרטון מסכה בשחור־לבן שעוקב אחריו לאורך הקליפ, עם SAM 3.1 או SAM 3, בקליפים של עד 5 דקות.
רכיב מסכת וידאו עוקב לאורך סרטון אחרי נושא שאתם מתארים במילים פשוטות, ומחזיר סרטון מסכה בשחור־לבן. למסכה יש אותו אורך ואותו קצב פריימים כמו לקליפ. היא לבנה בכל פיקסל של הנושא, בכל פריים, ושחורה בכל מקום אחר. הרכיב מריץ את SAM 3.1 או את SAM 3.
המסכה היא סרטון רגיל, ולכן אפשר לחבר אותה לכל מקום שמקבל וידאו. השותף העיקרי שלה הוא רכיב שילוב לפי מסכה, שמשתמש במסכה כדי להציב את הנושא מסרטון אחד מעל סרטון אחר. המסכה מזינה גם את הקלט וידאו מסכה של רכיב תאורה מחדש והחלפה במצב מותאם אישית.
מתי להשתמש
- העברת נושא לסצנה חדשה, למשל רקדן לחוף ים, יחד עם רכיב שילוב לפי מסכה.
- החלפת הרקע מאחורי מוצר או אדם בקליפ.
- יצירת סרטון מאט מדויק ברמת הפריים למצב מותאם אישית של רכיב תאורה מחדש והחלפה.
- השארת הכול חוץ מנושא אחד, עם היפוך המסכה ברכיב שילוב לפי מסכה.
- פיקסול או טשטוש של פנים, לוחיות רישוי או מסכים, כשההגדרה מילוי ברכיב שילוב לפי מסכה מוגדרת לפיקסול או לטשטוש.
התחלה מהירה
הוספת הרכיב
הקישו Tab על הקנבס ובחרו וידאו › המשך ועיצוב מחדש › מסכת וידאו.
חיבור הסרטון
חברו את הקליפ לקלט וידאו, למשל מרכיב העלאת וידאו.
תיאור הנושא
פתחו את חלונית ההגדרות. תחת תארו מה למסך, כתבו צירוף שמני קצר, כגון the dancer (הרקדן) או the red car (המכונית האדומה).
הרצה
לחצו על הרצה ברכיב. סרטון המסכה מופיע על הרכיב. חברו את הפלט מסכה שלו לקלט מסכה של רכיב שילוב לפי מסכה.
קלטים
| קלט | מקבל | מה הוא עושה |
|---|---|---|
| וידאו | רכיבי וידאו, כגון העלאת וידאו, יצירת וידאו וקיצוץ וידאו | הקליפ שעליו יוצרים את המסכה. נדרש. |
| פרומפט | רכיבי טקסט, כגון רכיב טקסט או פריט ברשימה | תיאור של הנושא. פרומפט מחובר מחליף את התיאור שבחלונית ההגדרות. אופציונלי. |
פלטים
| פלט | מה הוא מעביר |
|---|---|
| מסכה | סרטון המסכה, קובץ MP4 באותו אורך ובאותו קצב פריימים כמו הקליפ. לבן הוא הנושא, ושחור הוא כל השאר. |
לבן פירושו הנושא. רכיב יצירת מסכה, שיוצר מסכה לתמונת סטילס, משתמש באותו כלל, ורכיב שילוב לפי מסכה מצפה לו.
קליפ טלפון מסובב, קליפ עם קצב פריימים משתנה או קליפ שהצד הארוך שלו גדול מ-1920 פיקסלים, מומר קודם לקליפ זקוף, בקצב פריימים קבוע ובגודל של 1920 פיקסלים לכל היותר. המסכה מקבלת את הגודל הזה. רכיב שילוב לפי מסכה מותח את המסכה על הסרטון בגודל המלא, ולכן אין צורך לעשות שום דבר.
על המסכה אף פעם אין סימן מים, בשום תוכנית וגם לא במסלול החינמי.
הגדרות
| הגדרה | מה היא עושה |
|---|---|
| תארו מה למסך | הנושא שהרכיב עוקב אחריו, עד 500 תווים. עדיף צירוף שמני קצר, כגון the woman in the red coat (האישה במעיל האדום) או the skateboard (הסקייטבורד). הפרידו בין כמה נושאים בפסיקים, למשל person, dog (אדם, כלב): המסכה לבנה בכל מקום שבו נמצא אחד מהם. נדרש, אלא אם רכיב טקסט מחובר לקלט פרומפט. |
| סף זיהוי | עד כמה המודל צריך להיות בטוח לפני שהוא מסמן אזור, מ-0.05 עד 0.95, בצעדים של 0.05. ברירת המחדל היא 0.5. ערך נמוך יותר מוצא יותר אזורים, אבל בדיוק נמוך יותר. נסו 0.3 כששום דבר לא מתאים. |
| מודל | SAM 3.1, ברירת המחדל, עוקב אחרי כמה אובייקטים במעבר אחד ורץ מהר יותר. SAM 3 עולה חצי מחיר. |
| החזקת המסכה כשהנושא אובד | כשהמודל מאבד את הנושא לכמה פריימים, למשל מאחורי יד, כל אחד מהפריימים האלה חוזר על המסכה האחרונה שלא הייתה ריקה. כך מסכה שמסתירה את הנושא אף פעם לא חושפת אותו. מסכה מוחזקת לכל היותר שנייה אחת. אם הנושא עדיין חסר אחרי זה, הפריימים הבאים נשארים ריקים עד שהמודל מוצא אותו שוב, כך שמסכה אף פעם לא נשארת במקום שבו הנושא כבר לא נמצא. פריימים שלפני הזיהוי הראשון נשארים ריקים. התיבה לא מסומנת כברירת מחדל. |
| התעלמות מנושאים קטנים מ-(% מגובה הפריים) | מסירה בכל פריים כל אזור לבן נפרד שהגובה שלו קטן מהחלק הזה של גובה הפריים, למשל פנים של ניצבים מאחורי הדמות הראשית. בשוט בגובה 540 פיקסלים, הערך 15 משאיר פנים בגובה 81 פיקסלים ומעלה. אזורים גדולים יותר נשמרים בדיוק כמו שהם. כבוי (0) כברירת מחדל. |
| התעלמות מנושאים גדולים מ-(% מגובה הפריים) | מסירה כל אזור שגבוה מהחלק הזה של גובה הפריים, למשל כדי להשאיר רק את הפנים הקטנות ברקע. כבוי (0) כברירת מחדל. כששתי ההגדרות מוגדרות, אזור נשמר כשהגובה שלו בין שני הערכים. גבול תחתון שגבוה מהגבול העליון נדחה, והחלונית מזהירה מכך. |
| אזור | ארבעה שוליים, באחוזים מהפריים: שמאל, ימין, למעלה ולמטה. נשמרים רק אזורים שהמרכז שלהם נמצא בתוך הפריים פחות השוליים האלה, למשל כדי להסיר את הפנים בקצוות התמונה. הערך של כל צד הוא מ-0 עד 49%. אזור שחוצה את הקו נשמר או מוסר בשלמותו, לפי המרכז שלו. ההגדרה אזור פועלת על כל פריים, אחרי שני מסנני הגודל. כבוי (0 בכל ארבעת השוליים) כברירת מחדל. |
| זיהוי מחדש אחרי כל חיתוך | לקליפ ערוך. הרכיב מוצא קודם את החיתוכים בין הסצנות, ויוצר מסכה לכל שוט בנפרד, כך שהנושא נמצא מחדש בכל שוט. גם פנים או אובייקט חדשים אחרי חיתוך מקבלים מסכה, וההגדרה החזקת המסכה כשהנושא אובד אף פעם לא מעבירה מסכה מעבר לחיתוך. דיזולב או עמעום נחשבים לשוט אחד, והבזק של מצלמה בדרך כלל לא נחשב לחיתוך. חיתוך לתנועה מהירה, כגון תנופה, מכה או פאן מהיר, עדיין נחשב לחיתוך. חלק שקצר מ-8 פריימים מצטרף לשוט שלידו. המסכה שומרת על מספר הפריימים של הקליפ, וכל חיתוך נשאר במקומו. המחיר לא משתנה. התיבה לא מסומנת כברירת מחדל. |
| זיהוי מחדש כל (שניות) | המודל מוצא את הנושאים שלו סמוך לתחילת כל בקשה שהוא מקבל. נושא שמופיע לראשונה באמצע, כגון מישהו שנכנס לפריים או פנים שמסתובבות למצלמה, יכול להישאר בלי מסכה עד סוף אותה בקשה. כשקובעים במחוון הזה ערך מ-1 עד 10, הקליפ נשלח בחלקים של עד מספר השניות הזה. הנושאים מזוהים מחדש בתחילת כל חלק, כך שפנים שמופיעות באמצע שוט מקבלות מסכה מהחלק הבא והלאה. כשהתיבה זיהוי מחדש אחרי כל חיתוך מסומנת, החלקים נספרים מתחילת כל שוט. חלק אחרון שקצר מ-8 פריימים מצטרף לחלק שלפניו. הגבולות האלה הם לא חיתוכים: ההגדרה החזקת המסכה כשהנושא אובד מעבירה מסכה מעבר להם. כל חלק הוא עוד בקשה למודל, ולכן ההרצה לוקחת יותר זמן. למשל, קליפ של 10 שניות עם הערך 1 דורש בערך ארבעה סבבים של בקשות במקום סבב אחד. המחיר לא משתנה. כבוי (0) כברירת מחדל. |
| טקסט לפני ואחרי | טקסט שמתווסף תמיד לפני התיאור ואחריו. הטקסט הזה מוסתר מאנשים שמשתמשים בתהליך שלכם כאפליקציה. ראו את הדף טקסט לפני ואחרי הפרומפט. |
מגבלות
- אורך: קליפים של עד 5 דקות ב-30 פריימים לשנייה.
- קצב פריימים: קליפ מהיר יותר נספר ארוך יותר באופן יחסי, כי המודל עובד פריים אחר פריים. קליפ ב-60 פריימים לשנייה נספר באורך כפול, ולכן הוא יכול להיות באורך של עד 2.5 דקות.
- קליפים ארוכים: קליפ ארוך מ-60 שניות ב-30 פריימים לשנייה מעובד בחלקים של 60 שניות, והחלקים מאוחדים פריים אחר פריים. המעקב מתחיל מחדש בתחילת כל חלק. המסכה כוללת את כל מה שמתאים לתיאור, ולכן ההתחלה מחדש כמעט לא ניכרת. כשהתיבה זיהוי מחדש אחרי כל חיתוך מסומנת, כל חיתוך מתחיל גם הוא חלק חדש, ושוט ארוך מ-60 שניות ב-30 פריימים לשנייה מפוצל באותו אופן. כשההגדרה זיהוי מחדש כל (שניות) מוגדרת, אורך החלקים הוא מספר השניות הזה, והמעקב מתחיל מחדש בכל אחד מהם בכוונה.
קליפ ש-Nodaro לא יכול לקרוא, או קליפ שחורג מהמגבלה, נדחה עוד לפני כל חיוב. קצצו קודם קליפ ארוך עם רכיב קיצוץ וידאו.
קרדיטים
המחיר נקבע לפי המודל ואורך הקליפ, כשהאורך נספר ב-30 פריימים לשנייה. האורך מעוגל כלפי מעלה לשנייה שלמה, אחרי שמתעלמים מחריגה של עד 0.05 שנייה מעבר לשנייה שלמה, וההרצה מחויבת לפי השורה הראשונה שמכסה אותו. למשל, קטע של 5 שניות ב-29.97 פריימים לשנייה הוא באורך 5.005 שניות, ומתומחר כ-5 שניות.
| אורך הקליפ (ב-30fps) | SAM 3.1 | SAM 3 |
|---|---|---|
| עד 5 שנ׳ | 55 | 28 |
| עד 10 שנ׳ | 105 | 53 |
| עד 15 שנ׳ | 160 | 81 |
| עד 30 שנ׳ | 314 | 158 |
| עד 60 שנ׳ | 622 | 312 |
| עד 90 שנ׳ | 935 | 468 |
| עד 2 דק׳ | 1,243 | 622 |
| עד 3 דק׳ | 1,865 | 933 |
| עד 4 דק׳ | 2,486 | 1,243 |
| עד 5 דק׳ | 3,108 | 1,555 |
קליפ מהיר מ-30 פריימים לשנייה נספר ארוך יותר באופן יחסי. למשל, קליפ של 12 שניות ב-24 פריימים לשנייה נספר כ-12 שניות, ולכן ב-SAM 3.1 הוא עולה 160 קרדיטים. קליפ של 10 שניות ב-60 פריימים לשנייה נספר כ-20 שניות, ולכן ב-SAM 3.1 הוא עולה 314 קרדיטים.
לפני הרצה, הרכיב יודע מה אורך הקליפ רק כשהקליפ הנכנס מעביר לו אותו. למשל, האורך המוצהר של העלאה, החלון שנבחר ברכיב קיצוץ וידאו, או האורך שהוגדר ברכיב שיוצר וידאו. כשהקליפ הוא העלאה שמצהירה גם על קצב הפריימים שלה, הרכיב מציג את המחיר לפי האורך שנספר לפי קצב הפריימים, אותו כלל שלפיו ההרצה מחויבת. החישוב הזה עובד כשההעלאה מחוברת ישירות, או דרך רכיב קיצוץ וידאו, רכיב לולאת וידאו, או רכיב שילוב סרטונים שכל הקליפים שלו מצהירים על אותו קצב. למשל, העלאה של 10 שניות ב-60 פריימים לשנייה מתומחרת כ-20 שניות. כשאין קצב מוצהר, הרכיב מציג את המחיר של האורך הזה ב-30 פריימים לשנייה. כשהאורך לא ידוע, הרכיב מציג טווח: מ-55 עד 3,108 קרדיטים ב-SAM 3.1, ומ-28 עד 1,555 קרדיטים ב-SAM 3. ההרצה עצמה תמיד מודדת את הקליפ, כולל קצב הפריימים שלו בפועל, ומחויבת לפי השורה המתאימה.
טיפים
- השתמשו בצירוף שמני קצר.
the dancer(הרקדן) עדיף על משפט ארוך שמתאר את הרקדן. - הנמיכו את הסף כששום דבר לא מתאים. נסו 0.3 לפני שאתם כותבים מחדש את התיאור.
- קצצו לפני שאתם יוצרים מסכה. המחיר נקבע לפי אורך הקליפ, ולכן קצצו את הקליפ לרגע שאתם צריכים עם רכיב קיצוץ וידאו.
- בחרו ב-SAM 3 כדי לחסוך קרדיטים. SAM 3 עולה חצי מהמחיר של SAM 3.1. SAM 3.1 עוקב אחרי כמה אובייקטים במעבר אחד ורץ מהר יותר.
- נושא שיוצא מהפריים נמצא שוב. כשהנושא חוזר, המסכה עוקבת אחריו שוב. הפריימים שבהם הוא חסר נשארים שחורים, אלא אם התיבה החזקת המסכה כשהנושא אובד מסומנת.
- מסנני הגודל וההגדרה אזור פועלים לפני ההחזקה. פריים שנשארו בו רק אזורים קטנים, או שאין בו שום דבר בתוך האזור שהוגדר, נחשב ריק, ולכן ההחזקה חוזרת על הפריים האחרון שנשאר בו נושא. אם שום אזור באף פריים לא עובר את מסנני הגודל ואת ההגדרה אזור, התוצאה היא מסכה שחורה לגמרי, וההרצה מחויבת כרגיל.
- צרו מסכה לקליפ ערוך שוט אחר שוט. סמנו את התיבה זיהוי מחדש אחרי כל חיתוך כשיש בקליפ חיתוכים ונושא חדש מופיע אחרי חיתוך.
- תפסו נושא שמופיע באמצע שוט. קבעו בהגדרה זיהוי מחדש כל (שניות) את הערך 1 או 2 כשמישהו נכנס לשוט או מסתובב למצלמה באמצע.
פתרון בעיות
ההרצה נכשלת עם "No region matched the mask prompt on any frame" (שום אזור לא התאים לפרומפט המסכה באף פריים). שום דבר בסרטון לא התאים לתיאור שלכם. הקרדיטים שלכם מוחזרים. קצרו את התיאור לצירוף שמני פשוט, או הנמיכו את ההגדרה סף זיהוי.
הקליפ נדחה כארוך מדי. הקליפ ארוך מ-5 דקות ב-30 פריימים לשנייה, או שקצב הפריימים שלו גבוה יותר והוא נספר כארוך מזה. קצצו אותו עם רכיב קיצוץ וידאו והריצו שוב.
ההרצה נכשלת בהתקנה באירוח עצמי. בהתקנה באירוח עצמי, רכיב מסכת וידאו צריך מפתח לספק שמריץ את המודלים שלו. בלי המפתח, ההרצה נכשלת עם הודעה שמציינת זאת. ראו את הדף מפתחות ספק.
דרך ה-API
הנתיב POST /v1/video-mask מקבל את videoUrl, את prompt (עד 500 תווים; עם פסיקים אפשר לעקוב אחרי כמה נושאים), threshold אופציונלי מ-0.05 עד 0.95 (ברירת מחדל 0.5) ו-provider אופציונלי, sam-3.1 (ברירת המחדל) או sam-3. הנתיב מקבל גם את השדות האופציונליים holdLastMask (ברירת מחדל false), minSubjectHeightPct ו-maxSubjectHeightPct (0–100, ברירת מחדל 0, כלומר כבוי), zone ו-perShot (ברירת מחדל false). הערך של redetectEverySec הוא 0, ברירת המחדל, שפירושה כבוי, או ערך מ-1 עד 10. כל ערך אחר נדחה עם שגיאת 400. השדה zone הוא { leftPct, rightPct, topPct, bottomPct }, כל אחד מ-0 עד 49. צד שלא נשלח מקבל 0, והערך null, או 0 בכל הארבעה, מכבה את האזור. מינימום שגבוה מהמקסימום נדחה עם שגיאת 400. הנתיב מחזיר משימה. הפלט של משימה שהסתיימה כולל את videoUrl (המסכה), thumbnailUrl, width, height, frames, chunks, shots (1 כש-perShot כבוי), coverage, kept ו-recipe, ובנוסף את heldFrames כש-holdLastMask מופעל ואת droppedRegions כשמסנן גודל או אזור מופעלים. השדה chunks סופר את הבקשות שנשלחו למודל. השדה recipe הוא הגרסה של השיטה שיצרה את המסכה. הערך משתנה בכל פעם שאותו קליפ ואותן הגדרות היו נותנים מסכה אחרת, כך שאפשר לדעת מתי מסכה ששמרתם לשימוש חוזר כבר לא עדכנית. השדה coverage מעוגל ל-4 ספרות אחרי הנקודה. כדי להבחין בין מסכה ריקה למסכה קטנה מאוד, בדקו את kept: הערך הוא false רק כשמסנני הגודל והאזור לא השאירו שום דבר באף פריים. קליפ שאי אפשר לקרוא, או קליפ שחורג מהמגבלה, נדחה עם שגיאת 400 עוד לפני כל חיוב.
- SDK:
videoMask({ videoUrl, prompt, threshold, provider, holdLastMask, minSubjectHeightPct, maxSubjectHeightPct, zone, perShot }). ראו את הדף מדיה והעלאות. - MCP: הכלי
video_maskמקבל אתvideo_urlאו אתvideo_asset_id, אתprompt, ואת השדות האופציונלייםthreshold,provider,hold_last_mask,min_subject_height_pct,max_subject_height_pct,zone(left_pct,right_pct,top_pct,bottom_pct) ו-per_shot. מזהה המשימה שלו עובר ל-mask_compositeבתורmask_asset_id. ראו את מדריך כלי ה-MCP. - CLI:
nodaro media video-mask <videoUrl> <prompt> [--threshold <n>] [--model sam-3.1|sam-3] [--hold-last-mask] [--min-subject-height <pct>] [--max-subject-height <pct>] [--zone <L,R,T,B>] [--per-shot]. למשל,--zone 10,10,5,5משאיר רק את הנושאים שהמרכז שלהם נמצא בתוך השוליים האלה משמאל, מימין, מלמעלה ומלמטה. ראו את הדף פקודות מדיה וקול.
ראו את דפי ה-API הרצת רכיב יחיד ומשימות.
שאלות נפוצות
מה עושה רכיב מסכת וידאו?
רכיב מסכת וידאו עוקב לאורך סרטון אחרי נושא שאתם מתארים במילים פשוטות. הרכיב מחזיר סרטון מסכה בשחור־לבן באותו אורך ובאותו קצב פריימים: לבן על הנושא בכל פריים, ושחור בכל מקום אחר.
איזה מודל לבחור, SAM 3.1 או SAM 3?
ברכיב מסכת וידאו, SAM 3.1 הוא ברירת המחדל. SAM 3.1 עוקב אחרי כמה אובייקטים במעבר אחד ורץ מהר יותר. SAM 3 עולה חצי מהמחיר של SAM 3.1.
מה האורך המרבי של הסרטון?
רכיב מסכת וידאו מקבל סרטונים של עד 5 דקות ב-30 פריימים לשנייה. קליפ בקצב פריימים גבוה יותר נספר ארוך יותר באופן יחסי, ולכן קליפ ב-60 פריימים לשנייה יכול להיות באורך של עד 2.5 דקות. קליפ שחורג מהמגבלה נדחה עוד לפני כל חיוב.
האם אפשר לעקוב אחרי יותר מנושא אחד?
כן. בתיאור של רכיב מסכת וידאו, הפרידו בין הנושאים בפסיקים, למשל "person, dog" (אדם, כלב). המסכה לבנה בכל מקום שבו נמצא אחד מהם.
מה קורה כשהפרומפט לא מתאים לשום דבר?
כששום דבר לא מתאים באף פריים, ההרצה של רכיב מסכת וידאו נכשלת עם ההודעה "No region matched the mask prompt on any frame" (שום אזור לא התאים לפרומפט המסכה באף פריים), והקרדיטים שלכם מוחזרים. כתבו תיאור קצר ופשוט יותר, או הנמיכו את ההגדרה סף זיהוי.
האם רכיב מסכת וידאו יכול להתעלם מאנשים ברקע?
כן. כשקובעים ערך בהגדרה התעלמות מנושאים קטנים מ-(% מגובה הפריים), רכיב מסכת וידאו מסיר כל אזור שהגובה שלו קטן מהחלק הזה של גובה הפריים, כגון פנים של ניצבים מאחורי הדמות הראשית. ההגדרה התעלמות מנושאים גדולים מ-(% מגובה הפריים) עושה את ההפך.
איך מכניסים את הנושא שבמסכה לסרטון אחר?
חברו את הפלט מסכה של רכיב מסכת וידאו לקלט מסכה של רכיב שילוב לפי מסכה. באותו רכיב שילוב לפי מסכה, חברו את הסרטון המקורי לקלט חזית ואת הסצנה החדשה לקלט רקע.
דפים קשורים
שילוב לפי מסכה
תאורה מחדש והחלפה
יצירת מסכה
קיצוץ וידאו
טקסט לפני ואחרי הפרומפט
עודכן לאחרונה