장소
REST로 장소를 다루는 방법입니다. 장소를 만들고 보관하며, 설정 샷과 시간대·날씨·앵글 변형, 360도 뷰, 모션 클립을 생성합니다.
장소 API는 장소 스튜디오에서 하는 모든 일을 스크립트로 처리합니다. 장소를 만들고, 설정 샷 후보를 생성하고, 그중 하나를 승인한 뒤, 시간대, 날씨, 계절, 카메라 앵글, 조명별 변형과 반복 재생되는 분위기 클립을 추가합니다. 그러면 이미지 노드와 동영상 노드가 장소를 재사용하므로, 같은 골목이나 도서관이 모든 샷에서 똑같이 보입니다.
이 경로들은 모든 에디션에서 작동하지만, 360도 뷰 경로에는 Nodaro Cloud가 필요합니다. 경로에는 Bearer 토큰을 보내세요. 개인 API 토큰(ndr_…), OAuth 앱 토큰(ndr_app_…), 또는 Community Edition의 세션 토큰을 쓸 수 있습니다. 인증을 참고하세요.
엔드포인트
| 메서드 | 경로 | 기능 |
|---|---|---|
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 | 식별자, 표시 이름, 장소의 특징 메모입니다. |
category | indoor, outdoor, urban, nature, fantasy, sci-fi, historical, futuristic 또는 other입니다. |
style | realistic, 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개를 최신순으로 담습니다. |
에셋 버킷
| 버킷 | 보여 주는 것 | 프리셋 변형 |
|---|---|---|
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를 추가하세요. 대소문자는 구분하지 않으며, 캐릭터와 같은 검색입니다. limit이 없으면 전체 목록을 반환하고, limit(최대 500)이 있으면 한 페이지와 nextCursor를 반환합니다. nextCursor가 null이 될 때까지 이 값을 cursor로 다시 보내세요.
GET /v1/locations/:id는 보관 여부와 관계없이 장소 하나를 반환하므로, 보관된 장소를 사용하는 워크플로도 계속 작동합니다.
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가 없으면 장소를 만들고, 있으면 그 장소를 수정합니다. 만들 때는 nodeId와 name이 필요합니다. 캔버스 노드가 없으면 nodeId에는 "scripted"처럼 아무 레이블이나 쓰세요.
수정할 때는 보낸 필드만 기록되며, 에셋 버킷은 절대 기록되지 않습니다. 장소의 현재 updatedAt 값을 expectedUpdatedAt으로 보내면, 내가 읽은 뒤 누군가 장소를 바꾼 경우 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로 보내면, 작업이 완료될 때 결과가 대표 이미지가 됩니다. - 후보 여러 개. 아무것도 연결되지 않습니다. 현재 대표 이미지는 그대로 유지되고, 완료된 후보는
GET /v1/locations/:id의previousCandidates에 나타납니다. 마음에 드는 후보를 승인하세요. - 현재 샷 편집.
userPrompt는 “비와 물웅덩이를 추가해 줘” 같은 일회성 지시입니다.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 | 이미지 모델 ID입니다. 기본 모델을 쓰려면 생략하세요. |
quality, resolution | 이미지 모델의 출력 등급으로, 이미지 생성과 같은 가격이 적용됩니다. |
attachToLocationId | 후보 하나를 이 장소에 연결합니다. |
quality와 resolution은 캐릭터에서와 같이 작동합니다. 모델이 지원하지 않는 값은 가장 가까운 지원 값으로 바뀌고, 크레딧도 바뀐 값을 따릅니다. 작업의 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 --watchassetType은 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은 예를 들어 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 버킷에 연결합니다. |
뷰마다 선택한 이미지 모델에서 생성 1회의 비용이 듭니다. 가장자리를 가져오는 작업과 색 맞춤에는 별도 요금이 없습니다.
설정 샷 애니메이션
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 | 필수입니다. 시작 프레임입니다. |
provider | kling(기본값), kling-turbo, kling-3.0, wan-i2v, wan-2.7-i2v 또는 seedance-2입니다. |
aspectRatio | 16:9(기본값), 1:1, 3:4 또는 9:16입니다. |
refineFromVideoUrl | 새 프롬프트로 다듬을 기존 클립입니다. 예를 들어 카메라를 움직이지 않고 안개를 비로 바꿀 때 씁니다. wan-i2v처럼 동영상을 동영상으로 변환할 수 있는 모델을 사용하세요. |
attachToLocationId, attachName | 장소, 그리고 atmosphereMotions에 들어갈 클립 이름입니다. |
| 모델 | 개발사 | 모드 | 크레딧 | 세부 정보 |
|---|---|---|---|---|
| Kling 2.6 | Kuaishou | 이미지로 동영상 만들기, 텍스트로 동영상 만들기 | 152부터 | Kling 2.6 I2V입니다. 모션이 사실적이며 5초/10초 클립과 선택형 네이티브 오디오를 지원합니다. |
| Kling 2.5 Turbo Pro | Kuaishou | 이미지로 동영상 만들기, 텍스트로 동영상 만들기 | 121부터 | 더 빠른 Kling입니다. 더 낮은 비용으로 좋은 품질을 냅니다. 종료 프레임을 지원합니다. |
| Kling 3.0 | Kuaishou | 이미지로 동영상 만들기, 텍스트로 동영상 만들기 | 297부터 | 프리미엄 Kling 3.0입니다. 길이를 3~15초에서 조절할 수 있고, 네이티브 오디오와 720P/1080P를 지원합니다. |
| Wan 2.6 I2V | Alibaba | 이미지로 동영상 만들기 | 193부터 | Wan 2.6의 이미지로 동영상 만들기 모델입니다. 720p/1080p에서 5/10/15초 클립을 만듭니다. |
| Wan 2.7 I2V | Alibaba | 이미지로 동영상 만들기 | 207 | Wan 2.7의 이미지로 동영상 만들기 모델입니다. 720p/1080p에서 2~15초 길이를 만들며, 시작 프레임과 종료 프레임을 지원합니다. |
| Seedance 2 | Bytedance | 이미지로 동영상 만들기, 텍스트로 동영상 만들기 | 253부터 | Seedance 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로 응답합니다. 두 경로 모두 반복해서 호출해도 안전합니다. 승인은 무료입니다. llm-caption 호출은 1회에 8크레딧이 들고, 실패한 호출(502)은 환불됩니다.
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>장소 보관, 복원, 삭제
| 작업 | curl | TypeScript SDK | CLI |
|---|---|---|---|
| 보관 | DELETE /v1/locations/:id | client.locations.delete(id) | nodaro locations delete <id> |
| 복원 | POST /v1/locations/:id/restore | client.locations.restore(id) | nodaro locations restore <id> |
| 영구 삭제 | DELETE /v1/locations/:id?permanent=true | 지원하지 않음 | 지원하지 않음 |
- 보관은
{ success: true, archived: true }를 반환합니다. 장소는 기본 목록에서 빠지지만, ID로는 계속 불러올 수 있습니다. - 복원은
{ id, name }을 반환합니다. 대소문자와 관계없이 이름이 같은 활성 장소가 있으면 이름에(restored)접미사가 붙습니다. - 영구 삭제는 보관된 장소에서만 작동하며(그렇지 않으면
400 not_archived), 장소와 장소가 참조하는 파일 중 내 파일을 모두 제거합니다. 다른 사용자의 생성 작업이 만든 파일이나, 다른 사용자의 업로드 폴더 또는 라이브러리에 있는 파일은 저장소에 남으며, 내 저장 용량에 포함된 적이 없습니다. SDK와 CLI에서는 지원하지 않으며, 에디터의 보관함 화면에서는 확인을 위해 이름을 입력하라고 요청합니다.
앱 실행 시 변형 선택
장소 에셋 노드가 있는 워크플로를 앱으로 게시하면, 장소가 앱의 입력 중 하나가 됩니다. "weather/light-rain"처럼 "<bucket>/<variant>" 형식으로 보내면, 그 실행에서 해당 변형이 장소의 대표 이미지로 쓰입니다. 변형 이름은 소문자로 쓰고 공백은 하이픈으로 바꾸세요. 알 수 없는 버킷이나 변형을 보내면 대표 이미지가 대신 쓰입니다.
다른 생성에서 장소 사용
장소의 에셋 URL을 이미지 생성이나 동영상 생성에 레퍼런스 이미지로 전달하세요. 코드에서는 URL을 명시하는 방법이 가장 간단합니다. 워크플로에서는 장소 노드를 이미지 노드에 연결하거나, 프롬프트에서 변형을 멘션하세요. 예를 들어 Old Library라는 장소라면 @oldlibrary:1:weather/rain처럼 씁니다. 멘션이 없으면 Nodaro가 프롬프트에서 변형 이름을 찾습니다. 프롬프트에 “at sunset”(해 질 무렵)이 있으면, dusk 변형이 있을 때 그 변형이 선택됩니다. 장소를 참고하세요.
MCP에서 사용
| 도구 | 기능 |
|---|---|
list_locations, get_location | 장소를 찾고 변형 URL을 읽습니다. |
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 | 호출마다 8크레딧입니다. |
오류
| 상태 | 코드 | 의미 |
|---|---|---|
400 | validation_error | 필드가 없거나 잘못되었습니다. |
400 | not_archived | 보관되지 않은 장소에 영구 삭제를 보냈습니다. |
400 | no_source_image | 장소에 대표 이미지가 생기기 전에 llm-caption을 호출했습니다. |
401 | unauthorized | 토큰이 없거나, 유효하지 않거나, 취소되었습니다. |
402 | insufficient_credits | Nodaro Cloud 전용입니다. 계정 잔액으로 예약을 충당할 수 없습니다. |
403 | edition_required | Community Edition 또는 Business 에디션에서 360도 뷰 경로를 호출했습니다. |
404 | not_found | 내 장소 중에 해당 ID의 장소가 없습니다. |
409 | concurrent_modification | expectedUpdatedAt이 더 이상 일치하지 않습니다. 장소를 다시 읽고 병합한 뒤 다시 시도하세요. |
502 | — | 기준 설명을 작성할 수 없었습니다. 다시 시도하세요. |
자주 묻는 질문
Nodaro API에서 장소란 무엇인가요?
장소는 승인된 설정 샷, 글로 쓴 설명, 그리고 해 질 녘이나 비 오는 날의 같은 거리 같은 변형 이미지를 담은 저장된 공간입니다. 이미지 노드와 동영상 노드가 장소를 재사용하므로, 모든 샷에서 같은 공간이 똑같이 보입니다.
현재 설정 샷을 잃지 않고 새 설정 샷을 시도하려면 어떻게 하나요?
후보 여러 개를 연결하지 않고 생성하세요. 후보를 승인하기 전까지 현재 대표 이미지는 그대로 유지되며, GET /v1/locations/:id가 최근 후보를 최대 5개까지 previousCandidates에 나열합니다.
장소에 레퍼런스 사진을 추가하려면 동의가 필요한가요?
네. 레퍼런스 사진에는 사람이 나올 수 있으므로, 처음 사진을 추가할 때 ISO 타임스탬프인 piiConsentAt을 설정하세요. 이 값은 사진을 사용할 권리와 동의가 있음을 기록합니다.
장소의 360도 뷰를 만들 수 있나요?
Nodaro Cloud에서는 POST /v1/generate-surround-continuation이 이전 뷰에서 파노라마의 다음 뷰를 생성하고, 겹치는 절반을 픽셀 단위로 정확히 유지해 뷰가 서로 맞물리게 합니다. 뷰마다 이미지 생성 1회의 비용이 듭니다.
장소를 애니메이션으로 만드는 모델은 무엇인가요?
동영상 모델 6개입니다. 공급자 ID로 kling(기본값, Kling 2.6), kling-turbo, kling-3.0, wan-i2v, wan-2.7-i2v, seedance-2입니다. 클립마다 해당 모델의 이미지로 동영상 만들기 가격이 듭니다.
관련 문서
장소
장소 에셋
캐릭터
오브젝트
작업
최종 업데이트