אימון דמויות
אמנו מודל בנאמנות גבוהה של דמות ב-REST API, בדקו את מצב האימון, הסירו את המודל, ולמדו מתי רכיב יצירת תמונה משתמש במודל המאומן.
זמין ב-Nodaro Cloud
אימון דמויות יוצר מודל ייעודי של דמות אחת מהתמונות שלה, לדמיון הקרוב ביותר ברכיב יצירת תמונה. מתחילים אימון בקריאה אחת, בודקים את הסטטוס שלו מדי כמה שניות עד שהוא מסתיים, ומסירים את המודל כשכבר אין בו צורך. אחרי האימון, רכיב יצירת תמונה משתמש במודל המאומן אוטומטית בכל פעם שפרומפט מזכיר את הדמות הזאת.
אימון דמויות רץ ב-Nodaro Cloud בלבד; בהתקנות באירוח עצמי הנתיבים לא קיימים ומחזירים 404. בהתקנה באירוח עצמי, שמרו על דמות עקבית בעזרת הפורטרט המאושר ותמונות הייחוס שלה, כמו שמתואר בדף ה-API דמויות. הנתיבים מקבלים אסימון Bearer ופועלים רק על הדמויות שלכם. ראו את דף ה-API אימות.
ה-SDK עוטף את הנתיבים במתודות client.characters.train, trainingStatus ו-deleteLora. ב-CLI, הריצו את הפקודות nodaro characters train, training ו-delete-lora. עוזר AI שמחובר דרך MCP מתחיל אימון עם הכלי train_character ובודק את המצב שלו עם הכלי get_character. אין כלי MCP שמסיר מודל מאומן.
עם אסימון של אפליקציית OAuth, התחלת אימון והסרת מודל מאומן דורשות את ההרשאה assets:write, אותה הרשאה שנדרשת כדי ליצור את הדמות או למחוק אותה. בלי ההרשאה, הנתיבים מחזירים 403 insufficient_scope לפני שקרדיטים משוריינים. קריאת הסטטוס לא דורשת הרשאה. סשן או אסימון API אישי לא צריכים הרשאה.
נקודות קצה
| שיטה | נתיב | מה היא עושה |
|---|---|---|
POST | /v1/characters/:id/train | התחלת אימון, עם שריון של 1,650 קרדיטים. |
GET | /v1/characters/:id/training | קבלת הסטטוס של האימון. |
DELETE | /v1/characters/:id/lora | ביטול אימון שבעיצומו, או הסרת המודל המאומן. |
לפני האימון
לדמות צריכות להיות לפחות 4 תמונות שונות. כברירת מחדל, Nodaro אוסף אותן מהדמות לפי הסדר הזה, מסיר כפילויות ומאמן את המודל על עד 20 מהן:
- הפורטרט המאושר.
- תמונות הייחוס.
- ההבעות, התנוחות, זוויות הראש וזוויות הגוף.
- וריאציות התאורה.
כדי לאמן על חלק מהתמונות, שלחו בגוף הבקשה { "selectedImageUrls": [...] }: עד 200 כתובות URL של תמונות של הדמות עצמה. האימון משתמש אז רק בהן, ולפחות 4 מהן צריכות להישאר. כשהרשימה לא נשלחת או שהיא ריקה, האימון משתמש בכל התמונות שמתאימות לאימון.
גיליונות דמות לא נספרים, כי התצוגות בהם חוזרות על אותן זוויות. כשיש לדמות פחות מ-4 תמונות, צרו קודם כמה זוויות והבעות עם POST /v1/generate-character-asset; ראו בדף ה-API דמויות.
התחלת אימון
הנתיב POST /v1/characters/:id/train מתחיל את האימון. כשהאימון מתחיל, משוריינים לו 1,650 קרדיטים. הנתיב מחזיר 202 עם מזהה המשימה של האימון, מזהה האימון ומילת הטריגר של הדמות. אף פעם לא צריך להקליד את מילת הטריגר: Nodaro מוסיף אותה לפרומפטים בעצמו.
curl -X POST https://app.nodaro.ai/v1/characters/3f6c2a9e-8d41-4b7a-9c35-1e2f7a6b0d94/train \
-H "Authorization: Bearer $NODARO_API_KEY"
# Or train on a subset of the character's images
curl -X POST https://app.nodaro.ai/v1/characters/3f6c2a9e-8d41-4b7a-9c35-1e2f7a6b0d94/train \
-H "Authorization: Bearer $NODARO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"selectedImageUrls": ["https://cdn.nodaro.ai/characters/kira-portrait.png", "https://cdn.nodaro.ai/characters/kira-smile.png", "https://cdn.nodaro.ai/characters/kira-left.png", "https://cdn.nodaro.ai/characters/kira-right.png"]}'import { createClient, StaticTokenAuth } from '@nodaro/sdk'
const client = createClient({
baseUrl: 'https://app.nodaro.ai',
auth: new StaticTokenAuth(process.env.NODARO_API_KEY!),
})
const training = await client.characters.train(characterId)
// Or a subset: client.characters.train(characterId, { selectedImageUrls: [...] }){
"jobId": "7a9c1e3b-5d2f-4b8a-9c6e-1f3d5b7a9c2e",
"trainingId": "q4m8x2k6p1",
"triggerWord": "TOK_kira_a1b2c3"
}המשימה של האימון, jobId, מסתיימת יחד עם האימון בסטטוס completed, failed או cancelled, ולכן אפשר לבדוק את מצב האימון גם עם GET /v1/jobs/:id/status.
לחיצה כפולה לא מזיקה: כל עוד אימון ממתין בתור או רץ, בקשת התחלה נוספת נדחית עם 409 already_training_or_not_found, ושום דבר לא משוריין. כל אסימון יכול להתחיל 3 אימונים בדקה.
מעקב אחרי האימון
הנתיב GET /v1/characters/:id/training מחזיר את מצב האימון. אימון לוקח כ-15 דקות. בדקו את הסטטוס בערך כל 10 שניות. ל-SDK אין פונקציית עזר שממתינה לסיום.
curl https://app.nodaro.ai/v1/characters/3f6c2a9e-8d41-4b7a-9c35-1e2f7a6b0d94/training \
-H "Authorization: Bearer $NODARO_API_KEY"let training = await client.characters.trainingStatus(characterId)
while (training.status === 'queued' || training.status === 'training') {
await new Promise((resolve) => setTimeout(resolve, 10_000))
training = await client.characters.trainingStatus(characterId)
}
if (training.status !== 'succeeded') console.warn(training.status, training.error){
"status": "succeeded",
"trainingId": "q4m8x2k6p1",
"error": null,
"trainedAt": "2026-09-20T11:42:08Z",
"version": "b81f4c0e9d27",
"triggerWord": "TOK_kira_a1b2c3",
"imageCount": 12
}| שדה | מה יש בו |
|---|---|
status | untrained, queued, training, succeeded, failed או cancelled. הערך untrained פירושו שמעולם לא אומן מודל לדמות, שהמודל הוסר או שלא היה אפשר להתחיל אימון. |
trainingId | האימון הנוכחי או האחרון, או null. |
error | למה האימון נכשל, או null. |
trainedAt | מתי הסתיים האימון המוצלח האחרון, או null. |
version | גרסת המודל של האימון המוצלח האחרון, או null. |
triggerWord | המילה שמזמנת את הדמות במודל המאומן, או null. |
imageCount | כמה תמונות שימשו באימון האחרון, או null. |
היצירה משתמשת במודל המאומן רק כל עוד status הוא succeeded. השדות trainedAt ו-version שומרים על הערכים שלהם גם בזמן אימון מחדש, אחרי אימון שנכשל או בוטל ואחרי אימון שלא היה אפשר להתחיל, אבל באף אחד מהמצבים האלה לא משתמשים במודל. בקשה לדמות שלא שייכת לכם, או לדמות שנמצאת בארכיון, נדחית עם 404 not_found.
יצירת תמונות עם המודל המאומן
כשהסטטוס הוא succeeded, הריצו את רכיב יצירת תמונה עם פרומפט שמזכיר עם @ בדיוק דמות מאומנת אחת, כשהדמות הזאת מחוברת לרכיב. Nodaro משתמש אז במודל המאומן במקום במודל שנבחר ובתמונות הייחוס:
- הכול אוטומטי. מילת הטריגר נכתבת בתחילת הפרומפט בלי שתצטרכו לעשות דבר, והאזכורים עם
@מוסרים מהטקסט. - 22 קרדיטים לתמונה. המחיר של המודל המאומן מחליף את המחיר של המודל שנבחר.
- דמות מאומנת אחת בכל פעם. כשהפרומפט מזכיר שתי דמויות מאומנות או יותר, רכיב יצירת תמונה חוזר למודל שנבחר עם תמונות ייחוס.
- רכיב יצירת תמונה בלבד. רכיבים אחרים, כגון עריכת תמונה ורכיבי הווידאו, ממשיכים להשתמש בתמונות הייחוס של הדמות.
ראו את דף ה-API הרצת רכיב יחיד לבקשה של רכיב יצירת תמונה, ואת המדריך אימון דמויות לאותה יכולת בעורך.
אימון מחדש או הסרת המודל
- אימון מחדש. אפשר להתחיל אימון שוב בכל רגע אחרי שאימון הצליח, נכשל או בוטל. אימון מחדש עולה 1,650 קרדיטים בכל פעם ומחליף את המודל הקודם.
- הסרה. הנתיב
DELETE /v1/characters/:id/loraמבטל אימון שבעיצומו, והקרדיטים עליו מוחזרים. הנתיב גם מוחק את המודל המאומן ומנקה את שדות האימון של הדמות. הסטטוס הוא אזuntrained. הנתיב מחזיר{ ok: true }, ואי אפשר לבטל את הפעולה. היצירות חוזרות להשתמש בתמונות ייחוס. - העברת הדמות לארכיון. העברת הדמות לארכיון גם מבטלת אימון שבעיצומו ומוחקת את המודל המאומן, והקרדיטים על האימון מוחזרים.
curl -X DELETE https://app.nodaro.ai/v1/characters/3f6c2a9e-8d41-4b7a-9c35-1e2f7a6b0d94/lora \
-H "Authorization: Bearer $NODARO_API_KEY"קרדיטים
| פעולה | קרדיטים |
|---|---|
| אימון | 1,650, והקרדיטים מוחזרים כשהאימון נכשל או מבוטל. |
| אימון מחדש | 1,650 בכל פעם. |
| תמונה מהמודל המאומן | 22 לתמונה, במקום המחיר של המודל שנבחר. |
ראו את דף ה-API קרדיטים ליתרות ולתנועות.
שגיאות
| סטטוס | קוד | משמעות |
|---|---|---|
400 | insufficient_training_images | לדמות יש פחות מ-4 תמונות שונות. השדות count ו-message בתגובה מציינים כמה תמונות יש לה. הוסיפו זוויות או הבעות ונסו שוב. |
400 | — | מזהה או selectedImageUrls פגומים. הגוף הוא { "message", "issues": [...] }. |
401 | unauthorized | האסימון חסר, לא תקין או מבוטל. |
402 | insufficient_credits | היתרה בחשבון נמוכה מ-1,650 קרדיטים. השדות required ו-balance מופיעים בתגובה. |
403 | insufficient_scope | אסימון של אפליקציית OAuth בלי ההרשאה assets:write. |
404 | not_found | אין לכם דמות כזאת, הדמות בארכיון, או שהמופע הוא לא Nodaro Cloud. |
409 | already_training_or_not_found | אימון של הדמות הזאת כבר ממתין בתור או רץ, או שהדמות לא שייכת לכם או נמצאת בארכיון. |
422 | job_blocked | מדיניות המשימות של הפריסה דחתה את האימון. |
429 | — | יותר מ-3 בקשות להתחלת אימון בדקה מהאסימון הזה. |
500 | claim_failed | השרת לא הצליח לנעול את האימון לבקשה הזאת. שום דבר לא התחיל: נסו שוב. |
502 | training_dispatch_failed | השרת לא הצליח להתחיל את האימון. הקרדיטים מוחזרים, והסטטוס הוא untrained. |
503 | public_url_not_configured, price_not_configured | האימון לא מוגדר במופע הזה. |
503 | dedup_race_winner_unresolvable | בקשה זהה כבר הייתה בטיפול, ולא היה אפשר לקרוא את התוצאה שלה. שום דבר לא שוריין לבקשה הזאת: בדקו את הסטטוס לפני שאתם מנסים שוב. |
הדחיות שהנתיבים האלה כותבים בעצמם משתמשות במבנה גוף ישן יותר: הקוד הוא מחרוזת פשוטה, { "error": "<code>" }, לפעמים עם message ברמה העליונה. הדחיות של הרשאות, קרדיטים, מגבלת קצב ומדיניות משימות משתמשות במעטפת הרגילה, { "error": { "code", "message" } }. ה-SDK קורא את שני המבנים לתוך NodaroError.code ו-.message.
שאלות נפוצות
כמה תמונות צריך כדי לאמן דמות?
אימון דמות דורש לפחות 4 תמונות שונות של הדמות, מבין הפורטרט המאושר, תמונות הייחוס, ההבעות, התנוחות, הזוויות ווריאציות התאורה שלה. Nodaro מאמן את המודל על עד 20 מהן. גיליונות דמות לא נספרים.
כמה עולה אימון דמות?
אימון דמות עולה 1,650 קרדיטים, וכך גם כל אימון מחדש. הקרדיטים מוחזרים כשאימון נכשל או מבוטל. כל תמונה שנוצרת אחר כך עם המודל המאומן עולה 22 קרדיטים.
כמה זמן לוקח אימון?
אימון דמות לוקח כ-15 דקות. בדקו את הסטטוס עם הנתיב GET /v1/characters/:id/training מדי כמה שניות, עד שהסטטוס הוא succeeded, failed או cancelled.
מתי רכיב יצירת תמונה משתמש במודל המאומן?
רכיב יצירת תמונה משתמש במודל המאומן כשהפרומפט מזכיר עם @ בדיוק דמות מאומנת אחת, והדמות הזאת מחוברת לרכיב. עם שתי דמויות מאומנות או יותר, הרכיב משתמש במקום זאת במודל שנבחר, עם תמונות ייחוס.
האם אפשר לאמן דמות בהתקנה באירוח עצמי?
לא. אימון דמויות רץ ב-Nodaro Cloud בלבד, והנתיבים שלו לא קיימים בהתקנות באירוח עצמי. בהתקנות כאלה, שמרו על דמות עקבית בעזרת הפורטרט המאושר ותמונות הייחוס שלה.
דפים קשורים
אימון דמויות
דמויות
יצירת תמונה
דמויות עקביות
קרדיטים
עודכן לאחרונה