Keep Use as input from filling the seed box, and offer the source seed as an Apply label instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-09-02 20:47:51 -05:00
co-authored by Cursor
parent 8d236250e4
commit 81fb5051a3
+43 -6
View File
@@ -918,7 +918,16 @@
</template>
</div>
<label class="block max-w-xs text-sm">
<span class="mb-1 block text-zinc-400">Seed</span>
<span class="mb-1 flex items-center justify-between gap-2 text-zinc-400">
Seed
<button
v-if="inputSeed"
type="button"
class="min-w-0 truncate text-[11px] font-medium text-amber-300 hover:text-amber-100"
:title="'Fill the seed box with ' + inputSeed"
@click.prevent="applyInputSeed"
>Apply {{ inputSeed }}</button>
</span>
<input v-model="seedInput" class="w-full rounded-xl border border-white/10 bg-zinc-950 px-3 py-2 text-sm" placeholder="random">
</label>
<label v-if="v2Engine !== 'krea'" class="flex cursor-pointer items-center gap-2 text-xs text-zinc-400">
@@ -1011,7 +1020,16 @@
>
</label>
<label class="col-span-2 block text-sm">
<span class="mb-1 block text-zinc-400">Seed</span>
<span class="mb-1 flex items-center justify-between gap-2 text-zinc-400">
Seed
<button
v-if="inputSeed"
type="button"
class="min-w-0 truncate text-[11px] font-medium text-amber-300 hover:text-amber-100"
:title="'Fill the seed box with ' + inputSeed"
@click.prevent="applyInputSeed"
>Apply {{ inputSeed }}</button>
</span>
<input v-model="seedInput" class="w-full rounded-xl border border-white/10 bg-zinc-950 px-3 py-2 text-sm" placeholder="random">
</label>
</div>
@@ -1037,7 +1055,16 @@
</div>
</div>
<label class="block text-sm">
<span class="mb-1 block text-zinc-400">Seed</span>
<span class="mb-1 flex items-center justify-between gap-2 text-zinc-400">
Seed
<button
v-if="inputSeed"
type="button"
class="min-w-0 truncate text-[11px] font-medium text-amber-300 hover:text-amber-100"
:title="'Fill the seed box with ' + inputSeed"
@click.prevent="applyInputSeed"
>Apply {{ inputSeed }}</button>
</span>
<input v-model="seedInput" class="w-full rounded-xl border border-white/10 bg-zinc-950 px-3 py-2" placeholder="random">
</label>
<div>
@@ -2529,6 +2556,17 @@ const samplerName = ref('res_multistep')
const scheduler = ref('simple')
const duration = ref(5)
const seedInput = ref('random')
const inputSeed = ref('')
function rememberInputSeed(raw: unknown) {
const value = Number(raw)
inputSeed.value = Number.isFinite(value) ? String(Math.round(value)) : ''
}
function applyInputSeed() {
if (!inputSeed.value) return
seedInput.value = inputSeed.value
}
const withSound = ref(true)
const hideThumbnail = ref(false)
const hideInputPreview = ref(false)
@@ -5646,7 +5684,7 @@ async function rerun(item: LibraryClip, collection = false) {
clipName.value = restoreAll
? (familyBaseName(collectionTitle({ head: target, parts })) || target.name || '')
: (target.name || '')
seedInput.value = String(target.seed)
rememberInputSeed(target.seed)
restoreAdvanced(target)
duration.value = clipGenerateDuration(target)
hideThumbnail.value = showPrivacyToggles.value && target.hideThumbnail
@@ -5988,6 +6026,7 @@ function applyStillSettings(still: LibraryStill) {
const settings = still.settings
folderId.value = still.folderId
browseFolderId.value = still.folderId
rememberInputSeed(settings?.seed)
applyPromptRestore(still.prompt || '', still)
if (dest === 'imagev2') {
studioMode.value = 'editv2'
@@ -6013,7 +6052,6 @@ function applyStillSettings(still: LibraryStill) {
v2Height.value = size.height
}
if (mode === 'compose' && settings.task) v2Task.value = settings.task
if (settings.seed != null) seedInput.value = String(Math.round(settings.seed))
imageV2LoraStack.value = mergeLegacyImageV2Loras(
settings.loraStack?.length || settings.loraName ? readLoraStack(settings) : imageV2LoraStack.value,
{
@@ -6040,7 +6078,6 @@ function applyStillSettings(still: LibraryStill) {
if (settings.loraStack?.length || settings.loraName) {
imageLoraStack.value = filterLoraStackForStudio(readLoraStack(settings), ltxEnabled.value)
}
if (settings.seed != null) seedInput.value = String(Math.round(settings.seed))
aspect.value = parseImageAspect(settings.aspect)
}