דילוג לתוכן
תיעוד Nodaro
תיעודמדריך הרכיביםמודליםתבניותסוכני AI (MCP)מפתחיםאירוח עצמימחקרהשוואות
REST API

מיקומים

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

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

הנתיבים עובדים בכל מהדורה, חוץ מנתיב המבט של 360 מעלות, שעובד רק ב-Nodaro Cloud. הם מקבלים אסימון Bearer: אסימון API אישי (ndr_…), אסימון של אפליקציית OAuth (ndr_app_…), או אסימון הסשן שלכם במהדורת Community. ראו את דף ה-API אימות.

נקודות קצה

שיטהנתיבמה היא עושה
GET/v1/locationsרשימת המיקומים שלכם.
GET/v1/locations/:idקבלת מיקום אחד, עם המשימות שלו שעדיין רצות ועם המועמדים האחרונים.
POST/v1/locationsיצירת מיקום, או עדכון של מיקום כשבגוף הבקשה יש id.
DELETE/v1/locations/:idהעברת מיקום לארכיון. אפשר לשחזר אותו.
DELETE/v1/locations/:id?permanent=trueמחיקה לצמיתות של מיקום שבארכיון ושל הקבצים שלו.
POST/v1/locations/:id/restoreשחזור מיקום מהארכיון.
POST/v1/generate-locationיצירה של 1–10 מועמדים לשוט הפותח.
POST/v1/generate-location-assetיצירת וריאנט אחד של שעת יום, מזג אוויר, עונה, זווית או תאורה, או וריאנט מותאם אישית.
POST/v1/generate-surround-continuationב-Nodaro Cloud בלבד. יצירת התצוגה הבאה במבט של 360 מעלות.
POST/v1/generate-location-motionהנפשת השוט הפותח לקליפ אווירה.
POST/v1/locations/:id/approve-main-imageאישור מועמד כתמונה הראשית וכתיבת התיאור של המיקום.
POST/v1/locations/:id/llm-captionכתיבת התיאור מחדש מהתמונה הראשית הנוכחית.

מה מיקום כולל

שדהמה יש בו
id, name, descriptionהמזהה, שם התצוגה והערות על הזהות של המקום.
categoryindoor, outdoor, urban, nature, fantasy, sci-fi, historical, futuristic או other.
stylerealistic, anime, 3d-pixar או illustration.
sourceImageUrlהשוט הפותח שמעגן את המיקום. הערך נקבע כשמאשרים מועמד.
canonicalDescriptionתיאור חזותי של בין 80 ל-120 מילים בערך, ש-Nodaro כותב כשהתמונה הראשית מאושרת. עד אז הערך הוא מחרוזת ריקה.
styleLockהאם הווריאנטים נוצרים מהתמונה הראשית. ברירת המחדל היא true.
timeOfDay, weather, seasons, angles, lighting, atmosphereMotionsקבוצות הווריאנטים. כל פריט הוא { name, url }; ב-atmosphereMotions נמצאים סרטונים.
referencePhotosעד 20 תמונות מודבורד, כל אחת { kind, url }.
piiConsentAtהמועד שבו אישרתם שיש הסכמה לשימוש בתמונות הייחוס, או null.
pendingJobs, previousCandidatesרק ב-GET /v1/locations/:id: משימות הווריאנטים שעדיין רצות, ועד 5 מועמדים אחרונים לתמונה הראשית, מהחדש לישן.

קבוצות הווריאנטים

אלה שמות הערכות, כפי שה-API מקבל ושומר אותם. באולפן המיקומים בעברית התגיות שלהן מתורגמות, למשל golden hour מוצגת כשעת הזהב.

