diff --git a/gui/src/state/migration/default.ts b/gui/src/state/migration/default.ts index 65a4353b..6708b9d5 100644 --- a/gui/src/state/migration/default.ts +++ b/gui/src/state/migration/default.ts @@ -7,6 +7,7 @@ import { Img2ImgSlice } from '../img2img.js'; import { InpaintSlice } from '../inpaint.js'; import { Txt2ImgSlice } from '../txt2img.js'; import { UpscaleSlice } from '../upscale.js'; +import { DEFAULT_PROFILES } from '../profile.js'; // #region V7 export const V7 = 7; @@ -87,6 +88,14 @@ export function migrateV7ToV11(params: ServerParams, previousState: PreviousStat }, }; + // add any missing profiles + const existingProfiles = new Set(result.profiles.map((it) => it.name)); + for (const newProfile of DEFAULT_PROFILES) { + if (existingProfiles.has(newProfile.name) === false) { + result.profiles.push(newProfile); + } + } + // TODO: remove extra keys return result; diff --git a/gui/src/state/profile.ts b/gui/src/state/profile.ts index 73d52eab..f79e53d3 100644 --- a/gui/src/state/profile.ts +++ b/gui/src/state/profile.ts @@ -1,3 +1,4 @@ +/* eslint-disable camelcase */ import { Maybe } from '@apextoaster/js-utils'; import { BaseImgParams, HighresParams, Txt2ImgParams, UpscaleParams } from '../types/params.js'; import { Slice } from './types.js'; @@ -19,7 +20,7 @@ export interface ProfileSlice { export function createProfileSlice(): Slice { return (set) => ({ - profiles: [], + profiles: [...DEFAULT_PROFILES], saveProfile(profile: ProfileItem) { set((prev) => { const profiles = [...prev.profiles]; @@ -50,3 +51,239 @@ export function createProfileSlice(): Slice = [ + // SD v1.5 base + { + name: 'base SD v1.5', + params: { + batch: 1, + cfg: 5, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'deis', + steps: 30, + seed: -1, + tiled_vae: false, + unet_overlap: 0.75, + unet_tile: 512, + vae_overlap: 0.25, + vae_tile: 512, + width: 512, + height: 512 + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SD v1.5 LCM + { + name: 'base SD v1.5 LCM', + params: { + // "pipeline": "txt2img-sdxl", + scheduler: 'lcm', + prompt: ' ', + negativePrompt: '', + cfg: 1.5, + seed: -1, + steps: 12, + eta: 0.0, + batch: 1, + tiled_vae: false, + unet_overlap: 0.5, + unet_tile: 512, + vae_overlap: 0.25, + vae_tile: 512, + width: 512, + height: 512, + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, // SD v1.5 highres + { + name: 'base SD v1.5 highres', + params: { + batch: 1, + cfg: 5, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'deis', + steps: 30, + seed: -1, + tiled_vae: false, + unet_overlap: 0.75, + unet_tile: 512, + vae_overlap: 0.25, + vae_tile: 512, + width: 512, + height: 512 + }, + highres: DEFAULT_HIGHRES_ON, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SD v1.5 panorama + { + name: 'base SD v1.5 panorama', + params: { + batch: 1, + cfg: 12, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'ddim', + steps: 125, + seed: -1, + tiled_vae: true, + unet_overlap: 0.75, + unet_tile: 512, + vae_overlap: 0.25, + vae_tile: 512, + width: 1024, + height: 512 + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SDXL base + { + name: 'base SDXL', + params: { + batch: 1, + cfg: 10, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'dpm-sde', + steps: 120, + seed: -1, + tiled_vae: false, + unet_overlap: 0.75, + unet_tile: 1024, + vae_overlap: 0.25, + vae_tile: 512, + width: 1024, + height: 1024, + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SDXL highres + { + name: 'base SDXL highres', + params: { + batch: 1, + cfg: 10, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'dpm-sde', + steps: 120, + seed: -1, + tiled_vae: false, + unet_overlap: 0.75, + unet_tile: 1024, + vae_overlap: 0.25, + vae_tile: 512, + width: 1024, + height: 1024, + }, + highres: DEFAULT_HIGHRES_ON, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SDXL LCM + { + name: 'base SDXL LCM', + params: { + // "pipeline": "txt2img-sdxl", + scheduler: 'lcm', + prompt: ' ', + negativePrompt: '', + cfg: 1.5, + seed: -1, + steps: 12, + eta: 0.0, + batch: 1, + tiled_vae: false, + unet_overlap: 0.5, + unet_tile: 1024, + vae_overlap: 0.25, + vae_tile: 512, + width: 1024, + height: 1024, + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SDXL panorama + { + name: 'base SDXL panorama', + params: { + batch: 1, + cfg: 12, + eta: 0, + negativePrompt: '', + prompt: '', + scheduler: 'ddim', + steps: 125, + seed: -1, + tiled_vae: true, + unet_overlap: 0.75, + unet_tile: 1024, + vae_overlap: 0.25, + vae_tile: 512, + width: 2048, + height: 1024, + }, + highres: DEFAULT_HIGHRES_ON, + upscale: DEFAULT_UPSCALE_OFF, + }, + // SDXL turbo + { + name: 'base SDXL turbo', + params: { + scheduler: 'dpm-sde', + prompt: '', + negativePrompt: '', + cfg: 1.5, + seed: -1, + steps: 6, + eta: 0.0, + batch: 1, + tiled_vae: false, + unet_overlap: 0.75, + unet_tile: 768, + vae_overlap: 0.25, + vae_tile: 512, + width: 512, + height: 768, + }, + highres: DEFAULT_HIGHRES_OFF, + upscale: DEFAULT_UPSCALE_OFF, + }, +];