# 生成

生成图片、视频版本、配音台词和文字，列出模型，保存做好的任务，以及运行画布面板的命令。

本页的每条命令都需要这台电脑已登录。没登录时，每条命令都会打印 `You are not signed in. Ask your agent to run minicut login.`，并以退出码 10 结束。每条命令都接受的选项和所有退出码，见[全局选项](/zh-cn/docs/cli/global-options)。

## minicut gen image

为你素材库里的一个角色、场景、道具或风格生成一张图片。

### Usage

```text Usage
minicut gen image OUT_FILE --prompt-file PROMPT_FILE --model MODEL --target KIND:ID [--project PROJECT] [--episode EPISODE] [--size W*H | --res RESOLUTION --aspect RATIO | --quality QUALITY] [--on {blank|PICTURE}] [--ref PICTURE ...] [--name NAME] [--json]
```

替换下面的内容：

- `OUT_FILE`：要生成的图片文件，例如 `lin-xia.png`。
- `PROMPT_FILE`：一个文本文件，里面是描述这张图片的文字。
- `MODEL`：来自 [minicut models](#minicut-models) 的图片模型名。
- `KIND:ID`：这张图片是给谁的。`KIND` 是 `character`、`location`、`prop` 或 `style`，`ID` 是这一项的 id。
- `PROJECT`：项目 id，或者项目文件夹的路径。
- `EPISODE`：集的 id，例如 `ep01`。
- `W*H`：以像素为单位的尺寸，例如 `1024*1536`。
- `RESOLUTION`、`RATIO`、`QUALITY`：模型在它的设置里列出的值。
- `PICTURE`：你电脑上的一个图片文件。
- `NAME`：资产卡片上人看的短名字。

### 说明

这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。它不等图片做完。它发出任务就返回，图片做好后由 [minicut jobs](#minicut-jobs) 把它存进你的素材库。

不加尺寸选项时，模型列出项目画面比例的话，就按项目的画面比例要图。模型没有列出时，命令会这么说，并请你加上 `--aspect`。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--prompt-file` | 文件 | 无 | 描述图片的文字。必须给 |
| `--model` | 名称 | 无 | 图片模型。必须给。没有默认模型 |
| `--target` | `KIND:ID` | 无 | 这张图片是给素材库里哪一项的。必须给 |
| `--project` | id 或文件夹 | 无 | 这一项所属的项目 |
| `--episode` | 集 id | 无 | 这张图片是给哪一集的 |
| `--size` | `W*H` | 项目的画面比例 | 以像素为单位的尺寸 |
| `--res` | 值 | 无 | 分辨率，和 `--aspect` 一起用 |
| `--aspect` | 比例 | 项目的画面比例 | 画面比例，例如 `9:16` |
| `--quality` | 值 | 无 | 模型提供的质量设置 |
| `--on` | `blank` 或图片 | 无 | 要编辑的图片。`blank` 从一张白图开始，需要 `--size` |
| `--ref` | 图片 | 无 | 参考图片。重复写可以加更多张 |
| `--name` | 文字 | 无 | 资产卡片上人看的名字 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 示例

#### 找一个图片模型

```bash Terminal
minicut models --kind image
```

#### 生成一张角色图片

```bash Terminal
minicut gen image lin-xia.png --prompt-file lin-xia.txt --model MODEL --target character:lin-xia --project rain-shop
```

把 `MODEL` 换成列表里的一个名字。你说好之前，它什么都不发。

### 输出

不加 `--yes` 时，命令说 `Nothing was sent.`，并打印你同意后要运行的那一行。加上 `--json` 时，它打印 `"state": "needs_yes"`，那一行放在 `next_step` 里。运行带 `--yes` 的那一行，它发出任务并打印任务 id。

### 另见

[minicut jobs](#minicut-jobs)、[minicut models](#minicut-models)、[minicut save](/zh-cn/docs/cli/projects#minicut-save)

## minicut gen video

在镜头自己的文件夹里，为这个镜头生成一个视频版本。

### Usage

```text Usage
minicut gen video CLIP_FOLDER [--again] [--reason REASON] [--name NAME] [--json]
```

替换下面的内容：

- `CLIP_FOLDER`：镜头的文件夹，例如 `episodes/ep01/clips/c03`。
- `REASON`：几个字，说明你为什么做这个版本。
- `NAME`：版本上人看的短名字。

### 说明

命令从镜头的文件夹里读它的设置、提示词和图片。这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。它发出任务就返回，由 [minicut jobs](#minicut-jobs) 把版本存进镜头的文件夹。

一个镜头同一时间只有一个任务。如果这个镜头已经有一个排队中或运行中的任务，命令会停下，并点名那个任务。先停掉它，或者加上 `--again`，在它旁边再做一个版本。

如果你在预览片环节通过之前就做视频版本，命令会打印一条警告并记下来，不会拒绝。见[检查和环节](/zh-cn/docs/cli/checks-and-loops)。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--again` | 开关 | 关 | 镜头已经有任务时，再做一个版本 |
| `--reason` | 文字 | 无 | 你为什么做这个版本 |
| `--name` | 文字 | 无 | 版本上人看的名字 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 示例

#### 为 3 号镜头做一个版本

```bash Terminal
minicut gen video episodes/ep01/clips/c03
```

### 输出

和 [minicut gen image](#minicut-gen-image) 一样：先是带 `--yes` 的那一行，你说好之后是任务 id。

### 错误

| 信息 | 怎么做 |
|---|---|
| `Shot <shot> already has job <job> <state>.` | 用 `minicut jobs --stop <job>` 停掉它，或者加上 `--again` |
| `no clip.json in <folder>` | 给出一集里某个镜头文件夹的路径 |

### 另见

[minicut jobs](#minicut-jobs)、[minicut check take](/zh-cn/docs/cli/checks-and-loops#minicut-check-take)

## minicut gen voice

为预览片生成一句台词的配音，存在镜头的文件夹里。

### Usage

```text Usage
minicut gen voice OUT_FILE --text-file TEXT_FILE --voice VOICE --target line:CLIP-N --project PROJECT [--episode EPISODE] [--model MODEL] [--json]
```

替换下面的内容：

- `OUT_FILE`：要生成的声音文件，例如 `l01.mp3`。
- `TEXT_FILE`：一个文本文件，里面是要念的文字。
- `VOICE`：音色名。`minicut voices` 列出一个配音模型接受的音色。
- `CLIP-N`：镜头和台词序号，例如 `c03-1`。
- `PROJECT`：项目 id，或者项目文件夹的路径。
- `EPISODE`：集的 id，例如 `ep01`。
- `MODEL`：来自 [minicut models](#minicut-models) 的配音模型名。

### 说明

这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。做好的台词存在镜头文件夹的 `lines/` 下面。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--text-file` | 文件 | 无 | 要念的文字。必须给 |
| `--voice` | 名称 | 无 | 音色。必须给 |
| `--target` | `line:CLIP-N` | 无 | 镜头和台词。必须给 |
| `--project` | id 或文件夹 | 无 | 项目。必须给 |
| `--episode` | 集 id | 无 | 镜头所在的集 |
| `--model` | 名称 | 项目的配音模型 | 配音模型 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 示例

#### 生成 3 号镜头的第 1 句台词

```bash Terminal
minicut gen voice l01.mp3 --text-file line.txt --voice VOICE --target line:c03-1 --project rain-shop --episode ep01
```

把 `VOICE` 换成一个音色名。

### 另见

[minicut gen batch](#minicut-gen-batch)、[minicut jobs](#minicut-jobs)

## minicut gen MODEL

按名字运行任何其他模型：音乐、声音分离、口型同步、画质放大、片段修复和 3D。

### Usage

```text Usage
minicut gen MODEL OUT_FILE [--prompt PROMPT | --prompt-file PROMPT_FILE] [--set SETTING=VALUE ...] [--in INPUT=FILE ...] --target KIND:ID [--project PROJECT] [--episode EPISODE] [--name NAME] [--json]
```

替换下面的内容：

- `MODEL`：来自 [minicut models](#minicut-models) 的模型名。
- `OUT_FILE`：要生成的文件。
- `PROMPT`：给模型的文字，放在引号里。
- `PROMPT_FILE`：一个文本文件，里面是给模型的文字。
- `SETTING=VALUE`：模型列出的一项设置，例如 `seconds=8`。重复写可以加更多。
- `INPUT=FILE`：模型接受的一个输入文件。重复写可以加更多。
- `KIND:ID`：这个文件是给谁的。`KIND` 是 `character`、`location`、`prop`、`style` 或 `canvas`。

### 说明

`minicut models MODEL` 列出一个模型接受的设置和输入。这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--prompt` | 文字 | 无 | 给模型的文字 |
| `--prompt-file` | 文件 | 无 | 里面是给模型的文字的文件 |
| `--set` | `SETTING=VALUE` | 模型自己的值 | 一项设置。重复写可以加更多 |
| `--in` | `INPUT=FILE` | 无 | 一个输入文件。重复写可以加更多 |
| `--target` | `KIND:ID` | 无 | 这个文件是给谁的。必须给 |
| `--project` | id 或文件夹 | 无 | 项目 |
| `--episode` | 集 id | 无 | 集 |
| `--name` | 文字 | 无 | 资产卡片上人看的名字 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 另见

[minicut models](#minicut-models)、[minicut jobs](#minicut-jobs)

## minicut gen batch

发出很多条 `gen` 命令，并且只为它们问一次。

### Usage

```text Usage
minicut gen batch LIST_FILE [--no-wait] [--json]
```

替换下面的内容：

- `LIST_FILE`：一个文本文件，一行一条 `gen` 命令，前面不写 `minicut gen`。

### 说明

每一行是 `image ...`、`voice ...` 或 `video CLIP_FOLDER`，带着它的选项。每一行里都不要写 `--yes`。这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。

带 `--yes` 的那一行一次发出一项。你的账号没有空闲名额时，它最多等 9 分钟来等一个名额，等的时候什么都不发。把同一行 `--yes` 再运行一次，也不会把任何一项发两次。一个镜头只能出现在一行里，除非那一行带 `--again`。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--no-wait` | 开关 | 关 | 没有空闲名额时马上停下，不等 |
| `--json` | 开关 | 关 | 打印 JSON |

### 示例

#### 一次做三张图片和两个版本

```text shots.txt
image lin-xia.png --prompt-file lin-xia.txt --model MODEL --target character:lin-xia --project rain-shop
image shop.png --prompt-file shop.txt --model MODEL --target location:shop --project rain-shop
image umbrella.png --prompt-file umbrella.txt --model MODEL --target prop:umbrella --project rain-shop
video episodes/ep01/clips/c01
video episodes/ep01/clips/c02
```

```bash Terminal
minicut gen batch shots.txt
```

### 输出

不加 `--yes` 时，每项一行，然后是 `Nothing was sent.` 和带 `--yes` 的那一行。运行带 `--yes` 的那一行，每项一个结果，然后是发出了多少项。

### 另见

[minicut jobs](#minicut-jobs)

## minicut jobs

列出你还没结束的任务，并把做好的存进你的项目。

### Usage

```text Usage
minicut jobs [--wait SECONDS] [--json]
minicut jobs --get JOB_ID [--json]
minicut jobs --stop JOB_ID [--json]
```

替换下面的内容：

- `SECONDS`：持续检查多久，单位是秒。
- `JOB_ID`：一个任务的 id，和 `minicut jobs` 列出的一样。

### 说明

`minicut gen` 和 `minicut board run` 发出任务，不等它们。`minicut jobs` 读取你账号上所有没结束的任务。它把每个做好的结果存进它所属的项目或画布面板，其余的按 id 列出。属于一个不在这台电脑上的项目的任务，会被列出并保持未结束。

`--wait` 一直检查，直到它能保存的任务都保存了，或者时间用完。`--get` 把一个任务保存到这里，即使它之前已经保存过。`--stop` 停掉一个任务。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--wait` | 秒 | 无 | 最多持续检查这么久 |
| `--get` | 任务 id | 无 | 把这个任务保存到这里 |
| `--stop` | 任务 id | 无 | 停掉这个任务 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 示例

#### 保存做好的任务，最多等 5 分钟

```bash Terminal
minicut jobs --wait 300
```

### 输出

每个任务一行：`job <id>: saved <files>`，或者它的状态，例如 `running`。失败的任务打印 `failed`、它的错误代码，以及写着原因的 `Why:` 一行。退出码：没有任务失败是 0，`--wait` 时间用完而还有任务在运行是 6，minicut.ai 没有回答是 7。失败的任务以它自己的退出码结束，见[全局选项](/zh-cn/docs/cli/global-options)。

### 另见

[minicut gen image](#minicut-gen-image)、[minicut shots](/zh-cn/docs/cli/projects#minicut-shots)

## minicut models

列出你能用的模型，或者显示某一个模型的设置。

### Usage

```text Usage
minicut models [--kind KIND] [--search WORDS] [--json]
minicut models MODEL [--json]
```

替换下面的内容：

- `KIND`：`image`、`video`、`voice`、`audio`、`music`、`sfx`、`lipsync`、`upscale`、`videofx`、`audiofx` 或 `mesh3d` 之一。
- `WORDS`：在模型名里搜索的词。
- `MODEL`：某一个模型的名字。

### 说明

这个列表来自 minicut.ai，并保存在这台电脑上。离线时，命令打印已保存的列表和它的时间。`--kind audio` 列出配音模型和所有音乐、音效模型。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--kind` | 类型 | 全部 | 只列出一类模型 |
| `--search` | 词 | 无 | 列出名字匹配的模型 |
| `--json` | 开关 | 关 | 打印 JSON |

### 示例

#### 列出视频模型

```bash Terminal
minicut models --kind video
```

### 输出

每个模型一行：它的名字、类型和状态。`minicut models MODEL` 打印这个模型的设置和它的页面。退出码：列出了模型是 0，minicut.ai 没有回答而打印了已保存的列表是 7。

### 另见

[minicut gen MODEL](#minicut-gen-model)

## minicut write

用写作模型为一个文本节点写文字。

### Usage

```text Usage
minicut write TEXT [--model MODEL] [--json]
```

替换下面的内容：

- `TEXT`：要写什么，放在引号里。
- `MODEL`：写作模型的名字。

### 说明

这条命令要用积分。它先显示要做什么，花之前先问你；`--yes` 跳过这个问题。不加 `--model` 时，它用默认的写作模型。账号没有的名字会被拒绝，并列出账号有的名字。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--model` | 名称 | 默认的写作模型 | 写作模型 |
| `--json` | 开关 | 关 | 打印一个带 `text` 和 `model` 的 JSON 对象 |

### 示例

#### 要一个一句话的标题

```bash Terminal
minicut write "A one-line title for a rainy night shop drama"
```

### 输出

你说好之后，命令打印文字。退出码 3 表示它在等你说好。

### 另见

[minicut board](#minicut-board)

## minicut board

新建、编辑、检查和运行一个画布面板，它是一个你可以编辑的文件。

### Usage

```text Usage
minicut board new [--project PROJECT --episode EPISODE] [--title TITLE] [--json]
minicut board check FILE [--json]
minicut board run FILE {--box BOX ... | --all} [--wait SECONDS] [--json]
minicut board add FILE --kind KIND [--id BOX] [--x N --y N] [--label LABEL] [--prompt PROMPT] [--model MODEL] [--parent BOX]
minicut board move FILE --box BOX --x N --y N
minicut board set FILE --box BOX [--label LABEL] [--prompt PROMPT] [--text TEXT] [--model MODEL] [--seconds N] [--file PATH] [--fields JSON]
minicut board {connect|disconnect} FILE --from BOX --to BOX
minicut board delete FILE --box BOX [--box BOX ...]
minicut board view FILE --view {workflow|storyboard}
minicut board retype FILE --box BOX --kind {character|location|prop}
```

替换下面的内容：

- `FILE`：画布面板文件。
- `PROJECT`、`EPISODE`：画布面板所属的项目和集。
- `TITLE`：画布面板的标题。
- `BOX`：画布面板上一个节点的 id。
- `KIND`：节点的类型，例如 `image`、`video` 或 `character`。
- `N`：一个数字：位置，或者以秒为单位的长度。
- `PATH`：画布面板文件夹里的一个文件。
- `JSON`：一次给出多个字段，用 JSON 写。

### 说明

画布面板文件里放着节点和它们之间的连线。每条编辑命令修改文件的方式，和 MiniCut 应用里打开的 **画布** 标签页一样，打开的标签页会自己重新绘制。

- `new` 新建一个空的画布面板。加上 `--project` 和 `--episode`，它放在这一集的 `canvas` 文件夹里。不加，它在你的 MiniCut 主文件夹里有自己的文件夹。
- `check` 读取画布面板，找问题。它会找出 id 相同的节点、连到不存在节点的连线、不允许的连线，以及缺失的上传文件。
- `run` 生成列出的节点。它要用积分。它先显示要做什么，所有节点只问一次；`--yes` 跳过这个问题。被拒绝的节点把原因留在画布面板上，其他节点照样运行。`--wait` 把结果存进画布面板的文件夹。

### 选项

| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| `--project` | id 或文件夹 | 无 | `new`：画布面板所属的项目 |
| `--episode` | 集 id | 无 | `new`：画布面板所属的集 |
| `--title` | 文字 | 无 | `new`：画布面板的标题 |
| `--box` | 节点 id | 无 | 要修改或运行的节点。在 `run` 和 `delete` 里重复写可以加更多 |
| `--all` | 开关 | 关 | `run`：每个能运行的节点 |
| `--wait` | 秒 | 无 | `run`：等这么久并保存结果 |
| `--kind` | 类型 | 无 | `add`、`retype`：节点的类型 |
| `--id` | 节点 id | 一个新 id | `add`：新节点的 id |
| `--x`、`--y` | 数字 | 无 | `add`、`move`：节点的位置 |
| `--label` | 文字 | 无 | `add`、`set`：节点的标签 |
| `--prompt` | 文字 | 无 | `add`、`set`：给节点的模型的文字 |
| `--text` | 文字 | 无 | `set`：文本节点里的文字 |
| `--model` | 名称 | 无 | `add`、`set`：节点的模型 |
| `--seconds` | 数字 | 无 | `set`：节点的长度 |
| `--file` | 路径 | 无 | `set`：画布面板文件夹里、让节点展示的文件 |
| `--fields` | JSON | 无 | `set`：一次设置多个字段 |
| `--parent` | 节点 id | 无 | `add`：把新节点放进去的分组节点 |
| `--from`、`--to` | 节点 id | 无 | `connect`、`disconnect`：连线的两端 |
| `--view` | `workflow` 或 `storyboard` | 无 | `view`：画布面板怎么排布 |
| `--json` | 开关 | 关 | 打印一个 JSON 对象 |

### 示例

#### 为第 1 集建一个画布面板

```bash Terminal
minicut board new --project rain-shop --episode ep01 --title "Opening"
```

#### 生成画布面板上的每个节点

```bash Terminal
minicut board run episodes/ep01/canvas/opening.board.json --all
```

### 输出

`check` 打印 `Board ok:` 和节点与连线的数量，或者每个问题一行。每条编辑命令打印 `Board <command>: ok` 和画布面板新的修订号，`add` 之后再加上新节点的 id。

| 退出码 | 含义 |
|---|---|
| 0 | 成功了 |
| 1 | 画布面板有问题，或者编辑被拒绝 |
| 2 | 缺少某个选项 |
| 3 | `run` 在等你说好 |

### 另见

[minicut jobs](#minicut-jobs)、[minicut write](#minicut-write)
