@ninkch/dsh-infinite-canvas 0.19.6 → 0.19.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +35 -0
- package/README.md +4 -3
- package/README.zh-CN.md +4 -3
- package/assets/canvas-director/SKILL.md +7 -7
- package/assets/canvas-director/genres/absurd-parable.md +85 -0
- package/assets/canvas-director/genres/action-mission.md +5 -0
- package/assets/canvas-director/genres/adventure.md +5 -0
- package/assets/canvas-director/genres/broken-mirror-reunion.md +5 -0
- package/assets/canvas-director/genres/class-vertical.md +85 -0
- package/assets/canvas-director/genres/counterattack.md +5 -0
- package/assets/canvas-director/genres/county-drift.md +85 -0
- package/assets/canvas-director/genres/crime-police.md +5 -0
- package/assets/canvas-director/genres/family-melodrama.md +85 -0
- package/assets/canvas-director/genres/family-relation.md +5 -0
- package/assets/canvas-director/genres/fantasy.md +5 -0
- package/assets/canvas-director/genres/gambling-den.md +85 -0
- package/assets/canvas-director/genres/gunstandoff.md +85 -0
- package/assets/canvas-director/genres/hk-retro.md +5 -0
- package/assets/canvas-director/genres/identity-swap.md +5 -0
- package/assets/canvas-director/genres/institutional-eccentric.md +85 -0
- package/assets/canvas-director/genres/mo-lei-tau.md +85 -0
- package/assets/canvas-director/genres/modern-urban.md +5 -0
- package/assets/canvas-director/genres/multi-thread-caper.md +85 -0
- package/assets/canvas-director/genres/neon-dystopia.md +85 -0
- package/assets/canvas-director/genres/parent-child-secret.md +5 -0
- package/assets/canvas-director/genres/period-power-struggle.md +5 -0
- package/assets/canvas-director/genres/rebirth-transmigration.md +5 -0
- package/assets/canvas-director/genres/revenge-face-slap.md +5 -0
- package/assets/canvas-director/genres/slice-of-life.md +5 -0
- package/assets/canvas-director/genres/smalltown-uncanny.md +85 -0
- package/assets/canvas-director/genres/social-traverse.md +85 -0
- package/assets/canvas-director/genres/survival-fate.md +85 -0
- package/assets/canvas-director/genres/suspense-rule.md +5 -0
- package/assets/canvas-director/genres/system-flow.md +5 -0
- package/assets/canvas-director/genres/wasteland-chase.md +85 -0
- package/assets/canvas-director/genres/wealthy-romance.md +5 -0
- package/assets/canvas-director/genres/workplace-comedy.md +5 -0
- package/assets/canvas-director/genres/wuxia.md +5 -0
- package/assets/canvas-director/genres/xianxia-cultivation.md +5 -0
- package/assets/canvas-director/genres/youth-distance.md +85 -0
- package/assets/canvas-director/lenses/alejandro_inarritu.md +248 -0
- package/assets/canvas-director/lenses/alfonso_cuaron.md +241 -0
- package/assets/canvas-director/lenses/ang_lee.md +223 -0
- package/assets/canvas-director/lenses/bi_gan.md +5 -1
- package/assets/canvas-director/lenses/bong_joon_ho.md +236 -0
- package/assets/canvas-director/lenses/coen_brothers.md +9 -6
- package/assets/canvas-director/lenses/david_lynch.md +243 -0
- package/assets/canvas-director/lenses/edward_yang.md +223 -0
- package/assets/canvas-director/lenses/fincher.md +5 -1
- package/assets/canvas-director/lenses/george_miller.md +251 -0
- package/assets/canvas-director/lenses/guy_ritchie.md +252 -0
- package/assets/canvas-director/lenses/hou_hsiao_hsien.md +9 -6
- package/assets/canvas-director/lenses/jia_zhangke.md +231 -0
- package/assets/canvas-director/lenses/jiang_wen.md +232 -0
- package/assets/canvas-director/lenses/johnnie_to.md +234 -0
- package/assets/canvas-director/lenses/koreeda_hirokazu.md +242 -0
- package/assets/canvas-director/lenses/lee_chang_dong.md +247 -0
- package/assets/canvas-director/lenses/malick.md +8 -5
- package/assets/canvas-director/lenses/michael_mann.md +10 -7
- package/assets/canvas-director/lenses/miyazaki_hayao.md +247 -0
- package/assets/canvas-director/lenses/ning_hao.md +235 -0
- package/assets/canvas-director/lenses/nolan.md +4 -1
- package/assets/canvas-director/lenses/park_chan_wook.md +8 -5
- package/assets/canvas-director/lenses/pedro_almodovar.md +251 -0
- package/assets/canvas-director/lenses/refn.md +4 -1
- package/assets/canvas-director/lenses/ridley_scott.md +241 -0
- package/assets/canvas-director/lenses/shinkai_makoto.md +246 -0
- package/assets/canvas-director/lenses/stephen_chow.md +238 -0
- package/assets/canvas-director/lenses/tarkovsky.md +5 -1
- package/assets/canvas-director/lenses/villeneuve.md +6 -2
- package/assets/canvas-director/lenses/wes_anderson.md +249 -0
- package/assets/canvas-director/lenses/wong_jing.md +233 -0
- package/assets/canvas-director/lenses/wong_kar_wai.md +4 -1
- package/assets/canvas-director/lenses/zhang_yimou.md +8 -5
- package/assets/canvas-director/looks/baroque-rich.md +74 -0
- package/assets/canvas-director/looks/cold-noir.md +74 -0
- package/assets/canvas-director/looks/earth-warmth.md +74 -0
- package/assets/canvas-director/looks/minimal-grey.md +73 -0
- package/assets/canvas-director/looks/saturated-epic.md +73 -0
- package/assets/canvas-director/looks/soft-romance.md +74 -0
- package/assets/canvas-director/manifest.json +672 -130
- package/assets/canvas-director/pack.js +1 -0
- package/assets/canvas-studio/SKILL.md +1 -1
- package/client.js +64 -7
- package/cordis.patch.yml +171 -0
- package/docs/guide.en.md +39 -39
- package/docs/guide.zh-CN.md +39 -39
- package/package.json +78 -66
- package/skill-pack-loader.js +1 -0
- package/skill-pack.js +1 -1
- package/skills/director-workshop/SKILL.md +128 -0
- package/skills.js +342 -0
|
@@ -254,6 +254,7 @@ export function parseManifest(json) {
|
|
|
254
254
|
glyph: String(it.glyph || id).trim(),
|
|
255
255
|
oneliner: String(it.oneliner || '').trim(),
|
|
256
256
|
tier: String(it.tier || '').trim(),
|
|
257
|
+
aliases: Array.isArray(it.aliases) ? it.aliases.map(String) : [],
|
|
257
258
|
});
|
|
258
259
|
}
|
|
259
260
|
}
|
|
@@ -17,7 +17,7 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
17
17
|
| `canvas-studio` | 画布操作流程:建项目 / 写节点 / 触发生成 / 查状态 | 任何时候先读(本文件) |
|
|
18
18
|
| `canvas-craft` | 创作方法论:剧本四要素、分镜六要素、提示词规范 | 写剧本或拆分镜前 |
|
|
19
19
|
| `canvas-layout` | 节点布局纪律:一类型一列、绝不重叠 | 批量建节点前 |
|
|
20
|
-
| `canvas-director` | **导演透镜
|
|
20
|
+
| `canvas-director` | **导演透镜 45 / 叙事题材 36 + 行业题材 10 / 规格 8 / 影调 9 / 运镜词典** | **写任何提示词前** |
|
|
21
21
|
|
|
22
22
|
### 怎么知道有哪些可用
|
|
23
23
|
|
package/client.js
CHANGED
|
@@ -10,6 +10,14 @@ window.__ModuleLoader__.load({
|
|
|
10
10
|
// ============================================================
|
|
11
11
|
const NS = 'infinite-canvas';
|
|
12
12
|
const PANEL_ID = 'infinite-canvas';
|
|
13
|
+
|
|
14
|
+
// 对话触发画布时的展开方式:优先右侧栏页签(左边对话、右边画布对照,不跳走会话),
|
|
15
|
+
// 旧 runner 无 sidebarRight 服务时回退全屏面板。multiple:false 的 kind 重复 open = 聚焦已有页签。
|
|
16
|
+
// openTab 的 kind 内联字符串而非引用 CANVAS_TAB_KIND:本函数调用点早于该 const 声明行(TDZ)。
|
|
17
|
+
function revealCanvasInRight() {
|
|
18
|
+
try { if (CTX && CTX.sidebarRight && typeof CTX.sidebarRight.openTab === 'function') { CTX.sidebarRight.openTab('infinite-canvas'); return; } } catch { /* 落到全屏 */ }
|
|
19
|
+
try { if (CTX && CTX.layout && CTX.layout.selectPanel) CTX.layout.selectPanel(PANEL_ID); } catch { /* 忽略 */ }
|
|
20
|
+
}
|
|
13
21
|
const LS_PROJECTS = 'dsh-ic:projects';
|
|
14
22
|
const LS_ACTIVE = 'dsh-ic:active';
|
|
15
23
|
const LS_GRAPH = 'dsh-ic:graph:';
|
|
@@ -8035,7 +8043,7 @@ function queueThumb(assetId) {
|
|
|
8035
8043
|
if (!pid || S.projects.some((p) => p.id === pid)) {
|
|
8036
8044
|
if (pid && pid !== S.activeId) switchProject(pid);
|
|
8037
8045
|
if (pid && wantCanvas && wantCanvas !== activeCanvasId()) switchCanvas(wantCanvas);
|
|
8038
|
-
|
|
8046
|
+
revealCanvasInRight();
|
|
8039
8047
|
}
|
|
8040
8048
|
}
|
|
8041
8049
|
} catch { /* 打开失败不阻断后续同步 */ }
|
|
@@ -8052,7 +8060,7 @@ function queueThumb(assetId) {
|
|
|
8052
8060
|
const wantCanvas = (runRequest.canvasId === undefined || runRequest.canvasId === null) ? null : String(runRequest.canvasId);
|
|
8053
8061
|
if (pid && pid !== S.activeId && S.projects.some((p) => p.id === pid)) {
|
|
8054
8062
|
switchProject(pid);
|
|
8055
|
-
|
|
8063
|
+
revealCanvasInRight();
|
|
8056
8064
|
}
|
|
8057
8065
|
// 多画布:对话侧指定了子画布 → 先切到那个画布再找节点(否则会找不到节点/跑错画布)
|
|
8058
8066
|
if (pid && pid === S.activeId && wantCanvas && wantCanvas !== activeCanvasId()) {
|
|
@@ -13601,7 +13609,7 @@ function queueThumb(assetId) {
|
|
|
13601
13609
|
|
|
13602
13610
|
// ============================================================
|
|
13603
13611
|
// 技能包(canvas-director):四层配置 + 按生成能力切片
|
|
13604
|
-
// L1 导演透镜
|
|
13612
|
+
// L1 导演透镜 45 / L2 题材(叙事 21 + 行业 10)/ L3 规格 9 / L4 影调 9
|
|
13605
13613
|
// 配置是**项目级**:本地 localStorage 缓存 + 随项目文档同步到 Host(对话侧可读)
|
|
13606
13614
|
// 切片用 assets/canvas-director/pack.js 的纯函数(与 Host 同源,保证口径一致)
|
|
13607
13615
|
// ============================================================
|
|
@@ -13856,6 +13864,13 @@ function queueThumb(assetId) {
|
|
|
13856
13864
|
if (!md) continue;
|
|
13857
13865
|
const granules = P.sectionText(md, '常见场面颗粒') || P.sectionText(md, '参考镜头') || P.sectionText(md, '视觉母题');
|
|
13858
13866
|
if (granules) push((ge ? '题材的场面颗粒' : '行业视觉母题') + '(' + entry.name + '):', granules);
|
|
13867
|
+
// 题材的「禁止漂移」是画面层约束(能出现什么物件、不能出现什么年代错误、不许用什么代替故事),
|
|
13868
|
+
// 以前只在 script 切片里出现、进不了 prompt,等于题材对成片没有约束力。这里补上。
|
|
13869
|
+
const forbid = P.sectionText(md, '禁止漂移');
|
|
13870
|
+
if (forbid) push('本题材的画面禁项(' + entry.name + ',必须排除):', forbid);
|
|
13871
|
+
// 题材级负向词(与规格/透镜/影调同一机制):题材卡若写了「类型级负向词」小节就一并注入。
|
|
13872
|
+
const genreNeg = P.negativePhrases(md);
|
|
13873
|
+
if (genreNeg.length) push('本题材负向词(' + entry.name + ',必须排除):', genreNeg.join(', '));
|
|
13859
13874
|
}
|
|
13860
13875
|
|
|
13861
13876
|
// ④ 规格:节奏与负向词(画幅不在这里定,由视频节点选)
|
|
@@ -18482,13 +18497,13 @@ const DIRECTOR_KEY_HELP = [
|
|
|
18482
18497
|
|
|
18483
18498
|
// ============================================================
|
|
18484
18499
|
// 技能页(craft):四层创作控制台
|
|
18485
|
-
// L1 导演透镜(
|
|
18500
|
+
// L1 导演透镜(45)/ L2 题材(叙事21 + 行业10)/ L3 规格(9)/ L4 影调(9)+ 专家
|
|
18486
18501
|
// 全部是**图标瓦片**,页面内不含任何 <select>(下拉框在小面板里没法扫读)
|
|
18487
18502
|
// ============================================================
|
|
18488
18503
|
|
|
18489
18504
|
/** 瓦片图标:分层族徽。每层一个底形,内部用不同几何标记区分具体项。 */
|
|
18490
18505
|
const SKILL_GLYPHS = {
|
|
18491
|
-
// ── L1 导演:取景框(四角框)+
|
|
18506
|
+
// ── L1 导演:取景框(四角框)+ 45 种镜头标记 ──
|
|
18492
18507
|
spielberg: ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M9 12h6'],
|
|
18493
18508
|
hitchcock: ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M15 12a3 3 0 11-6 0 3 3 0 016 0'],
|
|
18494
18509
|
kubrick: ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M12 5v14M5 12h14'],
|
|
@@ -18523,6 +18538,21 @@ const DIRECTOR_KEY_HELP = [
|
|
|
18523
18538
|
'family-relation': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M8 15a2 2 0 104 0 2 2 0 00-4 0M12 15a2 2 0 104 0 2 2 0 00-4 0'],
|
|
18524
18539
|
'parent-child-secret': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M9 9v6M9 9h4a2 2 0 010 4H9'],
|
|
18525
18540
|
'workplace-comedy': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M8 14h8M10 10h4'],
|
|
18541
|
+
'gambling-den': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M8 12h8M10 9v6M14 9v6'],
|
|
18542
|
+
'gunstandoff': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M7 7h4v4H7zM13 13h4v4h-4z'],
|
|
18543
|
+
'multi-thread-caper': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M5 8h6M5 12h10M5 16h4'],
|
|
18544
|
+
'mo-lei-tau': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M9 10a3 3 0 016 0M8 16c1.5-2 4.5-2 6 0'],
|
|
18545
|
+
'absurd-parable': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M9 12h6M12 9v6M7 17l10-10'],
|
|
18546
|
+
'county-drift': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M4 17h16M7 17V9h3v8M14 17v-5h3v5'],
|
|
18547
|
+
'class-vertical': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M12 4v16M7 9h10M9 15h6'],
|
|
18548
|
+
'youth-distance': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M4 12h4M16 12h4M9 9l6 6'],
|
|
18549
|
+
'wasteland-chase': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M4 16h16M8 16l2-6 2 6M14 16l2-5 2 5'],
|
|
18550
|
+
'smalltown-uncanny': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M12 6a5 5 0 100 10 5 5 0 000-10M9 11h6'],
|
|
18551
|
+
'family-melodrama': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M7 8h10v9H7zM9 12h6M12 8V5'],
|
|
18552
|
+
'institutional-eccentric': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M12 4v16M6 9h12M8 15h8'],
|
|
18553
|
+
'neon-dystopia': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M6 15l3-7 3 7M14 15l2-5 2 5M4 18h16'],
|
|
18554
|
+
'survival-fate': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M5 16c2-5 4-8 7-8s5 3 7 8M5 16h14'],
|
|
18555
|
+
'social-traverse': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M4 7h5v4H4zM15 7h5v4h-5zM9 15h6v4H9z'],
|
|
18526
18556
|
'identity-swap': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M8 10h8l-2-2M16 14H8l2 2'],
|
|
18527
18557
|
'slice-of-life': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M7 15c2-3 8-3 10 0'],
|
|
18528
18558
|
'xianxia-cultivation': ['M4 9l3-4h10l3 4v6l-3 4H7l-3-4z', 'M12 7v10M9 10l3-3 3 3M9 14l3 3 3-3'],
|
|
@@ -18573,6 +18603,33 @@ const DIRECTOR_KEY_HELP = [
|
|
|
18573
18603
|
'guoman-3d-ink': ['M4 7h6v10H4z', 'M11 7h6v10h-6zM13 14c1-4 3-4 4 0'],
|
|
18574
18604
|
'dark-myth-cg': ['M4 7h6v10H4z', 'M11 7h6v10h-6zM14 8v6M12 11h4'],
|
|
18575
18605
|
'east-epic-3d': ['M4 7h6v10H4z', 'M11 7h6v10h-6zM13 15l2-7 2 7'],
|
|
18606
|
+
'cold-noir': ['M4 7h6v10H4z', 'M8 9h4v6H8zM14 9h2v6h-2zM12 8v8'],
|
|
18607
|
+
'earth-warmth': ['M4 7h6v10H4z', 'M4 16c3-4 6-4 9 0M9 8h6v8H9z'],
|
|
18608
|
+
'minimal-grey': ['M4 7h6v10H4z', 'M5 7h14M5 12h14M5 17h10'],
|
|
18609
|
+
'baroque-rich': ['M4 7h6v10H4z', 'M8 6h8v12H8zM10 10h4M12 6V4'],
|
|
18610
|
+
'saturated-epic': ['M4 7h6v10H4z', 'M5 17c2-6 4-9 7-9s5 3 7 9M5 17h14'],
|
|
18611
|
+
'soft-romance': ['M4 7h6v10H4z', 'M12 5a6 6 0 016 6M12 5a6 6 0 00-6 6M12 13v6'],
|
|
18612
|
+
'ang_lee': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M9 12h6M12 9v6'],
|
|
18613
|
+
'edward_yang': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M5 5h14M5 5v14M19 5v14M8 10h8M8 14h5'],
|
|
18614
|
+
'jia_zhangke': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 18h16M6 18V9l6-4 6 4v9'],
|
|
18615
|
+
'jiang_wen': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M12 4v3M12 17v3M4 12h3M17 12h3M12 9a3 3 0 100 6 3 3 0 000-6'],
|
|
18616
|
+
'johnnie_to': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M6 6h3v3H6zM15 6h3v3h-3zM6 15h3v3H6zM15 15h3v3h-3z'],
|
|
18617
|
+
'ning_hao': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 7h6v4H4zM14 7h6v4h-6zM4 15h6v4H4zM14 15h6v4h-6z'],
|
|
18618
|
+
'stephen_chow': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M7 9c1-2 3-3 5-3s4 1 5 3M8 16c1 2 3 3 4 3s3-1 4-3'],
|
|
18619
|
+
'wong_jing': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M7 6h10v12H7zM10 9h4M10 13h4'],
|
|
18620
|
+
'bong_joon_ho': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 18h5v-5h5V8h5M4 18V8'],
|
|
18621
|
+
'koreeda_hirokazu': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 16h16M8 16V9h8v7M10 9V6h4v3'],
|
|
18622
|
+
'lee_chang_dong': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 17h16M7 17V9h3v8M14 17V6h3v11'],
|
|
18623
|
+
'miyazaki_hayao': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M3 15c3-4 6-4 9 0s6 4 9 0M12 5l4 5h-8z'],
|
|
18624
|
+
'shinkai_makoto': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M12 4v4M12 16v4M4 12h4M16 12h4M9 9l6 6M15 9l-6 6'],
|
|
18625
|
+
'ridley_scott': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 18h16M6 18V8h5v10M13 18V5h5v13'],
|
|
18626
|
+
'david_lynch': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M12 5a7 7 0 100 14 7 7 0 000-14M9 12h6'],
|
|
18627
|
+
'alfonso_cuaron': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 12h4V8h4v8h4V8h4'],
|
|
18628
|
+
'alejandro_inarritu': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M5 17c3-6 5-9 7-9s4 3 7 9M5 17h14'],
|
|
18629
|
+
'wes_anderson': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M12 4v16M6 10h12M8 16h8'],
|
|
18630
|
+
'george_miller': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 18h16M9 18l3-10 3 10M12 8V5'],
|
|
18631
|
+
'pedro_almodovar': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M8 7h8v10H8zM10 12h4M12 7V4'],
|
|
18632
|
+
'guy_ritchie': ['M4 8V5h3M17 5h3v3M20 16v3h-3M7 19H4v-3', 'M4 8h16M4 12h11M4 16h16M17 11v4'],
|
|
18576
18633
|
};
|
|
18577
18634
|
|
|
18578
18635
|
/** 渲染一个瓦片图标(24 网格,currentColor 描边)。 */
|
|
@@ -19270,7 +19327,7 @@ const DIRECTOR_KEY_HELP = [
|
|
|
19270
19327
|
];
|
|
19271
19328
|
const SKILL_SHORTCUT_ID = 'infinite-canvas.skill';
|
|
19272
19329
|
function openSkillPalette() {
|
|
19273
|
-
|
|
19330
|
+
revealCanvasInRight();
|
|
19274
19331
|
update((s) => { s.skillPalette = true; s.keysOpen = false; });
|
|
19275
19332
|
}
|
|
19276
19333
|
function closeSkillPalette() { update((s) => { s.skillPalette = false; }); }
|
|
@@ -19419,7 +19476,7 @@ const DIRECTOR_KEY_HELP = [
|
|
|
19419
19476
|
// 插件入口
|
|
19420
19477
|
// ============================================================
|
|
19421
19478
|
return {
|
|
19422
|
-
inject: ['slots', 'locale', 'layout', 'sidebarRightTabs', 'shortcuts'],
|
|
19479
|
+
inject: ['slots', 'locale', 'layout', 'sidebarRightTabs', 'shortcuts', 'sidebarRight'],
|
|
19423
19480
|
apply(ctx) {
|
|
19424
19481
|
CTX = ctx;
|
|
19425
19482
|
// 创作技能快捷键(Ctrl/⌘ + Shift + K):命令进入 ctx.shortcuts 目录 → Harness 快捷键面板可见
|
package/cordis.patch.yml
CHANGED
|
@@ -2,3 +2,174 @@
|
|
|
2
2
|
- id: infinite-canvas
|
|
3
3
|
name: '@ninkch/dsh-infinite-canvas'
|
|
4
4
|
config: {}
|
|
5
|
+
- id: preset-media-studio
|
|
6
|
+
name: '@deepseek-ai/dsh-agent-preset'
|
|
7
|
+
config:
|
|
8
|
+
id: media-studio
|
|
9
|
+
name: 媒体创作
|
|
10
|
+
description: 导演第一视角:无限画布(剧本/分镜/生成)+ ArtCraft 家族(剪辑/调色/混音/交付)端到端创作流水线
|
|
11
|
+
# 内置预设已占用 order 1/2/3/4(standard=1, ptc=2, minimal=3, cordis=4),
|
|
12
|
+
# 本预设取 5 以避免与 ptc 抢同一排序位。
|
|
13
|
+
order: 5
|
|
14
|
+
plugins:
|
|
15
|
+
- id: persona
|
|
16
|
+
name: '@deepseek-ai/dsh-persona'
|
|
17
|
+
config:
|
|
18
|
+
prefix: |
|
|
19
|
+
你是一位驻组导演兼媒体创作者({{model}} 驱动),以创作者第一视角主导每一部视频、竖屏短剧与媒体作品的完整生产。你不是"操作工具的助手"——你是这部片的导演:先有导演阐述,再有本子,然后才是生成与后期。
|
|
20
|
+
|
|
21
|
+
## 开工前自检(每个新项目第一步,不可跳过,只报事实不猜版本)
|
|
22
|
+
按顺序各调一次 canvas_list_skills 与 artcraft_status:
|
|
23
|
+
- 两者正常返回 → 按下面的流水线开工。
|
|
24
|
+
- canvas_* 工具缺失或报错 → 明确告诉用户「画布工具缺失——媒体创作模式与画布同包分发,此状态属于安装异常,请重装 @ninkch/dsh-infinite-canvas」,然后停下。绝不用文字假装建项目、绝不用对话模拟分镜或凭空描述"已生成的画面"。
|
|
25
|
+
- artcraft_* 工具缺失或报错 → 剧本/分镜/生成仍可照做,但走到阶段 D 汇入后期时必须停下来说明缺 @ninkch/dsh-artcraft,不得宣称已交付成片。
|
|
26
|
+
- 探活只陈述"有/没有"和工具自己报的错,不推断上游版本号,不猜安装路径。
|
|
27
|
+
|
|
28
|
+
## 创作第一视角(每个新项目从这三件事开始)
|
|
29
|
+
1. 定调:和用户对齐或自主提出创作意图——拍什么、给谁看、什么情绪回报;然后选定创作四件套(导演透镜 / 题材 / 类型规格 / 影调质感)。**四件套的当期选项一律以 canvas_list_skills 的返回为准**:透镜、题材、规格、影调的份数与 id 都会随画布插件版本增长,本预设有意不在人格里写死任何数字或名单,你也不许凭记忆背名单。选定后用 canvas_skill_pack 取切片(kind=script/storyboard/prompt/assets),并以 set:true 把配置写进项目,保证画布自生成与对话同口径。
|
|
30
|
+
2. 写导演阐述进设定集(canvas_update_bible):世界观、风格基调、角色/场景/道具——这是全片的"美学圣经",跨镜跨集一致性的唯一依据,绝不用节点装设定。
|
|
31
|
+
3. 排产:告诉用户本片要多少场、多少镜、生成量多大,按阶段推进。
|
|
32
|
+
|
|
33
|
+
## 引导式创作(对监制负责,绝不让对方面对空白页)
|
|
34
|
+
用户进片场先做启动仪式:加载 director-workshop 技能,按其阶段推进(选导演 → 定题材/规格/影调 → 一句话故事 → 分场剧本 → 分镜 → 生成验收 → 后期交付)。铁律:
|
|
35
|
+
- 一次只问一个问题:用 ask_user_question 给 2–4 个选项,每个选项带一行"它意味着什么/适合什么";永远允许自定义输入。
|
|
36
|
+
- 先菜单后代劳:只有用户说"你定"才可以代选,且必须说明理由。菜单必须是**工具返回的当期清单**,不是记忆里的旧清单。
|
|
37
|
+
- 每阶段结束做小结(✅ 已定 / ⏭️ 下一步是什么),用户确认后再进下一阶段。
|
|
38
|
+
- 专业词第一次出现就用一句大白话教(ASL、景别、轴线、J-cut、LUFS…)。
|
|
39
|
+
- 每个创作决定立刻落盘:canvas_update_bible 进设定集、canvas_skill_pack set:true 进项目配置,不要停留在对话里。
|
|
40
|
+
- 选定导演后必出《导演合作指南》:他的眼睛(构图/机位/运动)、他的钟(镜长/节奏)、他的光与色、他的声音、五条拍摄军规(可执行到 FilmCraft/LightCraft 参数)、禁区(他绝不会做的事)——之后写剧本、拆分镜、调色、混音前都回看这份指南。
|
|
41
|
+
- 取不到就不说:任何"当前有哪些选项 / 什么规格 / 多少条"的问题,只答工具实际返回的内容;工具没返回就说不确定并去调它,绝不拿旧版本记忆充数。
|
|
42
|
+
- 用户明确说"直接做/全自动"时才可跳过提问直接执行流水线,但重大创作转向仍要先亮选项。
|
|
43
|
+
|
|
44
|
+
## 端到端流水线(你亲自掌机)
|
|
45
|
+
阶段 A 立项:canvas_list_projects 查重 → canvas_create_project → 设定集先行。
|
|
46
|
+
阶段 B 剧本分镜:写剧本前加载 canvas-craft 与 canvas-director 技能 → canvas_write_node 写剧本(意图与成稿同节点)→ 分镜表用 type=storyboard 节点并以 connectFrom 连上游剧本(内容来自连线,绝不复制全文,绝不用剧本节点装分镜)。
|
|
47
|
+
阶段 C 生成:canvas_generate_node / canvas_run_node 触发;canvas_node_status 返回一致性 warnings 时逐条 canvas_update_bible 补全后重跑;批量建点先读 canvas-layout,乱了一键 canvas_relayout。
|
|
48
|
+
阶段 D 汇入后期:ArtCraft 家族接管——先 artcraft_status / artcraft_live 探活;任何媒体操作先 artcraft_recipes(action=chain) 取编排链,**以返回的 steps 为准逐步执行,不预设步骤数、不背步骤清单**(竖屏短剧成片链当前 id 为 short-drama-episode,链 id 与步骤都会随 ArtCraft 版本变化——先用 artcraft_recipes(action=chains) 确认当期 id 再取链);遵循「先探测、后修改、再验证」纪律;长渲染走 POST /artcraft/api/job 后台任务并追踪 job id。用户点名某位导演风格或要"XX 风"时加载 artcraft-director-lens,把透镜参数翻译成 FilmCraft Lumetri / LightCraft develop / SoundCraft 混音的可执行配置,一次只挂一个透镜。
|
|
49
|
+
阶段 E 交付:对白优先的声音设计、跨镜调色一致、字幕安全区;最后 artcraft_qc 按目标平台核对画幅/帧率/响度——QC 结果 PASS 之前不宣称"已完成",只报事实与实测值,判定留给用户。
|
|
50
|
+
|
|
51
|
+
## 导演工作纪律
|
|
52
|
+
- 动手前先读对应技能:画布侧 canvas-studio / canvas-craft / canvas-layout / canvas-director;后期侧 artcraft-ops 及专项(artcraft-edit-rhythm / artcraft-sound-design / artcraft-color-light / artcraft-shot-language / artcraft-motion-vfx / artcraft-multicam / artcraft-delivery-qc / artcraft-style-bible / artcraft-batch-pipeline)。
|
|
53
|
+
- 生成由画布侧真实执行:你写提示词、连线、触发、查状态;有上游连线就不在节点 prompt 里复制内容。
|
|
54
|
+
- 讲话像导演:向用户汇报时讲镜头、节奏、情绪与理由("这场用 11 秒、手持近景、因为你需要观众贴着主角的犹豫"),工具细节放低声量。
|
|
55
|
+
- 长任务用后台跑,不忙轮询;未安装或未运行的 App 先探测再调用,绝不臆测。
|
|
56
|
+
- 交付后主动问下一步:下一集?多平台分发包(social-pack)?还是先看抽帧联络表?
|
|
57
|
+
|
|
58
|
+
用户说"拍个/做个/出片/写个短剧/带我做"时,以导演身份接单:先做启动仪式(加载 director-workshop),展示可选导演与创作四件套菜单,从第一个问题开始一步步带着走。用户带着完整方案来时,可复述方案确认后直入流水线。
|
|
59
|
+
- id: agent-instructions
|
|
60
|
+
name: '@deepseek-ai/dsh-agent-instructions'
|
|
61
|
+
config:
|
|
62
|
+
maxBytes: 65536
|
|
63
|
+
- id: time-context
|
|
64
|
+
name: '@deepseek-ai/dsh-time-context'
|
|
65
|
+
- id: tool-bash
|
|
66
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
67
|
+
disabled: !!js process.platform === 'win32'
|
|
68
|
+
- id: tool-pwsh
|
|
69
|
+
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
70
|
+
disabled: !!js process.platform !== 'win32'
|
|
71
|
+
- id: tool-fs
|
|
72
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
73
|
+
- id: tool-fs-search
|
|
74
|
+
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
75
|
+
config:
|
|
76
|
+
sampleOverCapGlobResults: false
|
|
77
|
+
- id: tool-jobs
|
|
78
|
+
name: '@deepseek-ai/dsh-tool-jobs'
|
|
79
|
+
- id: tool-schedule
|
|
80
|
+
name: '@deepseek-ai/dsh-tool-schedule'
|
|
81
|
+
- id: skill-filesystem
|
|
82
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
83
|
+
- id: tool-skill
|
|
84
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
85
|
+
- id: media-studio-skills
|
|
86
|
+
name: '@ninkch/dsh-infinite-canvas/skills'
|
|
87
|
+
config: {}
|
|
88
|
+
- id: command-goal
|
|
89
|
+
name: '@deepseek-ai/dsh-command-goal'
|
|
90
|
+
- id: tool-goal
|
|
91
|
+
name: '@deepseek-ai/dsh-tool-goal'
|
|
92
|
+
- id: planning
|
|
93
|
+
name: cordis:group
|
|
94
|
+
group: true
|
|
95
|
+
isolate:
|
|
96
|
+
planMode: true
|
|
97
|
+
config:
|
|
98
|
+
- id: plan-mode
|
|
99
|
+
name: '@deepseek-ai/dsh-plan-mode'
|
|
100
|
+
config:
|
|
101
|
+
section: |
|
|
102
|
+
You are in plan mode. Stay in plan mode until the user approves your plan through exit_plan_mode or switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
103
|
+
|
|
104
|
+
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
105
|
+
|
|
106
|
+
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
107
|
+
|
|
108
|
+
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
109
|
+
|
|
110
|
+
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
111
|
+
|
|
112
|
+
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
113
|
+
- id: compaction
|
|
114
|
+
name: cordis:group
|
|
115
|
+
group: true
|
|
116
|
+
isolate:
|
|
117
|
+
compaction: true
|
|
118
|
+
toolResultPruner: true
|
|
119
|
+
config:
|
|
120
|
+
- id: compaction-basic
|
|
121
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
122
|
+
- id: command-compact
|
|
123
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
124
|
+
- id: tool-result-pruner
|
|
125
|
+
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
126
|
+
config:
|
|
127
|
+
thresholdChars: 8192
|
|
128
|
+
headChars: 4096
|
|
129
|
+
tailChars: 1024
|
|
130
|
+
- id: delegation
|
|
131
|
+
name: cordis:group
|
|
132
|
+
group: true
|
|
133
|
+
isolate:
|
|
134
|
+
workflowEngine: true
|
|
135
|
+
config:
|
|
136
|
+
- id: tool-subagent-control
|
|
137
|
+
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
138
|
+
- id: tool-subagent-list-agents
|
|
139
|
+
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
|
140
|
+
- id: tool-subagent
|
|
141
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
142
|
+
config:
|
|
143
|
+
provider: spawn
|
|
144
|
+
toolName: subagent
|
|
145
|
+
modelSelectionSettings: true
|
|
146
|
+
- id: tool-subagent-fork
|
|
147
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
148
|
+
config:
|
|
149
|
+
provider: fork
|
|
150
|
+
toolName: subagent_fork
|
|
151
|
+
- id: workflow-ptc
|
|
152
|
+
name: '@deepseek-ai/dsh-workflow-ptc'
|
|
153
|
+
config:
|
|
154
|
+
provider: spawn
|
|
155
|
+
- id: tool-workflow
|
|
156
|
+
name: '@deepseek-ai/dsh-tool-workflow'
|
|
157
|
+
- id: tool-ask-user
|
|
158
|
+
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
159
|
+
- id: tool-todo
|
|
160
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
161
|
+
config:
|
|
162
|
+
allowParallelInProgress: true
|
|
163
|
+
- id: tool-web
|
|
164
|
+
name: '@deepseek-ai/dsh-tool-web'
|
|
165
|
+
config:
|
|
166
|
+
fetch: true
|
|
167
|
+
searchTimeoutMs: 60000
|
|
168
|
+
- id: present
|
|
169
|
+
name: '@deepseek-ai/dsh-tool-present'
|
|
170
|
+
- id: tool-plugin-manager
|
|
171
|
+
name: '@deepseek-ai/dsh-plugin-manager/tools'
|
|
172
|
+
disabled: true
|
|
173
|
+
- id: tool-plugin-market
|
|
174
|
+
name: '@deepseek-ai/dsh-plugin-market/tools'
|
|
175
|
+
disabled: true
|
package/docs/guide.en.md
CHANGED
|
@@ -12,10 +12,10 @@ Infinite Canvas is a DeepSeek Harness plugin that turns the sidebar into a node-
|
|
|
12
12
|
|
|
13
13
|
Two ways to drive it, best combined:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
Mode Best for
|
|
16
|
+
--- ---
|
|
17
|
+
**Harness chat (recommended primary)** Batch & pipeline work: world view, full episode scripts, storyboard breakdowns, batches of reference images, per-scene videos — one sentence, the agent drives the canvas tools
|
|
18
|
+
**Manual canvas editing** (fine-tuning) When a specific result isn't right: edit the prompt on the node and regenerate, tweak duration/ratio, reorder references, roll back history
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -237,24 +237,24 @@ Open it from the left icon rail → **3D Director Stage**.
|
|
|
237
237
|
|
|
238
238
|
### 8.1 Workspace map
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
240
|
+
Area What it does
|
|
241
|
+
--- ---
|
|
242
|
+
**Left tool rail** Select (0) / Move (1) / Rotate (2) / Scale (3) / Drop to ground (G) / Focus / Upload
|
|
243
|
+
**Asset library** Tabbed and searchable: characters · trees · furniture · buildings · primitives
|
|
244
|
+
**Viewport** Studio or final look, object labels, move/rotate/scale gizmo, shortcut overlay
|
|
245
|
+
**Camera PiP** (top right) Live view of the active camera; switch cameras from here
|
|
246
|
+
**Right panel** Context-sensitive: object properties when something is selected, lens/shot settings when nothing is selected, render settings in Live render
|
|
247
|
+
**Timeline** (Dynamic previz / Live render) Scrub, shot rail, per-shot start/end, keyframe tools, zoom
|
|
248
248
|
|
|
249
249
|

|
|
250
250
|
|
|
251
251
|
### 8.2 Three viewing modes
|
|
252
252
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
253
|
+
Mode Look Playback
|
|
254
|
+
--- --- ---
|
|
255
|
+
**Static previz** Studio: dark backdrop, grid, neutral two-light rig Paused — for blocking
|
|
256
|
+
**Dynamic previz** Same fixed studio look Timeline playback
|
|
257
|
+
**Live render** Final look: daylight, shadows, materials, no guides Plays the shot sequence
|
|
258
258
|
|
|
259
259
|
Static and Dynamic deliberately keep a **fixed studio look**, so placement does not drift when you tune the sun, ground or exposure. Those render settings apply only to **Live render** and the exported clip.
|
|
260
260
|
|
|
@@ -305,12 +305,12 @@ There are **no dropdowns** on the page. Every option is an icon tile: click to s
|
|
|
305
305
|
|
|
306
306
|
### 9.1 What each layer owns
|
|
307
307
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
308
|
+
Layer Count Decides Why it needs its own layer
|
|
309
|
+
--- --- --- ---
|
|
310
|
+
**Director** 45 Camera language, lighting, cutting rhythm, style parameters It constrains the shot's camera fields, the keyframe and the video's camera move at once — the least replaceable decision in the whole piece
|
|
311
|
+
**Genre** 36 narrative / 10 sector Pressure mechanics, audience payoff, scene granules, episode hooks The same "revenge" premise is fragmented neon under Wong Kar-wai and hard-lit slow motion under Tsui Hark; folding them together poisons both
|
|
312
|
+
**Spec** 8 Structure blocks, ASL floor, rhythm, quality bar It decides "short drama vs cinematic texture vs commercial", which is orthogonal to genre
|
|
313
|
+
**Look** 9 Imaging base, material, render texture 2D thick paint / guoman 3D / game CG are imaging domains, not directors
|
|
314
314
|
|
|
315
315
|
**Eight specs**: Short drama · Cinematic texture · Commercial · Documentary · Music video · Trailer · Explainer · Interview.
|
|
316
316
|
|
|
@@ -348,14 +348,14 @@ You can also have the agent change the configuration in chat (it passes `set: tr
|
|
|
348
348
|
|
|
349
349
|
### 9.6 Where it is injected
|
|
350
350
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
351
|
+
Node / capability What it receives
|
|
352
|
+
--- ---
|
|
353
|
+
Script node Genre cards + the lens's narrative/rhythm/performance sections + the form's structure blocks
|
|
354
|
+
Storyboard node The lens's camera language, lighting, style parameters and shot checklist + the form + the camera-move dictionary
|
|
355
|
+
Image node A style lock: style parameters + look imaging/material + genre granules + three negative lists
|
|
356
|
+
Video node Same (also appended when an upstream storyboard feeds it, without breaking the structured format)
|
|
357
|
+
Character/scene/prop sheets The lens's lighting and colour + the look card
|
|
358
|
+
Bible AI draft Same as script
|
|
359
359
|
|
|
360
360
|
**With all four layers empty nothing is injected.**
|
|
361
361
|
|
|
@@ -364,14 +364,14 @@ You can also have the agent change the configuration in chat (it passes `set: tr
|
|
|
364
364
|
## 10. Troubleshooting
|
|
365
365
|
|
|
366
366
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
367
|
+
Symptom Cause & fix
|
|
368
|
+
--- ---
|
|
369
|
+
Video fails with HTTP 413 References too large — fixed since 0.17.11 (auto 1024px JPEG downscale); upgrade
|
|
370
|
+
Video 404 / "Unsupported model type" The gateway endpoint doesn't serve that model's channel: verify the endpoint URL and model ID (copy from the platform's model list); some platforms also need the right **token group**; the canvas automatically falls back to Seedance-native `content[]` and `/v1/videos`
|
|
371
|
+
Video 503 supply unavailable The platform's model supply is temporarily down — retry later
|
|
372
|
+
Deleted nodes come back Old sync race — upgrade to 0.17.11+
|
|
373
|
+
Storyboards always have exactly 6 shots Old anchoring issue — since 0.17.11 shot counts follow the content beats
|
|
374
|
+
Demo-mode images No model configured, or the node has no pick and no starred default — see section 5
|
|
375
375
|
|
|
376
376
|
Stuck? Open **Help & feedback** from the right panel to join the group or file an issue:
|
|
377
377
|
|
package/docs/guide.zh-CN.md
CHANGED
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
两种驱动方式,配合使用效率最高:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
方式 适合做什么
|
|
16
|
+
--- ---
|
|
17
|
+
**Harness 对话驱动**(推荐主力) 批量与流程性工作:出世界观、写整集剧本、铺开分镜、批量生成参考图、逐场生成视频——一句话,Agent 调用画布工具批量完成
|
|
18
|
+
**画布手动操作**(精修) 个别结果不满意时:节点上直接改提示词重新生成、调时长/比例、拖参考图顺序、回退历史版本
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -241,24 +241,24 @@
|
|
|
241
241
|
|
|
242
242
|
### 8.1 界面分区
|
|
243
243
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
244
|
+
区域 作用
|
|
245
|
+
--- ---
|
|
246
|
+
**左侧工具列** 选择(0) / 移动(1) / 旋转(2) / 缩放(3) / 落地(G) / 聚焦 / 上传
|
|
247
|
+
**资产库** 页签 + 搜索:人物 · 树木 · 家具 · 建筑 · 几何体
|
|
248
|
+
**视口** 影棚或成片外观、对象名称标签、移动/旋转/缩放操作轴、快捷键浮层
|
|
249
|
+
**机位缩略图**(右上) 当前机位的实时画面;也可在这里切换机位
|
|
250
|
+
**右侧面板** 随上下文变化:选中对象时是对象属性;未选中时是镜头/机位设置;实时渲染下是渲染参数
|
|
251
|
+
**时间轴**(动态预演 / 实时渲染) 拖动播放头、分镜轨、单镜起止、关键帧工具、缩放
|
|
252
252
|
|
|
253
253
|

|
|
254
254
|
|
|
255
255
|
### 8.2 三种观看模式
|
|
256
256
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
257
|
+
模式 画面 播放
|
|
258
|
+
--- --- ---
|
|
259
|
+
**静态预演** 影棚:深色背景、网格、中性双灯 暂停,用于摆位
|
|
260
|
+
**动态预演** 同样是固定影棚外观 时间轴播放
|
|
261
|
+
**实时渲染** 成片外观:日光、阴影、材质,无辅助线 播放整段分镜
|
|
262
262
|
|
|
263
263
|
静态/动态刻意保持**固定影棚外观**,这样你调太阳、地面、曝光时,摆位画面不会跟着漂移;这些渲染参数只影响**实时渲染**和导出的成片。
|
|
264
264
|
|
|
@@ -309,12 +309,12 @@
|
|
|
309
309
|
|
|
310
310
|
### 9.1 四层各管什么
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
312
|
+
层 数量 决定 为什么单独一层
|
|
313
|
+
--- --- --- ---
|
|
314
|
+
**导演** 45 镜头语言、灯光色彩、剪辑节奏、风格参数 它同时约束分镜的机位字段、图片关键帧、视频运镜——整部片最不可替换的决策
|
|
315
|
+
**题材** 叙事 36 / 行业 10 压力机制、观众回报、场面颗粒、集尾钩子 同一个「复仇打脸」,王家卫拍是抽帧暧昧,徐克拍是凌厉升格;混进导演层会互相污染
|
|
316
|
+
**规格** 8 结构块、平均镜长下限、节奏、质量档 它决定「这是短剧、电影还是商业片」,与题材正交
|
|
317
|
+
**影调** 9 成像底层、材质、渲染质感 2D 厚涂 / 国漫 3D / 游戏 CG 是成像域,不是导演;塞进导演会让「怎么剪」和「长什么样」打架
|
|
318
318
|
|
|
319
319
|
**八种规格**:短剧 · 电影质感 · 商业片 · 纪实 · 音乐视频 · 预告 · 解说 · 访谈。
|
|
320
320
|
|
|
@@ -351,14 +351,14 @@
|
|
|
351
351
|
|
|
352
352
|
### 9.5 注入到哪
|
|
353
353
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
354
|
+
节点 / 能力 拿到的切片
|
|
355
|
+
--- ---
|
|
356
|
+
剧本节点 题材卡 + 导演的叙事/节奏/表演节 + 规格的结构块
|
|
357
|
+
分镜表节点 导演的镜头语言/灯光/风格参数/拍摄清单 + 规格 + 运镜词典
|
|
358
|
+
图片节点 只追加「镜头语言锁」:风格参数 + 影调负向词
|
|
359
|
+
视频节点 同上(有上游分镜表时也追加,不打断结构化字段)
|
|
360
|
+
角色/场景/道具设定图 导演的灯光色彩 + 影调卡
|
|
361
|
+
设定集 AI 草稿 同剧本
|
|
362
362
|
|
|
363
363
|
**四层全空时什么都不注入**——这是保持不变的行为。
|
|
364
364
|
|
|
@@ -366,14 +366,14 @@
|
|
|
366
366
|
|
|
367
367
|
## 10. 常见问题
|
|
368
368
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
369
|
+
现象 原因与处理
|
|
370
|
+
--- ---
|
|
371
|
+
视频报 HTTP 413 参考图过大——0.17.11 起已自动压缩(1024px JPEG),请升级
|
|
372
|
+
视频报 404 / "Unsupported model type" 网关端点与模型渠道不匹配:核对接口地址与模型 ID(从平台模型列表复制);部分平台需检查**令牌分组**;画布会自动降级尝试 Seedance 原生 `content[]` 格式与 `/v1/videos`
|
|
373
|
+
视频报 503 supply unavailable 平台侧模型供货暂时不可用,稍后重试
|
|
374
|
+
删除的节点又出现 旧版本同步竞态,升级到 0.17.11+
|
|
375
|
+
分镜只有固定 6 镜 旧版锚定问题,0.17.11 起镜头数按内容节拍自动决定
|
|
376
|
+
演示模式出图 没配对应模型,或节点上没选且无星标默认——按第 5 节配置
|
|
377
377
|
|
|
378
378
|
遇到问题?右侧面板的 **帮助与反馈** 可以扫码进群或到 GitHub 提 Issue:
|
|
379
379
|
|