
arkcli-gen
火山方舟 Ark 图片/视频生成与编辑入口,包括对已交付媒体的后续修改和保留规格验收。支持 profile 默认资源与临时 API Key/Base URL/Endpoint;显式 Endpoint 不受当前 plan profile 误导。图片同步返回,视频异步轮询。
- Installs
- 48
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/volcengine/ark-cli --skill arkcli-gen- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads arkcli-gen automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
arkcli 生成工作流(+gen)
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../arkcli-shared/SKILL.md(认证闸门、模型查找回退、共享安全规则)。
CRITICAL — 真实生成是工作流,不是猜一条命令:按 Step 1 → Step 2 → 必要时 Step 2.5 → Step 3 执行。用户只要求 --dry-run 时例外:全程本地,不先跑在线 Resources / Models / Usage 准入;在线未知项保留 unresolved。执行前务必读 references/arkcli-gen.md。
CRITICAL — 用户显式给出 API Key / Base URL / Endpoint 时,MUST 先读 ../arkcli-shared/references/execution-context.md。显式 Endpoint 的权威元数据优先于当前 profile。
火山额外约束:不要因为 active profile 是 Agent/Coding Plan 就把用户给出的 Endpoint 当套餐模型调用。
Agent 快速执行顺序
生成前先确认内容意图
只说“我想使用某模型”而没有画面、素材或允许自拟演示内容时,先交付该模型的已核实能力与接入方式,再请用户补充要生成的内容;此时不提交付费任务,也不新建 Endpoint、改默认资源或切换 Key 来证明模型可用。不能把示例提示词当成用户要求。
用户已给出创作目标,或明确授权自拟演示内容时,才按该目标与有效默认值进入生成工作流;不用重复询问已知内容。已有可用资源优先复用,确需创建/激活或改默认的动作另依对应 Skill 和宿主授权,模型选择并不自动授权这些变更。只查能力/接入方式保持只读;只要 Preview 继续遵守纯本地边界。
先把用户要求拆成可验收项,再按资源、能力、整批预算、执行、成品检查推进。执行前读取
references/intent-and-validation.md:它约定不完整意图的默认值、
参数组合、凭证错误分流和成品验收。参数表是候选能力,不代表每个模型都支持。
用户已明确要图片或视频时,生成命令显式带 --modality image|video;不要让名称解析覆盖用户意图。
只使用用户本轮提供或明确授权复用的素材;不得从历史目录、旧任务或相似文件名擅自加入额外参考图/视频。
前置缺口一次汇报
复用本轮已有的资源、模型能力/开通状态与适用额度只读结果,在一条回复中列出
已证实缺口、仍未知项及对应下一步,避免每轮只暴露一个缺口。查询本身失败时保留
原错误;凭证失败按共享协议停止后续在线查询,不为凑齐总检越过身份或权限边界。
--dry-run 仅是本地 Preview,不能验证线上余额或保证可开通;usage balance 的
资源额度不是现金/代金券余额。没有权威返回的金额、资格或费用主体保持未知,不编造充值金额。
后续编辑:继承规格,重新验收新文件
“去掉领带”“换背景,其他不变”等后续修改仍走本 Skill。执行前从对话列出本轮修改项、继续保留项;用户最新指令替换旧要求,不要求重复提供已知规格。编辑输入即使已达标,也不能证明新输出保持了这些属性。
交付前以最终文件路径与 SHA256关联逐项验收证据:格式、尺寸、DPI、大小、精确颜色及人物/内容分别检查。生成、编辑、缩放、压缩或重编码产生新文件后,重新验证全部仍适用的要求;只有文件 hash 相同才可复用该文件已有结果。验收后又处理文件的,检查新文件后再交付。
缺证据的属性写“未验”,有偏差写“未达标”,不能把原始要求或上轮结论写成本轮实测,也不能笼统声称“其余完全保持”。视觉准入、区域确认和已授权的费用范围仍按下文执行。
图片尺寸与方向
显式 --size 的像素格式为宽×高。用户要求竖版且目标尺寸低于模型最小像素数时,先按实际 supported_params/服务端错误选满足阈值和纵横比的竖版画布,再同比例缩小;例如实际要求至少 3,686,400 像素,4:5 竖图可用 1728x2160,再缩到 960x1200。该例不是所有模型的固定阈值,仍需核对本轮范围。
不能生成 2160x1728 横图后把整个人像旋转 90 度冒充正常竖版。用户没要求旋转、且没有真实 EXIF 方向纠正依据时,尺寸调整仅缩放/经用户授权的裁切,不旋转人物。文件格式、实际宽高、字节数与 DPI 元数据分别验收;DPI 不等于像素数。人物、姿态、领带和背景保持必须经已准入的视觉入口观察,否则只报告结构检查通过及视觉语义未验。
用户要求精确 HEX/RGB 色值时,提示词写了色值、生成成功或视觉上颜色相近都不是数值达标证据。对最终编码并将要交付的文件检查颜色空间/ICC;仅在目标背景区域已由获准视觉入口或可靠区域标注确认后,用图像库读取实际像素,记录区域/采样位置、目标值和差异。渐变的起始色与整片渐变分开核验,少量采样吻合不能证明全区域一致。JPEG 压缩或色彩转换可能改变数值,但不能自行放宽用户容差;区域或颜色空间未确认时保持未验,不猜坐标。实际不符时在授权范围继续修正并复验,或明确哪些规格未达标;不得把用户目标值抄成实测值,也不得擅改格式、覆盖人物或移除宿主水印。
成品验收前:宿主视觉输入准入
生成模型能出图,不代表驱动当前 Agent 的宿主模型能看图。Read 工具描述说支持图片, 也不是当前宿主模型的视觉能力证明。 当前会话没有可靠的视觉能力声明或已验证的兼容性时, 按“未准入”处理:不要原生 Read 图片、视频或抽出的帧,也不要用成品试探能否读取。 本 Skill、参考说明和 JSON 等文本仍可正常 Read。
- 已有兼容且已授权的视觉工具,或同一主体下已准入、收费路径不变的视觉模型时, 按对应 Chat/Understand Skill 分析实际媒体,只把文字结果返回宿主;不自动换宿主、Profile 或 Key。
- 没有这样的入口时,完成文件/解码/尺寸/时长等结构检查并交付已有成品,明确“视觉语义未验”; 不声称看过或完全符合。不要为补验收擅自增加未授权的收费调用。
- 生成成功后宿主读图报错,是验收/交付失败;保留成品,不重新提交生成或轮转业务 Key。
反唤起信号
- 描述、分析现有图像而不是生成/编辑 →
arkcli-chat或有固定产出形态的arkcli-understand。 - 只查资源、能力、用量 → 对应只读 Skill,不提交生成任务。
为什么是工作流(核心,先理解再执行)
用户说"生成一个视频/一张图",本质是至少三件独立的事,必须按序;批量或多阶段任务还要先确认整批可完成:
① 本次资源从哪里来 ── 用户显式 Endpoint 优先;否则看当前 profile
② 该模型支持哪些参数 ── 不查就传参 = 瞎猜 = 被校验拒/被后端拒
②.5 多候选/多阶段额度与任务数 ── 先算完整批次,额度已耗尽就不启动半批任务
③ 按可用参数真去生成 ── 每个请求只提交一次并立即保存 task_id
把这三步压成"直接 +gen 猜一条命令",正是失败之源:模型名形态不对会 404,参数模型不支持会被拒。
模态解析硬契约
+gen 的生产调用按以下固定优先级解析能力:
explicit --modality > output_modalities > task types > unknown
- 直接传版本化模型 ID 时,读取 ArkModels 返回的
output_modalities;缺失时再读取 FoundationModel 的task_types/filter_task_types。 - 传
ep-*时,先读取 Endpoint 的ModelReference.FoundationModel(name, version),再精确匹配同版本模型的上述结构化元数据。 - 模型名与 DisplayName 只用于定位模型,不参与模态判断。不要从
seedream、seedance或任何国内/海外品牌前缀推断 image/video。 - 结构化元数据缺失或互相冲突时返回
unknown,提示用户显式传--modality image|video;禁止静默猜测。 +gen --dry-run是纯本地 Client Preview:不读取 Endpoint/模型元数据、不调用 生成 API,也不下载或打开文件。显式--modality最可靠;已知seedream/seedance模型名可本地判断,其他模型或 Endpoint 必须显式传--modality image|video。在线才能补齐的执行上下文会以unresolved和fidelity=partial明示。- 一次预览请求只执行一次
arkcli +gen ... --dry-run。成功返回preview.v1后立即交付并停止;直接从该响应解释steps、unresolved、fidelity和显式 参数。禁止随后再跑+gen --help、删改 flag 重试、或重复同一 dry-run 来“确认” 已经成功的预览。
适用场景
- "生成一张图" / "文生图" / "画一个 X"
- "生成一个视频" / "文生视频"
- 图生图 / image-edit / 加参考图;图生视频(I2V);参考视频(R2V);参考音频
- "用这张图当首帧生成视频" / "保持这个参考视频的运动"
视频输入角色速查(首帧 / 首尾帧 / 多参考)
Seedance 2.x 对 content[].role 严格校验,不要靠“第 1 张图默认首帧”猜模式。先按用户意图选一种:
| 意图 | 写法 |
|---|---|
| 单图首帧 | --input first_frame:@start.jpg |
| 首帧 + 尾帧 | --input first_frame:@start.jpg --input last_frame:@end.jpg |
| 多参考(人物/服装/场景/风格) | --input reference_image:@ref1.jpg --input reference_image:@ref2.jpg |
| 参考视频 / 续写 | --input reference_video:@ref.mp4,可再加 --input reference_image:@person.jpg |
- Agent 生成命令优先用完整角色名
first_frame:/last_frame:/reference_image:/reference_video:/reference_audio:;first:/last:/ref:是别名,不要混用,也不要依赖服务端按位置推断。 - 带视频/音频的请求里每个素材都必须带 role;图片缺 role 会 400(
role must be specified for image contents)。 - Seedance 2.0 实测首帧/首尾帧模式与多参考模式互斥;不要同时传
first_frame和reference_image,除非精确模型能力明确允许。 - 多图但用户没说哪张是首帧/尾帧时,先确认角色再提交;不要默认第一张就是首帧。
- 用户说“参考这张图”默认
reference_image:;只有“从这张图开始 / 作为首帧”才用first_frame:。不要提交付费任务反复试角色,先读能力,必要时只做本地--dry-run。
工作流总览
用户意图: "生成 X"
│
▼ Step 1【强制】解析本次资源
│ 用户给 Endpoint → arkcli resources resolve <ep-id>
│ 未给 Endpoint → arkcli resources list --modality image|video
│
│ 当前 profile 可用资源:
│ platform → 列 EP (ep-xxx) ┐
│ agent-plan → 列视觉模型名 ├─ 选一个,记为 $MODEL
│ coding-plan → 列 EP (借道 platform) ┘
│
▼ Step 2【强制】查可用参数 ──► models get(EP 用 resolve 得到的绑定模型查能力)
│ 模型名 + 有 sp → **只能**用列出的参数,取值落 min/max/enum 内
│ 模型名 + sp 空(未配置或当前不可解析) → +gen 自动套 modality 兜底默认(video 720p/5s; image 不填 size)
│ EP(ep-xxx) → 可解析绑定则查精确版本;不可解析则说明未知,不猜支持
│
▼ Step 2.5【批量/多阶段】额度预检 ──► plan/free-quota 快照;记录完整 create 数
│
▼ Step 3 据可用参数生成 ──► arkcli +gen --model $MODEL [Step2 允许的参数] "prompt"
│
▼ Step 4【结果处理】
视频 = 异步:返回 task_id + status=queued(**不是失败!**) → arkcli gen get <task_id> 轮询;轮到 succeeded 自动下载到本地(local_path);要同步阻塞加 --wait(有上限,默认 10m,长视频配 --timeout 30m)
图片 = 同步:直接返回 output_url + local_path
Step 1【强制】解析显式 Endpoint,或列出 profile 可用资源
用户已经显式给出 Endpoint 时,不要先用 active profile 的模型池覆盖它:
arkcli resources resolve "$ENDPOINT" --format json
- 读取
generation_modality决定 image/video;image_or_video或unknown时再结合 用户意图,必要时显式补--modality。 - 读取
resource_region;Endpoint + 显式 API Key 且未给 Base URL 时,CLI 用该 region 派生 platform Base URL。 - 不按 Endpoint ID 或绑定模型名称里的
seedream/seedance子串猜模态。 - 显式 Endpoint + API Key 是临时调用,不切换 active profile,也不把值写回。
- 用户显式提供的
ep-*是本次调用资源;不要忽略它后改用套餐 default,也不要把resources resolve的位置参数误传成模型名。若该 Endpoint 已在本轮被用户授权用于 后付费兜底,套餐额度不足时可回到这里重新做能力检查,但仍不修改 Profile/default。
用户未给显式 Endpoint 时,再按 profile 列资源:
# 按目标模态列;输出 items[].id 就是可作 --model 的候选
arkcli resources list --modality video # 或 image
- 平台差异(resources list 已自动按 profile 分流,你只管读 items):
platformprofile → items 是推理接入点 EP(ep-xxx),每个 EP 内部绑定一个模型agent-plan/agent-plan-team→ items 是套餐视觉模型名;使用对应个人/团队席位 Keycoding-plan/coding-plan-team→ 无套餐内视觉模型;生成使用 platform Endpoint + 后付费 API Key。团队席位 Key 不能用于这个后付费请求
is_default: true标记的是该模态当前默认;用户没指定时优先用它- 再核对
invocable/required_overrides/data_plane/credential_kind。默认或可见不等于当前凭证可调用;不要为生成自动切 Profile、轮转 Key 或修改 default。 - 选定一个 id,记为
$MODEL,贯穿 Step 2/3 - 用户已明确给了模型名时,可用
resources list核对当前 lane 的兼容性;用户明确给了 EP 时只先resources resolve,不要再用列表/default 覆盖它。若模型与默认不同,按../arkcli-shared/references/profile-defaults.md"Default 漂移检测与 promote nudge" 处理
Step 2【强制】查 $MODEL 的可用参数
arkcli models get "$MODEL" --transform supported_params
$MODEL是模型名:拿到该模型的supported_params清单(每项含name / type / support / min / max / enum / required / default / description)。-
MUST:Step 3 只能使用这里
support=true的参数,且取值必须落在min/max/enum范围内。 不在清单里的参数(或support=false)传了会被+gen拒绝。 -
MUST:
description必须逐条读,不能当注释跳过。 实测 74 个参数条目里description填充率 100%,而min/max只有 9%、enum只有 19% —— 结构化字段看着「有」的多数是空的,唯一填满的那个才是条件约束的载体。出现「仅允许 / 仅支持 / 必须 / 不支持 / 建议 / 否则」时,它是硬约束,不是提示。四类典型: -
- 值域 ——
duration的min=4 max=30只给了区间,description才补上「取值为 4-30 或 -1」。-1落在区间外却合法,default=-1印证了它:default是目录自己声明的合法值,与min/max冲突时以default为准(+gen本地校验同样按此放行,无需--force)。
- 值域 ——
-
- 条件子集 ——
ratio的enum列了 7 个值,但「视频编辑、视频延长…仅允许 adaptive」,即某条件下enum只剩一个合法值。
- 条件子集 ——
-
- 跨参数依赖 ——
omni_reference_task_type的description给出auto/reference/edit/extend四种取值各自的ratio/duration约束;background=transparent依赖参考图的格式与数量。
- 跨参数依赖 ——
-
- 替代方案 ——
frames的description写「请使用 duration」,即该参数不可用时该换成什么。
- 替代方案 ——
-
取值与
description冲突、或本地校验拒绝了目录声明合法的值时,保留冲突证据(模型名、name、目录原文、CLI 报错)再决定下一步,不要静默换值或换模型。 -
可直接使用 Step 1 选出的模型 id:
models get会按 DisplayName 归一化到规范连字符 name。但归一化只认「点号形态 == 小写 DisplayName」这一种,不是「点号一律可用」——越界就会not found:- ✅
doubao-seedance-2.0-fast(DisplayName 就是Doubao-Seedance-2.0-fast)→doubao-seedance-2-0-fast - ✅
doubao-seedream-4.5→doubao-seedream-4-5 - ❌
doubao-seedream-5.0—— 该族 DisplayName 实为Doubao-Seedream-5.0-lite,裸族名对不上 - ❌
doubao-seedream-5.0-pro-260628—— 点号 + 日期快照:DisplayName 不带日期,对不上
规则:带日期快照的名字一律用连字符形态(
doubao-seedream-5-0-pro-260628);点号形态只用在无日期的族名 / 变体名上。仍报not found时用arkcli models search <族名>核对规范 name,不要靠猜点号位置试。 - ✅
-
查到模型但
supported_params为空 /null→ 该版本未配置参数目录,或上游目录当前不可解析;若 stderr 有warn: model supported_params enrichment failed: ...,保留该告警用于排障。不要手动猜参数:+gen会自动用内置 modality 兜底默认(video:resolution=720p/duration=5/ratio=adaptive)填充你没指定的参数;图片任务不填size—— 画布由 prompt 描述的宽高比与服务端默认值共同决定,硬填一个 1:1 常量会覆盖 prompt 已说清的比例,需要固定画布时显式传--size。控制面查询失败(区别于「模型本来没配目录」)时 stderr 还会有一条warn: ...提示本次未做参数校验 —— 走 stderr 而非 JSON,生成失败时同样会出现。直接进 Step 3。
-
$MODEL是 EP(ep-xxx):不把 EP 本身交给models get。使用 Step 1 的权威绑定:FoundationModel 查model_name+--version <model_version>;CustomModel 只可用base_model_*查 lineage 能力,不能改写真实model_id或调用 EP。warning/歧义时说明能力未知,不根据名称猜测支持。- 能力查询所得模型 ID 仅用于查询;Step 3 仍传原 EP。CLI 当前不对 EP 强填模态兜底参数,也不替代服务端最终校验。
Step 2.5【批量或多阶段任务】提交前检查完整预算
单个图片/视频请求不额外制造“试 Key”任务;批量候选、长视频拆段、续写链等会创建多个收费任务时,
必须在第一个 +gen 前列出总候选数、每个候选的阶段数、理论 create 总数以及阶段依赖。能用一个
原生 30 秒任务完成时,不要在模型/Endpoint 未核验前擅自拆成两个 15 秒任务。
对 Agent Plan / Agent Plan Team 的批量或多阶段视觉任务,读取当前 Profile 后执行额度快照:
arkcli usage plan --format json
arkcli usage balance --type free-quota --modality ComputerVision --page-all --format json
- 这两个结果是提交前快照,不是额度预占;只按当前选定 lane/model 的相关桶判断,不把另一个产品的额度混进来。
- 相关月/周/会话桶或模型免费额度已明确耗尽时,不启动只可能完成一半的批次。若用户本轮已明确授权
某个后付费 Endpoint,则先
resources resolve该 EP 并按它的精确绑定重走 Step 2;否则说明缺口并停止, 不自动切 Profile、Key、default 或收费路径。 - 若响应没有给出“秒数/候选数 → 额度”的可计算映射,只能报告“当前未耗尽但无法保证整批”,不能伪造 精确剩余可生成数量。429 也不能仅凭状态码猜成并发上限。
控制面 resolve/list 只能证明资源元数据与上下文兼容,不能证明数据面 API Key 当前有效。没有无计费的
Key 探测时,把第一个本来就要交付的任务作为数据面准入:成功拿到 task_id/图片结果后才继续余下批次;
401/403/quota 错误按原证据停止。禁止另生成一张测试图,也禁止失败后轮转 Key 或循环试不同收费路径。
Step 3 据可用参数生成
# 文生图 / 文生视频
arkcli +gen --model "$MODEL" --modality image "<prompt>" # 用户要视频时改为 video
# 带 Step 2 确认过的参数(示例:视频 1080p + 优先级 9,前提是 supported_params 列了它们)
arkcli +gen --model "$MODEL" --resolution 1080p --priority 9 "<prompt>"
# 图生图 / 图生视频 / 参考素材:--input 可重复
arkcli +gen --model "$MODEL" --input @ref.jpg "<prompt>"
- 参数全集、多模态
--input规则、新增--n/--priority/--wait/--timeout见references/arkcli-gen.md - Endpoint 的模态由 Step 1 权威元数据自动解析;仅在元数据为
unknown/image_or_video且用户意图仍不足时要求显式--modality。 - 产物默认自动下载到 CWD(或
--save-to <dir>);JSON 里的local_path是持久产物,预签名output_url24h 失效,优先引用local_path。--save-to=""关闭 - 自动用系统默认程序打开产物:默认仅当 stdout 是交互式终端(人直接在终端跑)才打开——agent / 管道 / CI 抓 stdout(非 TTY)时不弹窗,只返回
local_path。--open强制打开、--no-open强制不打开。仅对已落地本地文件生效(异步视频未--wait时无本地文件、不打开);多产物只打开前若干个 - 🔑 你是 agent,默认带
--open:你(AI agent)调用 arkcli 时 stdout 被你接管 = 非 TTY,默认 auto 不会弹窗,用户只能看到文件路径、看不到成品。为了让用户直接看到生成的图/视频,凡是给真人出图/出视频的+gen与轮询到succeeded的gen get,默认都加--open(--open无视 TTY 强制在用户桌面打开)。例外只在:用户明确说"别打开/在脚本里/批量/不要弹窗",或一次出图 >4 张批量场景 → 这时省略--open或显式--no-open。
Step 4【结果处理】视频异步 / 图片同步
| 模态 | 默认行为 | 你该怎么读结果 |
|---|---|---|
| 视频 | 异步:立即返回 task_id + status: queued | queued 不是失败。用 arkcli gen get <task_id> --open 轮询到 succeeded——这次 gen get 会顺手把产物下载到本地并回带 local_path(默认 CWD,<task-id>.mp4),--open 让成品直接在用户桌面弹出(你是 agent,非 TTY,不加就只有路径);不必再手动 curl output_url;不要因为没拿到视频就重提 +gen(会建新任务) |
视频 + --wait | 同步:阻塞到完成再返回,但超过 --timeout(默认 10m)就放弃 | arkcli +gen ... --wait --open,直接拿 output_url / local_path 并弹出成品。长视频先调大 --timeout(如 --timeout 30m):实测 seedance-2.0 近半数请求 10m 内渲不完;撞上限时返回的是「任务仍在跑 + task id」而不是失败,继续 gen get <task-id> 轮询即可,别重跑 +gen |
| 图片 | 同步:直接返回 output_url + local_path | arkcli +gen ... --open 让图片直接弹给用户看 |
⚠️ 行为变更(2.0):视频任务默认已从"自动等待完成"改为"提交即返回 task_id"。需要旧的同步阻塞行为,显式加
--wait。⚠️
--wait有上限:它最多阻塞--timeout(默认 10m),到点即返回。视频渲染常常更久(实测 seedance-2.0 近半数超过 10m),所以长视频请显式--timeout 30m。到点返回的 JSON 是type: timeout+ 带 task id 的错误——这不是生成失败,任务仍在服务端渲染;按 hint 里的gen get <task-id>继续轮询,绝不重跑+gen(会另建一个计费任务)。
已有 task 的脚本轮询契约
gen get --format json 的 status 是对象,终态必须读 .status.phase,不是把整个 .status 与字符串比较。生成 shell 轮询脚本时必须遵守:
- 轮询阶段用
arkcli gen get "$TASK_ID" --save-to="" --format json禁用自动下载,每轮只读状态。 PHASE=$(printf '%s' "$RESULT" | jq -r '.status.phase // empty'),再对succeeded/failed/cancelled做显式分支。succeeded时最多再执行一次带目标--save-to的gen get下载产物,然后立即break;failed/cancelled报告status.message或error后立即break。queued/running才 sleep 后继续;未知 phase 或gen get自身失败应停止并报错,不能当作 running 无限循环。- 整个脚本只查已有 task,禁止在轮询或失败分支重新执行
+gen。
快速决策
- 用户要一步到位出图/视频 → 走本工作流(Step 1→2→3)
- 用户还没定模型 → Step 1
resources list列当前 profile 候选;模型族不确定 → 转../arkcli-models/SKILL.md - 图生图 / 参考素材 → Step 3 加
--input @<file>(可重复) - 视频生成后"没看到视频" → 多半是异步
queued,用arkcli gen get <task_id> --open轮询;轮到succeeded那次会自动下载到本地(看返回的local_path)并弹出成品,别重提 - 给真人出图/视频默认加
--open→ 你是 agent(非 TTY),不加用户只能看到路径、看不到成品;只有"别打开/脚本里/批量 >4 张"才省略或--no-open - 视频续写 →
reference_video接受本地@<path>(CLI 自动上传 TOS 后以预签名 URL 提交)或https://...;本地素材上传要求账号已开通 TOS,未开通会在提交前失败并给出开通入口。ratio 逐值服从精确模型/EP 的supported_params,不无条件强制adaptive
进阶 flag 自然语言触发词表
| 用户怎么说 | 对应 flag / 命令 |
|---|---|
| "生成完直接打开/帮我打开看看/出来就弹给我" | arkcli +gen --open(强制用系统默认程序打开;默认在交互终端已自动打开) |
| "别自动打开/不要弹窗/我在脚本里跑别开" | arkcli +gen --no-open(强制不打开) |
| "预览/别真发/只看参数/dry run/试跑/先看一下" | arkcli +gen ... --dry-run --format json;核对 steps、unresolved 和 fidelity,不要把 partial 预览当作服务端校验 |
| "不要下载/只要 URL/不要保存到本地/关闭自动下载" | 命令显式加 --save-to="";即使同时是 --dry-run 也要保留,以便预览能核对真实执行时的关闭下载意图 |
| "草稿/快速预览/越快越便宜/省钱先看" | 先区分“只看请求”和“真实生成低成本草稿”。前者用 --dry-run;后者仅在 draft 支持时加 --draft=true,不支持时说明限制,不把缩短时长冒充草稿模式 |
| "固定镜头/镜头不动/锁定相机/只拍光影变化" | 始终保留在 prompt;仅当 camera_fixed 支持该值时加 --camera-fixed=true。不支持时可用 prompt 表达视觉约束,但不能保证机械锁定,验收跨帧背景/镜头变化 |
| "不带水印/不要水印/关闭水印" | 查明支持后显式 --watermark=false;省略可能采用服务端默认值,裸 --watermark 表示 true |
| "强制执行/跳过校验/我知道不支持但想试一下" | arkcli +gen --force |
| "连贯多张/按顺序/统一风格/连续图片" | 先区分多张独立文件与一张多格图;多文件在能力支持时用 --image-count N --sequential auto,不可使用缺值的裸 --sequential |
| "我之前的任务/生成历史/任务列表/任务状态" | arkcli gen list(列出所有异步生成任务) |
| "那个任务跑完没/查进度/查状态" | arkcli gen get <task_id> |
命令一览
| 命令 | 角色 |
|---|---|
arkcli resources list --modality image|video | Step 1 — 当前 profile 可用模型/EP |
arkcli resources resolve <endpoint-id> | Step 1(显式 EP) — 权威解析模态、工作流与 region |
arkcli models get <model> --transform supported_params | Step 2 — 查模型可用参数 |
arkcli +gen | Step 3 — 按可用参数生成 |
arkcli +gen --stream | 图片任务流式 NDJSON 输出 |
arkcli gen get <task-id> | Step 4 — 轮询/查询异步视频任务 |
arkcli gen list | 列出/过滤异步生成任务 |
arkcli gen delete <task-id> | 删除异步生成任务 |
常见降级
- 用户明确授权复现图生图/参考素材视频失败时,保留原模型/Endpoint、目标
--modality、--input及素材角色、prompt 和关键参数;仅在同一请求契约内修正已证实错误。 纯文本生成成功不证明参考素材链路已恢复。已有 task ID 先查询,不额外提交付费验证任务; 用户未授权重新生成时只做原请求与只读证据分析。 - 模型名报
not found→models get的归一化只覆盖「点号形态 == 小写 DisplayName」,不是点号一律可用;带日期快照的名字使用连字符形态(如doubao-seedream-5-0-pro-260628)。保留原始错误,在同一身份和范围用arkcli models search <族名>核对规范名称、版本与可见性;不能仅凭此错误认定模型已下线。 - 明确报
has not activated the model/ 模型未激活 → 读取arkcli-models-activate.md,保留原模型、用户素材与生成意图,按宿主授权流程开通;成功后回到本次生成任务,不换身份、Key 或模型。已有任务 ID 时先查原任务状态,不能重复提交。若开通报BalanceNotEnough,报告实际返回的余额/资格门槛并停止循环,不硬编码充值金额,也不把所有未激活错误解释成欠费。 - 参数被拒(
param_not_supported)→ 对照 Step 2 的精确版本目录与实际参数;目录显示支持但 CLI 拒绝时保留冲突证据,不擅自换调用 ID、删用户硬要求或用--force绕过。只有用户明确要求跳过校验时才用--force。- 例外:目录自己声明该取值合法时,先判是不是 CLI 的校验 bug,而不是用户的参数错。 判据看
default:取值等于该参数的default却被min/max拒绝,就是本地校验与上游目录冲突(default落在自己min/max之外时必然发生)。这类冲突不要用--force掩盖——先向用户报告冲突原文(模型名 / 参数名 / 目录min·max·default/ CLI 报错),由用户决定是修 CLI 还是显式要求--force。用--force绕过会把「CLI 有 bug」永久伪装成「参数已提交」,下一个用户会再撞一次。
- 例外:目录自己声明该取值合法时,先判是不是 CLI 的校验 bug,而不是用户的参数错。 判据看
- 内容被审核拦截(
ContentRiskBlocked/*SensitiveContentDetected/ 命中敏感 / 版权)→ 不是参数问题、--force也绕不过;调整 prompt / 输入素材里的敏感内容后重试。要结构化的拦截原因 + 修复指引,转../arkcli-doctor/SKILL.md的arkcli doctor error <code>(生视频拦截 5 个 subtype 全覆盖) - 鉴权错误 → 转
../arkcli-auth/SKILL.md
参考
- arkcli-shared — 认证和全局参数(必读)
- arkcli-models — Step 2 模型查询/
supported_params详解 - references/arkcli-gen.md —
+gen全参数 + 多模态 + 异步语义
FAQ
What does the arkcli-gen skill do?
火山方舟 Ark 图片/视频生成与编辑入口,包括对已交付媒体的后续修改和保留规格验收。支持 profile 默认资源与临时 API Key/Base URL/Endpoint;显式 Endpoint 不受当前 plan profile 误导。图片同步返回,视频异步轮询。
How do I install arkcli-gen?
Run npx skills add https://github.com/volcengine/ark-cli --skill arkcli-gen in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/arkcli-gen/ (personal) or .claude/skills/arkcli-gen/ (project).
Which AI agents can use arkcli-gen?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is arkcli-gen safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains arkcli-gen?
It is published by volcengine in volcengine/ark-cli. It has 48 recorded installs.
More from volcengine/ark-cli
arkcli-shared
volcengine/ark-cli
arkcli 共享执行协议:首次配置入口、业务命令执行前的认证闸门、命令路由与选择顺序、输出/安全/二次确认规则。深度细节(身份解析、AK-SK 边界、API Key 恢复、实名闸门、profile 默认与漂移、临时数据面执行上下文、版本检查与显式升级、全局 flags、故障分流)按需在 references/ 加载。当用户第一次使用 arkcli、遇到未登录/鉴权失败、询问版本是否最新或要求升级 arkcli、需要判断该走产品命令还是 raw api、或任何 arkcli- skill 需要公共上下文时触发。
arkcli-auth
volcengine/ark-cli
arkcli 认证管理:交互式登录、Volc SSO 登录、查看状态、退出登录、生成 ARK API Key (apikey)、以及云开发机/CI 用 arkcli init-volc 从 VOLCINIT 环境变量无交互引导 platform profile。0.1.16 起 SSO 登录走 Gate 1+2 自动绑定 Profile 切面 (type/region/project/ownertrn);AK/SK login 通道暂关。当用户需要初始化凭证、排查鉴权问题、切换认证方式、生成或重选 ARK API Key、或在已注入凭证的环境无交互引导时使用。反触发:用户问 TTS/ASR/语音模型能力、接入或调用时,不要引导 auth apikey,只转 models search 说明 arkcli 当前仅支持广场发现。
arkcli-models
volcengine/ark-cli
arkcli 模型查询与基础模型服务激活能力:列出、搜索、获取火山公共基础模型详情,以及用户明确要求的开通/激活模型服务(arkcli models activate);Volc 还支持 TTFT/TPOT 性能排名、延迟趋势和输入长度对比。激活已有基础模型服务不等于部署/创建 Endpoint,不得转成 +deploy。优先使用产品命令 arkcli models ...,而不是直接调用 Raw API。反触发:用户的最终目标是创建 / 部署 Endpoint 时,本 skill 承担有界的只读候选查询,owning skill 由创建路径确定:普通产品创建走 arkcli-deploy;用户显式要求 raw CRUD / CI / 无守卫的 infer endpoint create 走 arkcli-infer-endpoint。候选首先执行 models search ... --size 10 --format json;成功完整结果直接复用,空结果与捕获缺损按 reference 有界恢复,并把实时返回的 name 与非空 primaryversion 组合成可直接传给 --model 的完整 ID,不能拉全量清单、把裸家族名当可部署 ID,或逐候选追加 models get。注意:查询/管理账号下自传或精调的自定义模型(cm-xxx)走 arkcli-custommodel。
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.