קבוצהמה היא מציגהערכות
timeOfDayאותו שוט בשעה אחרתdawn, morning, noon, afternoon, golden hour, dusk, blue hour, night, midnight
weatherאותו שוט במזג אוויר אחרclear, cloudy, light rain, heavy rain, storm, snow, blizzard, fog, mist
seasonsאותו שוט בעונה אחרתspring, summer, autumn, winter
anglesהמקום מזווית מצלמה אחרתwide, medium, closeup, aerial, low-angle, eye-level, bird's-eye, dutch tilt
lightingמערך תאורה אחרsoft natural, harsh sunlight, golden, blue hour, neon, candlelit, cinematic, dramatic chiaroscuro
atmosphereMotionsקליפי אווירה בלולאה, עם תנועת מצלמהslow dolly-in, slow pan-left, slow pan-right, push up, drone fly-over, gentle drift, parallax, static atmospheric

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

kindלמה הוא מתאים
wideמבט רחב יותר על אותו מקום.
interior, exteriorהמקום מבפנים כשהתמונה הראשית מציגה אותו מבחוץ, או להפך.
detailפרט מאפיין, כגון פסל, שלט או חומר.
moodBoardהפלטה או האווירה.
otherכל דבר אחר.

אפשר להוסיף עד 20 תמונות, בלי מגבלה על מספר התמונות מכל סוג.

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

רשימה וקריאה של מיקומים

הנתיב GET /v1/locations מחזיר את המיקומים הפעילים שלכם. הוסיפו archived=true כדי לקבל את המיקומים שבארכיון. הוסיפו q כדי לקבל רק מיקומים שהשם או התיאור שלהם כוללים את כל המילים שב-q, בלי הבדל בין אותיות גדולות לקטנות: אותו חיפוש כמו בדף ה-API דמויות. בלי limit, הנתיב מחזיר את הרשימה המלאה; עם limit (עד 500), הוא מחזיר עמוד אחד ו-nextCursor, ששולחים בחזרה בתור cursor עד שהערך שלו הוא null.

הנתיב GET /v1/locations/:id מחזיר מיקום אחד, בארכיון או לא, ולכן תהליכים שמשתמשים במיקום שבארכיון ממשיכים לעבוד. כל רשומה, ברשימה ובקריאה לפי מזהה, כוללת גם את המצב שלה על המדף של Nodaro Keepers: catalog, catalogSort ו-catalogCategory. ברשומות שלכם ובכל עותק, הערכים שלהם הם false, 0 ו-null.

curl "https://app.nodaro.ai/v1/locations?limit=100" \
  -H "Authorization: Bearer $NODARO_API_KEY"

curl https://app.nodaro.ai/v1/locations/9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f \
  -H "Authorization: Bearer $NODARO_API_KEY"
import { createClient, StaticTokenAuth } from '@nodaro/sdk'

const client = createClient({
  baseUrl: 'https://app.nodaro.ai',
  auth: new StaticTokenAuth(process.env.NODARO_API_KEY!),
})

const { locations } = await client.locations.list()
const alley = await client.locations.get(locations[0].id)
console.log(alley.previousCandidates)
nodaro locations list --json
nodaro locations get <id> --json

יצירה או עדכון של מיקום

הנתיב POST /v1/locations יוצר מיקום כשבגוף הבקשה אין id, ומעדכן את המיקום שהמזהה מציין כשיש בו id. יצירה דורשת nodeId ו-name; כשאין רכיב על הקנבס, השתמשו בכל תווית בתור nodeId, כגון "scripted".

בעדכון, רק השדות שאתם שולחים נכתבים, וקבוצות הווריאנטים אף פעם לא נכתבות. שלחו expectedUpdatedAt, הערך הנוכחי של updatedAt במיקום, כדי שהעדכון יידחה עם 409 concurrent_modification אם מישהו שינה את המיקום מאז שקראתם אותו.

curl -X POST https://app.nodaro.ai/v1/locations \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "nodeId": "scripted",
    "name": "Rainy Tokyo Alley",
    "description": "Neon-soaked alley with vending machines and wet pavement",
    "category": "urban",
    "style": "realistic"
  }'
const { id } = await client.locations.create({
  nodeId: 'scripted',
  name: 'Rainy Tokyo Alley',
  description: 'Neon-soaked alley with vending machines and wet pavement',
  category: 'urban',
  style: 'realistic',
})

