Skip to content

Commit 02ba172

Browse files
committed
wip advanced settings
1 parent 4ec8b89 commit 02ba172

File tree

3 files changed

+119
-1
lines changed

3 files changed

+119
-1
lines changed

src/lib/data/context_length.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
"together": {
173173
"togethercomputer/m2-bert-80M-32k-retrieval": 32768,
174174
"cartesia/sonic": 0,
175+
"deepseek-ai/DeepSeek-R1-0528-tput": 163840,
175176
"intfloat/multilingual-e5-large-instruct": 514,
176177
"Alibaba-NLP/gte-modernbert-base": 8192,
177178
"meta-llama/LlamaGuard-2-8b": 8192,
@@ -181,6 +182,7 @@
181182
"togethercomputer/MoA-1": 32768,
182183
"meta-llama/Meta-Llama-3-70B-Instruct-Turbo": 8192,
183184
"meta-llama/Meta-Llama-Guard-3-8B": 8192,
185+
"arcee-ai/AFM-4.5B-Preview": 65536,
184186
"deepseek-ai/DeepSeek-V3": 131072,
185187
"lgai/exaone-3-5-32b-instruct": 32768,
186188
"mistralai/Mixtral-8x7B-Instruct-v0.1": 32768,

src/routes/visual/(components)/settings.svelte

Lines changed: 109 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@
2525
}
2626
}
2727
28+
// Reuse advanced parameters if available
29+
if (config.guidance_scale !== undefined) settings.guidance_scale = config.guidance_scale;
30+
if (config.negative_prompt !== undefined) settings.negative_prompt = config.negative_prompt;
31+
if (config.num_inference_steps !== undefined) settings.num_inference_steps = config.num_inference_steps;
32+
if (config.width !== undefined) settings.width = config.width;
33+
if (config.height !== undefined) settings.height = config.height;
34+
if (config.scheduler !== undefined) settings.scheduler = config.scheduler;
35+
if (config.seed !== undefined) settings.seed = config.seed;
36+
2837
if (!inputContainer) return;
2938
3039
const color = getComputedStyle(document.documentElement).getPropertyValue("--color-mandarin-peel-10");
@@ -134,6 +143,17 @@
134143
prompt: currentPrompt,
135144
model: isMock ? (isVideo ? "Mock Video Model" : "Mock Model") : settings.model?.id,
136145
provider: isMock ? "mock" : settings.provider,
146+
// Include advanced parameters for text-to-image
147+
...(settings.filterTag === PipelineTag.TextToImage &&
148+
!isMock && {
149+
guidance_scale: settings.guidance_scale,
150+
negative_prompt: settings.negative_prompt,
151+
num_inference_steps: settings.num_inference_steps,
152+
width: settings.width,
153+
height: settings.height,
154+
scheduler: settings.scheduler,
155+
seed: settings.seed,
156+
}),
137157
},
138158
};
139159
visualItems.generating = [...visualItems.generating, item];
@@ -170,7 +190,15 @@
170190
provider: settings.provider as any,
171191
model: settings.model?.id,
172192
inputs: currentPrompt,
173-
parameters: { num_inference_steps: 4 },
193+
parameters: {
194+
guidance_scale: settings.guidance_scale,
195+
negative_prompt: settings.negative_prompt || undefined,
196+
num_inference_steps: settings.num_inference_steps,
197+
width: settings.width,
198+
height: settings.height,
199+
scheduler: settings.scheduler || undefined,
200+
seed: settings.seed || undefined,
201+
},
174202
})) as unknown as Blob);
175203
}
176204
@@ -309,6 +337,86 @@
309337
></textarea>
310338
</label>
311339

340+
{#if settings.filterTag === PipelineTag.TextToImage}
341+
<!-- Advanced Parameters -->
342+
<div class="space-y-4 border-t border-stone-200 pt-4 dark:border-stone-700">
343+
<h3 class="text-sm font-semibold text-stone-700 dark:text-stone-300">Advanced Parameters</h3>
344+
345+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
346+
<p>Negative Prompt</p>
347+
<textarea
348+
class="w-full resize-none rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
349+
bind:value={settings.negative_prompt}
350+
placeholder="What you don't want in the image..."
351+
rows="2"
352+
></textarea>
353+
</label>
354+
355+
<div class="grid grid-cols-2 gap-3">
356+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
357+
<p>Width</p>
358+
<input
359+
type="number"
360+
class="w-full rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
361+
bind:value={settings.width}
362+
min="64"
363+
max="2048"
364+
step="64"
365+
/>
366+
</label>
367+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
368+
<p>Height</p>
369+
<input
370+
type="number"
371+
class="w-full rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
372+
bind:value={settings.height}
373+
min="64"
374+
max="2048"
375+
step="64"
376+
/>
377+
</label>
378+
</div>
379+
380+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
381+
<p>Guidance Scale <span class="text-xs text-stone-500">({settings.guidance_scale})</span></p>
382+
<input type="range" class="w-full" bind:value={settings.guidance_scale} min="1" max="20" step="0.5" />
383+
</label>
384+
385+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
386+
<p>Inference Steps</p>
387+
<input
388+
type="number"
389+
class="w-full rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
390+
bind:value={settings.num_inference_steps}
391+
min="1"
392+
max="100"
393+
step="1"
394+
/>
395+
</label>
396+
397+
<div class="grid grid-cols-2 gap-3">
398+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
399+
<p>Scheduler <span class="text-xs text-stone-500">(optional)</span></p>
400+
<input
401+
type="text"
402+
class="w-full rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
403+
bind:value={settings.scheduler}
404+
placeholder="e.g., DPMSolverMultistepScheduler"
405+
/>
406+
</label>
407+
<label class="block space-y-2 text-sm font-medium text-stone-700 dark:text-stone-300">
408+
<p>Seed <span class="text-xs text-stone-500">(optional)</span></p>
409+
<input
410+
type="number"
411+
class="w-full rounded-lg border border-stone-300 bg-white px-3 py-2 text-stone-900 dark:border-stone-600 dark:bg-stone-800 dark:text-stone-100"
412+
bind:value={settings.seed}
413+
placeholder="Random seed"
414+
/>
415+
</label>
416+
</div>
417+
</div>
418+
{/if}
419+
312420
<label for="columns" class="hidden space-y-2 text-sm font-medium text-stone-700 lg:block dark:text-stone-300">
313421
<p>Columns</p>
314422
<select

src/routes/visual/(state)/settings.svelte.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,12 @@ export const settings = createPersistedObj("inf-pg-vis-settings", {
77
provider: undefined as InferenceProviderMapping["provider"] | undefined,
88
filterTag: PipelineTag.TextToImage,
99
prompt: "",
10+
// Text-to-image parameters
11+
guidance_scale: 7.5,
12+
negative_prompt: "",
13+
num_inference_steps: 4,
14+
width: 512,
15+
height: 512,
16+
scheduler: undefined as string | undefined,
17+
seed: undefined as number | undefined,
1018
});

0 commit comments

Comments
 (0)