|
25 | 25 | }
|
26 | 26 | }
|
27 | 27 |
|
| 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 | +
|
28 | 37 | if (!inputContainer) return;
|
29 | 38 |
|
30 | 39 | const color = getComputedStyle(document.documentElement).getPropertyValue("--color-mandarin-peel-10");
|
|
134 | 143 | prompt: currentPrompt,
|
135 | 144 | model: isMock ? (isVideo ? "Mock Video Model" : "Mock Model") : settings.model?.id,
|
136 | 145 | 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 | + }), |
137 | 157 | },
|
138 | 158 | };
|
139 | 159 | visualItems.generating = [...visualItems.generating, item];
|
|
170 | 190 | provider: settings.provider as any,
|
171 | 191 | model: settings.model?.id,
|
172 | 192 | 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 | + }, |
174 | 202 | })) as unknown as Blob);
|
175 | 203 | }
|
176 | 204 |
|
|
309 | 337 | ></textarea>
|
310 | 338 | </label>
|
311 | 339 |
|
| 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 | + |
312 | 420 | <label for="columns" class="hidden space-y-2 text-sm font-medium text-stone-700 lg:block dark:text-stone-300">
|
313 | 421 | <p>Columns</p>
|
314 | 422 | <select
|
|
0 commit comments