const location = await client.locations.get(id)
await client.locations.update(id, {
  referencePhotos: [{ kind: 'wide', url: 'https://cdn.nodaro.ai/uploads/alley-wide.jpg' }],
  piiConsentAt: new Date().toISOString(),
  expectedUpdatedAt: location.updatedAt,
})
nodaro locations create "Rainy Tokyo Alley" --node-id scripted \
  --description "Neon-soaked alley with vending machines and wet pavement" \
  --category urban --style realistic

nodaro locations update <id> --style-lock false

מאפיין

סוג

יצירה מחזירה { id }.

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

יצירת מועמדים לשוט הפותח

הנתיב POST /v1/generate-location מתחיל משימה אחת לכל מועמד ומחזיר jobIds. בקשה למועמד יחיד מחזירה גם jobId.

  • מועמד אחד, מצורף למיקום. עם attachToLocationId וכש-count הוא 1, התוצאה הופכת לתמונה הראשית כשהמשימה מסתיימת.
  • כמה מועמדים. שום דבר לא מצורף למיקום. התמונה הראשית הנוכחית נשארת, ומועמדים שהושלמו מופיעים ב-previousCandidates בתגובה של GET /v1/locations/:id. אשרו את המועמד שאתם מעדיפים.
  • עריכת השוט הנוכחי. השדה userPrompt הוא הוראה חד־פעמית, למשל "add rain and puddles" (הוסף גשם ושלוליות). עם sourceImageUrl, תמונת המקור נערכת לפי ההוראה. ההוראה אף פעם לא נשמרת במיקום.
curl -X POST https://app.nodaro.ai/v1/generate-location \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Rainy Tokyo Alley",
    "count": 1,
    "attachToLocationId": "9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f"
  }'
const { jobIds } = await client.locations.generate({
  name: 'Rainy Tokyo Alley',
  description: 'Neon-soaked alley with vending machines',
  count: 4,
})
nodaro locations generate --name "Rainy Tokyo Alley" --count 1 \
  --attach-to-location-id <id> --watch
{ "jobId": "4d6f8b1a-3c5e-4f7a-9b2d-6e8a1c3f5b7d", "jobIds": ["4d6f8b1a-3c5e-4f7a-9b2d-6e8a1c3f5b7d"] }
שדהמה הוא עושה
nameנדרש. שם המיקום.
description, category, styleהזהות של המיקום.
countמספר המועמדים ליצירה, מ-1 עד 10. ברירת המחדל היא 1.
userPromptהוראה חד־פעמית שמכוונת את היצירה הזו. לא נשמרת אף פעם.
sourceImageUrlתמונה לעריכה או כנקודת התחלה.
providerמזהה מודל התמונה. השמיטו אותו כדי להשתמש במודל ברירת המחדל.
quality, resolutionרמת הפלט של מודל התמונה, שמתומחרת כמו ברכיב יצירת תמונה.
attachToLocationIdצירוף מועמד יחיד למיקום הזה.

השדות quality ו-resolution עובדים כמו ב-API של הדמויות. כשהמודל לא מקבל ערך מהרשימה, הבקשה לא נדחית. Nodaro משתמש במקומו בערך שהמודל תומך בו, או משמיט את ההגדרה כשאין למודל הגדרה כזו. הקרדיטים נקבעים לפי הערך שרץ בפועל, והשדה input_data של המשימה מציג אותו.

יצירת וריאנט

הנתיב POST /v1/generate-location-asset יוצר וריאנט אחד ומחזיר { jobId }. שלחו attachToLocationId, attachToColumn ו-attachName כדי ש-{ name: attachName, url } יתווסף לסוף הקבוצה כשהמשימה מסתיימת.

curl -X POST https://app.nodaro.ai/v1/generate-location-asset \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Rainy Tokyo Alley",
    "assetType": "weather",
    "variant": "storm",
    "attachToLocationId": "9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f",
    "attachToColumn": "weather",
    "attachName": "storm"
  }'
