fix(character-studio): separate identity from view composition

This commit is contained in:
134 2026-10-03 17:34:01 +08:00
parent 96d67955cb
commit 0d752d6e38

View File

@ -5813,12 +5813,14 @@ export function LiblibVideoCanvasReplica({
const center = toCanvasPoint(window.innerWidth / 2, window.innerHeight / 2);
const x = Math.round(center.x - 360);
const y = Math.round(center.y - 160);
const identity = [character.name, character.description, character.look, character.wardrobe, character.prompt, `风格:${style}`].filter(Boolean).join("。 ");
// Appearance is shared; generated prompt framing must not override each view's composition.
const identity = [character.name, character.description, character.look, character.wardrobe,
...(character.look || character.wardrobe ? [] : [character.prompt]), `风格:${style}`].filter(Boolean).join("。 ");
const source = createTextResourceNode({ content: identity, title: `${character.name} · 角色设定`, x, y });
source.draftValues = { ...source.draftValues, source: "character-studio", characterIdentity: identity };
const viewPrompts: Record<StudioView, string> = {
"角色立绘": "全身角色立绘,站姿自然,人物完整入画,纯净背景,清晰展示稳定面部特征、服装和道具。",
"脸部近景": "同一角色脸部近景,保持五官、发型与标志性特征完全一致,柔和电影布光。",
"脸部近景": "只拍同一角色脸部近景,脸部占据画幅主体,最多露出肩部,不出现全身或半身立绘;保持五官、发型与标志性特征完全一致,柔和电影布光。",
"表情参考": "同一角色表情设定图,四宫格分别展示平静、喜悦、惊讶、愤怒,五官与服装细节一致。",
"角色三视图": "同一角色正面、侧面、背面三视图并排,站姿和服装统一,清晰标注轮廓,纯净背景。",
};
@ -5831,7 +5833,9 @@ export function LiblibVideoCanvasReplica({
: views;
let identityAnchorId: string | undefined;
orderedViews.forEach((view, index) => {
const prompt = `${identity}\n${viewPrompts[view]} 不改变角色身份,不增加多余人物。`;
const singleView = view === "角色立绘" || view === "脸部近景"
? "只生成一张单一完整构图,禁止拼贴、画中画、分屏、宫格和附加小窗;参考图只用于人物身份,不复用其构图。" : "";
const prompt = `${identity}\n${viewPrompts[view]} 不改变角色身份,不增加多余人物。${singleView}`;
const node = createTargetModuleNode("image", x + 500 + index * 440, y, nodes.length + index + 1);
node.title = `${character.name} · ${view}`;
node.draftValues = {