Enhance no longer fails the studio job when the rewrite refuses or comes back empty; host prompt copies keep the official steps plus the adult appendix after a node re-clone. Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
3.0 KiB
Vue
38 lines
3.0 KiB
Vue
<template>
|
||
<dl class="space-y-3 text-sm">
|
||
<div v-for="row in rows" :key="row.label"><dt class="font-semibold">{{ row.label }}</dt><dd class="break-words whitespace-pre-wrap text-zinc-400">{{ row.value ?? 'Not recorded' }}</dd></div>
|
||
</dl>
|
||
</template>
|
||
<script setup lang="ts">
|
||
const props=defineProps<{metadata?:any}>()
|
||
const rows=computed(()=>{const m=props.metadata||{},s=m.settings||{};const time=(v:any)=>v?new Date(v).toLocaleString():null;return [
|
||
{label:'Kind / mode',value:[m.kind,m.mode].filter(Boolean).join(' / ')},
|
||
{label:'Engine',value:m.engine},{label:'Graph ID',value:m.graphId},
|
||
{label:'Sample latent',value:m.sampleLatent},{label:'Sample denoise',value:m.sampleDenoise},
|
||
{label:'Source still',value:m.sourceStillId || m.imageAId || 'None'},
|
||
{label:'Hero reference attached',value:m.heroReferenceAttached==null?'Not recorded':m.heroReferenceAttached?'Yes':'No'},
|
||
{label:'Seed',value:s.seed},{label:'Steps',value:s.steps},{label:'CFG',value:s.cfg},
|
||
{label:'Size',value:s.width&&s.height?`${s.width} × ${s.height}`:null},{label:'Duration',value:s.duration!=null?`${s.duration}s`:null},
|
||
{label:'LoRAs',value:s.loraStack?.length?s.loraStack.map((l:any)=>`${l.name} · ${l.strengthModel}`).join('\n'):'None'},
|
||
{label:'Hero still',value:m.identityStillId||'None'},{label:'Face lock',value:m.lockFace!==false?'On':'Off'},{label:'Outfit lock',value:m.lockOutfit!==false?'On':'Off'},
|
||
{label:'Aspect',value:s.aspect||'auto'},{label:'FPS',value:s.fps||24},{label:'Hide input',value:m.hideInput?'On':'Off'},
|
||
{label:'Start frame',value:m.startFrameSource?JSON.stringify(m.startFrameSource):'None'},
|
||
{label:'Handoff source',value:m.handoffSource || 'None'},{label:'Handoff fitted (resampled)',value:m.fitted==null?'Not recorded':m.fitted?'Yes':'No'},
|
||
{label:'End still',value:m.endStillId||'None'},{label:'Guide stills',value:m.guides?.length?JSON.stringify(m.guides):'None'},
|
||
{label:'Compiled prompt',value:m.compiledPrompt},
|
||
{label:'Prompt (raw)',value:m.promptRaw || null},
|
||
{label:'Enhance prompt',value:m.enhancePrompt==null?null:m.enhancePrompt?'On':'Off'},
|
||
{label:'Enhance',value:m.enhance?.refused?'Enhance skipped (model refused) — used your prompt.':m.enhance?.parse_ok==null?null:m.enhance.parse_ok?'Applied':'Parse incomplete'},
|
||
{label:'Enhance skip reason',value:m.enhance?.skipReason || null},
|
||
{label:'Turbo',value:m.turbo==null?null:m.turbo?'On':'Off'},
|
||
{label:'Turbo LoRA',value:m.lora || null},
|
||
{label:'Turbo sigmas',value:m.sigmas || null},
|
||
{label:'Enhance wh_ratio',value:m.enhance?.wh_ratio || null},
|
||
{label:'Enhance ratio_follow',value:m.enhance?.ratio_follow || null},
|
||
{label:'Enhance parse_ok',value:m.enhance?.parse_ok==null?null:m.enhance.parse_ok?'Yes':'No'},
|
||
{label:'Enhance thinking',value:m.enhance?.thinking || null},
|
||
{label:'Queued',value:time(m.queuedAt)},{label:'Started',value:time(m.startedAt)},{label:'Saved',value:time(m.savedAt)},
|
||
{label:'GPU seconds',value:m.gpuSeconds},{label:'Wall seconds',value:m.wallTime},{label:'Comfy prompt ID',value:m.promptId},{label:'Host cleanup',value:m.purgeResult}
|
||
]})
|
||
</script>
|