await client.locations.generateAsset({
  name: 'Rainy Tokyo Alley',
  assetType: 'timeOfDay',
  variant: 'blue hour',
  attachToLocationId: id,
  attachToColumn: 'time_of_day',
  attachName: 'blue hour',
})
nodaro locations generate-asset <id> --asset-type weather --variant storm --watch

הערך של assetType הוא timeOfDay, weather, seasons, angles, lighting או custom. הערך של attachToColumn הוא time_of_day, weather, seasons, angles או lighting, וכשהווריאנט הוא custom, חובה לציין אותו. הנתיב מקבל גם provider, quality, resolution ו-sourceImageUrl.

בניית מבט של 360 מעלות

הנתיב POST /v1/generate-surround-continuation בונה מבט של 360 מעלות סביב המקום, תצוגה אחת בכל פעם, למשל כל 45 מעלות. כל קריאה ממשיכה את התצוגה הקודמת. Nodaro מעביר את הקצה של התצוגה הזו לתמונה החדשה, ומשלים רק את שאר התמונה. אחר כך הוא מתאים את החשיפה ואת הצבע של החלק שהושלם לאלה של החלק שהועבר. החלק שהועבר נשאר זהה פיקסל־לפיקסל, ולכן תצוגות סמוכות מתחברות זו לזו במציג פנורמות. הנתיב הזה עובד רק ב-Nodaro Cloud; במהדורות אחרות הוא מחזיר 403 edition_required.

curl -X POST https://app.nodaro.ai/v1/generate-surround-continuation \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "referenceImageUrl": "https://cdn.nodaro.ai/locations/alley-main.png",
    "direction": "right",
    "degrees": 45,
    "provider": "nano-banana-pro",
    "aspectRatio": "16:9",
    "attachToLocationId": "9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f",
    "attachToColumn": "angles",
    "attachName": "Surround 45°"
  }'
const { jobId } = await client.locations.generateSurroundContinuation({
  referenceImageUrl: previousView,
  direction: 'right',
  degrees: 45,
  provider: 'nano-banana-pro',
  aspectRatio: '16:9',
  attachToLocationId: id,
  attachToColumn: 'angles',
  attachName: 'Surround 45°',
})
שדהמה הוא עושה
referenceImageUrlנדרש. התצוגה הקודמת שממנה ממשיכים.
directionנדרש. לסיבוב right או left, ולהטיה up או down.
degreesהזווית של התצוגה הזו, מ-0 עד 360, שנשמרת עם התוצאה.
carriedFractionכמה מהתמונה מועבר מהתצוגה הקודמת, מ-0.1 עד 0.9. ברירת המחדל היא 0.5 בסיבוב ופס דק בהטיה.
provider, aspectRatioמודל התמונה ויחס הגובה־רוחב. העורך משתמש ב-nano-banana-pro וב-16:9, כדי שכל תצוגה תתאים לשוט הפותח.
attachToLocationId, attachToColumn, attachNameצירוף התצוגה למיקום, בדרך כלל לקבוצה angles.

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

הנפשת השוט הפותח

הנתיב POST /v1/generate-location-motion הופך את השוט הפותח לקליפ אווירה: ערפל נע, דולי איטי, מעוף רחפן. הנתיב מחזיר { jobId }. השדה sourceImageUrl נדרש; העבירו בו את התמונה הראשית המאושרת. עם attachToLocationId ו-attachName, הקליפ מתווסף לסוף atmosphereMotions; לא שולחים עמודה.

curl -X POST https://app.nodaro.ai/v1/generate-location-motion \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Rainy Tokyo Alley",
    "motionPrompt": "slow dolly-in, neon signs flicker, light rain falling",
    "sourceImageUrl": "https://cdn.nodaro.ai/locations/alley-main.png",
    "provider": "kling",
    "attachToLocationId": "9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f",
    "attachName": "neon dolly-in"
  }'
