מה נשבר

רצינו לשמר את הקול של Joey. שרפנו 90 קרדיטים וקיבלנו שני דיאלוגים.

היה לנו טייק מוצלח של Joey ורצינו להשתמש בקול שלו בשורה חדשה. נתנו למודל את קובץ ה-MP4 של הטייק כרפרנס. במקום לקבל רק את ה-timbre וה-cadence, קיבלנו גם את הדיאלוג המקורי וגם את החדש.

היה לנו Joey שעבד. לא בערך. קול טוב. הטון ישב. האופי היה שם.

רצינו רק דבר אחד: לקחת את הקול הזה לשורה חדשה.

אז נתנו למודל את הטייק הקודם כרפרנס. MP4.

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

זה לא מה שקרה.

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

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

90 קרדיטים הלכו על ניסוי שהבהיר לנו משהו חשוב: קובץ multimodal הוא לא בהכרח voice reference.

מבחינתנו ה-MP4 הכיל "דוגמה לקול". מבחינת המודל הוא הכיל הרבה יותר: וידאו, performance, אודיו, דיאלוג קיים, טיימינג.

כל השכבות האלה יכולות להיכנס לתוצאה.

מאז אנחנו מפרידים שכבות

זו אחת ההחלטות הכי שימושיות שיצאו מהניסוי הזה.

כשאנחנו צריכים רפרנס לקול - אנחנו נותנים רפרנס לקול. WAV או MP3 נקי. לא וידאו מלא. לא קובץ שמכיל גם את הדיאלוג שאנחנו לא רוצים לשמר.

הרעיון הוא להפסיק להתייחס ל"reference" כאילו מדובר במושג אחד. בפועל יש כמה דברים שונים שאנחנו עשויים לרצות לשמר:

Visual reference

איך הדמות נראית.

Voice reference

ה-timbre, הקצב והאופי של הקול.

Performance reference

איך משפט נאמר או איך דמות מגיבה.

Shot behavior

מה המצלמה והגוף עושים.

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

ואז כמעט עשינו טעות נוספת

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

זה היה שיעור משלים. אם משתנה כבר ננעל - לא פותחים אותו מחדש בלי סיבה.

יש משהו מאוד מפתה בעבודה עם AI: לחשוב שכל prompt יכול להשתפר. אבל prompt "משופר" הוא עדיין prompt חדש.

והמודל לא יודע שהכוונה שלנו היא: תשנה רק את הדבר הזה ותשאיר את כל השאר בדיוק כמו קודם.

אם החלפנו Voice Block, פתחנו מחדש את הקול.

אותו דבר קרה עם Chandler

בטייק אחר של Chandler קיבלנו כמעט הכול. הפנים ישבו. ההבעה ישבה. הטיימינג הקומי ישב. הלחץ בדמות ישב. הקול היה מאוד קרוב. לא 100%.

החלטנו לעצור. אצלנו הוא הפך ל-"98% מספיק".

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

לפעמים ניסיון לתקן 2% מסכן 98%. זו עסקה גרועה.

Anchor Take במקום חיפוש אינסופי

אחד הדברים שהתחלנו לבחון הוא שימוש ב-Anchor Take.

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

המטרה היא לצמצם שונות במקום להתחיל כל generation מחדש.

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

מה אנחנו מתעדים היום

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

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

מה לקחנו מזה

רפרנס הוא לא דבר אחד. וידאו הוא לא voice reference. ושיפור הוא לא תמיד שיפור.

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