feat(pipeline): 资产页实体提取闸门 — 蒙版+3按钮替掉自动生成(不掏口袋)
进资产趴原会自动 genPersonWithTri/genBaseAsset 出图、直接扣用户费,"被掏口袋"感。 改为用户点了才提取/生成: - 删掉进资产趴的自动生成 effect(及 autoGenRef)。 - STAGE 2 盖半透明蒙版 + 三按钮:① 只提取关键词(不出图) / ② 提取+生成角色和场景 (立绘+场景图) / ③ 提取+全套(立绘+三视图+场景图);running 态转 loading,完成自动揭开。 - runExtract 调 /extract-entities 提实体落库,②③ 再按返回实体循环 genBaseAsset/genPersonWithTri。 - 提取后露「重新提取角色/场景」按钮(改了脚本可重提)。 - 闸门据 metadata.script_entities 是否落库自动显隐;已有资产的老项目不打扰。 - api.extractEntities + 类型 script_entities;蒙版 CSS 守 design token(--heat/--r-md/--accent-crimson)。 角色卡仍只露可改的 visual_prompt(质量模板后端 build_person_frontal_prompt 包,用户看不到)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
827fa7fa54
commit
c6d1d2f6fe
@@ -758,3 +758,59 @@
|
||||
.actorlib-studio-detail .actor-thumb { aspect-ratio: 3/4; border-radius: var(--r-md); overflow: hidden; position: relative; border: 1px solid var(--border-faint); }
|
||||
.actor-card .actor-thumb.active { border-color: var(--heat); }
|
||||
@media (max-width: 720px) { .actorlib-studio-grid { grid-template-columns: 1fr; } .actorlib-studio-right { border-left: none; border-top: 1px solid var(--border-faint); padding-left: 0; padding-top: 16px; } }
|
||||
|
||||
/* ── 实体提取闸门(进资产趴蒙版 + 三按钮):不自动花钱,用户点了才提取/生成 ── */
|
||||
.stage[data-stage-pane="2"] { position: relative; }
|
||||
.extract-gate {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 12;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 24px;
|
||||
background: rgba(255, 255, 255, .72);
|
||||
backdrop-filter: blur(6px);
|
||||
-webkit-backdrop-filter: blur(6px);
|
||||
border-radius: var(--r-md);
|
||||
}
|
||||
.extract-gate-panel {
|
||||
width: min(440px, 100%);
|
||||
background: var(--surface-raised);
|
||||
box-shadow: inset 0 0 0 1px var(--border-faint), var(--shadow-floating);
|
||||
border-radius: var(--r-md);
|
||||
padding: 28px 24px;
|
||||
text-align: center;
|
||||
}
|
||||
.eg-title { font-size: 16px; font-weight: 600; color: var(--accent-black); }
|
||||
.eg-sub { font-size: 11px; color: var(--black-alpha-48); margin-top: 6px; }
|
||||
.extract-gate-btns { display: flex; flex-direction: column; gap: 10px; margin-top: 22px; }
|
||||
.eg-btn {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
text-align: left;
|
||||
padding: 13px 15px;
|
||||
border: none;
|
||||
border-radius: var(--r-md);
|
||||
background: var(--background-base);
|
||||
box-shadow: inset 0 0 0 1px var(--border-faint);
|
||||
cursor: pointer;
|
||||
transition: box-shadow .15s ease, background .15s ease;
|
||||
}
|
||||
.eg-btn:hover { box-shadow: inset 0 0 0 1px var(--heat); background: var(--heat-4); }
|
||||
.eg-btn-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
||||
.eg-btn-main { font-size: 13.5px; font-weight: 500; color: var(--accent-black); }
|
||||
.eg-btn-sub { font-size: 11.5px; color: var(--black-alpha-48); }
|
||||
.eg-tag { font-size: 10.5px; padding: 2px 8px; border-radius: 999px; font-family: var(--font-mono); white-space: nowrap; line-height: 1.5; }
|
||||
.eg-tag-free { color: var(--black-alpha-56); box-shadow: inset 0 0 0 1px var(--border-faint); }
|
||||
.eg-tag-pay { color: var(--heat); box-shadow: inset 0 0 0 1px var(--heat-40); background: var(--heat-8); }
|
||||
.eg-btn-full { box-shadow: inset 0 0 0 1px var(--heat-40); }
|
||||
.eg-btn-full:hover { box-shadow: inset 0 0 0 1px var(--heat); background: var(--heat-8); }
|
||||
.eg-err { margin-top: 14px; font-size: 12px; color: var(--accent-crimson); }
|
||||
.extract-gate-loading { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 16px 8px; }
|
||||
.eg-spinner { width: 30px; height: 30px; border-radius: 999px; border: 2.5px solid var(--border-faint); border-top-color: var(--heat); animation: eg-spin .8s linear infinite; }
|
||||
@keyframes eg-spin { to { transform: rotate(360deg); } }
|
||||
.eg-load-msg { font-size: 14px; font-weight: 500; color: var(--accent-black); }
|
||||
.eg-load-sub { font-size: 11px; color: var(--black-alpha-48); }
|
||||
.eg-reextract { margin-top: 14px; width: 100%; }
|
||||
|
||||
Reference in New Issue
Block a user