await client.locations.generateMotion({
  name: 'Rainy Tokyo Alley',
  motionPrompt: 'slow dolly-in, neon signs flicker, light rain falling',
  sourceImageUrl: location.sourceImageUrl!,
  provider: 'kling',
  attachToLocationId: id,
  attachName: 'neon dolly-in',
})
nodaro locations generate-motion --name "Rainy Tokyo Alley" \
  --motion-prompt "slow dolly-in, neon signs flicker, light rain falling" \
  --source-image-url "https://cdn.nodaro.ai/locations/alley-main.png" \
  --provider kling --attach-to-location-id <id> --attach-name "neon dolly-in" --watch
שדהמה הוא עושה
name, motionPromptנדרשים. שם המיקום והתנועה שרוצים ליצור.
sourceImageUrlנדרש. פריים הפתיחה.
providerkling (ברירת המחדל), kling-turbo, kling-3.0, wan-i2v, wan-2.7-i2v או seedance-2.
aspectRatio16:9 (ברירת המחדל), 1:1, 3:4 או 9:16.
refineFromVideoUrlקליפ קיים לעידון עם הפרומפט החדש, למשל כדי להפוך ערפל לגשם בלי להזיז את המצלמה. השתמשו במודל שתומך בווידאו לווידאו, כגון wan-i2v.
attachToLocationId, attachNameהמיקום, ושם הקליפ ב-atmosphereMotions.
מודליצרןמצביםקרדיטיםפרטים
Kling 2.6Kuaishouתמונה לווידאו, טקסט לווידאוהחל מ-152תמונה לווידאו עם Kling 2.6 — תנועה ריאליסטית במיוחד. 5 או 10 שניות, אודיו מובנה אופציונלי.
Kling 2.5 Turbo ProKuaishouתמונה לווידאו, טקסט לווידאוהחל מ-121Kling מהיר יותר — איכות טובה בעלות נמוכה יותר. תומך בפריים סיום.
Kling 3.0Kuaishouתמונה לווידאו, טקסט לווידאוהחל מ-297Kling 3.0 ברמת פרימיום — משך משתנה של 3–15 שניות, אודיו מובנה, 720P/1080P.
Wan 2.6 I2VAlibabaתמונה לווידאוהחל מ-193תמונה לווידאו עם Wan 2.6 — 5/10/15 שניות ב-720p/1080p.
Wan 2.7 I2VAlibabaתמונה לווידאו207תמונה לווידאו עם Wan 2.7 — 2–15 שניות ב-720p/1080p, תומך בפריים פתיחה וסיום.
Seedance 2Bytedanceתמונה לווידאו, טקסט לווידאוהחל מ-253Seedance 2 — רמת פרימיום עם אודיו מובנה. תמחור לפי שנייה, בהתאם לרזולוציה.

אישור תמונה ראשית

הנתיב POST /v1/locations/:id/approve-main-image עם { candidateJobId } קובע מועמד שהושלם כתמונה הראשית, וכותב את canonicalDescription באותה קריאה. הנתיב מחזיר { sourceImageUrl, canonicalDescription }.

כשכתיבת התיאור נכשלת, התמונה הראשית בכל זאת נקבעת, והשדה canonicalDescription הוא מחרוזת ריקה; ה-SDK מחזיר null. קראו לנתיב POST /v1/locations/:id/llm-caption כדי לנסות שוב. הנתיב הזה מחזיר { canonicalDescription }; כשאי אפשר לכתוב את התיאור הוא מחזיר 502, וכשעדיין אין תמונה ראשית, 400 no_source_image. אפשר לחזור על הקריאה לשני הנתיבים בלי חשש. האישור עצמו לא עולה קרדיטים. כתיבת התיאור היא קריאה למודל הראייה Claude Sonnet 4.6, שמחויבת לפי הטוקנים שהיא השתמשה בהם, בתעריף של המודל הזה. ראו את הסעיף איך מחויבות קריאות LLM בדף קרדיטים. אישור אף פעם לא נדחה בגלל קרדיטים. כשהיתרה לא מספיקה לתיאור, התמונה בכל זאת מאושרת, התיאור לא נכתב, והנתיב llm-caption יכול לכתוב אותו מאוחר יותר. על תיאור שהספק חייב עליו משלמים, גם כשהוא חוזר ריק. על תיאור שהספק לא חייב עליו, הקרדיטים מוחזרים.

