refract — טסט הלולאה + הערכת הפער

21 ביולי 2026 · אריאל המפיק · עמוד לא מעוצב בכוונה — Claude Design עוד לא רץ, ועיצוב עכשיו היה מכריע גייט שהוא שלך.

מה זה: הרצה אחת בתשלום, מאושרת בוויתור, שנועדה למדוד האם הלולאה עובדת — לא האם היא יפה.
עלות: $0.109 מתוך תקרת $0.16. 142.9 שניות מקצה לקצה.

1 · הראיה

runs/run-20260721-141407/montage.mp4 — 10.10 שניות, 1080×1920, 30fps, שני שוטים מאוחדים בחיתוך. פענוח ffmpeg נקי, אפס שגיאות. דמות סינתטית, ללא נכסי לקוח. לא פורסם בשום מקום אחר.

2 · ששת המרכיבים

#מה ביקשתתוצאהמה קרה בפועל
1רעיון → ביצוע בשניות סטוריבורד ראשון ב־11.0 שניות. סרט שלם ב־142.9 שניות
2כתוביות❌ → ✅ דיווחתי ✅ בטעות. יוצרו קבצי .srt — אבל הם לא היו בווידאו. בן צופה ב־mp4, לא פותח srt לידו. תוקן — ראה סעיף 3ג
קול❌ → ✅ לא דיווחתי בכלל. לקובץ יש פס aac ולכן ffprobe נראה תקין — אבל הוא מדד ‎-91.0 dB, דממה דיגיטלית. תוקן
3מוזיקה⬜ → ✅ לא נבדק. לשלושת קובצי המוזיקה המקומיים אין רישיון מתועד, ולכן לא הוכנסו. רותם יצאה למחקר מקורות חינמיים. הנתיב הטכני נשאר לא בדוק — זה פער, לא הצלחה
4איחוד כמה קטעים שני קליפים של 5.04ש' → קובץ אחד של 10.10ש'
5עקביות דמות נכשל בין שוטים. ראה סעיף 3 — זה הממצא
6אפקטי מצלמה "מובנים" 1 מתוך 2. push-in עבד; pan-right לא קרה כלל

3 · הממצא — רואים אותו בעין

שני הקליפים הבודדים, לפני האיחוד. אותו תיאור דמות בדיוק נשלח לשניהם. נגן אותם אחד אחרי השני — זו הראיה הברורה ביותר:

שוט 1 — 5.04ש' · התבקש: push-in. המצלמה אכן התקרבה
שוט 2 — 5.04ש' · התבקש: pan-right. המצלמה לא זזה — הדמות הסתובבה למצלמה במקום

ואלה הפריימים הראשונים של כל שוט, זה לצד זה:

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

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

ובתוך שוט בודד הזהות מושלמת — הנה שוט 1, פריים ראשון מול אחרון:

שוט 1 התחלה
שוט 1 — התחלה
שוט 1 סוף
שוט 1 — סוף. אותה אישה. המצלמה התקרבה, והיא הרימה מבט כפי שהתבקש
המסקנה המדויקת: המנוע שומר תלבושת ועולם, ולא שומר פָּנים בין שוטים.
אין במנוע מודול עקביות ייעודי — חיפשתי, אין קובץ אחד עם consistency. העקביות מושגת בטקסט הפרומפט בלבד, וטקסט לא נועל זהות.

ועל "אפקטים מובנים"

הם לא מובנים. prompt_compiler.py מזריק מילים לפרומפט — זו בקשה מהמודל, לא בקרה. אין keyframes, אין tracking, אין API. מחצית מהבקשות בוצעו: ה־push-in קרה, ה־pan-right לא — המודל סובב את הדמות למצלמה במקום להזיז מצלמה.

3ב · טסט Product-Lock — התשובה למסלול שבחרת

אמרת "מוצר או unboxing". בדקתי אם זה בר־ביצוע. התשובה: כן.
עלות: $0.106 · מצטבר היום $0.218

השאלה: אנחנו לא שומרים פָּנים. האם אנחנו שומרים מוצר?

השיטה — ובכוונה שונה מטסט הפָּנים. בטסט הפָּנים ייצרתי שני סטילים עצמאיים, וזה כשל. כאן השתמשתי בשיטת Product-Lock שכבר קיימת אצלנו (app/product_scene.py, ו־skills/red-flag-design-loop: לעולם לא לצייר מחדש את המוצר): סטיל מוצר אחד נעול → פריים פתיחה לשני שוטים שונים.

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

המוצר הנעול
המוצר הנעול — נקודת המוצא לשני השוטים
שוט 1 סוף
שוט 1, סוף — push-in. אותה פחית, ORBIT קריא
שוט 2 סוף
שוט 2, סוף — orbit. אותה פחית, ORBIT קריא
שוט 1 — push-in
שוט 2 — orbit
המוצר שרד. הפָּנים לא שרדו.

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

מה זה כן אומר — ומה זה לא אומר

לא הוכחתי שחפצים יציבים יותר מפָּנים מטבעם. שיניתי שני משתנים: גם מקור נעול אחד במקום שניים, וגם חפץ במקום פָּנים. מה שכן הוכחתי: שיטת ה־Product-Lock עובדת. וזו השיטה שנשלח בפועל.

מה עוד לא נבדק: שני סטילים עצמאיים של אותו מוצר (סביר שיסחפו כמו הפָּנים) · תמונת מוצר אמיתית של לקוח שמורכבת פנימה — זה המסלול החזק יותר, כי הפיקסלים יהיו של המוצר האמיתי · משכים ארוכים יותר · unboxing עם ידיים בפריים.

והמצלמה עדיין חלשה: ה־push-in עבד; ה־orbit קרה רק חלקית — קשת קטנה במקום סיבוב. עקבי עם מה שראינו קודם: בקשה, לא בקרה.

