Skip to main content

creator-image-dreamina

使用即梦CLI为指定的资产列表生成参考图片,包含登录检查、生成、轮询和超时处理。

الانتقال إلى التثبيت

معلومات المصدر

المستودع
wddxh/ShortVideoDirector
آخر نشاط في المصدر
١٤ مايو ٢٠٢٦ في ١٧:٣٤
لغة SKILL.md المكتشفة
الصينية
النجوم
١٩
التفرعات
٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
creator-image-dreamina
description
使用即梦CLI为指定的资产列表生成参考图片,包含登录检查、生成、轮询和超时处理。
user-invocable
false
context
fork
agent
creator
allowed-tools
Read, Write, Glob, Bash
model
sonnet
## 输入 ### 文件读取 - `config.md` — 必须读取(获取 `## 图像生成配置` 中的即梦模型版本、图片比例、图片分辨率) - 每个资产的 `.md` 文件 — 读取 `## 图像生成提示词` 内容 ### 动态参数($ARGUMENTS) - `$ARGUMENTS` — 资产文件路径列表(如 `"assets/characters/张三.md" "assets/locations/小巷.md"`) ## 职责描述 使用即梦CLI为指定资产生成参考图片。按"基础资产 → 造型变体 → 关键帧"三档拓扑顺序生成,每档全部完成(含 pending 轮询)才进入下一档:基础资产用 text2image,造型变体用 image2image(1 张参考图 = 基础角色图),关键帧用 image2image(1–10 张参考图 = composition 引用的所有资产图)。处理登录检查、逐档生成、pending 轮询和超时记录。 ## 流程 ### 阶段 1: 准备 1. 使用 Bash 调用 `bash scripts/read-config.sh "即梦模型版本"` 等获取配置值(即梦模型版本、图片比例、图片分辨率) 2. 若模型版本非 `4.0`(即使用付费模型),计算预估积分消耗(资产数 × 3),提醒用户并等待确认 3. 使用 Bash 执行 `dreamina user_credit`,检查返回是否成功 - 失败 → 输出"即梦CLI未登录,请先执行 `dreamina login` 完成登录"并结束 ### 阶段 2: 分类排序 遍历所有资产路径,读取每个资产文件的 `## 基本信息` 中的 `类型` 字段,按类型分为三组: - **档 1 基础资产**(类型 ∉ {造型变体, 关键帧})— 第 1 档生成,无参考图,text2image - **档 2 造型变体**(类型 = `造型变体`)— 第 2 档生成,1 张参考图(基础角色图),image2image - **档 3 关键帧**(类型 = `关键帧`)— 第 3 档生成,N 张参考图(composition 引用的所有资产图),image2image 按"档 1 → 档 2 → 档 3"严格串行:每档全部资产处理完(包括 pending 轮询全部结束)才能进入下一档。档 2 依赖档 1 的角色图,档 3 依赖档 1 + 档 2 的全部图。 ### 阶段 3: 逐个生成 按档 1 → 档 2 → 档 3 顺序处理。每档共用「OK / FAIL / PENDING 三态处理」逻辑: - exit 0,stdout 以 `OK` 开头 → 记录成功 - exit 1,stdout 以 `FAIL` 开头 → 记录失败,记下失败原因 - exit 2,stdout 以 `PENDING` 开头 → 提取 `submit_id`,连同 `asset_path` 和 `output_path` 加入待查列表 每档处理完所有资产后,**先跑阶段 4 的 pending 轮询**把本档 pending 全部消化(成功/失败/超时),再进入下一档。 #### 档 1:基础资产 对每个基础资产路径: 1. 读取资产文件中 `## 图像生成提示词` 部分的内容 2. 根据资产路径推导输出图片路径(使用 Bash 调用 `bash scripts/asset-to-image-path.sh "{资产路径}"`) 3. 使用 Bash 执行:`bash scripts/image-gen-dreamina.sh "{提示词}" "{输出路径}" "{比例}" "{分辨率}" "{模型版本}" ""`(第 6 参数为空字符串 → text2image) 4. 按三态处理结果 #### 档 2:造型变体 对每个造型变体资产路径: 1. 读取资产文件中 `## 图像生成提示词` 部分的内容 2. 根据资产路径推导输出图片路径(同档 1) 3. 从 `## 基本信息` 中的 `基础角色` 链接提取基础角色名,推导基础角色图片路径 `assets/images/characters/{基础角色名}.png`,确认该图片存在后作为参考图 4. 若基础角色图片不存在 → 记录失败("基础角色图片缺失,无法生成变装图"),跳过该资产 5. 使用 Bash 执行:`bash scripts/image-gen-dreamina.sh "{提示词}" "{输出路径}" "{比例}" "{分辨率}" "{模型版本}" "{基础角色图片路径}"`(第 6 参数为单个 png 路径) 6. 按三态处理结果 #### 档 3:关键帧 对每个关键帧资产路径(路径形如 `assets/keyframes/{集数}/{KF-id}.md`): 1. 使用 Bash 调用 `bash scripts/keyframe-to-prompt.sh "{关键帧 .md 路径}"` - 退出码非 0 → 记录失败("keyframe-to-prompt 失败:{stdout 第 1 行}"),跳过该关键帧 - 退出码 0 → 解析 stdout:第 1 行 `IMAGES:逗号分隔图片路径`、`---` 之后是最终 prompt(含头部 `**引用资产:**` 行 + 空行 + 正文) 2. 依赖图存在性校验:用 Bash `test -f "{png}"` 逐张检查 `IMAGES:` 行里每个 .png 是否存在 - 任一缺失 → 记录失败("依赖资产图缺失:{第一个缺失的 png}"),跳过该关键帧(不阻塞其他关键帧) 3. 推导输出路径:`bash scripts/asset-to-image-path.sh "{关键帧 .md 路径}"` → `assets/images/keyframes/{集数}/{KF-id}.png` 4. 使用 Bash 执行:`bash scripts/image-gen-dreamina.sh "{prompt 文本}" "{输出路径}" "{比例}" "{分辨率}" "{模型版本}" "{IMAGES 逗号分隔字符串}"` - 第 1 参数 `{prompt 文本}` 是 step 1 中 `---` 之后的整段(从 `**引用资产:**` 行到末尾),原样传递,**不要剥离头部**——dreamina 需要看到 `[name:{图片N}]` 头部才能把名字对应到参考图槽位 5. 按三态处理结果。**注意**:dreamina CLI 一次最多 10 张参考图,超出会 FAIL;本档不在脚本层兜底,超出由 dreamina 报错→记 FAIL→由 `creator-fix-keyframe-image` 阶段判断是 director 拆帧还是减资产 ### 阶段 4: 轮询 pending 任务 **调用时机:每档结束时调用一次(不是全局一次)。本档 pending 全部处理完成后回到阶段 3 继续下一档。** 若待查列表非空: 1. 等待 30 秒 2. 对每个 pending 项,使用 Bash 执行:`dreamina query_result --submit_id={submit_id} --download_dir=/tmp/dreamina-pending` 3. 检查返回 JSON 中 `gen_status`: - `success` → 找到下载的文件(`/tmp/dreamina-pending/{submit_id}_image_1.png`),使用 Bash 执行 `mkdir -p "$(dirname "{output_path}")" && mv "/tmp/dreamina-pending/{submit_id}_image_1.png" "{output_path}"`,记录成功,从待查列表移除 - `fail` → 记录失败,从待查列表移除 - `querying` → 保留在待查列表 4. 若待查列表仍非空,重复步骤 1-3(最多 5 轮,共约 2.5 分钟额外等待) 5. 5 轮后仍有 pending → 用 Read 读取 `assets/images/pending.json`(不存在则视为 `[]`),追加超时任务条目,用 Write 写回。pending.json 格式如下: ```json [ {"submit_id": "abc123", "output_path": "assets/images/characters/林知意.png", "asset_name": "林知意"} ] ``` | 字段 | 类型 | 说明 | |------|------|------| | submit_id | string | dreamina 返回的任务 ID | | output_path | string | 图片应保存的目标路径 | | asset_name | string | 资产名称 | ### 阶段 5: 摘要 输出结果摘要(按档分组): - 档 1 基础资产:成功 N 张 / 失败 N 张 / 超时待查 N 张 - 档 2 造型变体:成功 N 张 / 失败 N 张 / 超时待查 N 张 - 档 3 关键帧:成功 N 张 / 失败 N 张 / 超时待查 N 张 - 失败明细(含 asset 路径与失败原因) - 超时待查记录已写入 assets/images/pending.json ## 常见误区 - **跨档并行** — 档 1 还有 pending 就开始档 2 → 档 2 依赖的角色图可能还没下载完 → 档 2 大量"基础角色图片缺失" — 严格按档串行,每档 pending 全消化才进下一档 - **档 3 单帧失败阻塞整批** — 某张关键帧依赖图缺失就抛错退出 — 单帧依赖缺失只跳过该帧并记 FAIL,其他帧正常处理 - **关键帧调 image-gen-dreamina 时第 6 参数传单 png 路径** — 关键帧的参考图是 `keyframe-to-prompt.sh` 输出的 `IMAGES:` 整串(逗号分隔),直接透传;不要拆 png 分别调 - **关键帧 > 10 张资产时手动截断** — 超 10 张应让 dreamina 报错→记 FAIL→由 fix 阶段决定(多半是 director 拆帧);不要在本 skill 截断 ## 输出 ### 返回内容 - 生成结果摘要 → 返回给调用方
عرض على GitHub