curl -X POST https://app.nodaro.ai/v1/locations/9a1d3f5b-7c2e-4a8d-b6f1-3e5c7a9b2d4f/approve-main-image \
  -H "Authorization: Bearer $NODARO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "candidateJobId": "4d6f8b1a-3c5e-4f7a-9b2d-6e8a1c3f5b7d" }'
const { sourceImageUrl, canonicalDescription } =
  await client.locations.approveMainImage(id, jobIds[2])
nodaro locations approve-main-image <id> --candidate-job-id <jobId>
nodaro locations recaption <id>

גם הנתיב approve-main-image וגם הנתיב llm-caption משנים את המיקום. עם אסימון של אפליקציית OAuth, הם דורשים את ההרשאה assets:write. אסימון בלי ההרשאה הזאת נדחה עם 403 insufficient_scope. אסימון הסשן שלכם ואסימוני API אישיים לא צריכים הרשאה.

העברה לארכיון, שחזור ומחיקה של מיקום

פעולהcurlSDK ל-TypeScriptCLI
העברה לארכיוןDELETE /v1/locations/:idclient.locations.delete(id)nodaro locations delete <id>
שחזורPOST /v1/locations/:id/restoreclient.locations.restore(id)nodaro locations restore <id>
מחיקה לצמיתותDELETE /v1/locations/:id?permanent=trueלא זמיןלא זמין
  • העברה לארכיון מחזירה { success: true, archived: true }. המיקום יוצא מרשימת ברירת המחדל, אבל עדיין נטען לפי המזהה.
  • שחזור מחזיר { id, name }. אם יש מיקום פעיל עם אותו שם, בלי הבדל בין אותיות גדולות לקטנות, לשם נוספת הסיומת (restored) (שוחזר).
  • מחיקה לצמיתות עובדת רק על מיקום שבארכיון (אחרת חוזרת השגיאה 400 not_archived), ומסירה את המיקום ואת כל הקבצים שלכם שהוא מצביע עליהם. קובץ שנוצר ביצירה של משתמש אחר, או שנמצא בתיקיית ההעלאות או בספרייה של משתמש אחר, נשאר באחסון, ומעולם לא נספר במכסת האחסון שלכם. ה-SDK וה-CLI לא מציעים את הפעולה הזו; בעורך, תצוגת הארכיון מבקשת להקליד את השם כדי לאשר.

בחירת וריאנט בהרצת אפליקציה

כשתהליך עם רכיב נכס מיקום מתפרסם כאפליקציה, המיקום הופך לאחד הקלטים של האפליקציה. העבירו "<bucket>/<variant>", למשל "weather/light-rain", כדי שהווריאנט הזה ישמש כתמונה הראשית של המיקום בהרצה. כתבו את שם הווריאנט באותיות קטנות, עם מקפים במקום רווחים. אם הקבוצה או הווריאנט לא מוכרים, ההרצה משתמשת במקום זאת בתמונה הראשית.

שימוש במיקום ביצירות אחרות

העבירו את כתובות התמונות של המיקום כתמונות ייחוס לרכיב יצירת תמונה או לרכיב יצירת וידאו; בקוד, כתובות מפורשות הן הבחירה הפשוטה ביותר. בתהליך, חברו את רכיב המיקום לרכיב התמונה, או הזכירו וריאנט בפרומפט, למשל @oldlibrary:1:weather/rain למיקום בשם Old Library. בלי אזכור, Nodaro מחפש שמות של וריאנטים בפרומפט שלכם: "at sunset" (בשקיעה) בוחר וריאנט dusk אם יש לכם כזה. ראו את המדריך מיקומים.