3ג · בן פסל את התוצאה — והוא צדק

בן: "אין פה מוזיקה, אין כתוביות, אין קול, אין שינוי מצלמה. זה אחלה, אבל זה בינוני ולא מספיק התוצאה שארצה."

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

ושלושה באגים אמיתיים יצאו מזה

#באגאיך התגלהמצב
1כתוביות לא צרובות — קבצי srt בצדבן לחץ play✅ תוקן
2פס אודיו אילם ‎-91dBvolumedetect✅ תוקן — ‎-28dB
3עברית מתהפכת בכתוביותהסתכלתי בפיקסלים✅ תוקן

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

כתוביות הפוכות
לפני — עברית הפוכה. הכתובית "קיימת", ושגויה
כתוביות תקינות
אחרי — "אורביט. קפה שנטחן הבוקר."
השורש: הקוד ביקש מ־PIL direction="rtl", שעובד רק אם Pillow נבנה עם libraqm. אצלנו features.check("raqm") הוא False, הקריאה נכשלה — והקוד תפס את החריגה וצייר מחדש בלי כיוון, כלומר בסדר לוגי = הפוך.

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

התיקון: המרה לסדר חזותי עם אלגוריתם bidi לפני הציור, והסרת ה־fallback הבולע — אם אין דרך לעצב RTL, המערכת מסרבת לרנדר במקום לפלוט עברית הפוכה. 6 טסטים חדשים, כולל טסט מבני שנכשל אם ה־except הבולע חוזר.

3ד · התוצר החדש — סרטון מוצר מלא · $0.00

בן הידק את התקציב ל־$0.05 וביקש זול יותר. מצאתי זול יותר: אפס. שני קליפי ה־Product-Lock כבר שולמו; קול, מוזיקה, צריבה ומיקס — הכל מקומי וחינם.
מרכיבמצבראיה
מוצר (ORBIT)Product-Lock, נשמר בשני השוטים
כתוביות צרובותבפיקסלים, עברית תקינה
קול אמיתיedge-tts עברית · ‎-28dB לאורך כל הציר
מוזיקה CC0Freesound/Openverse · license=cc0 · רישיון מתועד
איחוד10.05 שניות
מצלמה⚠️push-in עבד, orbit חלקי — פער מוצר, לא באג

מחיר מאומת לשנייה — מ־costs.jsonl, לא מהזיכרון

מודליחידהמחיר לשנייהn
bytedance/seedance-1-lite$0.0500 / 5ש'$0.0100 — הזול ביותר55
kwaivgi/kling-v2.1$0.2549 / 5ש'$0.051041
black-forest-labs/flux-schnell$0.0030 / סטיל51
black-forest-labs/flux-1.1-pro$0.0400 / סטיל11

4 · פער שנתפס רק בבדיקה הסופית

הוצאתי $0.109 אמיתיים, ו־costs.jsonl הראה 0 חיובים.

רישום העלות ישב בתוך pipeline.generate, לא במתאמים. הסקריפט שלי קרא למתאמים ישירות — ולכן הכסף יצא בלי שורת ספר.

למה זה חמור: FR-014 קובע שהקבלה היא קריאה מרשומת ההרצה. רשומה חסרה לא מייצרת קבלה חסרה — היא מייצרת קבלה שמשקרת. זו בדיוק ההבטחה שהמותג אומר שלא יכולה להישבר.

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

5 · הערכת הפער

הנחנו פער איכות. יש פער שליטה.

אנחנו קוראים ל־seedance ול־kling דרך Replicate. Higgsfield קוראת לאותם מודלים. אין לנו יתרון מודל, אין מחקר משלנו, ואין נעילת זהות. הכישלון בעקביות הוא ההוכחה: אנחנו לא שולטים במה שהמודל מייצר, אנחנו מבקשים ממנו יפה.

איפה נפסיד אם ננסה

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

איפה יש קרקע פנויה

בדיוק בשלושת הדברים שעבדו היום, ושאף מתחרה לא תובע:

ההחלטה שאי אפשר לדחות

מסלולמה זה אומר
אלצמצם את הפורמט פורמטים בלי דמות חוזרת: מוצר, אווירה, טיפוגרפיה, לוגו־מושן. ריאלי היום. מוותר על יעד 2 הדקות
בלפתור נעילת זהות reference lock / LoRA / ספק עם זהות מובנית. פותח נרטיב. היקף לא ידוע
גלהתעלם ולשווק נרטיב פסול. נמכור מה שאין לנו

המלצתי: א' עכשיו, ב' כמחקר במקביל. ולא לרדוף אחרי 30/60/120 שניות — להאריך סרט שהדמות בו מתחלפת מכפיל את הבעיה, לא פותר אותה.

6 · החסם המיידי

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

מה מדוד ומה הערכה

טענהמעמד
עקביות דמות נכשלת בין שוטים✅ מדוד — השוואת פריימים
push-in עבד, pan-right לא✅ מדוד
איחוד / כתוביות / דטרמיניזם עובדים✅ מדוד
$1.16 למונטאז' mid✅ מדוד — חיובים אמיתיים
המנוע לא נגיש מהרשת✅ עובדה
Higgsfield משתמשת באותם מודלים🟡 הערכה סבירה — התמהיל המדויק לא אומת
"לא נצליח לנצח בשליטת ג'נרציה"🟠 שיפוט שלי, לא מדידה
היקף העבודה לנעילת זהות❌ לא ידוע. לא נחקר

מקורות: products/refract/loop-proof/loop-proof-result.json · products/refract/GAP-ASSESSMENT.md · products/refract/pipeline.md · ויתור refract-loop-proof-20260721