fix(canvas): 视频生成 - 显式 @文本 引用内联真实内容
普通模型视频渠道 promptOnly 门槛此前连显式 @文本N 引用一并拦截,
提示词只剩【文本N】占位符、文本节点正文未进上游报文。现 textBlocks
始终追加;promptOnly 拦自动上游连线文本的 8f20240d 语义保持不变。
补 3 例专项测试并同步 pending-test 待验收清单。
This commit is contained in:
@@ -106,3 +106,38 @@ describe("canvas node generation position mentions", () => {
|
||||
expect(context.prompt).toBe("让 进入画面");
|
||||
});
|
||||
});
|
||||
|
||||
describe("canvas node generation video text references", () => {
|
||||
test("视频 promptOnly 下显式 @文本 引用仍内联真实内容,图片保持结构化引用", () => {
|
||||
const target = targetNode();
|
||||
const image = node("image-a", CanvasNodeType.Image, "data:image/png;base64,a");
|
||||
const note = node("note", CanvasNodeType.Text, "角色设定:禾禾\n光影氛围:暗调");
|
||||
const context = buildNodeGenerationContext(target.id, [image, note, target], [connection(image.id), connection(note.id)], "参考图:@图片1\n任务要求:@文本1", [], true);
|
||||
|
||||
expect(context.prompt).toBe("参考图:@图片1\n任务要求:【文本1】\n\n【文本1】\n角色设定:禾禾\n光影氛围:暗调");
|
||||
expect(context.referenceImages.map((item) => item.id)).toEqual(["image-a"]);
|
||||
expect(context.textCount).toBe(1);
|
||||
expect(context.imageCount).toBe(1);
|
||||
});
|
||||
|
||||
test("视频 promptOnly 下未显式引用的连线文本不会自动拼进提示词", () => {
|
||||
const target = targetNode();
|
||||
const image = node("image-a", CanvasNodeType.Image, "data:image/png;base64,a");
|
||||
const note = node("note", CanvasNodeType.Text, "角色设定:禾禾");
|
||||
const context = buildNodeGenerationContext(target.id, [image, note, target], [connection(image.id), connection(note.id)], "生成一段暗调舞蹈视频", [], true);
|
||||
|
||||
expect(context.prompt).toBe("生成一段暗调舞蹈视频");
|
||||
expect(context.referenceImages.map((item) => item.id)).toEqual(["image-a"]);
|
||||
expect(context.textCount).toBe(0);
|
||||
});
|
||||
|
||||
test("视频 promptOnly 非显式引用路径仍丢弃上游文本,关闭后恢复自动拼接", () => {
|
||||
const target = targetNode();
|
||||
const note = node("note", CanvasNodeType.Text, "角色设定:禾禾");
|
||||
const nodes = [note, target];
|
||||
const connections = [connection(note.id)];
|
||||
|
||||
expect(buildNodeGenerationContext(target.id, nodes, connections, "跳舞", [], true).prompt).toBe("跳舞");
|
||||
expect(buildNodeGenerationContext(target.id, nodes, connections, "跳舞", [], false).prompt).toBe("跳舞\n\n角色设定:禾禾");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user