# node

画布节点命令。`node create` 只新建；**`node <名>` 默认子命令操作已有节点**（改提示词/改名/改参数/四向边/生成）；`list` 列出；`delete` 删除；`run` 单独生成。

## 新建：node create

```powershell
"{baseDir}/bin/drowup.exe" node create 卖点 -t text --prompt "15分钟出冰" -p PROJECT_UUID --json
"{baseDir}/bin/drowup.exe" node create 主图 -t image --prompt "白底主图" -p PROJECT_UUID --left 卖点 --run --json
"{baseDir}/bin/drowup.exe" node create 主图 -t image -s <modelKey> --prompt "白底主图" -p PROJECT_UUID --run --json
"{baseDir}/bin/drowup.exe" node create 素材 -t mediaUpload --asset-url https://cdn.example/ref.png -p PROJECT_UUID --json
```

| 旗标 | 默认 | 说明 |
| --- | --- | --- |
| `<名>` | 必填 | 节点展示名（写入 `data.label`）。一次只建一个节点 |
| `-t/--type` | 必填 | `text\|script\|image\|video\|audio\|style\|mediaUpload\|group`。不要发明 `projects get` 里没见过的类型 |
| `-p/--project` | 目录绑定 | 画布 UUID。`project use` 绑定后可省略；或管道传入上一命令 JSON |
| `--prompt` | 空 | 提示词。text/style 写入 `data.content`，其余写入 `data.prompt` |
| `-s/--model` | isDefault | 模型 `modelKey`（或目录 id）。text/script 查 chat 模型目录，image/video/audio 查同名目录；CLI 反查目录写 `data.model+modelId`；`modelId` 必须 >0，不能是 0；反查不到有效 id 直接报错 |
| `--left` | 空 | 上游节点（id 或展示名），可重复。按网页边规则选边类型（promptOrder/imageOrder/imageRole） |
| `-g/--group` | 目录绑定组 | 建完自动挂进分组（更新分组 childNodeIds）。缺省用 `group use` 绑定的默认组 |
| `-x/-y` | 自动排布 | 画布坐标（像素）。**不传会自动排布**：有上游就落在上游右侧（同一上游的第 N 个节点按 N×100 纵向错开）；没有上游放最右节点右侧——一次建 8 张也不会堆叠 |
| `--run` | 否 | 新建后立即生成。先等节点 batch ACK，再重读画布，用最新 graphVersion 调 `/runs`，请求里带 `model`+`modelId`（与网页点生成对齐）。不要为了避开计价报错而拆成两步 |

错误：缺 `-t` 报「-t/--type 缺少值」；缺 `-p` 且无绑定/管道报「-p/--project 缺少值」并指路 `project use`；模型不存在报「找不到模型…可用：…」；`--left` 找不到报「找不到节点：X」；同名多个报「有 N 个同名节点…改用 id」。

## 改已有节点：node <名>（默认子命令）

```powershell
"{baseDir}/bin/drowup.exe" node 主图 -p P --prompt "新提示" --name 主图v2 --json
"{baseDir}/bin/drowup.exe" node 主图 -p P -s model=可灵O1 -s count=2 --json
"{baseDir}/bin/drowup.exe" node 主图 -p P --left 卖点 --right 成片 --left-rm 旧卖点 --run --json
```

| 旗标 | 默认 | 说明 |
| --- | --- | --- |
| `<名>` | 必填 | 目标节点 id 或展示名；精确匹配，id 优先 |
| `--prompt` | 空 | 覆盖提示词（text/style 写 content，其余写 prompt） |
| `--name` | 空 | 改展示名（`data.label`）。注意：**节点的参数不叫 name**，改参数用 `-s/-u` |
| `-s/--set k=v` | 空 | 改生成器参数（写 `data` 顶层，可重复）。值支持 `true/false/数字/JSON/字符串`。`model` 键特殊：反查目录自动写 `model+modelId` |
| `-u/--update k=v` | 空 | 同 `-s`（我们的节点没有独立 params 层，两者等价，供习惯两种写法的 Agent 用） |
| `--left <节点>` | 空 | 入边确保：无则建边，有则不变 |
| `--left-add <节点>` | 空 | 入边追加（可重复，每个都是独立上游） |
| `--left-rm <节点>` | 空 | 删除对应入边 |
| `--right/--right-add/--right-rm` | 空 | 出边，语义同 left 三件 |
| `-r/--run` | 否 | 改完立即生成并阻塞 |

错误：节点没模型或 `modelId` 是 0 就 `--run` 会报「节点未指定模型」并指路；`-s` 缺 `=` 报「-s/-u 参数必须是 key=value」；`model=不存在` 报「找不到模型」；改边的目标不存在报「找不到节点：X」。

## 列出：node list

```powershell
"{baseDir}/bin/drowup.exe" node list -p PROJECT_UUID --json
"{baseDir}/bin/drowup.exe" node list -p PROJECT_UUID -g 套图 --json
```

| 旗标 | 默认 | 说明 |
| --- | --- | --- |
| `-p/--project` | 目录绑定 | 画布 UUID |
| `-g/--group` | 空 | 只列该分组 childNodeIds 内的节点 |

返回节点完整 `id/type/data` 与边 `source/target/type`。

## 删除：node delete · 生成：node run

```powershell
"{baseDir}/bin/drowup.exe" node delete 主图 -p PROJECT_UUID --json
"{baseDir}/bin/drowup.exe" node run 主图 -p PROJECT_UUID --json
```

`delete` 删除节点及其全部连线。`run` 触发生成；节点没 model/modelId、或 `modelId` 是 0 时直接报「节点未指定模型」，不发请求。

`node create --run` 与单独 `node run` 走同一条 `/runs` 组装：带 `model`/`modelId`，并用落库后的 graphVersion。若旧版 exe 一步式报「尚未配置积分价格」、两步式却成功，先确认跑的是本包 `{baseDir}/bin/drowup.exe`（需重新打包 skill），或临时 `node run <nodeId>`。节点 `modelId>0` 仍报没配价，才是真的套餐定价缺失。

## 下载产物

`download -n <节点名|id>` 见 `references/canvas.md`。

## 禁止

`session create` / `session graph` / `session run` / `models list` 已不存在；建/删/复制画布在网页。
