|
|
@@ -193,8 +193,8 @@ const configSchema = {
|
|
|
prompt: { title: "Prompt", description: "Text prompt fed to the model's text encoder (CLIP / T5 / LLM). Supports inline `<lora:name:weight>` tags - these are auto-extracted into the LoRA list before being sent to the encoder. Supports a1111-style dynamic-prompts (`{a|b|c}`) when `expand_prompt: true` is set. Recommended: Required. Leave empty for the architecture default.", type: "string", format: "textarea" },
|
|
|
refImageArgs: { title: "Reference Image Args", description: "Comma-separated k=v flags controlling reference-image preprocessing (e.g. `resize_before_vae=0,ref_index_mode=increase`). Replaces the previous auto_resize_ref_image / increase_ref_index bools. See sd.cpp docs. Recommended: Leave empty unless you need to override defaults. Leave empty for the architecture default.", type: "string" },
|
|
|
refImages: { title: "Reference Images (base64)", description: "Base64-encoded reference images for Flux Kontext / image-edit. Each image gets encoded into the conditioner alongside the text prompt. Recommended: Use for Flux Kontext or models that accept reference images. Leave empty for the architecture default.", type: "array", items: {"type": "string"} },
|
|
|
- sampler: { title: "Sampler", description: "Sampling algorithm. Different samplers can produce different images at the same seed; quality and speed differ too. Recommended: euler_a (general), dpmpp2m (SD1.5/SDXL), euler (Flux/SD3/Z-Image), lcm (LCM models). Leave empty for the architecture default.", type: "string", enum: ["", "euler", "euler_a", "heun", "dpm2", "dpm++2s_a", "dpm++2m", "dpm++2mv2", "ipndm", "ipndm_v", "lcm", "ddim_trailing", "tcd", "res_multistep", "res_2s", "er_sde", "euler_cfg_pp", "euler_a_cfg_pp", "euler_ge", "dpm++2m_sde", "dpm++2m_sde_bt", "lms"], enumLabels: ["(architecture default)", "Euler - simple, fast, deterministic", "Euler ancestral - adds noise each step (less reproducible, more variet", "Heun - 2nd-order, slower, sometimes higher quality", "DPM2 - 2nd-order, balanced", "dpm++2s_a", "dpm++2m", "dpm++2mv2", "IPNDM", "IPNDM-V", "LCM - for LCM-finetuned models (4-8 step generation)", "DDIM trailing - required for some fine-tunes", "TCD - for TCD-finetuned models", "RES multistep - flow-model variant", "RES 2S", "ER SDE - SDE sampler (added recently)", "euler_cfg_pp", "euler_a_cfg_pp", "euler_ge", "dpm++2m_sde", "dpm++2m_sde_bt", "lms"], default: "" },
|
|
|
- scheduler: { title: "Scheduler", description: "Determines the noise schedule (the timesteps the sampler walks through). Pairs with the sampler - some combinations (e.g. karras+dpmpp2m) are well-tested, others may be off. Recommended: discrete or karras for SD1.5/SDXL; simple for Flux/SD3; smoothstep for Z-Image. Leave empty for the architecture default.", type: "string", enum: ["", "discrete", "karras", "exponential", "ays", "gits", "sgm_uniform", "simple", "smoothstep", "kl_optimal", "lcm", "bong_tangent", "ltx2", "logit_normal", "flux", "flux2", "beta", "normal"], enumLabels: ["(architecture default)", "Discrete - uniform across model timesteps (default)", "Karras - concentrates more steps near the end, common for SDXL", "Exponential", "Align Your Steps (AYS) - auto-tuned", "GITS", "SGM uniform - for SGM-trained models", "Simple - used by Flux / SD3 flow models", "Smoothstep - Z-Image's recommended scheduler", "KL optimal", "LCM - for LCM samplers", "Bong Tangent", "ltx2", "logit_normal", "flux", "flux2", "beta", "normal"], default: "" },
|
|
|
+ sampler: { title: "Sampler", description: "Sampling algorithm. Different samplers can produce different images at the same seed; quality and speed differ too. Recommended: euler_a (general), dpmpp2m (SD1.5/SDXL), euler (Flux/SD3/Z-Image), lcm (LCM models). Leave empty for the architecture default.", type: "string", enum: ["", "euler", "euler_a", "heun", "dpm2", "dpm++2s_a", "dpm++2m", "dpm++2mv2", "ipndm", "ipndm_v", "lcm", "ddim_trailing", "tcd", "res_multistep", "res_2s", "er_sde", "euler_cfg_pp", "euler_a_cfg_pp", "euler_ge", "dpm++2m_sde", "dpm++2m_sde_bt", "lms"], enumLabels: ["(architecture default)", "Euler - simple, fast, deterministic", "Euler ancestral - adds noise each step (less reproducible, more variet", "Heun - 2nd-order, slower, sometimes higher quality", "DPM2 - 2nd-order, balanced", "DPM++ 2S ancestral - popular for SDXL", "DPM++ 2M - fast, good quality", "DPM++ 2M v2 - improved schedule", "IPNDM", "IPNDM-V", "LCM - for LCM-finetuned models (4-8 step generation)", "DDIM trailing - required for some fine-tunes", "TCD - for TCD-finetuned models", "RES multistep - flow-model variant", "RES 2S", "ER SDE - SDE sampler", "Euler CFG++ - improved CFG variant of Euler", "Euler ancestral CFG++ - ancestral variant of Euler CFG++", "Euler GE - graph-effective Euler variant", "DPM++ 2M SDE (leejet PR #1742)", "DPM++ 2M SDE with Brownian-tree noise (leejet PR #1743)", "LMS - linear multi-step (leejet PR #1843)"], default: "" },
|
|
|
+ scheduler: { title: "Scheduler", description: "Determines the noise schedule (the timesteps the sampler walks through). Pairs with the sampler - some combinations (e.g. karras+dpmpp2m) are well-tested, others may be off. Recommended: discrete or karras for SD1.5/SDXL; simple for Flux/SD3; smoothstep for Z-Image. Leave empty for the architecture default.", type: "string", enum: ["", "discrete", "karras", "exponential", "ays", "gits", "sgm_uniform", "simple", "smoothstep", "kl_optimal", "lcm", "bong_tangent", "ltx2", "logit_normal", "flux", "flux2", "beta", "normal"], enumLabels: ["(architecture default)", "Discrete - standard sd.cpp default", "Karras - improves sample quality, especially at low step counts", "Exponential - decays sigma exponentially", "AYS - align-your-steps", "GITS - Golden-Interval Tabular Sampling", "SGM uniform - matches SGM training-time noise schedule", "Simple - basic linear", "Smoothstep - smoothly interpolated schedule", "KL-optimal - minimizes discretization error", "LCM - for LCM-finetuned models", "Bong tangent", "LTX 2 - LTX-Video 2 schedule", "Logit-normal", "Flux - Flux-family model schedule (leejet PR #1723)", "Flux 2 - Flux 2 model schedule (leejet PR #1722)", "Beta - configurable via extra_sample_args beta_alpha=/beta_beta= (leej", "Normal - alias for discrete (leejet PR #1724)"], default: "" },
|
|
|
seed: { title: "Seed", description: "RNG seed for the initial noise tensor (and stochastic samplers). -1 = pick a random one each generation. Same seed + same prompt + same model = same image. Recommended: -1 for variety. Pin a specific number for A/B comparing prompt or sampler changes. Leave empty for the architecture default.", type: "number" },
|
|
|
shiftedTimestep: { title: "Shifted Timestep", description: "Start the sampling schedule from a non-final timestep (used by NitroFusion and similar fast-sampling fine-tunes). 0 = standard schedule. 250-500 = NitroFusion's range. Recommended: 0 unless you're explicitly running a NitroFusion-style fine-tune. Leave empty for the architecture default.", type: "number" },
|
|
|
skipLayers: { title: "SLG Skip Layers", description: "Which transformer layers to skip during the SLG unconditional pass. SD3.5 Medium uses [7, 8, 9]. Recommended: [7,8,9] for SD3.5 Medium. Other models: leave default, ignored when slg_scale=0. Leave empty for the architecture default.", type: "array", items: {"type": "number"} },
|
|
|
@@ -389,8 +389,8 @@ const GENERATION_OPTIONS = [
|
|
|
// file was generated. See scripts/gen-sdcpp-generation-options.py.
|
|
|
const KNOWN_CHOICES = {
|
|
|
"cacheMode": ["easycache", "spectrum"],
|
|
|
- "sampler": ["ddim_trailing", "dpm2", "dpmpp2m", "dpmpp2mv2", "dpmpp2s_a", "er_sde", "euler", "euler_a", "heun", "ipndm", "ipndm_v", "lcm", "res_2s", "res_multistep", "tcd"],
|
|
|
- "scheduler": ["ays", "bong_tangent", "discrete", "exponential", "gits", "karras", "kl_optimal", "lcm", "sgm_uniform", "simple", "smoothstep"]
|
|
|
+ "sampler": ["ddim_trailing", "dpm++2m", "dpm++2m_sde", "dpm++2m_sde_bt", "dpm++2mv2", "dpm++2s_a", "dpm2", "er_sde", "euler", "euler_a", "euler_a_cfg_pp", "euler_cfg_pp", "euler_ge", "heun", "ipndm", "ipndm_v", "lcm", "lms", "res_2s", "res_multistep", "tcd"],
|
|
|
+ "scheduler": ["ays", "beta", "bong_tangent", "discrete", "exponential", "flux", "flux2", "gits", "karras", "kl_optimal", "lcm", "logit_normal", "ltx2", "normal", "sgm_uniform", "simple", "smoothstep"]
|
|
|
};
|
|
|
|
|
|
async function execute(config, input, context) {
|