# 팔레트와 무드보드

> 내 색상 팔레트와 무드보드를 한 번 저장하고, 모든 이미지 생성 실행을 내 색상, 내 설명, 내 스타일 레퍼런스 이미지로 이끄세요.

Source: https://nodaro.ai/ko/docs/guides/palettes-and-moodboards

**팔레트**는 내 색상 모음이고, **무드보드**는 설명이 붙은 내 레퍼런스 이미지 모음입니다. 한 번 저장해 두면 어떤 [이미지 생성](https://nodaro.ai/docs/nodes/image/generate-image) 실행이든 그중 하나로 이끌 수 있습니다. 기본 제공 컬러 룩과 스타일처럼 작동하지만, 내 색상과 내 이미지를 씁니다.

팔레트와 무드보드는 REST API, SDK, CLI, 또는 MCP로 연결된 AI 어시스턴트로 만듭니다. 편집기에는 이를 만들거나 편집하는 화면이 없습니다. 모든 에디션에서 작동합니다.

## 각각에 담기는 것
| | 팔레트 | 무드보드 |
| --- | --- | --- |
| **담기는 것** | 이름, `#RRGGBB` 형식의 색상 2~12개, 그리고 최대 500자의 선택적 메모 | 이름, 최대 1,000자의 선택적 설명, 그리고 각각 선택적 캡션이 붙는 이미지 링크 1~12개 |
| **실행이 쓰는 방법** | `direction.colorLook: "palette:<id>"` | `direction.style: "moodboard:<id>"` |
| **실행이 받는 것** | 프롬프트 속 모든 색상, 일상적인 색 이름과 헥스 코드로 | 프롬프트 속 설명, 그리고 스타일 레퍼런스로 쓰이는 이미지 |

둘 다 나만의 것입니다. 다른 사람의 id는 존재하지 않는 id와 똑같이 `404`로 응답합니다.

## 팔레트가 이미지를 이끄는 방법
실행은 팔레트의 각 색상을 내가 정한 순서대로 `color palette: <name> <hex>, …` 형식으로 프롬프트에 적습니다. 각 색상에는 가장 가까운 일상적인 색 이름과 정확한 헥스 코드가 붙습니다. 모델은 이름이 붙은 색상을 더 잘 따르기 때문입니다. 팔레트의 메모는 나를 위한 것이며 프롬프트에 추가되지 않습니다.

이 문구는 기본 제공 컬러 룩이 들어갈 자리, 즉 프롬프트 끝의 스타일 부분에 들어갑니다. 프롬프트가 모델의 한도를 넘으면 이 문구가 가장 먼저 제거됩니다. 내 프롬프트와 내 레퍼런스는 절대 잘리지 않습니다.

## 무드보드가 이미지를 이끄는 방법
무드보드는 내가 쓴 설명을 그대로 프롬프트에 더합니다. 설명이 없는 무드보드는 이미지만 보냅니다.

이미지는 레퍼런스 이미지로 모델에 전송됩니다. 각 이미지에는 피사체나 구도가 아니라 색상, 빛, 질감, 분위기를 가져오라고 모델에 알려 주는 짧은 문장이 붙습니다. 캡션이 있으면 캡션도 추가됩니다.

- **내 레퍼런스가 먼저입니다.** 내가 직접 보내는 이미지와 연결된 캐릭터는 자기 자리를 유지합니다. 무드보드의 이미지는 그 뒤에 남은 레퍼런스 자리만 채웁니다.
- **모델이 받는 수를 넘지 않습니다.** 각 모델은 정해진 수의 레퍼런스 이미지를 받습니다. 들어가지 못한 이미지는 무드보드의 순서대로 전송되지 않습니다. 레퍼런스 이미지를 받지 않는 모델은 이미지를 받지 않지만, 설명은 그대로 들어갑니다.
- **화면 비율 자동**은 실행이 보내는 첫 번째 이미지의 형태를 유지합니다. 내 이미지를 보내지 않으면 무드보드의 첫 번째 이미지가 그 이미지입니다.

### 이미지가 전송되지 않을 때의 경고
일부 이미지가 들어가지 못하면 실행은 그대로 진행되고, 응답에는 `moodboard_images_not_sent` 코드의 경고가 담깁니다. 메시지는 몇 개의 이미지가 전송되지 않았는지와 그 이유를 알려 줍니다. 작업에도 같은 경고가 남습니다. 예:

```text
5 of the 12 images of moodboard "Nordic calm" were not sent as style references: the model (nano-banana-pro) takes at most 8 reference images, and your own references come first.
```

## 제한
- **복사본이 아니라 이미지 링크입니다.** 각 이미지는 최대 2,048자의 공개 `http` 또는 `https` 링크이며, 캡션은 최대 200자입니다. 사설 네트워크로 가는 링크는 거부됩니다. 내가 삭제한 이미지나 내 요금제의 미디어 보관 기간이 지나 삭제된 이미지는 무드보드에서도 사라집니다.
- **이미지 생성 전용입니다.** 팔레트나 무드보드를 지정한 동영상 요청은 `400`으로 응답합니다.
- **같은 요청에서 프리셋과 함께 쓸 수 없습니다.** 프리셋(`presetId`)을 적용하는 호출은 팔레트나 무드보드를 쓸 수 없으며 `400`으로 응답합니다. direction에 팔레트나 무드보드가 저장된 프리셋도 마찬가지입니다.
- **최신 버전이 쓰입니다.** 실행은 복사본이 아니라 id를 기록합니다. 팔레트를 바꾸면 다음 실행은 새 색상을 씁니다. 팔레트를 삭제하면 여전히 그 팔레트를 지정한 실행은 `404`로 응답합니다.
- **오류는 청구 전에 발생합니다.** 형식이 잘못된 id는 `400`으로, 내 것이 아니거나 더 이상 존재하지 않는 id는 `404`로 응답합니다. 알 수 없는 기본 제공 id는 건너뛰지만, 내 팔레트나 무드보드가 아무 말 없이 무시되는 일은 없습니다.

## 비용
팔레트와 무드보드를 저장하고, 목록을 보고, 바꾸는 것은 무료입니다. 무드보드의 이미지는 레퍼런스이므로, 실행은 레퍼런스가 그만큼 있는 다른 실행과 똑같이 가격이 매겨집니다. 레퍼런스가 있는 텍스트-이미지 모델은 이미지-이미지 버전으로 실행되며, 레퍼런스 이미지당 가격이 매겨지는 모델은 레퍼런스 수를 셉니다. 실행 전에 확인하는 가격은 실제로 전송되는 이미지만 셉니다.

## 워크플로에서
direction에 팔레트나 무드보드를 지정한 이미지 생성 노드는 앱 실행, 일정, Webhook을 포함해 워크플로가 실행될 때마다 확인됩니다. 이런 노드는 코드나 AI 어시스턴트가 워크플로에 작성합니다.

- **최종 보기에는 안내가 표시됩니다.** 팔레트나 무드보드의 문구는 실행이 시작될 때 추가되므로, 그 문구가 들어갈 자리에 안내가 표시됩니다.
- **노드가 아니라 워크플로를 실행하세요.** 노드 자체의 실행 버튼은 이런 노드를 거부하며, 아무것도 전송되거나 청구되지 않습니다. 메시지는 “사용하려면 워크플로를 실행하세요. 크레딧은 차감되지 않았습니다.”로 끝납니다.
- **게시된 앱에서는** 워크플로에 저장된 팔레트나 무드보드를 앱 제작자의 것 중에서 찾습니다. 앱을 실행하는 사람이 지정한 팔레트나 무드보드는 그 사람의 것 중에서 찾으므로, 제작자의 다른 팔레트나 무드보드를 지정할 수 없습니다.
- **찾을 수 없는 팔레트나 무드보드**는 아무것도 만들어지거나 청구되기 전에 그 노드를 실패시킵니다.

## 코드에서 만들고 쓰기
**REST**

`/v1/palettes`와 `/v1/moodboards`에 대한 `GET`, `POST`, `PATCH`, `DELETE`로 목록을 보고, 만들고, 바꾸고, 삭제합니다. OAuth 앱은 읽기에 `assets:read`, 쓰기에 `assets:write`가 필요합니다. 쓰기는 1분에 30회로 제한됩니다. 그런 다음 `POST /v1/generate-image`의 `direction`에 id를 넘기세요. [내 팔레트와 무드보드](https://nodaro.ai/docs/developers/api/nodes#palettes-and-moodboards)를 참조하세요.

**SDK**

`client.palettes`와 `client.moodboards`로 관리합니다. `nodes.run("generate-image", …)`에서 `direction: { colorLook: paletteDirectionId(id), style: moodboardDirectionId(id) }`를 넘기세요. 응답은 `warnings`의 타입을 제공합니다. [피커, 프리셋, 프롬프트](https://nodaro.ai/docs/developers/sdk/pickers-and-prompts)와 [노드 실행](https://nodaro.ai/docs/developers/sdk/nodes)을 참조하세요.

**CLI**

`nodaro palettes`와 `nodaro moodboards`로 목록을 보고, 만들고, 바꾸고, 삭제합니다. [명령어](https://nodaro.ai/docs/developers/cli/commands)를 참조하세요.

**MCP**

AI 어시스턴트는 `list_palettes`, `save_palette`, `list_moodboards`, `save_moodboard`를 씁니다. `generate_image` 도구는 `palette_id`와 `moodboard_id`를 받고 경고를 그대로 전달합니다. MCP에는 삭제 도구가 없습니다. MCP [이미지](https://nodaro.ai/docs/mcp/tools/image) 도구를 참조하세요.

## 자주 묻는 질문

### 팔레트와 무드보드는 무엇이 다른가요?

팔레트는 이름이 붙은 2~12개의 색상 모음으로, 실행이 프롬프트에 그 색상을 적습니다. 무드보드는 설명과 1~12개의 이미지 링크로, 실행이 설명을 프롬프트에 더하고 이미지를 스타일 레퍼런스로 보냅니다.

### 팔레트나 무드보드는 어떻게 만드나요?

REST API, SDK, CLI, 또는 MCP로 연결된 AI 어시스턴트로 만듭니다. 편집기에는 이를 만드는 화면이 없습니다.

### 무드보드 이미지에 추가 비용이 드나요?

이미지는 레퍼런스로 전송되므로, 실행은 레퍼런스가 그만큼 있는 다른 실행과 똑같이 가격이 매겨집니다. 실행 전에 확인하는 가격은 실제로 전송되는 이미지만 셉니다.

### 무드보드의 이미지가 모델이 받는 수보다 많으면 어떻게 되나요?

내 레퍼런스가 먼저 들어가고, 남은 자리를 무드보드의 이미지가 채웁니다. 들어가지 못한 이미지는 전송되지 않으며, 응답에는 몇 개가 전송되지 않았는지 알려 주는 경고가 담깁니다.

### 다른 사람이 내 팔레트를 쓸 수 있나요?

아니요. 팔레트와 무드보드는 나만의 것입니다. 다른 사람의 id는 존재하지 않는 id와 똑같이 404로 응답합니다. 게시된 앱은 무드보드가 워크플로에 저장되어 있으면 앱 제작자의 무드보드를 쓸 수 있습니다.