שימוש דרך MCP

כלימה הוא עושה
list_locations, get_locationמציאת מיקום וקריאת הכתובות של הווריאנטים שלו.
create_location, update_locationיצירת מיקום או שינוי שדות הזהות שלו.
generate_locationיצירת תמונה ראשית (kind: "main") או וריאנט (kind: "asset").
generate_location_motionהנפשת התמונה הראשית.
approve_main_image, recaption_locationאישור תמונה ראשית, או כתיבת התיאור שלה מחדש.

העברה לארכיון ושחזור לא זמינים דרך MCP, במכוון. ראו את מדריך כלי ה-MCP.

קרדיטים

נתיבמחיר ב-Nodaro Cloud
POST /v1/generate-locationהמחיר של מודל התמונה כפול count. הקרדיטים לכל המועמדים משוריינים לפני שהמשימה הראשונה מתחילה.
POST /v1/generate-location-assetהמחיר של מודל התמונה, לכל וריאנט.
POST /v1/generate-surround-continuationהמחיר של מודל התמונה, לכל תצוגה.
POST /v1/generate-location-motionהמחיר של מודל הווידאו מתמונה לווידאו, לכל קליפ.
approve-main-imageהאישור לא עולה קרדיטים. כתיבת התיאור שלו היא קריאה למודל ראייה, שמחויבת לפי הטוקנים שהיא השתמשה בהם.
llm-captionאותה קריאה למודל ראייה, שמחויבת באותו אופן.

שגיאות

סטטוסקודמשמעות
400validation_errorשדה חסר או לא תקין.
400not_archivedנשלחה בקשה למחיקה לצמיתות של מיקום שלא נמצא בארכיון.
400no_source_imageהקריאה ל-llm-caption נשלחה לפני שהייתה למיקום תמונה ראשית.
401unauthorizedהאסימון חסר, לא תקין או מבוטל.
402insufficient_creditsב-Nodaro Cloud בלבד. אין בחשבון מספיק קרדיטים לשריון.
403edition_requiredנתיב המבט של 360 מעלות נקרא במהדורת Community או במהדורת Business.
404not_foundאין לכם מיקום עם המזהה הזה.
409concurrent_modificationהערך expectedUpdatedAt כבר לא תואם. קבלו את המיקום שוב, מזגו את השינויים ונסו שוב.
502—לא היה אפשר לכתוב את התיאור הקנוני. נסו שוב.

שאלות נפוצות

מהו מיקום ב-API של Nodaro?

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

איך מנסים שוטים פותחים חדשים בלי לאבד את השוט הנוכחי?

כדי לנסות שוטים פותחים חדשים, צרו כמה מועמדים בלי לצרף אותם למיקום. התמונה הראשית הנוכחית נשארת עד שתאשרו מועמד, והנתיב GET /v1/locations/:id מחזיר עד 5 מועמדים אחרונים בשדה previousCandidates.

האם צריך הסכמה כדי להוסיף תמונות ייחוס למיקום?

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

האם אפשר לבנות מבט של 360 מעלות סביב מיקום?

ב-Nodaro Cloud, הנתיב POST /v1/generate-surround-continuation יוצר את התצוגה הבאה של פנורמה מהתצוגה הקודמת, ושומר על החצי המשותף זהה פיקסל־לפיקסל, כדי שהתצוגות יתחברו זו לזו. כל תצוגה עולה כמו יצירת תמונה אחת.

אילו מודלים מנפישים מיקום?

שישה מודלי וידאו מנפישים מיקום. מזהי הספק שלהם הם kling (ברירת המחדל, Kling 2.6), kling-turbo, kling-3.0, wan-i2v, wan-2.7-i2v ו-seedance-2. כל קליפ עולה כמו הרצה מתמונה לווידאו באותו מודל.

עודכן לאחרונה

בדף הזה