UNPKG

@stable-canvas/sd-webui-a1111-client

Version:

API client for AUTOMATIC1111/stable-diffusion-webui for Node.js and Browser.

1 lines 248 kB
{"version":3,"file":"main.module.mjs","sources":["../src/misc.ts","../src/extensions/ExtensionScript.ts","../src/extensions/ControlNet.ext.ts","../src/extensions/Cutoff.ext.ts","../src/extensions/TiledDiffusion.ext.ts","../src/extensions/TiledVAE.ext.ts","../src/extensions/DynamicCFG.ext.ts","../src/extensions/ADetailer.ext.ts","../src/client/core/BaseHttpRequest.ts","../src/client/core/ApiError.ts","../src/client/core/CancelablePromise.ts","../src/client/core/request.ts","../src/process/types.ts","../src/client/core/FetchHttpRequest.ts","../src/client/services/DefaultService.ts","../src/client/SDWebUIA1111Client.ts","../src/client/core/OpenAPI.ts","../src/process/SDProcessor.ts","../src/process/Img2imgProcess.ts","../src/process/Txt2imgProcess.ts","../src/process/SystemSettingProcess.ts","../src/scheduler/SDTask.ts","../src/scheduler/SDTaskScheduler.ts","../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../src/api/BatchGeneration.ts","../src/api/CachedApi.ts","../src/api/cnet.ts","../src/api/service.ts","../src/api/api.ts","../src/pipeline/Pipeline.ts"],"sourcesContent":["export const deepClone: <T>(x: T) => T =\r\n  globalThis.structuredClone ?? ((x: any) => JSON.parse(JSON.stringify(x)));\r\n\r\nexport const not = (x: boolean) => !x;\r\n","import {\r\n  StableDiffusionProcessingImg2Img,\r\n  StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\n\r\n/**\r\n * 定义拓展脚本的参数\r\n */\r\nexport class ExtensionScript<Args extends Array<any> = Array<any>> {\r\n  constructor(readonly name: string, protected args: Args) {}\r\n\r\n  install(\r\n    req: StableDiffusionProcessingImg2Img | StableDiffusionProcessingTxt2Img\r\n  ) {\r\n    if (typeof req !== \"object\") {\r\n      return;\r\n    }\r\n    req[\"alwayson_scripts\"] ||= {};\r\n    req[\"alwayson_scripts\"][this.name] = {\r\n      args: this.args,\r\n    };\r\n  }\r\n}\r\n","import {\r\n  StableDiffusionProcessingImg2Img,\r\n  StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\nimport { deepClone } from \"../misc\";\r\nimport { ExtensionScript } from \"./ExtensionScript\";\r\n\r\nexport interface ControlNetUnitRequest {\r\n  /**\r\n   * This unit enabled or not.\r\n   */\r\n  enabled: boolean;\r\n\r\n  /**\r\n   * Image to use in this unit.\r\n   * Defaults to null.\r\n   */\r\n  image?: string | null;\r\n\r\n  /**\r\n   * Mask pixel_perfect to filter the image.\r\n   * Defaults to null.\r\n   */\r\n  mask?: string | null;\r\n\r\n  /**\r\n   * Preprocessor to use on the image passed to this unit before using it for conditioning.\r\n   * Accepts values returned by the /controlnet/module_list route.\r\n   * Defaults to \"none\".\r\n   */\r\n  module?: string;\r\n\r\n  /**\r\n   * Name of the model to use for conditioning in this unit.\r\n   * Accepts values returned by the /controlnet/model_list route.\r\n   * Defaults to \"None\".\r\n   */\r\n  model?: string;\r\n\r\n  /**\r\n   * Weight of this unit.\r\n   * Defaults to -1.\r\n   */\r\n  weight?: number;\r\n\r\n  /**\r\n   * How to resize the input image so as to fit the output resolution of the generation.\r\n   * Defaults to \"Scale to Fit (Inner Fit)\".\r\n   * Accepted values:\r\n   * - 0 or \"Just Resize\": simply resize the image to the target width/height\r\n   * - 1 or \"Scale to Fit (Inner Fit)\": scale and crop to fit smallest dimension, preserves proportions\r\n   * - 2 or \"Envelope (Outer Fit)\": scale to fit largest dimension, preserves proportions\r\n   */\r\n  resize_mode?: ResizeMode;\r\n\r\n  /**\r\n   * Whether to compensate low GPU memory with processing time.\r\n   * Defaults to false.\r\n   */\r\n  low_vram?: boolean;\r\n\r\n  /**\r\n   * Resolution of the preprocessor.\r\n   * Defaults to -1.\r\n   */\r\n  processor_res?: number;\r\n\r\n  /**\r\n   * First parameter of the preprocessor.\r\n   * Only takes effect when preprocessor accepts arguments.\r\n   * Defaults to -1.\r\n   */\r\n  threshold_a?: number;\r\n\r\n  /**\r\n   * Second parameter of the preprocessor, same as above for usage.\r\n   * Defaults to -1.\r\n   */\r\n  threshold_b?: number;\r\n\r\n  /**\r\n   * Ratio of generation where this unit starts to have an effect.\r\n   * Defaults to 0.0.\r\n   */\r\n  guidance_start?: number;\r\n\r\n  /**\r\n   * Ratio of generation where this unit stops to have an effect.\r\n   * Defaults to 1.0.\r\n   */\r\n  guidance_end?: number;\r\n\r\n  /**\r\n   * See the related issue for usage.\r\n   * Defaults to 0.\r\n   * Accepted values:\r\n   * - 0 or \"Balanced\": balanced, no preference between prompt and control model\r\n   * - 1 or \"My prompt is more important\": the prompt has more impact than the model\r\n   * - 2 or \"ControlNet is more important\": the controlnet model has more impact than the prompt\r\n   */\r\n  control_mode?: ControlMode;\r\n\r\n  /**\r\n   * Enable pixel-perfect preprocessor.\r\n   * Defaults to false.\r\n   */\r\n  pixel_perfect?: boolean;\r\n}\r\n\r\nexport type ResizeMode =\r\n  | \"Just Resize\"\r\n  | \"Scale to Fit (Inner Fit)\"\r\n  | \"Envelope (Outer Fit)\";\r\n\r\nexport type ControlMode =\r\n  | \"Balanced\"\r\n  | \"My prompt is more important\"\r\n  | \"ControlNet is more important\";\r\n\r\nconst defaultControlNetUnitRequest = (): ControlNetUnitRequest => ({\r\n  enabled: true,\r\n  image: null,\r\n  mask: null,\r\n  module: \"none\",\r\n  model: \"None\",\r\n  weight: 1,\r\n  resize_mode: \"Scale to Fit (Inner Fit)\",\r\n  low_vram: false,\r\n  processor_res: -1,\r\n  threshold_a: -1,\r\n  threshold_b: -1,\r\n  guidance_start: 0.0,\r\n  guidance_end: 1.0,\r\n  control_mode: \"Balanced\",\r\n  pixel_perfect: false,\r\n});\r\n\r\nexport class ControlNetExt extends ExtensionScript<\r\n  Array<Partial<ControlNetUnitRequest>>\r\n> {\r\n  constructor(\r\n    unit0?: Partial<ControlNetUnitRequest>,\r\n    readonly options?: {\r\n      disable_auto_set_image?: boolean;\r\n      disable_auto_set_mask?: boolean;\r\n    }\r\n  ) {\r\n    super(\"ControlNet\", []);\r\n    if (unit0) {\r\n      this.addUnit(unit0);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @deprecated Use `add` instead\r\n   */\r\n  addUnit(unit: Partial<ControlNetUnitRequest>) {\r\n    return this.add(unit);\r\n  }\r\n\r\n  /**\r\n   * Add a unit to the control net units. The unit must have at least one key.\r\n   * If the unit is empty, an error will be thrown.\r\n   * The unit will be merged with the default unit request before being added\r\n   * @param {Partial<ControlNetUnitRequest>} unit The unit to add\r\n   * @returns {this} The current instance of the extension script\r\n   */\r\n  add(unit: Partial<ControlNetUnitRequest>) {\r\n    if (Object.keys(unit).length === 0) {\r\n      throw new Error(\"Unit must have at least one key\");\r\n    }\r\n\r\n    this.args.push({\r\n      ...defaultControlNetUnitRequest(),\r\n      ...unit,\r\n    });\r\n\r\n    return this;\r\n  }\r\n\r\n  clear() {\r\n    this.args = [];\r\n\r\n    return this;\r\n  }\r\n\r\n  install(\r\n    req: StableDiffusionProcessingImg2Img | StableDiffusionProcessingTxt2Img\r\n  ): void {\r\n    if (typeof req !== \"object\") {\r\n      return;\r\n    }\r\n\r\n    const units = deepClone(this.args);\r\n\r\n    if (!this.options?.disable_auto_set_image) {\r\n      const init_images = \"init_images\" in req ? req.init_images || [] : [];\r\n      const init_image0 = init_images[0];\r\n      if (init_image0) {\r\n        for (const unit of units) {\r\n          if (!unit.image) {\r\n            unit.image = init_image0;\r\n          }\r\n        }\r\n      }\r\n    }\r\n    if (!this.options?.disable_auto_set_mask) {\r\n      const mask = \"mask\" in req ? req.mask || null : null;\r\n      if (mask) {\r\n        for (const unit of units) {\r\n          if (!unit.mask) {\r\n            unit.mask = mask;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    req[\"alwayson_scripts\"] ||= {};\r\n    req[\"alwayson_scripts\"][this.name] = {\r\n      args: units,\r\n    };\r\n  }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for the cutoff feature.\r\n */\r\nexport interface CutoffParams {\r\n  /**\r\n   * Whether the cutoff feature is enabled.\r\n   */\r\n  enabled: boolean;\r\n\r\n  /**\r\n   * The target for the cutoff.\r\n   */\r\n  targets: string;\r\n\r\n  /**\r\n   * The weight for the cutoff.\r\n   */\r\n  weight: number;\r\n\r\n  /**\r\n   * Whether to disable negative cutoff.\r\n   */\r\n  disable_neg: boolean;\r\n\r\n  /**\r\n   * Whether to use strong cutoff.\r\n   */\r\n  strong: boolean;\r\n\r\n  /**\r\n   * The padding token for the cutoff (can be an ID or a single token).\r\n   */\r\n  padding: string | number;\r\n\r\n  /**\r\n   * Input options for the cutoff. Valid values are \"Lerp\" or \"SLerp\".\r\n   */\r\n  inpt: \"Lerp\" | \"SLerp\";\r\n\r\n  /**\r\n   * Whether to enable debug mode for the cutoff.\r\n   */\r\n  debug: boolean;\r\n}\r\n\r\n/**\r\n * Arguments for extending the cutoff params.\r\n */\r\nexport type CutoffExtArgs = [\r\n  enabled: CutoffParams[\"enabled\"],\r\n  targets: CutoffParams[\"targets\"],\r\n  weight: CutoffParams[\"weight\"],\r\n  disable_neg: CutoffParams[\"disable_neg\"],\r\n  strong: CutoffParams[\"strong\"],\r\n  padding: CutoffParams[\"padding\"],\r\n  inpt: CutoffParams[\"inpt\"],\r\n  debug: CutoffParams[\"debug\"]\r\n];\r\n\r\nconst default_params = (): CutoffParams => ({\r\n  enabled: true,\r\n  targets: \"\",\r\n  weight: 1,\r\n  disable_neg: false,\r\n  strong: false,\r\n  padding: \"\",\r\n  inpt: \"Lerp\",\r\n  debug: false,\r\n});\r\n\r\n/**\r\n * Generates the arguments for the CutoffExtArgs object based on the provided parameters.\r\n *\r\n * @param {Partial<CutoffParams>} params - The parameters used to generate the arguments.\r\n * @return {CutoffExtArgs} - The generated arguments for the CutoffExtArgs object.\r\n */\r\nfunction params2args(params?: Partial<CutoffParams>): CutoffExtArgs {\r\n  const {\r\n    enabled,\r\n    targets,\r\n    weight,\r\n    disable_neg,\r\n    strong,\r\n    padding,\r\n    inpt,\r\n    debug,\r\n  } = default_params();\r\n  return [\r\n    params?.enabled ?? enabled,\r\n    params?.targets ?? targets,\r\n    params?.weight ?? weight,\r\n    params?.disable_neg ?? disable_neg,\r\n    params?.strong ?? strong,\r\n    params?.padding ?? padding,\r\n    params?.inpt ?? inpt,\r\n    params?.debug ?? debug,\r\n  ];\r\n}\r\n\r\nexport class CutoffExt extends ExtensionScript<CutoffExtArgs> {\r\n  constructor(params?: Partial<CutoffParams>) {\r\n    super(\"Cutoff\", params2args(params));\r\n  }\r\n\r\n  /**\r\n   * Update the parameters of the cutoff.\r\n   *\r\n   * @param {Partial<CutoffParams>} params - The updated parameters for the cutoff.\r\n   */\r\n  update(params: Partial<CutoffParams>) {\r\n    this.args = params2args(params);\r\n  }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for tiled diffusion processing\r\n */\r\nexport interface TiledDiffusionParams {\r\n  /**\r\n   * Whether to enable tiled diffusion\r\n   */\r\n  enabled: boolean;\r\n\r\n  /**\r\n   * Tiled diffusion method to use\r\n   */\r\n  method: TiledDiffusionMethod;\r\n\r\n  /**\r\n   * Whether to overwrite image size instead of using original size\r\n   */\r\n  overwrite_size: boolean;\r\n\r\n  /**\r\n   * Keep input image size when doing img2img\r\n   */\r\n  keep_input_size: boolean;\r\n\r\n  /**\r\n   * Image width when overwriting size\r\n   */\r\n  image_width: number;\r\n\r\n  /**\r\n   * Image height when overwriting size\r\n   */\r\n  image_height: number;\r\n\r\n  /**\r\n   * Width of each latent tile\r\n   */\r\n  tile_width: number;\r\n\r\n  /**\r\n   * Height of each latent tile\r\n   */\r\n  tile_height: number;\r\n\r\n  /**\r\n   * Overlap between latent tiles\r\n   */\r\n  overlap: number;\r\n\r\n  /**\r\n   * Batch size for processing latent tiles\r\n   */\r\n  tile_batch_size: number;\r\n\r\n  /**\r\n   * Name of upscaler to use for img2img\r\n   */\r\n  upscaler_name: string;\r\n\r\n  /**\r\n   * Scale factor for img2img upscaling\r\n   */\r\n  scale_factor: number;\r\n\r\n  /**\r\n   * Whether to enable noise inversion\r\n   */\r\n  noise_inverse: boolean;\r\n\r\n  /**\r\n   * Number of steps to run noise inversion\r\n   */\r\n  noise_inverse_steps: number;\r\n\r\n  /**\r\n   * Noise inversion retouch strength\r\n   */\r\n  noise_inverse_retouch: number;\r\n\r\n  /**\r\n   * Noise renoise strength after inversion\r\n   */\r\n  noise_inverse_renoise_strength: number;\r\n\r\n  /**\r\n   * Kernel size for renoise after inversion\r\n   */\r\n  noise_inverse_renoise_kernel: number;\r\n\r\n  /**\r\n   * Whether to move control tensor to CPU\r\n   */\r\n  control_tensor_cpu: boolean;\r\n\r\n  /**\r\n   * Whether region prompt control is enabled\r\n   */\r\n  enable_bbox_control: boolean;\r\n\r\n  /**\r\n   * Whether to draw full background when using region control\r\n   */\r\n  draw_background: boolean;\r\n\r\n  /**\r\n   * Whether layers are causaled when using region control\r\n   */\r\n  causal_layers: boolean;\r\n\r\n  // Bounding box control params\r\n  bbox_control_states: any[];\r\n}\r\n\r\n/**\r\n * Default arguments for tiled diffusion processing\r\n */\r\nexport type TiledDiffusionArgs = [\r\n  enabled: TiledDiffusionParams[\"enabled\"],\r\n  method: TiledDiffusionParams[\"method\"],\r\n  overwrite_size: TiledDiffusionParams[\"overwrite_size\"],\r\n  keep_input_size: TiledDiffusionParams[\"keep_input_size\"],\r\n  image_width: TiledDiffusionParams[\"image_width\"],\r\n  image_height: TiledDiffusionParams[\"image_height\"],\r\n  tile_width: TiledDiffusionParams[\"tile_width\"],\r\n  tile_height: TiledDiffusionParams[\"tile_height\"],\r\n  overlap: TiledDiffusionParams[\"overlap\"],\r\n  tile_batch_size: TiledDiffusionParams[\"tile_batch_size\"],\r\n  upscaler_name: TiledDiffusionParams[\"upscaler_name\"],\r\n  scale_factor: TiledDiffusionParams[\"scale_factor\"],\r\n  noise_inverse: TiledDiffusionParams[\"noise_inverse\"],\r\n  noise_inverse_steps: TiledDiffusionParams[\"noise_inverse_steps\"],\r\n  noise_inverse_retouch: TiledDiffusionParams[\"noise_inverse_retouch\"],\r\n  noise_inverse_renoise_strength: TiledDiffusionParams[\"noise_inverse_renoise_strength\"],\r\n  noise_inverse_renoise_kernel: TiledDiffusionParams[\"noise_inverse_renoise_kernel\"],\r\n  control_tensor_cpu: TiledDiffusionParams[\"control_tensor_cpu\"],\r\n  enable_bbox_control: TiledDiffusionParams[\"enable_bbox_control\"],\r\n  draw_background: TiledDiffusionParams[\"draw_background\"],\r\n  causal_layers: TiledDiffusionParams[\"causal_layers\"],\r\n  bbox_control_states: TiledDiffusionParams[\"bbox_control_states\"]\r\n];\r\n\r\n/**\r\n * Tiled diffusion methods\r\n */\r\nexport enum TiledDiffusionMethod {\r\n  MULTI_DIFF = \"MultiDiffusion\",\r\n  MIX_DIFF = \"Mixture of Diffusers\",\r\n}\r\n\r\n/**\r\n * Get default parameters for tiled diffusion\r\n */\r\nfunction default_params(): TiledDiffusionParams {\r\n  return {\r\n    enabled: true,\r\n    method: TiledDiffusionMethod.MULTI_DIFF,\r\n    overwrite_size: false,\r\n    keep_input_size: true,\r\n    image_width: 1024,\r\n    image_height: 1024,\r\n    tile_width: 96,\r\n    tile_height: 96,\r\n    overlap: 48,\r\n    tile_batch_size: 4,\r\n    upscaler_name: \"None\",\r\n    scale_factor: 2.0,\r\n    noise_inverse: false,\r\n    noise_inverse_steps: 10,\r\n    noise_inverse_retouch: 1,\r\n    noise_inverse_renoise_strength: 1,\r\n    noise_inverse_renoise_kernel: 64,\r\n    control_tensor_cpu: false,\r\n    enable_bbox_control: false,\r\n    draw_background: false,\r\n    causal_layers: false,\r\n    bbox_control_states: [],\r\n  };\r\n}\r\n\r\nconst params2args = (\r\n  params?: Partial<TiledDiffusionParams>\r\n): TiledDiffusionArgs => {\r\n  const {\r\n    enabled,\r\n    method,\r\n    overwrite_size,\r\n    keep_input_size,\r\n    image_width,\r\n    image_height,\r\n    tile_width,\r\n    tile_height,\r\n    overlap,\r\n    tile_batch_size,\r\n    upscaler_name,\r\n    scale_factor,\r\n    noise_inverse,\r\n    noise_inverse_steps,\r\n    noise_inverse_retouch,\r\n    noise_inverse_renoise_strength,\r\n    noise_inverse_renoise_kernel,\r\n    control_tensor_cpu,\r\n    enable_bbox_control,\r\n    draw_background,\r\n    causal_layers,\r\n    bbox_control_states,\r\n  } = { ...default_params(), ...params };\r\n\r\n  return [\r\n    enabled,\r\n    method,\r\n    overwrite_size,\r\n    keep_input_size,\r\n    image_width,\r\n    image_height,\r\n    tile_width,\r\n    tile_height,\r\n    overlap,\r\n    tile_batch_size,\r\n    upscaler_name,\r\n    scale_factor,\r\n    noise_inverse,\r\n    noise_inverse_steps,\r\n    noise_inverse_retouch,\r\n    noise_inverse_renoise_strength,\r\n    noise_inverse_renoise_kernel,\r\n    control_tensor_cpu,\r\n    enable_bbox_control,\r\n    draw_background,\r\n    causal_layers,\r\n    bbox_control_states,\r\n  ];\r\n};\r\n\r\nexport class TiledDiffusionExt extends ExtensionScript<TiledDiffusionArgs> {\r\n  constructor(params?: Partial<TiledDiffusionParams>) {\r\n    super(\"Tiled Diffusion\", params2args(params));\r\n  }\r\n\r\n  /**\r\n   * Update the parameters of the TiledDiffusion object.\r\n   *\r\n   * @param {Partial<TiledDiffusionParams>} params - The partial parameters to update.\r\n   */\r\n  update(params: Partial<TiledDiffusionParams>) {\r\n    this.args = params2args(params);\r\n  }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Interface for TiledVAE parameters\r\n */\r\nexport interface TiledVAEParams {\r\n  /**\r\n   * Whether to enable TiledVAE\r\n   */\r\n  enabled: boolean;\r\n\r\n  /**\r\n   * Encoder tile size\r\n   */\r\n  encoderTileSize: number;\r\n\r\n  /**\r\n   * Decoder tile size\r\n   */\r\n  decoderTileSize: number;\r\n\r\n  /**\r\n   * Whether to move VAE to GPU (if possible)\r\n   */\r\n  vaeToGPU: boolean;\r\n\r\n  /**\r\n   * Whether to use fast decoder\r\n   */\r\n  fastDecoder: boolean;\r\n\r\n  /**\r\n   * Whether to use fast encoder\r\n   */\r\n  fastEncoder: boolean;\r\n\r\n  /**\r\n   * Fast encoder color fix\r\n   */\r\n  colorFix: boolean;\r\n}\r\n\r\n/**\r\n * Type for TiledVAE default argument values\r\n */\r\nexport type TiledVAEArgs = [\r\n  /**\r\n   * Whether to enable TiledVAE\r\n   */\r\n  enabled: TiledVAEParams[\"enabled\"],\r\n  /**\r\n   * Encoder tile size\r\n   */\r\n  encoderTileSize: TiledVAEParams[\"encoderTileSize\"],\r\n  /**\r\n   * Decoder tile size\r\n   */\r\n  decoderTileSize: TiledVAEParams[\"decoderTileSize\"],\r\n  /**\r\n   * Whether to move VAE to GPU (if possible)\r\n   */\r\n  vaeToGPU: TiledVAEParams[\"vaeToGPU\"],\r\n\r\n  /**\r\n   * Whether to use fast decoder\r\n   */\r\n  fastDecoder: TiledVAEParams[\"fastDecoder\"],\r\n  /**\r\n   * Whether to use fast encoder\r\n   */\r\n  fastEncoder: TiledVAEParams[\"fastEncoder\"],\r\n  /**\r\n   * Fast encoder color fix\r\n   */\r\n  colorFix: TiledVAEParams[\"colorFix\"]\r\n];\r\n\r\n/**\r\n * Get default values for TiledVAE parameters\r\n */\r\nfunction defaultParams(): TiledVAEParams {\r\n  return {\r\n    enabled: true,\r\n    encoderTileSize: 1024,\r\n    decoderTileSize: 96,\r\n    vaeToGPU: true,\r\n    fastDecoder: true,\r\n    fastEncoder: true,\r\n    colorFix: false,\r\n  };\r\n}\r\n\r\nfunction params2args(params?: Partial<TiledVAEParams>): TiledVAEArgs {\r\n  const {\r\n    enabled,\r\n    encoderTileSize,\r\n    decoderTileSize,\r\n    vaeToGPU,\r\n    fastDecoder,\r\n    fastEncoder,\r\n    colorFix,\r\n  } = { ...defaultParams(), ...params };\r\n  return [\r\n    enabled,\r\n    encoderTileSize,\r\n    decoderTileSize,\r\n    vaeToGPU,\r\n    fastDecoder,\r\n    fastEncoder,\r\n    colorFix,\r\n  ];\r\n}\r\n\r\nexport class TiledVAEExt extends ExtensionScript<TiledVAEArgs> {\r\n  constructor(params?: Partial<TiledVAEParams>) {\r\n    super(\"Tiled VAE\", params2args(params));\r\n  }\r\n\r\n  /**\r\n   * Update the parameters of the TiledDiffusion object.\r\n   *\r\n   * @param {Partial<TiledVAEParams>} params - The partial parameters to update.\r\n   */\r\n  update(params: Partial<TiledVAEParams>) {\r\n    this.args = params2args(params);\r\n  }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n/**\r\n * DynamicCFGParams defines the parameters for the dynamic thresholding UI component\r\n */\r\nexport interface DynamicCFGParams {\r\n  /**\r\n   * Whether dynamic thresholding is enabled\r\n   */\r\n  enabled: boolean;\r\n\r\n  /**\r\n   * The scale to mimic for CFG\r\n   */\r\n  mimicScale: number;\r\n\r\n  /**\r\n   * The percentile threshold for clamping latent values\r\n   */\r\n  thresholdPercentile: number;\r\n\r\n  /**\r\n   * The mode for scheduling the mimic scale value\r\n   */\r\n  mimicMode:\r\n    | \"Constant\"\r\n    | \"Linear\"\r\n    | \"Cosine\"\r\n    | \"CosineRepeating\"\r\n    | \"PowerDown\"\r\n    | \"PowerUp\";\r\n\r\n  /**\r\n   * The minimum value when using a scheduled mimic scale\r\n   */\r\n  mimicScaleMin: number;\r\n\r\n  /**\r\n   * The mode for scheduling the CFG scale value\r\n   */\r\n  cfgMode:\r\n    | \"Constant\"\r\n    | \"Linear\"\r\n    | \"Cosine\"\r\n    | \"CosineRepeating\"\r\n    | \"PowerDown\"\r\n    | \"PowerUp\";\r\n\r\n  /**\r\n   * The minimum value when using a scheduled CFG scale\r\n   */\r\n  cfgScaleMin: number;\r\n\r\n  /**\r\n   * The scheduler value used for some modes\r\n   */\r\n  schedVal: number;\r\n}\r\n\r\nexport type DynamicCFGArgs = [\r\n  enabled: DynamicCFGParams[\"enabled\"],\r\n  mimicScale: DynamicCFGParams[\"mimicScale\"],\r\n  thresholdPercentile: DynamicCFGParams[\"thresholdPercentile\"],\r\n  mimicMode: DynamicCFGParams[\"mimicMode\"],\r\n  mimicScaleMin: DynamicCFGParams[\"mimicScaleMin\"],\r\n  cfgMode: DynamicCFGParams[\"cfgMode\"],\r\n  cfgScaleMin: DynamicCFGParams[\"cfgScaleMin\"],\r\n  schedVal: DynamicCFGParams[\"schedVal\"]\r\n];\r\n\r\n/**\r\n * Default values for the parameters\r\n */\r\nconst defaultDynamicCFGParams = (): DynamicCFGParams => ({\r\n  enabled: false,\r\n  mimicScale: 7.0,\r\n  thresholdPercentile: 100,\r\n  mimicMode: \"Constant\",\r\n  mimicScaleMin: 0,\r\n  cfgMode: \"Constant\",\r\n  cfgScaleMin: 0,\r\n  schedVal: 4.0,\r\n});\r\n\r\nconst params2args = (params?: Partial<DynamicCFGParams>): DynamicCFGArgs => {\r\n  const {\r\n    enabled,\r\n    mimicScale,\r\n    thresholdPercentile,\r\n    mimicMode,\r\n    mimicScaleMin,\r\n    cfgMode,\r\n    cfgScaleMin,\r\n    schedVal,\r\n  } = { ...defaultDynamicCFGParams(), ...params };\r\n  return [\r\n    enabled,\r\n    mimicScale,\r\n    thresholdPercentile,\r\n    mimicMode,\r\n    mimicScaleMin,\r\n    cfgMode,\r\n    cfgScaleMin,\r\n    schedVal,\r\n  ];\r\n};\r\n\r\nexport class DynamicCFGExt extends ExtensionScript<DynamicCFGArgs> {\r\n  constructor(params?: Partial<DynamicCFGParams>) {\r\n    super(\"Dynamic Thresholding (CFG Scale Fix)\", params2args(params));\r\n  }\r\n\r\n  /**\r\n   * Update the parameters of object.\r\n   *\r\n   * @param {Partial<DynamicCFGParams>} params - The partial parameters to update.\r\n   */\r\n  update(params: Partial<DynamicCFGParams>) {\r\n    this.args = params2args(params);\r\n  }\r\n}\r\n","import { ExtensionScript } from \"./ExtensionScript\";\r\n\r\n/**\r\n * Parameters for the ADetailer feature.\r\n */\r\nexport interface ADetailerParams {\r\n  ad_model: string;\r\n  ad_model_classes: string;\r\n  ad_tab_enable: boolean;\r\n  ad_prompt: string;\r\n  ad_negative_prompt: string;\r\n  ad_confidence: number;\r\n  ad_mask_filter_method: string;\r\n  ad_mask_k: number;\r\n  ad_mask_min_ratio: number;\r\n  ad_mask_max_ratio: number;\r\n  ad_dilate_erode: number;\r\n  ad_x_offset: number;\r\n  ad_y_offset: number;\r\n  ad_mask_merge_invert: string;\r\n  ad_mask_blur: number;\r\n  ad_denoising_strength: number;\r\n  ad_inpaint_only_masked: boolean;\r\n  ad_inpaint_only_masked_padding: number;\r\n  ad_use_inpaint_width_height: boolean;\r\n  ad_inpaint_width: number;\r\n  ad_inpaint_height: number;\r\n  ad_use_steps: boolean;\r\n  ad_steps: number;\r\n  ad_use_cfg_scale: boolean;\r\n  ad_cfg_scale: number;\r\n  ad_use_checkpoint: boolean;\r\n  ad_checkpoint: string | null;\r\n  ad_use_vae: boolean;\r\n  ad_vae: string | null;\r\n  ad_use_sampler: boolean;\r\n  ad_sampler: string;\r\n  ad_scheduler: string;\r\n  ad_use_noise_multiplier: boolean;\r\n  ad_noise_multiplier: number;\r\n  ad_use_clip_skip: boolean;\r\n  ad_clip_skip: number;\r\n  ad_restore_face: boolean;\r\n  ad_controlnet_model: string;\r\n  ad_controlnet_module: string;\r\n  ad_controlnet_weight: number;\r\n  ad_controlnet_guidance_start: number;\r\n  ad_controlnet_guidance_end: number;\r\n}\r\n\r\nexport type ADetailerExtArgs = [ADetailerParams];\r\n\r\nconst default_params = (): ADetailerParams => ({\r\n  ad_model: \"face_yolov8n.pt\",\r\n  ad_model_classes: \"\",\r\n  ad_tab_enable: true,\r\n  ad_prompt: \"\",\r\n  ad_negative_prompt: \"\",\r\n  ad_confidence: 0.3,\r\n  ad_mask_filter_method: \"Area\",\r\n  ad_mask_k: 0,\r\n  ad_mask_min_ratio: 0.0,\r\n  ad_mask_max_ratio: 1.0,\r\n  ad_dilate_erode: 4,\r\n  ad_x_offset: 0,\r\n  ad_y_offset: 0,\r\n  ad_mask_merge_invert: \"None\",\r\n  ad_mask_blur: 4,\r\n  ad_denoising_strength: 0.4,\r\n  ad_inpaint_only_masked: true,\r\n  ad_inpaint_only_masked_padding: 32,\r\n  ad_use_inpaint_width_height: false,\r\n  ad_inpaint_width: 512,\r\n  ad_inpaint_height: 512,\r\n  ad_use_steps: false,\r\n  ad_steps: 28,\r\n  ad_use_cfg_scale: false,\r\n  ad_cfg_scale: 7.0,\r\n  ad_use_checkpoint: false,\r\n  ad_checkpoint: null,\r\n  ad_use_vae: false,\r\n  ad_vae: null,\r\n  ad_use_sampler: false,\r\n  ad_sampler: \"DPM++ 2M Karras\",\r\n  ad_scheduler: \"Use same scheduler\",\r\n  ad_use_noise_multiplier: false,\r\n  ad_noise_multiplier: 1.0,\r\n  ad_use_clip_skip: false,\r\n  ad_clip_skip: 1,\r\n  ad_restore_face: false,\r\n  ad_controlnet_model: \"None\",\r\n  ad_controlnet_module: \"None\",\r\n  ad_controlnet_weight: 1.0,\r\n  ad_controlnet_guidance_start: 0.0,\r\n  ad_controlnet_guidance_end: 1.0,\r\n});\r\n\r\nexport class ADetailerExt extends ExtensionScript<ADetailerExtArgs> {\r\n  constructor(params?: Partial<ADetailerParams>) {\r\n    super(\"ADetailer\", [Object.assign(default_params(), params)]);\r\n  }\r\n\r\n  update(params: Partial<ADetailerParams>) {\r\n    this.args = [Object.assign(default_params(), params)];\r\n  }\r\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\nexport abstract class BaseHttpRequest {\n\n    constructor(public readonly config: OpenAPIConfig) {}\n\n    public abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>;\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n    public readonly url: string;\n    public readonly status: number;\n    public readonly statusText: string;\n    public readonly body: any;\n    public readonly request: ApiRequestOptions;\n\n    constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n        super(message);\n\n        this.name = 'ApiError';\n        this.url = response.url;\n        this.status = response.status;\n        this.statusText = response.statusText;\n        this.body = response.body;\n        this.request = request;\n    }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nexport class CancelError extends Error {\n\n    constructor(message: string) {\n        super(message);\n        this.name = 'CancelError';\n    }\n\n    public get isCancelled(): boolean {\n        return true;\n    }\n}\n\nexport interface OnCancel {\n    readonly isResolved: boolean;\n    readonly isRejected: boolean;\n    readonly isCancelled: boolean;\n\n    (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise<T> implements Promise<T> {\n    #isResolved: boolean;\n    #isRejected: boolean;\n    #isCancelled: boolean;\n    readonly #cancelHandlers: (() => void)[];\n    readonly #promise: Promise<T>;\n    #resolve?: (value: T | PromiseLike<T>) => void;\n    #reject?: (reason?: any) => void;\n\n    constructor(\n        executor: (\n            resolve: (value: T | PromiseLike<T>) => void,\n            reject: (reason?: any) => void,\n            onCancel: OnCancel\n        ) => void\n    ) {\n        this.#isResolved = false;\n        this.#isRejected = false;\n        this.#isCancelled = false;\n        this.#cancelHandlers = [];\n        this.#promise = new Promise<T>((resolve, reject) => {\n            this.#resolve = resolve;\n            this.#reject = reject;\n\n            const onResolve = (value: T | PromiseLike<T>): void => {\n                if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n                    return;\n                }\n                this.#isResolved = true;\n                this.#resolve?.(value);\n            };\n\n            const onReject = (reason?: any): void => {\n                if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n                    return;\n                }\n                this.#isRejected = true;\n                this.#reject?.(reason);\n            };\n\n            const onCancel = (cancelHandler: () => void): void => {\n                if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n                    return;\n                }\n                this.#cancelHandlers.push(cancelHandler);\n            };\n\n            Object.defineProperty(onCancel, 'isResolved', {\n                get: (): boolean => this.#isResolved,\n            });\n\n            Object.defineProperty(onCancel, 'isRejected', {\n                get: (): boolean => this.#isRejected,\n            });\n\n            Object.defineProperty(onCancel, 'isCancelled', {\n                get: (): boolean => this.#isCancelled,\n            });\n\n            return executor(onResolve, onReject, onCancel as OnCancel);\n        });\n    }\n\n     get [Symbol.toStringTag]() {\n            return \"Cancellable Promise\";\n     }\n\n    public then<TResult1 = T, TResult2 = never>(\n        onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n        onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n    ): Promise<TResult1 | TResult2> {\n        return this.#promise.then(onFulfilled, onRejected);\n    }\n\n    public catch<TResult = never>(\n        onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null\n    ): Promise<T | TResult> {\n        return this.#promise.catch(onRejected);\n    }\n\n    public finally(onFinally?: (() => void) | null): Promise<T> {\n        return this.#promise.finally(onFinally);\n    }\n\n    public cancel(): void {\n        if (this.#isResolved || this.#isRejected || this.#isCancelled) {\n            return;\n        }\n        this.#isCancelled = true;\n        if (this.#cancelHandlers.length) {\n            try {\n                for (const cancelHandler of this.#cancelHandlers) {\n                    cancelHandler();\n                }\n            } catch (error) {\n                console.warn('Cancellation threw an error', error);\n                return;\n            }\n        }\n        this.#cancelHandlers.length = 0;\n        this.#reject?.(new CancelError('Request aborted'));\n    }\n\n    public get isCancelled(): boolean {\n        return this.#isCancelled;\n    }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\nexport const isDefined = <T>(value: T | null | undefined): value is Exclude<T, null | undefined> => {\n    return value !== undefined && value !== null;\n};\n\nexport const isString = (value: any): value is string => {\n    return typeof value === 'string';\n};\n\nexport const isStringWithValue = (value: any): value is string => {\n    return isString(value) && value !== '';\n};\n\nexport const isBlob = (value: any): value is Blob => {\n    return (\n        typeof value === 'object' &&\n        typeof value.type === 'string' &&\n        typeof value.stream === 'function' &&\n        typeof value.arrayBuffer === 'function' &&\n        typeof value.constructor === 'function' &&\n        typeof value.constructor.name === 'string' &&\n        /^(Blob|File)$/.test(value.constructor.name) &&\n        /^(Blob|File)$/.test(value[Symbol.toStringTag])\n    );\n};\n\nexport const isFormData = (value: any): value is FormData => {\n    return value instanceof FormData;\n};\n\nexport const base64 = (str: string): string => {\n    try {\n        return btoa(str);\n    } catch (err) {\n        // @ts-ignore\n        return Buffer.from(str).toString('base64');\n    }\n};\n\nexport const getQueryString = (params: Record<string, any>): string => {\n    const qs: string[] = [];\n\n    const append = (key: string, value: any) => {\n        qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n    };\n\n    const process = (key: string, value: any) => {\n        if (isDefined(value)) {\n            if (Array.isArray(value)) {\n                value.forEach(v => {\n                    process(key, v);\n                });\n            } else if (typeof value === 'object') {\n                Object.entries(value).forEach(([k, v]) => {\n                    process(`${key}[${k}]`, v);\n                });\n            } else {\n                append(key, value);\n            }\n        }\n    };\n\n    Object.entries(params).forEach(([key, value]) => {\n        process(key, value);\n    });\n\n    if (qs.length > 0) {\n        return `?${qs.join('&')}`;\n    }\n\n    return '';\n};\n\nconst getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n    const encoder = config.ENCODE_PATH || encodeURI;\n\n    const path = options.url\n        .replace('{api-version}', config.VERSION)\n        .replace(/{(.*?)}/g, (substring: string, group: string) => {\n            if (options.path?.hasOwnProperty(group)) {\n                return encoder(String(options.path[group]));\n            }\n            return substring;\n        });\n\n    const url = `${config.BASE}${path}`;\n    if (options.query) {\n        return `${url}${getQueryString(options.query)}`;\n    }\n    return url;\n};\n\nexport const getFormData = (options: ApiRequestOptions): FormData | undefined => {\n    if (options.formData) {\n        const formData = new FormData();\n\n        const process = (key: string, value: any) => {\n            if (isString(value) || isBlob(value)) {\n                formData.append(key, value);\n            } else {\n                formData.append(key, JSON.stringify(value));\n            }\n        };\n\n        Object.entries(options.formData)\n            .filter(([_, value]) => isDefined(value))\n            .forEach(([key, value]) => {\n                if (Array.isArray(value)) {\n                    value.forEach(v => process(key, v));\n                } else {\n                    process(key, value);\n                }\n            });\n\n        return formData;\n    }\n    return undefined;\n};\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\n\nexport const resolve = async <T>(options: ApiRequestOptions, resolver?: T | Resolver<T>): Promise<T | undefined> => {\n    if (typeof resolver === 'function') {\n        return (resolver as Resolver<T>)(options);\n    }\n    return resolver;\n};\n\nexport const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise<Headers> => {\n    const token = await resolve(options, config.TOKEN);\n    const username = await resolve(options, config.USERNAME);\n    const password = await resolve(options, config.PASSWORD);\n    const additionalHeaders = await resolve(options, config.HEADERS);\n\n    const headers = Object.entries({\n        Accept: 'application/json',\n        ...additionalHeaders,\n        ...options.headers,\n    })\n        .filter(([_, value]) => isDefined(value))\n        .reduce((headers, [key, value]) => ({\n            ...headers,\n            [key]: String(value),\n        }), {} as Record<string, string>);\n\n    if (isStringWithValue(token)) {\n        headers['Authorization'] = `Bearer ${token}`;\n    }\n\n    if (isStringWithValue(username) && isStringWithValue(password)) {\n        const credentials = base64(`${username}:${password}`);\n        headers['Authorization'] = `Basic ${credentials}`;\n    }\n\n    if (options.body) {\n        if (options.mediaType) {\n            headers['Content-Type'] = options.mediaType;\n        } else if (isBlob(options.body)) {\n            headers['Content-Type'] = options.body.type || 'application/octet-stream';\n        } else if (isString(options.body)) {\n            headers['Content-Type'] = 'text/plain';\n        } else if (!isFormData(options.body)) {\n            headers['Content-Type'] = 'application/json';\n        }\n    }\n\n    return new Headers(headers);\n};\n\nexport const getRequestBody = (options: ApiRequestOptions): any => {\n    if (options.body !== undefined) {\n        if (options.mediaType?.includes('/json')) {\n            return JSON.stringify(options.body)\n        } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n            return options.body;\n        } else {\n            return JSON.stringify(options.body);\n        }\n    }\n    return undefined;\n};\n\nexport const sendRequest = async (\n    config: OpenAPIConfig,\n    options: ApiRequestOptions,\n    url: string,\n    body: any,\n    formData: FormData | undefined,\n    headers: Headers,\n    onCancel: OnCancel\n): Promise<Response> => {\n    const controller = new AbortController();\n\n    const request: RequestInit = {\n        headers,\n        body: body ?? formData,\n        method: options.method,\n        signal: controller.signal,\n    };\n\n    if (config.WITH_CREDENTIALS) {\n        request.credentials = config.CREDENTIALS;\n    }\n\n    onCancel(() => controller.abort());\n\n    return await fetch(url, request);\n};\n\nexport const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n    if (responseHeader) {\n        const content = response.headers.get(responseHeader);\n        if (isString(content)) {\n            return content;\n        }\n    }\n    return undefined;\n};\n\nexport const getResponseBody = async (response: Response): Promise<any> => {\n    if (response.status !== 204) {\n        try {\n            const contentType = response.headers.get('Content-Type');\n            if (contentType) {\n                const jsonTypes = ['application/json', 'application/problem+json']\n                const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type));\n                if (isJSON) {\n                    return await response.json();\n                } else {\n                    return await response.text();\n                }\n            }\n        } catch (error) {\n            console.error(error);\n        }\n    }\n    return undefined;\n};\n\nexport const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n    const errors: Record<number, string> = {\n        400: 'Bad Request',\n        401: 'Unauthorized',\n        403: 'Forbidden',\n        404: 'Not Found',\n        500: 'Internal Server Error',\n        502: 'Bad Gateway',\n        503: 'Service Unavailable',\n        ...options.errors,\n    }\n\n    const error = errors[result.status];\n    if (error) {\n        throw new ApiError(options, result, error);\n    }\n\n    if (!result.ok) {\n        const errorStatus = result.status ?? 'unknown';\n        const errorStatusText = result.statusText ?? 'unknown';\n        const errorBody = (() => {\n            try {\n                return JSON.stringify(result.body, null, 2);\n            } catch (e) {\n                return undefined;\n            }\n        })();\n\n        throw new ApiError(options, result,\n            `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`\n        );\n    }\n};\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise<T>\n * @throws ApiError\n */\nexport const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> => {\n    return new CancelablePromise(async (resolve, reject, onCancel) => {\n        try {\n            const url = getUrl(config, options);\n            const formData = getFormData(options);\n            const body = getRequestBody(options);\n            const headers = await getHeaders(config, options);\n\n            if (!onCancel.isCancelled) {\n                const response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n                const responseBody = await getResponseBody(response);\n                const responseHeader = getResponseHeader(response, options.responseHeader);\n\n                const result: ApiResult = {\n                    url,\n                    ok: response.ok,\n                    status: response.status,\n                    statusText: response.statusText,\n                    body: responseHeader ?? responseBody,\n                };\n\n                catchErrorCodes(options, result);\n\n                resolve(result.body);\n            }\n        } catch (error) {\n            reject(error);\n        }\n    });\n};\r\n","import {\r\n  StableDiffusionProcessingImg2Img,\r\n  StableDiffusionProcessingTxt2Img,\r\n} from \"../client\";\r\nimport { SDWebUIA1111SystemSettings } from \"./system.types\";\r\n\r\nexport enum ResizeModeI2i {\r\n  \"Just resize\" = 0,\r\n  \"Crop and resize\" = 1,\r\n  \"Resize and fill\" = 2,\r\n  \"Just resize (latent upscale)\" = 2,\r\n}\r\n\r\nexport enum InpaintFill {\r\n  \"fill\" = 0,\r\n  \"original\" = 1,\r\n  \"latent noise\" = 2,\r\n  \"latent nothing\" = 3,\r\n}\r\n\r\nexport enum InpaintFullRes {\r\n  \"Whole picture\" = 0,\r\n  \"Only masked\" = 1,\r\n}\r\n\r\nexport type Img2imgProcessParams = StableDiffusionProcessingImg2Img & {\r\n  resize_mode?: ResizeModeI2i;\r\n  inpainting_fill?: InpaintFill;\r\n  inpainting_mask_invert?: 0 | 1; // false or true\r\n  inpaint_full_res?: InpaintFullRes;\r\n  override_settings?: Record<keyof any, any> &\r\n    Partial<SDWebUIA1111SystemSettings>;\r\n};\r\n\r\nexport type Txt2imgProcessParams = StableDiffusionProcessingTxt2Img & {\r\n  override_settings?: Record<keyof any, any> &\r\n    Partial<SDWebUIA1111SystemSettings>;\r\n};\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { request as __request } from './request';\n\nexport class FetchHttpRequest extends BaseHttpRequest {\n\n    constructor(config: OpenAPIConfig) {\n        super(config);\n    }\n\n    /**\n     * Request method\n     * @param options The request options from the service\n     * @returns CancelablePromise<T>\n     * @throws ApiError\n     */\n    public override request<T>(options: ApiRequestOptions): CancelablePromise<T> {\n        return __request(this.config, options);\n    }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { Body_detect_controlnet_detect_post } from '../models/Body_detect_controlnet_detect_post';\nimport type { Body_rembg_remove_rembg_post } from '../models/Body_rembg_remove_rembg_post';\nimport type { Body_upload_file_upload_post } from '../models/Body_upload_file_upload_post';\nimport type { CreateResponse } from '../models/CreateResponse';\nimport type { EmbeddingsResponse } from '../models/EmbeddingsResponse';\nimport type { Estimation } from '../models/Estimation';\nimport type { ExtensionItem } from '../models/ExtensionItem';\nimport type { ExtrasBatchImagesRequest } from '../models/ExtrasBatchImagesRequest';\nimport type { ExtrasBatchImagesResponse } from '../models/ExtrasBatchImagesResponse';\nimport type { ExtrasSingleImageRequest } from '../models/ExtrasSingleImageRequest';\nimport type { ExtrasSingleImageResponse } from '../models/ExtrasSingleImageResponse';\nimport type { FaceRestorerItem } from '../models/FaceRestorerItem';\nimport type { Flags } from '../models/Flags';\nimport type { HistoryResponse } from '../models/HistoryResponse';\nimport type { HypernetworkItem } from '../models/HypernetworkItem';\nimport type { ImageToImageResponse } from '../models/ImageToImageResponse';\nimport type { Img2ImgApiTaskArgs } from '../models/Img2ImgApiTaskArgs';\nimport type { InterrogateRequest } from '../models/InterrogateRequest';\nimport type { LatentUpscalerModeItem } from '../models/LatentUpscalerModeItem';\nimport type { MemoryResponse } from '../models/MemoryResponse';\nimport type { modules__api__models__ProgressResponse } from '../models/modules__api__models__ProgressResponse';\nimport type { modules__progress__ProgressResponse } from '../models/modules__progress__ProgressResponse';\nimport type { Options } from '../models/Options';\nimport type { PNGInfoRequest } from '../models/PNGInfoRequest';\nimport type { PNGInfoResponse } from '../models/PNGInfoResponse';\nimport type { PoseData } from '../models/PoseData';\nimport type { PredictBody } from '../models/PredictBody';\nimport type { ProgressRequest } from '../models/ProgressRequest';\nimport type { PromptStyleItem } from '../models/PromptStyleItem';\nimport type { QueueStatusResponse } from '../models/QueueStatusResponse';\nimport type { QueueTaskResponse } from '../models/QueueTaskResponse';\nimport type { QuicksettingsHint } from '../models/QuicksettingsHint';\nimport type { RealesrganItem } from '../models/RealesrganItem';\nimport type { ResetBody } from '../models/ResetBody';\nimport type { SamplerItem } from '../models/SamplerItem';\nimport type { SchedulerItem } from '../models/SchedulerItem';\nimport type { ScriptInfo } from '../models/ScriptInfo';\nimport type { ScriptsList } from '../models/ScriptsList';\nimport type { SDModelItem } from '../models/SDModelItem';\nimport type { SDVaeItem } from '../models/SDVaeItem';\nimport type { StableDiffusionProcessingImg2Img } from '../models/StableDiffusionProcessingImg2Img';\nimport type { StableDiffusionProcessingTxt2Img } from '../models/StableDiffusionProcessingTxt2Img';\nimport type { StringRequestBody } from '../models/StringRequestBody';\nimport type { TextToImageResponse } from '../models/TextToImageResponse';\nimport type { TrainResponse } from '../models/TrainResponse';\nimport type { Txt2ImgApiTaskArgs } from '../models/Txt2ImgApiTaskArgs';\nimport type { UpdateTaskArgs } from '../models/UpdateTaskArgs';\nimport type { UpscalerItem } from '../models/UpscalerItem';\nimport type { UseCountListRequest } from '../models/UseCountListRequest';\n\nimport type { CancelablePromise } from '../core/CancelablePromise';\nimport type { BaseHttpRequest } from '../core/BaseHttpRequest';\n\nexport class DefaultService {\n\n    constructor(public readonly httpRequest: BaseHttpRequest) {}\n\n    /**\n     * Get Current User\n     * @returns string Successful Response\n     * @throws ApiError\n     */\n    public getCurrentUserUserGet(): CancelablePromise<string> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/user/',\n        });\n    }\n\n    /**\n     * Get Current User\n     * @returns string Successful Response\n     * @throws ApiError\n     */\n    public getCurrentUserUserGet1(): CancelablePromise<string> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/user',\n        });\n    }\n\n    /**\n     * App Id\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public appIdAppIdGet(): CancelablePromise<Record<string, any>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/app_id/',\n        });\n    }\n\n    /**\n     * App Id\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public appIdAppIdGet1(): CancelablePromise<Record<string, any>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/app_id',\n        });\n    }\n\n    /**\n     * Api Info\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public apiInfoInfoGet({\nserialize = true,\n}: {\nserialize?: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/info',\n            query: {\n                'serialize': serialize,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Build Resource\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public buildResourceAssetsPathGet({\npath,\n}: {\npath: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/assets/{path}',\n            path: {\n                'path': path,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Reverse Proxy\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public reverseProxyProxyUrlPathGet({\nurlPath,\n}: {\nurlPath: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/proxy={url_path}',\n            path: {\n                'url_path': urlPath,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Reverse Proxy\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public reverseProxyProxyUrlPathHead({\nurlPath,\n}: {\nurlPath: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'HEAD',\n            url: '/proxy={url_path}',\n            path: {\n                'url_path': urlPath,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Stream\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public streamStreamSessionHashRunComponentIdGet({\nsessionHash,\nrun,\ncomponentId,\n}: {\nsessionHash: string,\nrun: number,\ncomponentId: number,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/stream/{session_hash}/{run}/{component_id}',\n            path: {\n                'session_hash': sessionHash,\n                'run': run,\n                'component_id': componentId,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * File Deprecated\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public fileDeprecatedFilePathGet({\npath,\n}: {\npath: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/file/{path}',\n            path: {\n                'path': path,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Reset Iterator\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public resetIteratorResetPost({\nrequestBody,\n}: {\nrequestBody: ResetBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/reset',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Reset Iterator\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public resetIteratorResetPost1({\nrequestBody,\n}: {\nrequestBody: ResetBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/reset/',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Predict\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public predictApiApiNamePost({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/api/{api_name}/',\n            path: {\n                'api_name': apiName,\n            },\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Predict\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public predictApiApiNamePost1({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/api/{api_name}',\n            path: {\n                'api_name': apiName,\n            },\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Predict\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public predictRunApiNamePost({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/run/{api_name}/',\n            path: {\n                'api_name': apiName,\n            },\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Predict\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public predictRunApiNamePost1({\napiName,\nrequestBody,\n}: {\napiName: string,\nrequestBody: PredictBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/run/{api_name}',\n            path: {\n                'api_name': apiName,\n            },\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Queue Status\n     * @returns Estimation Successful Response\n     * @throws ApiError\n     */\n    public getQueueStatusQueueStatusGet(): CancelablePromise<Estimation> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/queue/status',\n        });\n    }\n\n    /**\n     * Upload File\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public uploadFileUploadPost({\nformData,\n}: {\nformData: Body_upload_file_upload_post,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/upload',\n            formData: formData,\n            mediaType: 'multipart/form-data',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Pending Tasks\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getPendingTasksInternalPendingTasksGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/pending-tasks',\n        });\n    }\n\n    /**\n     * Progressapi\n     * @returns modules__progress__ProgressResponse Successful Response\n     * @throws ApiError\n     */\n    public progressapiInternalProgressPost({\nrequestBody,\n}: {\nrequestBody: ProgressRequest,\n}): CancelablePromise<modules__progress__ProgressResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/internal/progress',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Quicksettings Hint\n     * @returns QuicksettingsHint Successful Response\n     * @throws ApiError\n     */\n    public quicksettingsHintInternalQuicksettingsHintGet(): CancelablePromise<Array<QuicksettingsHint>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/quicksettings-hint',\n        });\n    }\n\n    /**\n     * <Lambda>\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public lambdaInternalPingGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/ping',\n        });\n    }\n\n    /**\n     * <Lambda>\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public lambdaInternalProfileStartupGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/profile-startup',\n        });\n    }\n\n    /**\n     * Download Sysinfo\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public downloadSysinfoInternalSysinfoGet({\nattachment,\n}: {\nattachment?: any,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/sysinfo',\n            query: {\n                'attachment': attachment,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * <Lambda>\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public lambdaInternalSysinfoDownloadGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/internal/sysinfo-download',\n        });\n    }\n\n    /**\n     * Text2Imgapi\n     * @returns TextToImageResponse Successful Response\n     * @throws ApiError\n     */\n    public text2ImgapiSdapiV1Txt2ImgPost({\nrequestBody,\n}: {\nrequestBody: StableDiffusionProcessingTxt2Img,\n}): CancelablePromise<TextToImageResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/txt2img',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Img2Imgapi\n     * @returns ImageToImageResponse Successful Response\n     * @throws ApiError\n     */\n    public img2ImgapiSdapiV1Img2ImgPost({\nrequestBody,\n}: {\nrequestBody: StableDiffusionProcessingImg2Img,\n}): CancelablePromise<ImageToImageResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/img2img',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Extras Single Image Api\n     * @returns ExtrasSingleImageResponse Successful Response\n     * @throws ApiError\n     */\n    public extrasSingleImageApiSdapiV1ExtraSingleImagePost({\nrequestBody,\n}: {\nrequestBody: ExtrasSingleImageRequest,\n}): CancelablePromise<ExtrasSingleImageResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/extra-single-image',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Extras Batch Images Api\n     * @returns ExtrasBatchImagesResponse Successful Response\n     * @throws ApiError\n     */\n    public extrasBatchImagesApiSdapiV1ExtraBatchImagesPost({\nrequestBody,\n}: {\nrequestBody: ExtrasBatchImagesRequest,\n}): CancelablePromise<ExtrasBatchImagesResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/extra-batch-images',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Pnginfoapi\n     * @returns PNGInfoResponse Successful Response\n     * @throws ApiError\n     */\n    public pnginfoapiSdapiV1PngInfoPost({\nrequestBody,\n}: {\nrequestBody: PNGInfoRequest,\n}): CancelablePromise<PNGInfoResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/png-info',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Progressapi\n     * @returns modules__api__models__ProgressResponse Successful Response\n     * @throws ApiError\n     */\n    public progressapiSdapiV1ProgressGet({\nskipCurrentImage = false,\n}: {\nskipCurrentImage?: boolean,\n}): CancelablePromise<modules__api__models__ProgressResponse> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/progress',\n            query: {\n                'skip_current_image': skipCurrentImage,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Interrogateapi\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public interrogateapiSdapiV1InterrogatePost({\nrequestBody,\n}: {\nrequestBody: InterrogateRequest,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/interrogate',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Interruptapi\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public interruptapiSdapiV1InterruptPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/interrupt',\n        });\n    }\n\n    /**\n     * Skip\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public skipSdapiV1SkipPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/skip',\n        });\n    }\n\n    /**\n     * Get Config\n     * @returns Options Successful Response\n     * @throws ApiError\n     */\n    public getConfigSdapiV1OptionsGet(): CancelablePromise<Options> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/options',\n        });\n    }\n\n    /**\n     * Set Config\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public setConfigSdapiV1OptionsPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/options',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Cmd Flags\n     * @returns Flags Successful Response\n     * @throws ApiError\n     */\n    public getCmdFlagsSdapiV1CmdFlagsGet(): CancelablePromise<Flags> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/cmd-flags',\n        });\n    }\n\n    /**\n     * Get Samplers\n     * @returns SamplerItem Successful Response\n     * @throws ApiError\n     */\n    public getSamplersSdapiV1SamplersGet(): CancelablePromise<Array<SamplerItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/samplers',\n        });\n    }\n\n    /**\n     * Get Schedulers\n     * @returns SchedulerItem Successful Response\n     * @throws ApiError\n     */\n    public getSchedulersSdapiV1SchedulersGet(): CancelablePromise<Array<SchedulerItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/schedulers',\n        });\n    }\n\n    /**\n     * Get Upscalers\n     * @returns UpscalerItem Successful Response\n     * @throws ApiError\n     */\n    public getUpscalersSdapiV1UpscalersGet(): CancelablePromise<Array<UpscalerItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/upscalers',\n        });\n    }\n\n    /**\n     * Get Latent Upscale Modes\n     * @returns LatentUpscalerModeItem Successful Response\n     * @throws ApiError\n     */\n    public getLatentUpscaleModesSdapiV1LatentUpscaleModesGet(): CancelablePromise<Array<LatentUpscalerModeItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/latent-upscale-modes',\n        });\n    }\n\n    /**\n     * Get Sd Models\n     * @returns SDModelItem Successful Response\n     * @throws ApiError\n     */\n    public getSdModelsSdapiV1SdModelsGet(): CancelablePromise<Array<SDModelItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/sd-models',\n        });\n    }\n\n    /**\n     * Get Sd Vaes\n     * @returns SDVaeItem Successful Response\n     * @throws ApiError\n     */\n    public getSdVaesSdapiV1SdVaeGet(): CancelablePromise<Array<SDVaeItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/sd-vae',\n        });\n    }\n\n    /**\n     * Get Hypernetworks\n     * @returns HypernetworkItem Successful Response\n     * @throws ApiError\n     */\n    public getHypernetworksSdapiV1HypernetworksGet(): CancelablePromise<Array<HypernetworkItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/hypernetworks',\n        });\n    }\n\n    /**\n     * Get Face Restorers\n     * @returns FaceRestorerItem Successful Response\n     * @throws ApiError\n     */\n    public getFaceRestorersSdapiV1FaceRestorersGet(): CancelablePromise<Array<FaceRestorerItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/face-restorers',\n        });\n    }\n\n    /**\n     * Get Realesrgan Models\n     * @returns RealesrganItem Successful Response\n     * @throws ApiError\n     */\n    public getRealesrganModelsSdapiV1RealesrganModelsGet(): CancelablePromise<Array<RealesrganItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/realesrgan-models',\n        });\n    }\n\n    /**\n     * Get Prompt Styles\n     * @returns PromptStyleItem Successful Response\n     * @throws ApiError\n     */\n    public getPromptStylesSdapiV1PromptStylesGet(): CancelablePromise<Array<PromptStyleItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/prompt-styles',\n        });\n    }\n\n    /**\n     * Get Embeddings\n     * @returns EmbeddingsResponse Successful Response\n     * @throws ApiError\n     */\n    public getEmbeddingsSdapiV1EmbeddingsGet(): CancelablePromise<EmbeddingsResponse> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/embeddings',\n        });\n    }\n\n    /**\n     * Refresh Embeddings\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public refreshEmbeddingsSdapiV1RefreshEmbeddingsPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/refresh-embeddings',\n        });\n    }\n\n    /**\n     * Refresh Checkpoints\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public refreshCheckpointsSdapiV1RefreshCheckpointsPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/refresh-checkpoints',\n        });\n    }\n\n    /**\n     * Refresh Vae\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public refreshVaeSdapiV1RefreshVaePost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/refresh-vae',\n        });\n    }\n\n    /**\n     * Create Embedding\n     * @returns CreateResponse Successful Response\n     * @throws ApiError\n     */\n    public createEmbeddingSdapiV1CreateEmbeddingPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<CreateResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/create/embedding',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Create Hypernetwork\n     * @returns CreateResponse Successful Response\n     * @throws ApiError\n     */\n    public createHypernetworkSdapiV1CreateHypernetworkPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<CreateResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/create/hypernetwork',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Train Embedding\n     * @returns TrainResponse Successful Response\n     * @throws ApiError\n     */\n    public trainEmbeddingSdapiV1TrainEmbeddingPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<TrainResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/train/embedding',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Train Hypernetwork\n     * @returns TrainResponse Successful Response\n     * @throws ApiError\n     */\n    public trainHypernetworkSdapiV1TrainHypernetworkPost({\nrequestBody,\n}: {\nrequestBody: Record<string, any>,\n}): CancelablePromise<TrainResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/train/hypernetwork',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Memory\n     * @returns MemoryResponse Successful Response\n     * @throws ApiError\n     */\n    public getMemorySdapiV1MemoryGet(): CancelablePromise<MemoryResponse> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/memory',\n        });\n    }\n\n    /**\n     * Unloadapi\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public unloadapiSdapiV1UnloadCheckpointPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/unload-checkpoint',\n        });\n    }\n\n    /**\n     * Reloadapi\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public reloadapiSdapiV1ReloadCheckpointPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/reload-checkpoint',\n        });\n    }\n\n    /**\n     * Get Scripts List\n     * @returns ScriptsList Successful Response\n     * @throws ApiError\n     */\n    public getScriptsListSdapiV1ScriptsGet(): CancelablePromise<ScriptsList> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/scripts',\n        });\n    }\n\n    /**\n     * Get Script Info\n     * @returns ScriptInfo Successful Response\n     * @throws ApiError\n     */\n    public getScriptInfoSdapiV1ScriptInfoGet(): CancelablePromise<Array<ScriptInfo>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/script-info',\n        });\n    }\n\n    /**\n     * Get Extensions List\n     * @returns ExtensionItem Successful Response\n     * @throws ApiError\n     */\n    public getExtensionsListSdapiV1ExtensionsGet(): CancelablePromise<Array<ExtensionItem>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/extensions',\n        });\n    }\n\n    /**\n     * Fetch File\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public fetchFileSdExtraNetworksThumbGet({\nfilename = '',\n}: {\nfilename?: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sd_extra_networks/thumb',\n            query: {\n                'filename': filename,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Fetch Cover Images\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public fetchCoverImagesSdExtraNetworksCoverImagesGet({\npage = '',\nitem = '',\nindex,\n}: {\npage?: string,\nitem?: string,\nindex?: number,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sd_extra_networks/cover-images',\n            query: {\n                'page': page,\n                'item': item,\n                'index': index,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Metadata\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getMetadataSdExtraNetworksMetadataGet({\npage = '',\nitem = '',\n}: {\npage?: string,\nitem?: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sd_extra_networks/metadata',\n            query: {\n                'page': page,\n                'item': item,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Single Card\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getSingleCardSdExtraNetworksGetSingleCardGet({\npage = '',\ntabname = '',\nname = '',\n}: {\npage?: string,\ntabname?: string,\nname?: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sd_extra_networks/get-single-card',\n            query: {\n                'page': page,\n                'tabname': tabname,\n                'name': name,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Loras\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getLorasSdapiV1LorasGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/sdapi/v1/loras',\n        });\n    }\n\n    /**\n     * Refresh Loras\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public refreshLorasSdapiV1RefreshLorasPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/sdapi/v1/refresh-loras',\n        });\n    }\n\n    /**\n     * Api Refresh Temp Files\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public apiRefreshTempFilesTacapiV1RefreshTempFilesPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/tacapi/v1/refresh-temp-files',\n        });\n    }\n\n    /**\n     * Api Refresh Embeddings\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public apiRefreshEmbeddingsTacapiV1RefreshEmbeddingsPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/tacapi/v1/refresh-embeddings',\n        });\n    }\n\n    /**\n     * Get Lora Info\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getLoraInfoTacapiV1LoraInfoLoraNameGet({\nloraName,\n}: {\nloraName: any,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/lora-info/{lora_name}',\n            path: {\n                'lora_name': loraName,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Lyco Info\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getLycoInfoTacapiV1LycoInfoLycoNameGet({\nlycoName,\n}: {\nlycoName: any,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/lyco-info/{lyco_name}',\n            path: {\n                'lyco_name': lycoName,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Lora Cached Hash\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getLoraCachedHashTacapiV1LoraCachedHashLoraNameGet({\nloraName,\n}: {\nloraName: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/lora-cached-hash/{lora_name}',\n            path: {\n                'lora_name': loraName,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Thumb Preview\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getThumbPreviewTacapiV1ThumbPreviewFilenameGet({\nfilename,\ntype,\n}: {\nfilename: any,\ntype: any,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/thumb-preview/{filename}',\n            path: {\n                'filename': filename,\n            },\n            query: {\n                'type': type,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Thumb Preview Blob\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getThumbPreviewBlobTacapiV1ThumbPreviewBlobFilenameGet({\nfilename,\ntype,\n}: {\nfilename: any,\ntype: any,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/thumb-preview-blob/{filename}',\n            path: {\n                'filename': filename,\n            },\n            query: {\n                'type': type,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Wildcard Contents\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getWildcardContentsTacapiV1WildcardContentsGet({\nbasepath,\nfilename,\n}: {\nbasepath: string,\nfilename: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/wildcard-contents',\n            query: {\n                'basepath': basepath,\n                'filename': filename,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Refresh Styles If Changed\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public refreshStylesIfChangedTacapiV1RefreshStylesIfChangedGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/refresh-styles-if-changed',\n        });\n    }\n\n    /**\n     * Increase Use Count\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public increaseUseCountTacapiV1IncreaseUseCountPost({\ntagname,\nttype,\nneg,\n}: {\ntagname: string,\nttype: number,\nneg: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/tacapi/v1/increase-use-count',\n            query: {\n                'tagname': tagname,\n                'ttype': ttype,\n                'neg': neg,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Use Count\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getUseCountTacapiV1GetUseCountGet({\ntagname,\nttype,\nneg,\n}: {\ntagname: string,\nttype: number,\nneg: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/get-use-count',\n            query: {\n                'tagname': tagname,\n                'ttype': ttype,\n                'neg': neg,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Use Count List\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getUseCountListTacapiV1GetUseCountListPost({\nrequestBody,\n}: {\nrequestBody: UseCountListRequest,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/tacapi/v1/get-use-count-list',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Reset Use Count\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public resetUseCountTacapiV1ResetUseCountPut({\ntagname,\nttype,\npos,\nneg,\n}: {\ntagname: string,\nttype: number,\npos: boolean,\nneg: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'PUT',\n            url: '/tacapi/v1/reset-use-count',\n            query: {\n                'tagname': tagname,\n                'ttype': ttype,\n                'pos': pos,\n                'neg': neg,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get All Tag Counts\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getAllTagCountsTacapiV1GetAllUseCountsGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/tacapi/v1/get-all-use-counts',\n        });\n    }\n\n    /**\n     * Get Samplers\n     * @returns string Successful Response\n     * @throws ApiError\n     */\n    public getSamplersAgentSchedulerV1SamplersGet(): CancelablePromise<Array<string>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/samplers',\n        });\n    }\n\n    /**\n     * Get Sd Models\n     * @returns string Successful Response\n     * @throws ApiError\n     */\n    public getSdModelsAgentSchedulerV1SdModelsGet(): CancelablePromise<Array<string>> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/sd-models',\n        });\n    }\n\n    /**\n     * Queue Txt2Img\n     * @returns QueueTaskResponse Successful Response\n     * @throws ApiError\n     */\n    public queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost({\nrequestBody,\n}: {\nrequestBody: Txt2ImgApiTaskArgs,\n}): CancelablePromise<QueueTaskResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/queue/txt2img',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Queue Img2Img\n     * @returns QueueTaskResponse Successful Response\n     * @throws ApiError\n     */\n    public queueImg2ImgAgentSchedulerV1QueueImg2ImgPost({\nrequestBody,\n}: {\nrequestBody: Img2ImgApiTaskArgs,\n}): CancelablePromise<QueueTaskResponse> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/queue/img2img',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Queue Status Api\n     * @returns QueueStatusResponse Successful Response\n     * @throws ApiError\n     */\n    public queueStatusApiAgentSchedulerV1QueueGet({\nlimit = 20,\noffset,\n}: {\nlimit?: number,\noffset?: number,\n}): CancelablePromise<QueueStatusResponse> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/queue',\n            query: {\n                'limit': limit,\n                'offset': offset,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Export Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public exportQueueAgentSchedulerV1ExportGet({\nlimit = 1000,\noffset,\n}: {\nlimit?: number,\noffset?: number,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/export',\n            query: {\n                'limit': limit,\n                'offset': offset,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Import Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public importQueueAgentSchedulerV1ImportPost({\nrequestBody,\n}: {\nrequestBody: StringRequestBody,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/import',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * History Api\n     * @returns HistoryResponse Successful Response\n     * @throws ApiError\n     */\n    public historyApiAgentSchedulerV1HistoryGet({\nstatus,\nlimit = 20,\noffset,\n}: {\nstatus?: string,\nlimit?: number,\noffset?: number,\n}): CancelablePromise<HistoryResponse> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/history',\n            query: {\n                'status': status,\n                'limit': limit,\n                'offset': offset,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getTaskAgentSchedulerV1TaskIdGet({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/task/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Update Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public updateTaskAgentSchedulerV1TaskIdPut({\nid,\nrequestBody,\n}: {\nid: string,\nrequestBody: UpdateTaskArgs,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'PUT',\n            url: '/agent-scheduler/v1/task/{id}',\n            path: {\n                'id': id,\n            },\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Delete Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public deleteTaskAgentSchedulerV1TaskIdDelete({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'DELETE',\n            url: '/agent-scheduler/v1/task/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Task Position\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getTaskPositionAgentSchedulerV1TaskIdPositionGet({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/task/{id}/position',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Run Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public runTaskAgentSchedulerV1TaskIdRunPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/run',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Run Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public runTaskAgentSchedulerV1RunIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/run/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Requeue Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public requeueTaskAgentSchedulerV1TaskIdRequeuePost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/requeue',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Requeue Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public requeueTaskAgentSchedulerV1RequeueIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/requeue/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Requeue Failed Tasks\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public requeueFailedTasksAgentSchedulerV1TaskRequeueFailedPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/requeue-failed',\n        });\n    }\n\n    /**\n     * @deprecated\n     * Delete Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public deleteTaskAgentSchedulerV1DeleteIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/delete/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Move Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public moveTaskAgentSchedulerV1TaskIdMoveOverIdPost({\nid,\noverId,\n}: {\nid: string,\noverId: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/move/{over_id}',\n            path: {\n                'id': id,\n                'over_id': overId,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Move Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public moveTaskAgentSchedulerV1MoveIdOverIdPost({\nid,\noverId,\n}: {\nid: string,\noverId: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/move/{id}/{over_id}',\n            path: {\n                'id': id,\n                'over_id': overId,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Pin Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public pinTaskAgentSchedulerV1TaskIdBookmarkPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/bookmark',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Pin Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public pinTaskAgentSchedulerV1BookmarkIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/bookmark/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Unpin Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public unpinTaskAgentSchedulerV1TaskIdUnbookmarkPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/unbookmark',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Unpin Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public unpinTaskAgentSchedulerV1UnbookmarkIdPost({\nid,\n}: {\nid: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/unbookmark/{id}',\n            path: {\n                'id': id,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Rename Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public renameTaskAgentSchedulerV1TaskIdRenamePost({\nid,\nname,\n}: {\nid: string,\nname: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/task/{id}/rename',\n            path: {\n                'id': id,\n            },\n            query: {\n                'name': name,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Rename Task\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public renameTaskAgentSchedulerV1RenameIdPost({\nid,\nname,\n}: {\nid: string,\nname: string,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/rename/{id}',\n            path: {\n                'id': id,\n            },\n            query: {\n                'name': name,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Get Task Results\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getTaskResultsAgentSchedulerV1TaskIdResultsGet({\nid,\nzip = false,\n}: {\nid: string,\nzip?: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/task/{id}/results',\n            path: {\n                'id': id,\n            },\n            query: {\n                'zip': zip,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * @deprecated\n     * Get Task Results\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public getTaskResultsAgentSchedulerV1ResultsIdGet({\nid,\nzip = false,\n}: {\nid: string,\nzip?: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/agent-scheduler/v1/results/{id}',\n            path: {\n                'id': id,\n            },\n            query: {\n                'zip': zip,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Pause Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public pauseQueueAgentSchedulerV1QueuePausePost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/queue/pause',\n        });\n    }\n\n    /**\n     * @deprecated\n     * Pause Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public pauseQueueAgentSchedulerV1PausePost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/pause',\n        });\n    }\n\n    /**\n     * Resume Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public resumeQueueAgentSchedulerV1QueueResumePost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/queue/resume',\n        });\n    }\n\n    /**\n     * @deprecated\n     * Resume Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public resumeQueueAgentSchedulerV1ResumePost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/resume',\n        });\n    }\n\n    /**\n     * Clear Queue\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public clearQueueAgentSchedulerV1QueueClearPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/queue/clear',\n        });\n    }\n\n    /**\n     * Clear History\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public clearHistoryAgentSchedulerV1HistoryClearPost(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/agent-scheduler/v1/history/clear',\n        });\n    }\n\n    /**\n     * Version\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public versionControlnetVersionGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/controlnet/version',\n        });\n    }\n\n    /**\n     * Model List\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public modelListControlnetModelListGet({\nupdate = true,\n}: {\nupdate?: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/controlnet/model_list',\n            query: {\n                'update': update,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Module List\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public moduleListControlnetModuleListGet({\naliasNames = false,\n}: {\naliasNames?: boolean,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/controlnet/module_list',\n            query: {\n                'alias_names': aliasNames,\n            },\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Control Types\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public controlTypesControlnetControlTypesGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/controlnet/control_types',\n        });\n    }\n\n    /**\n     * Settings\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public settingsControlnetSettingsGet(): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'GET',\n            url: '/controlnet/settings',\n        });\n    }\n\n    /**\n     * Detect\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public detectControlnetDetectPost({\nrequestBody,\n}: {\nrequestBody?: Body_detect_controlnet_detect_post,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/controlnet/detect',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Render Openpose Json\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public renderOpenposeJsonControlnetRenderOpenposeJsonPost({\nrequestBody,\n}: {\nrequestBody?: Array<PoseData>,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/controlnet/render_openpose_json',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n    /**\n     * Rembg Remove\n     * @returns any Successful Response\n     * @throws ApiError\n     */\n    public rembgRemoveRembgPost({\nrequestBody,\n}: {\nrequestBody?: Body_rembg_remove_rembg_post,\n}): CancelablePromise<any> {\n        return this.httpRequest.request({\n            method: 'POST',\n            url: '/rembg',\n            body: requestBody,\n            mediaType: 'application/json',\n            errors: {\n                422: `Validation Error`,\n            },\n        });\n    }\n\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { FetchHttpRequest } from './core/FetchHttpRequest';\n\nimport { DefaultService } from './services/DefaultService';\n\ntype HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport class SDWebUIA1111Client {\n\n    public readonly default: DefaultService;\n\n    public readonly request: BaseHttpRequest;\n\n    constructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = FetchHttpRequest) {\n        this.request = new HttpRequest({\n            BASE: config?.BASE ?? '',\n            VERSION: config?.VERSION ?? '0.1.0',\n            WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n            CREDENTIALS: config?.CREDENTIALS ?? 'include',\n            TOKEN: config?.TOKEN,\n            USERNAME: config?.USERNAME,\n            PASSWORD: config?.PASSWORD,\n            HEADERS: config?.HEADERS,\n            ENCODE_PATH: config?.ENCODE_PATH,\n        });\n\n        this.default = new DefaultService(this.request);\n    }\n}\r\n","/* generated using openapi-typescript-codegen -- do no edit */\n/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver<T> = (options: ApiRequestOptions) => Promise<T>;\ntype Headers = Record<string, string>;\n\nexport type OpenAPIConfig = {\n    BASE: string;\n    VERSION: string;\n    WITH_CREDENTIALS: boolean;\n    CREDENTIALS: 'include' | 'omit' | 'same-origin';\n    TOKEN?: string | Resolver<string> | undefined;\n    USERNAME?: string | Resolver<string> | undefined;\n    PASSWORD?: string | Resolver<string> | undefined;\n    HEADERS?: Headers | Resolver<Headers> | undefined;\n    ENCODE_PATH?: ((path: string) => string) | undefined;\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n    BASE: '',\n    VERSION: '0.1.0',\n    WITH_CREDENTIALS: false,\n    CREDENTIALS: 'include',\n    TOKEN: undefined,\n    USERNAME: undefined,\n    PASSWORD: undefined,\n    HEADERS: undefined,\n    ENCODE_PATH: undefined,\n};\r\n","import { SDWebUIA1111Client } from \"../client\";\r\nimport { ExtensionScript } from \"../extensions/ExtensionScript\";\r\nimport { deepClone } from \"../misc\";\r\n\r\nexport class SDProcessor<Body> {\r\n  protected extensions = [] as ExtensionScript[];\r\n\r\n  constructor(readonly init_body: Body) {}\r\n\r\n  /**\r\n   * Converts the object to its JSON representation.\r\n   *\r\n   * @return {any} The JSON representation of the object.\r\n   */\r\n  toJSON() {\r\n    const body = deepClone(this.init_body);\r\n    for (const ext of this.extensions) {\r\n      ext.install(body as any);\r\n    }\r\n    return body;\r\n  }\r\n\r\n  /**\r\n   * Adds an extension to the list of extensions.\r\n   *\r\n   * @param {ExtensionScript} ext - The extension to be added.\r\n   * @return {SDProcessor<Body>} The current SDProcessing object.\r\n   */\r\n  use(ext: ExtensionScript) {\r\n    this.extensions.push(ext);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates and adds a new ExtensionScript to the list of extensions.\r\n   *\r\n   * @param {string} name - The name of the extension script.\r\n   * @param {any[]} args - The arguments for the extension script.\r\n   * @return {SDProcessor<Body>} The current SDProcessing object.\r\n   */\r\n  useCustomExt(name: string, args: any[]) {\r\n    const ext = new ExtensionScript(name, args);\r\n    this.extensions.push(ext);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Clears the extensions array.\r\n   *\r\n   */\r\n  clear() {\r\n    this.extensions = [];\r\n  }\r\n\r\n  /**\r\n   * A description of the entire function.\r\n   *\r\n   * @param {SDWebUIA1111Client} client - The SDWebUIA1111Client object used for the request.\r\n   * @return {any} The response from the request.\r\n   */\r\n  request(client: SDWebUIA1111Client): any {\r\n    throw new Error(\"Method not implemented.\");\r\n  }\r\n}\r\n","import {\r\n  CancelablePromise,\r\n  ImageToImageResponse,\r\n  SDWebUIA1111Client,\r\n} from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport { Img2imgProcessParams } from \"./types\";\r\n\r\n/**\r\n * Img2imgProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new Img2imgProcess({ prompt: \"1girl\" });\r\n * const {images} = await process.request(client);\r\n * const image = images[0]; // base64 image string\r\n * ```\r\n */\r\nexport class Img2imgProcess extends SDProcessor<Img2imgProcessParams> {\r\n  request(client: SDWebUIA1111Client) {\r\n    const requestBody = this.toJSON();\r\n    return client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n      requestBody,\r\n    }) as CancelablePromise<\r\n      ImageToImageResponse & {\r\n        parameters: Img2imgProcessParams;\r\n      }\r\n    >;\r\n  }\r\n}\r\n","import {\r\n  CancelablePromise,\r\n  TextToImageResponse,\r\n  type SDWebUIA1111Client,\r\n} from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport type { Txt2imgProcessParams } from \"./types\";\r\n\r\n/**\r\n * Txt2imgProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new Txt2imgProcess({ prompt: \"1girl\" });\r\n * const {images} = await process.request(client);\r\n * const image = images[0]; // base64 image string\r\n * ```\r\n */\r\nexport class Txt2imgProcess extends SDProcessor<Txt2imgProcessParams> {\r\n  request(client: SDWebUIA1111Client) {\r\n    const requestBody = this.toJSON();\r\n    return client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n      requestBody,\r\n    }) as CancelablePromise<\r\n      TextToImageResponse & { parameters: Txt2imgProcessParams }\r\n    >;\r\n  }\r\n}\r\n","import { SDWebUIA1111Client } from \"../client\";\r\nimport { SDProcessor } from \"./SDProcessor\";\r\nimport { SDWebUIA1111SystemSettings } from \"./system.types\";\r\n\r\n/**\r\n * SystemSettingProcess\r\n *\r\n * usage:\r\n * ```ts\r\n * const client = new SDWebUIA1111Client();\r\n * const process = new SystemSettingProcess({\r\n *   samples_save: true,\r\n *   samples_format: \"png\",\r\n *   samples_filename_pattern: \"sample\",\r\n * });\r\n * await process.request(client);\r\n * ```\r\n */\r\nexport class SystemSettingProcess extends SDProcessor<\r\n  Partial<SDWebUIA1111SystemSettings>\r\n> {\r\n  request(client: SDWebUIA1111Client) {\r\n    return client.default.setConfigSdapiV1OptionsPost({\r\n      requestBody: this.toJSON(),\r\n    });\r\n  }\r\n}\r\n","import { SDWebUIA1111Client } from \"../client\";\r\n\r\ntype TaskResult = {\r\n  image: string;\r\n  infotext: string;\r\n};\r\n\r\nexport class SDTaskRunner {\r\n  protected data = [] as TaskResult[];\r\n  protected message = \"\";\r\n\r\n  queryLoop?: Promise<TaskResult[]>;\r\n  constructor(\r\n    protected client: SDWebUIA1111Client,\r\n    readonly task_id: string,\r\n    private intervalMs = 3000\r\n  ) {}\r\n\r\n  protected running = false;\r\n  async run() {\r\n    if (this.running) {\r\n      return;\r\n    }\r\n    await this.client.default.runTaskAgentSchedulerV1RunIdPost({\r\n      id: this.task_id,\r\n    });\r\n    this.running = true;\r\n  }\r\n\r\n  protected async startQueryLoop() {\r\n    while (true) {\r\n      if (this.interrupted) {\r\n        return [];\r\n      }\r\n      try {\r\n        this.data = await this.queryResults();\r\n        return this.data;\r\n      } catch (error) {\r\n        this.message = (<any>error)?.message || \"\";\r\n        await new Promise((resolve) =>\r\n          setTimeout(resolve, this.intervalMs + 1000 * Math.random())\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  async queryResults() {\r\n    const { success, message, data } =\r\n      (await this.client.default.getTaskResultsAgentSchedulerV1ResultsIdGet({\r\n        id: this.task_id,\r\n        zip: false,\r\n      })) as {\r\n        message: string;\r\n        data: TaskResult[];\r\n        success: boolean;\r\n      };\r\n    if (success) {\r\n      return data;\r\n    }\r\n    throw new Error(message || \"query failed\");\r\n  }\r\n\r\n  async results() {\r\n    if (!this.queryLoop) {\r\n      this.queryLoop = this.startQueryLoop();\r\n    }\r\n    await this.queryLoop;\r\n    return this.data;\r\n  }\r\n\r\n  protected interrupted = false;\r\n  async interrupt() {\r\n    if (this.interrupted) {\r\n      return;\r\n    }\r\n    this.interrupted = true;\r\n    // delete task\r\n    await this.client.default.deleteTaskAgentSchedulerV1DeleteIdPost({\r\n      id: this.task_id,\r\n    });\r\n  }\r\n}\r\n\r\nexport enum SDTaskStatus {\r\n  pending = \"pending\",\r\n  running = \"running\",\r\n  done = \"done\",\r\n  failed = \"failed\",\r\n  interrupted = \"interrupted\",\r\n}\r\nexport class SDTask {\r\n  protected status: SDTaskStatus = SDTaskStatus.pending;\r\n  protected error?: any;\r\n  protected results?: TaskResult[];\r\n  constructor(protected client: SDWebUIA1111Client, readonly task_id: string) {}\r\n\r\n  protected async errWrap<T>(callback: () => T) {\r\n    try {\r\n      const value = await callback();\r\n      return value;\r\n    } catch (error) {\r\n      this.status = SDTaskStatus.failed;\r\n      this.error = error;\r\n    }\r\n  }\r\n\r\n  private runner?: SDTaskRunner;\r\n  async run() {\r\n    if (this.results) {\r\n      return this.results;\r\n    }\r\n    if (this.status === SDTaskStatus.interrupted) {\r\n      throw new Error(\"Task already canceled\");\r\n    }\r\n    if (this.status === SDTaskStatus.done) {\r\n      return this.results;\r\n    }\r\n    if (this.status === SDTaskStatus.running && this.runner) {\r\n      return this.runner.results();\r\n    }\r\n    if (this.status === SDTaskStatus.failed) {\r\n      throw new Error(\"Task failed\");\r\n    }\r\n    if (!this.task_id) {\r\n      throw new Error(\"No task id\");\r\n    }\r\n    const runner = new SDTaskRunner(this.client, this.task_id);\r\n    this.runner = runner;\r\n\r\n    return this.errWrap(async () => {\r\n      const results = await runner.results();\r\n      if (this.status === SDTaskStatus.interrupted) {\r\n        // TODO 不清楚这样写对不对\r\n        return [];\r\n      }\r\n      this.results = results;\r\n      this.status = SDTaskStatus.done;\r\n      return results;\r\n    });\r\n  }\r\n\r\n  async interrupt() {\r\n    if (this.runner) {\r\n      await this.runner.interrupt();\r\n      this.runner = undefined;\r\n    } else {\r\n      // next tick try to cancel again\r\n      setTimeout(() => {\r\n        this.runner?.interrupt();\r\n        this.runner = undefined;\r\n      }, 1);\r\n    }\r\n    this.status = SDTaskStatus.interrupted;\r\n  }\r\n}\r\n","// Agent Scheduler\r\n\r\nimport { SDWebUIA1111Client } from \"../client\";\r\nimport { Img2imgProcess, Txt2imgProcess } from \"../process\";\r\nimport { SDTask, SDTaskStatus } from \"./SDTask\";\r\n\r\nexport class SDTaskScheduler {\r\n  constructor(readonly client: SDWebUIA1111Client) {}\r\n\r\n  async queueStatus() {\r\n    return this.client.default.queueStatusApiAgentSchedulerV1QueueGet({});\r\n  }\r\n\r\n  async queryHistory(status?: SDTaskStatus, limit?: number, offset?: number) {\r\n    return this.client.default.historyApiAgentSchedulerV1HistoryGet({\r\n      status,\r\n      limit,\r\n      offset,\r\n    });\r\n  }\r\n\r\n  async pause() {\r\n    return this.client.default.pauseQueueAgentSchedulerV1PausePost();\r\n  }\r\n\r\n  async resume() {\r\n    return this.client.default.resumeQueueAgentSchedulerV1ResumePost();\r\n  }\r\n\r\n  async createImg2imgTask(\r\n    img2imgProcess: Img2imgProcess,\r\n    checkpoint?: string,\r\n    callback_url?: string\r\n  ) {\r\n    const { task_id } =\r\n      await this.client.default.queueImg2ImgAgentSchedulerV1QueueImg2ImgPost({\r\n        requestBody: {\r\n          ...img2imgProcess.toJSON(),\r\n          checkpoint,\r\n          callback_url,\r\n        },\r\n      });\r\n    return new SDTask(this.client, task_id);\r\n  }\r\n  async createTxt2imgTask(\r\n    txt2imgProcess: Txt2imgProcess,\r\n    checkpoint?: string,\r\n    callback_url?: string\r\n  ) {\r\n    const { task_id } =\r\n      await this.client.default.queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost({\r\n        requestBody: {\r\n          ...txt2imgProcess.toJSON(),\r\n          checkpoint,\r\n          callback_url,\r\n        },\r\n      });\r\n    return new SDTask(this.client, task_id);\r\n  }\r\n}\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","import EventEmitter from \"eventemitter3\";\r\n\r\nexport class BatchGeneration<Body, Response> extends EventEmitter<{\r\n  batch_complete: (\r\n    response: Response,\r\n    progress: { currentBatch: number; totalBatches: number }\r\n  ) => void;\r\n  batch_start: (progress: {\r\n    currentBatch: number;\r\n    totalBatches: number;\r\n  }) => void;\r\n  batch_error: (\r\n    error: any,\r\n    progress: { currentBatch: number; totalBatches: number }\r\n  ) => void;\r\n  complete: (responses: Response[]) => void;\r\n  error: (error: any) => void;\r\n  start: () => void;\r\n}> {\r\n  responses: Response[] = [];\r\n\r\n  constructor(\r\n    readonly body: Body,\r\n    readonly options: {\r\n      batchSize: number;\r\n      numBatches: number;\r\n    }\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  /**\r\n   * Checks if the current batch generation is complete.\r\n   *\r\n   * @return {boolean} Returns true if the number of responses is equal to the number of batches, false otherwise.\r\n   */\r\n  isComplete() {\r\n    return this.responses.length === this.options.numBatches;\r\n  }\r\n\r\n  runOneBatch(): Promise<Response> {\r\n    throw new Error(\"Not implemented\");\r\n  }\r\n\r\n  /**\r\n   * Waits for the completion of an asynchronous operation and returns a Promise that resolves with an array of responses.\r\n   *\r\n   * @return {Promise<Response[]>} A Promise that resolves with an array of responses when the operation is complete, or rejects with an error if there is an error.\r\n   */\r\n  waitForComplete() {\r\n    if (this.isComplete()) {\r\n      return Promise.resolve(this.responses);\r\n    }\r\n    return new Promise<Response[]>((resolve, reject) => {\r\n      this.on(\"complete\", (responses) => resolve(responses));\r\n      this.on(\"error\", (error) => reject(error));\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Runs the batch generation process.\r\n   *\r\n   * @return {Promise<Response[]>} A Promise that resolves with an array of responses when the batch generation is complete, or rejects with an error if there is an error.\r\n   */\r\n  async run() {\r\n    this.emit(\"start\");\r\n    for (let i = 0; i < this.options.numBatches; i++) {\r\n      this.emit(\"batch_start\", {\r\n        currentBatch: i + 1,\r\n        totalBatches: this.options.numBatches,\r\n      });\r\n\r\n      try {\r\n        const response = await this.runOneBatch();\r\n        this.responses.push(response);\r\n\r\n        this.emit(\"batch_complete\", response, {\r\n          currentBatch: i + 1,\r\n          totalBatches: this.options.numBatches,\r\n        });\r\n      } catch (error) {\r\n        this.emit(\"batch_error\", error, {\r\n          currentBatch: i + 1,\r\n          totalBatches: this.options.numBatches,\r\n        });\r\n        this.emit(\"error\", error);\r\n        return;\r\n      }\r\n    }\r\n    this.emit(\"complete\", this.responses);\r\n    return this.responses;\r\n  }\r\n}\r\n","import { SDWebUIA1111Client } from \"../client\";\r\n\r\nexport type CachedApiOptions = {\r\n  client: SDWebUIA1111Client;\r\n  cacheTime: number;\r\n  disableCache?: boolean;\r\n};\r\n\r\n/**\r\n * A global cache hub that stores cache data for all CachedApi instances.\r\n */\r\nexport class GlobalCacheHub {\r\n  static __KEY__ = \"__A1111_CLIENT_CACHE__\";\r\n\r\n  private ensureCache() {\r\n    if (!(globalThis as any)[GlobalCacheHub.__KEY__]) {\r\n      (globalThis as any)[GlobalCacheHub.__KEY__] = {};\r\n    }\r\n  }\r\n\r\n  get _cache() {\r\n    this.ensureCache();\r\n    return (globalThis as any)[GlobalCacheHub.__KEY__] as Record<\r\n      string,\r\n      {\r\n        data: any;\r\n        expires: number;\r\n      }\r\n    >;\r\n  }\r\n\r\n  clearCache() {\r\n    this.ensureCache();\r\n    (globalThis as any)[GlobalCacheHub.__KEY__] = {};\r\n  }\r\n}\r\n\r\nexport class CachedApi {\r\n  protected hub: GlobalCacheHub;\r\n\r\n  protected options: CachedApiOptions;\r\n\r\n  constructor(\r\n    options: Pick<CachedApiOptions, \"client\"> &\r\n      Partial<Omit<CachedApiOptions, \"client\">>,\r\n    hub = new GlobalCacheHub()\r\n  ) {\r\n    this.hub = hub;\r\n    this.options = {\r\n      ...options,\r\n      disableCache: options.disableCache ?? false,\r\n      cacheTime: options.cacheTime ?? 60 * 1000,\r\n    };\r\n  }\r\n\r\n  private get _cache() {\r\n    return this.hub._cache;\r\n  }\r\n\r\n  get client() {\r\n    return this.options.client;\r\n  }\r\n\r\n  protected cache_key_prefix() {\r\n    return \"\";\r\n  }\r\n\r\n  protected full_cache_key(key: string) {\r\n    return `${this.cache_key_prefix()}:${key}`;\r\n  }\r\n\r\n  protected async _getFromCache<T>(key: string) {\r\n    if (this.options.disableCache) {\r\n      return null;\r\n    }\r\n    const fullKey = this.full_cache_key(key);\r\n    const cached = this._cache[fullKey];\r\n    if (!cached || cached.expires < Date.now()) {\r\n      return null;\r\n    }\r\n    return cached.data as T;\r\n  }\r\n\r\n  protected async _setCache<T>(key: string, data: T) {\r\n    if (this.options.disableCache) {\r\n      return;\r\n    }\r\n    const fullKey = this.full_cache_key(key);\r\n    this._cache[fullKey] = {\r\n      data,\r\n      expires: Date.now() + this.options.cacheTime,\r\n    };\r\n  }\r\n\r\n  protected async _getFromCacheOrFetch<T>(\r\n    key: string,\r\n    fetch: () => Promise<T>\r\n  ) {\r\n    const cached = await this._getFromCache<T>(key);\r\n    if (cached) {\r\n      return cached;\r\n    }\r\n    const data = await fetch();\r\n    await this._setCache<T>(key, data);\r\n    return data;\r\n  }\r\n\r\n  /**\r\n   * Clears the cache by resetting the `_cache` object to an empty object.\r\n   */\r\n  clearCache() {\r\n    this.hub.clearCache();\r\n  }\r\n\r\n  /**\r\n   * Removes a cache entry with the specified key.\r\n   *\r\n   * @param {string} key - The key of the cache entry to remove.\r\n   */\r\n  removeCache(key: string) {\r\n    const fullKey = this.full_cache_key(key);\r\n    delete this._cache[fullKey];\r\n  }\r\n}\r\n","import { StableDiffusionProcessingTxt2Img } from \"../client\";\r\nimport { ControlNetExt, ControlNetUnitRequest } from \"../extensions\";\r\nimport {\r\n  Img2imgProcess,\r\n  Img2imgProcessParams,\r\n  Txt2imgProcess,\r\n  Txt2imgProcessParams,\r\n} from \"../process\";\r\nimport { BatchGeneration } from \"./BatchGeneration\";\r\nimport { CachedApi } from \"./CachedApi\";\r\nimport { ControlTypes } from \"./cnet.types\";\r\nimport {\r\n  ModelListResponse,\r\n  ModuleListResponse,\r\n  ControlNetDetectRequestBody,\r\n  DetectResponse,\r\n} from \"./cnet.types\";\r\nimport { GenerationResponseInfo } from \"./service.types\";\r\n\r\nclass Img2imgBatchGeneration extends BatchGeneration<\r\n  Img2imgProcessParams,\r\n  { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n  constructor(\r\n    readonly api: ControlNetApi,\r\n    body: Img2imgProcessParams,\r\n    options: { batchSize: number; numBatches: number },\r\n    readonly units: ControlNetUnitRequest[]\r\n  ) {\r\n    super(body, options);\r\n  }\r\n\r\n  async runOneBatch() {\r\n    const resp = await this.api.img2img({\r\n      params: {\r\n        ...this.body,\r\n        batch_size: this.options.batchSize,\r\n      },\r\n      units: this.units,\r\n    });\r\n    return resp;\r\n  }\r\n}\r\n\r\nclass Txt2imgBatchGeneration extends BatchGeneration<\r\n  Txt2imgProcessParams,\r\n  { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n  constructor(\r\n    readonly api: ControlNetApi,\r\n    body: Txt2imgProcessParams,\r\n    options: { batchSize: number; numBatches: number },\r\n    readonly units: ControlNetUnitRequest[]\r\n  ) {\r\n    super(body, options);\r\n  }\r\n\r\n  async runOneBatch() {\r\n    const resp = await this.api.txt2img({\r\n      params: {\r\n        ...this.body,\r\n        batch_size: this.options.batchSize,\r\n      },\r\n      units: this.units,\r\n    });\r\n    return resp;\r\n  }\r\n}\r\n\r\nexport class ControlNetApi extends CachedApi {\r\n  get client() {\r\n    return this.options.client;\r\n  }\r\n\r\n  cache_key_prefix() {\r\n    const base_url = this.options.client.request.config.BASE ?? \"*\";\r\n    return `@controlnet/${base_url}`;\r\n  }\r\n\r\n  /**\r\n   * Retrieves a list of models from the controlnet API.\r\n   *\r\n   * @return {Promise<string[]>} A promise that resolves to an array of model names.\r\n   */\r\n  private async _getModels() {\r\n    const resp: ModelListResponse =\r\n      await this.client.default.modelListControlnetModelListGet({});\r\n    return (resp?.model_list || []) as string[];\r\n  }\r\n\r\n  /**\r\n   * Retrieves the module list response from the controlnet API.\r\n   *\r\n   * @return {Promise<ModuleListResponse>} A promise that resolves to the module list response.\r\n   */\r\n  private async _getModuleResponse() {\r\n    const resp: ModuleListResponse =\r\n      await this.client.default.moduleListControlnetModuleListGet({});\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Retrieves a list of models from the controlnet API, caching the result if caching is enabled.\r\n   *\r\n   * @return {Promise<string[]>} A promise that resolves to an array of model names.\r\n   */\r\n  async getModels() {\r\n    const key = \"models\" + this.client;\r\n    return this._getFromCacheOrFetch(key, this._getModels.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves a list of modules from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n   *\r\n   * @return {Promise<string[]>} A promise that resolves to an array of module names.\r\n   */\r\n  async getModules() {\r\n    const key = \"modules\";\r\n    return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the detail of a module from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n   *\r\n   * @param {string} module - The name of the module to retrieve the detail for.\r\n   * @return {Promise<{model_free: boolean, sliders: {max: number, min: number, name: string, step: number, value: number}[],}>} A promise that resolves to the module detail.\r\n   */\r\n  async getModuleDetail(module: string) {\r\n    const key = `module_detail_${module}`;\r\n    return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the version of the controlnet API.\r\n   *\r\n   * @return {Promise<number>} A promise that resolves to the version number.\r\n   */\r\n  private async _getVersion() {\r\n    const resp: {\r\n      version: number;\r\n    } = await this.client.default.versionControlnetVersionGet();\r\n    return resp.version;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the control types from the controlnet API.\r\n   *\r\n   * @return {Promise<ControlTypes>} A promise that resolves to the control types.\r\n   **/\r\n  private async _getControlTypes() {\r\n    const resp: {\r\n      control_types: ControlTypes;\r\n    } = await this.client.default.controlTypesControlnetControlTypesGet();\r\n    return resp.control_types;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the control types from the controlnet API.\r\n   *\r\n   * @return {Promise<ControlTypes>} A promise that resolves to the control types.\r\n   **/\r\n  async getControlTypes() {\r\n    const key = \"control_types\";\r\n    return this._getFromCacheOrFetch(key, this._getControlTypes.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the version of the controlnet API.\r\n   *\r\n   * @return {Promise<number>} A promise that resolves to the version number.\r\n   */\r\n  async getVersion() {\r\n    const key = \"version\";\r\n    return this._getFromCacheOrFetch(key, this._getVersion.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the details of all modules from the cache if caching is enabled, otherwise makes a request to the controlnet API.\r\n   *\r\n   * @return {Promise<Record<string, {model_free: boolean, sliders: {max: number, min: number, name: string, step: number, value: number}[],}>} A promise that resolves to an object containing the details of all modules.\r\n   */\r\n  async getAllModuleDetail() {\r\n    const key = \"all_module_detail\";\r\n    return this._getFromCacheOrFetch(key, this._getModuleResponse.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Detects objects in an image using the controlnet API.\r\n   *\r\n   * @param {ControlNetDetectRequestBody} params - The parameters for the detection.\r\n   * @return {Promise<DetectResponse>} A promise that resolves to the detection response.\r\n   */\r\n  async detect(params: ControlNetDetectRequestBody) {\r\n    const resp: DetectResponse =\r\n      await this.client.default.detectControlnetDetectPost({\r\n        requestBody: params,\r\n      });\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n   *\r\n   * @param {Object} options - The options for the text to image processing.\r\n   * @param {Txt2imgProcessParams} options.params - The parameters for the text to image processing.\r\n   * @param {ControlNetUnitRequest[]} options.units - The control net units for the text to image processing.\r\n   * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n   * @throws {Error} If no image is returned from the server.\r\n   */\r\n  async txt2img({\r\n    params,\r\n    units,\r\n  }: {\r\n    params: Txt2imgProcessParams;\r\n    units: ControlNetUnitRequest[];\r\n  }) {\r\n    if (units.length === 0) {\r\n      throw new Error(\r\n        \"At least one control net unit is required for text to image processing.\"\r\n      );\r\n    }\r\n\r\n    const pc1 = new Txt2imgProcess(params);\r\n    const cnet_ext = new ControlNetExt();\r\n    for (const unit of units) {\r\n      cnet_ext.addUnit(unit);\r\n    }\r\n    pc1.use(cnet_ext);\r\n    const resp = await pc1.request(this.client);\r\n    const image = resp.images?.[0];\r\n    if (!image) {\r\n      throw new Error(\"No image returned from the server.\");\r\n    }\r\n    return {\r\n      image,\r\n      images: resp.images || [],\r\n      info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Asynchronously sends an image to the server for processing and returns the processed image and information.\r\n   *\r\n   * @param {Object} options - The options for the image to image processing.\r\n   * @param {Img2imgProcessParams} options.params - The parameters for the image to image processing.\r\n   * @param {ControlNetUnitRequest[]} options.units - The control net units for the image to image processing.\r\n   * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n   * @throws {Error} If no image is returned from the server.\r\n   */\r\n  async img2img({\r\n    params,\r\n    units,\r\n  }: {\r\n    params: Img2imgProcessParams;\r\n    units: ControlNetUnitRequest[];\r\n  }) {\r\n    if (units.length === 0) {\r\n      throw new Error(\r\n        \"At least one control net unit is required for text to image processing.\"\r\n      );\r\n    }\r\n\r\n    const pc1 = new Img2imgProcess(params);\r\n    const cnet_ext = new ControlNetExt();\r\n    for (const unit of units) {\r\n      cnet_ext.addUnit(unit);\r\n    }\r\n    pc1.use(cnet_ext);\r\n    const resp = await pc1.request(this.client);\r\n    const image = resp.images?.[0];\r\n    if (!image) {\r\n      throw new Error(\"No image returned from the server.\");\r\n    }\r\n    return {\r\n      image,\r\n      images: resp.images || [],\r\n      info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Asynchronously creates a batch of image-to-image generations and returns the batch object.\r\n   *\r\n   * @param {Object} param - The parameters for the batch generation.\r\n   * @param {Img2imgProcessParams} param.params - The image processing parameters.\r\n   * @param {Object} param.options - The options for the batch generation.\r\n   * @param {number} param.options.batchSize - The number of images to generate in each batch.\r\n   * @param {number} param.options.numBatches - The total number of batches to generate.\r\n   * @param {boolean} [param.options.manual] - Whether to manually run the batch generation.\r\n   * @param {ControlNetUnitRequest[]} param.units - The control network units for the batch generation.\r\n   * @return {Promise<Img2imgBatchGeneration>} A promise that resolves to the batch object.\r\n   */\r\n  async img2imgBatch({\r\n    params,\r\n    options,\r\n    units,\r\n  }: {\r\n    params: Img2imgProcessParams;\r\n    options: { batchSize: number; numBatches: number; manual?: boolean };\r\n    units: ControlNetUnitRequest[];\r\n  }) {\r\n    const batch = new Img2imgBatchGeneration(this, params, options, units);\r\n    if (!options.manual) {\r\n      batch.run();\r\n    }\r\n    return batch;\r\n  }\r\n\r\n  /**\r\n   * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n   *\r\n   * @param {Object} options - The options for the text to image processing.\r\n   * @param {Txt2imgProcessParams} options.params - The parameters for the text to image processing.\r\n   * @param {Object} options.options - The options for the text to image processing.\r\n   * @param {number} options.options.batchSize - The number of images to generate in each batch.\r\n   * @param {number} options.options.numBatches - The total number of batches to generate.\r\n   * @param {boolean} [options.options.manual] - Whether to manually run the batch generation.\r\n   * @param {ControlNetUnitRequest[]} options.units - The control net units for the batch generation.\r\n   * @return {Promise<Txt2imgBatchGeneration>} A promise that resolves to the batch object.\r\n   */\r\n  async txt2imgBatch({\r\n    params,\r\n    options,\r\n    units,\r\n  }: {\r\n    params: Txt2imgProcessParams;\r\n    options: { batchSize: number; numBatches: number; manual?: boolean };\r\n    units: ControlNetUnitRequest[];\r\n  }) {\r\n    const batch = new Txt2imgBatchGeneration(this, params, options, units);\r\n    if (!options.manual) {\r\n      batch.run();\r\n    }\r\n    return batch;\r\n  }\r\n}\r\n","import {\r\n  StableDiffusionProcessingImg2Img,\r\n  StableDiffusionProcessingTxt2Img,\r\n  modules__api__models__ProgressResponse,\r\n} from \"../client\";\r\nimport { BatchGeneration } from \"./BatchGeneration\";\r\nimport { CachedApi } from \"./CachedApi\";\r\nimport { GenerationResponseInfo } from \"./service.types\";\r\n\r\nimport EventEmitter from \"eventemitter3\";\r\n\r\nclass Img2imgBatchGeneration extends BatchGeneration<\r\n  StableDiffusionProcessingImg2Img,\r\n  { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n  constructor(\r\n    readonly serviceApi: ServiceApi,\r\n    body: StableDiffusionProcessingImg2Img,\r\n    options: { batchSize: number; numBatches: number }\r\n  ) {\r\n    super(body, options);\r\n  }\r\n\r\n  async runOneBatch() {\r\n    const resp = await this.serviceApi.img2img({\r\n      ...this.body,\r\n      batch_size: this.options.batchSize,\r\n    });\r\n    return resp;\r\n  }\r\n}\r\n\r\nclass Txt2imgBatchGeneration extends BatchGeneration<\r\n  StableDiffusionProcessingTxt2Img,\r\n  { images: string[]; info: GenerationResponseInfo }\r\n> {\r\n  constructor(\r\n    readonly serviceApi: ServiceApi,\r\n    body: StableDiffusionProcessingTxt2Img,\r\n    options: { batchSize: number; numBatches: number }\r\n  ) {\r\n    super(body, options);\r\n  }\r\n\r\n  async runOneBatch() {\r\n    const resp = await this.serviceApi.txt2img({\r\n      ...this.body,\r\n      batch_size: this.options.batchSize,\r\n    });\r\n    return resp;\r\n  }\r\n}\r\n\r\ntype ProgressResponse = modules__api__models__ProgressResponse;\r\n\r\nclass ProgressWatcher extends EventEmitter<{\r\n  progress: (progress: ProgressResponse) => void;\r\n  done: () => void;\r\n}> {\r\n  isDone = false;\r\n\r\n  constructor(\r\n    readonly options: {\r\n      intervalMs: number;\r\n    },\r\n    readonly serviceApi: ServiceApi\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  async start(params?: { getCurrentImage?: boolean | undefined }) {\r\n    while (!this.isDone) {\r\n      const progress = await this.serviceApi.progress(params);\r\n      this.emit(\"progress\", progress);\r\n      await new Promise((resolve) =>\r\n        setTimeout(resolve, this.options.intervalMs)\r\n      );\r\n    }\r\n    this.emit(\"done\");\r\n  }\r\n\r\n  stop() {\r\n    this.isDone = true;\r\n  }\r\n}\r\n\r\nexport class ServiceApi extends CachedApi {\r\n  cache_key_prefix() {\r\n    const base_url = this.options.client.request.config.BASE ?? \"*\";\r\n    return `@service/${base_url}`;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the SD models from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the SD models.\r\n   */\r\n  private async _getSDModels() {\r\n    const resp = await this.client.default.getSdModelsSdapiV1SdModelsGet();\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the samplers from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the samplers.\r\n   */\r\n  private async _getSamplers() {\r\n    const resp = await this.client.default.getSamplersSdapiV1SamplersGet();\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the SD models from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the SD models.\r\n   */\r\n  async getSDModels() {\r\n    const key = \"sdmodels\";\r\n    return this._getFromCacheOrFetch(key, this._getSDModels.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the samplers from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the samplers.\r\n   */\r\n  async getSamplers() {\r\n    const key = \"samplers\";\r\n    return this._getFromCacheOrFetch(key, this._getSamplers.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the embeddings from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the embeddings.\r\n   */\r\n  private async _getEmbeddings() {\r\n    const resp = await this.client.default.getEmbeddingsSdapiV1EmbeddingsGet();\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the embeddings from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the embeddings.\r\n   */\r\n  async getEmbeddings() {\r\n    const key = \"embeddings\";\r\n    return this._getFromCacheOrFetch(key, this._getEmbeddings.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Retrieves the extension list from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the extension list.\r\n   */\r\n  private async _getExtensionList() {\r\n    const resp =\r\n      await this.client.default.getExtensionsListSdapiV1ExtensionsGet();\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Retrieves the extension list from the API.\r\n   *\r\n   * @return {Promise<Response>} A promise that resolves to the response containing the extension list.\r\n   */\r\n  async getExtensionList() {\r\n    const key = \"extensions\";\r\n    return this._getFromCacheOrFetch(key, this._getExtensionList.bind(this));\r\n  }\r\n\r\n  /**\r\n   * Pings the API to check the response time.\r\n   *\r\n   * @return {Promise<{ success: boolean, time: number, error?: any }>} An object containing the success status,\r\n   * the response time in milliseconds, and an optional error object if the ping fails.\r\n   */\r\n  async ping() {\r\n    const start = Date.now();\r\n    try {\r\n      await this.client.default.lambdaInternalPingGet();\r\n      return {\r\n        success: true,\r\n        time: Date.now() - start,\r\n      };\r\n    } catch (error) {\r\n      return {\r\n        success: false,\r\n        time: Date.now() - start,\r\n        error,\r\n      };\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Asynchronously sends an image to the server for processing and returns the processed image and information.\r\n   *\r\n   * @param {StableDiffusionProcessingImg2Img} requestBody - The image to be processed.\r\n   * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n   */\r\n  async img2img(requestBody: StableDiffusionProcessingImg2Img) {\r\n    const resp = await this.client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n      requestBody,\r\n    });\r\n    const image = resp.images?.[0];\r\n    if (!image) {\r\n      throw new Error(\"No image returned from the server.\");\r\n    }\r\n    return {\r\n      image,\r\n      images: resp.images || [],\r\n      info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Asynchronously sends a text to the server for processing and returns the processed image and information.\r\n   *\r\n   * @param {StableDiffusionProcessingTxt2Img} requestBody - The text to be processed.\r\n   * @return {Promise<{ image: string, images: string[], info: GenerationResponseInfo }>} The processed image and information.\r\n   */\r\n  async txt2img(requestBody: StableDiffusionProcessingTxt2Img) {\r\n    const resp = await this.client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n      requestBody,\r\n    });\r\n    const image = resp.images?.[0];\r\n    if (!image) {\r\n      throw new Error(\"No image returned from the server.\");\r\n    }\r\n    return {\r\n      image,\r\n      images: resp.images || [],\r\n      info: JSON.parse(resp.info) as GenerationResponseInfo,\r\n    };\r\n  }\r\n\r\n  /**\r\n   * Asynchronously creates a batch of image-to-image generations and returns the batch object.\r\n   *\r\n   * @param {StableDiffusionProcessingImg2Img} body - The image to be processed.\r\n   * @param {Object} options - The options for the batch generation.\r\n   * @param {number} options.batchSize - The number of images to generate in each batch.\r\n   * @param {number} options.numBatches - The total number of batches to generate.\r\n   * @param {boolean} options.manual - Whether to manually run the batch generation.\r\n   * @return {Promise<Img2imgBatchGeneration>} A promise that resolves to the batch object.\r\n   */\r\n  async img2imgBatch(\r\n    body: StableDiffusionProcessingImg2Img,\r\n    options: { batchSize: number; numBatches: number; manual?: boolean }\r\n  ) {\r\n    const batch = new Img2imgBatchGeneration(this, body, options);\r\n    if (!options.manual) {\r\n      batch.run();\r\n    }\r\n    return batch;\r\n  }\r\n\r\n  /**\r\n   * Asynchronously creates a batch of text-to-image generations and returns the batch object.\r\n   *\r\n   * @param {StableDiffusionProcessingTxt2Img} body - The text to be processed.\r\n   * @param {Object} options - The options for the batch generation.\r\n   * @param {number} options.batchSize - The number of images to generate in each batch.\r\n   * @param {number} options.numBatches - The total number of batches to generate.\r\n   * @param {boolean} options.manual - Whether to manually run the batch generation.\r\n   * @return {Promise<Txt2imgBatchGeneration>} A promise that resolves to the batch object.\r\n   */\r\n  async txt2imgBatch(\r\n    body: StableDiffusionProcessingTxt2Img,\r\n    options: { batchSize: number; numBatches: number; manual?: boolean }\r\n  ) {\r\n    const batch = new Txt2imgBatchGeneration(this, body, options);\r\n    if (!options.manual) {\r\n      batch.run();\r\n    }\r\n    return batch;\r\n  }\r\n\r\n  /**\r\n   * Asynchronously retrieves the progress of a task.\r\n   *\r\n   * @param {Object} [params] - Optional parameters for the progress request.\r\n   * @param {boolean} [params.getCurrentImage] - Whether to include the current image in the response. Defaults to false.\r\n   * @return {Promise<Object>} A promise that resolves to the progress response object.\r\n   */\r\n  async progress(params?: { getCurrentImage?: boolean }) {\r\n    const resp = await this.client.default.progressapiSdapiV1ProgressGet({\r\n      skipCurrentImage: !params?.getCurrentImage,\r\n    });\r\n    return resp;\r\n  }\r\n\r\n  /**\r\n   * Asynchronously watches the progress of current task.\r\n   *\r\n   * @param {Object} options - The options for the progress watcher.\r\n   * @param {number} options.intervalMs - The interval in milliseconds to check the progress.\r\n   * @param {boolean} options.manual - Whether to manually start the progress watcher.\r\n   * @param {boolean} options.getCurrentImage - Whether to include the current image in the response. Defaults to false.\r\n   * @return {ProgressWatcher} The progress watcher object.\r\n   */\r\n  watchProgress(options: {\r\n    intervalMs: number;\r\n    manual?: boolean;\r\n    getCurrentImage?: boolean;\r\n  }) {\r\n    const watcher = new ProgressWatcher(options, this);\r\n    if (!options.manual) {\r\n      watcher.start({\r\n        getCurrentImage: options.getCurrentImage,\r\n      });\r\n    }\r\n    return watcher;\r\n  }\r\n}\r\n","import { OpenAPIConfig, SDWebUIA1111Client } from \"../client\";\r\nimport { CachedApiOptions } from \"./CachedApi\";\r\nimport { ControlNetApi } from \"./cnet\";\r\nimport { ServiceApi } from \"./service\";\r\n\r\ntype ApiOptions = {\r\n  client: Partial<OpenAPIConfig> & {\r\n    BASE: string;\r\n  };\r\n  cache?: Partial<Omit<CachedApiOptions, \"client\">>;\r\n};\r\n\r\n/**\r\n * The API for the A1111 Stable Diffusion API.\r\n *\r\n * @param {ApiOptions} options - The options for the constructor.\r\n */\r\nexport class A1111StableDiffusionApi {\r\n  client: SDWebUIA1111Client;\r\n\r\n  ControlNet: ControlNetApi;\r\n  Service: ServiceApi;\r\n\r\n  constructor(options: ApiOptions) {\r\n    this.client = new SDWebUIA1111Client(options.client);\r\n\r\n    this.ControlNet = new ControlNetApi({\r\n      client: this.client,\r\n      ...options.cache,\r\n    });\r\n    this.Service = new ServiceApi({\r\n      client: this.client,\r\n      ...options.cache,\r\n    });\r\n  }\r\n}\r\n","import type { SDWebUIA1111Client } from \"../client\";\r\nimport { ExtensionScript } from \"../extensions\";\r\nimport { not } from \"../misc\";\r\nimport {\r\n  InpaintFill,\r\n  Img2imgProcessParams,\r\n  Txt2imgProcessParams,\r\n} from \"../process\";\r\nimport { SDProcessor } from \"../process/SDProcessor\";\r\nimport { SamplerName, SchedulerName } from \"./types\";\r\n\r\ntype RequestBody = Img2imgProcessParams & Txt2imgProcessParams;\r\ntype BodyKey = keyof RequestBody;\r\ntype BodyValue<K extends BodyKey> = NonNullable<RequestBody[K]>;\r\n\r\nexport class Pipeline {\r\n  private processing: SDProcessor<RequestBody>;\r\n\r\n  /**\r\n   * Constructs a new Pipeline instance.\r\n   *\r\n   * @param {SDWebUIA1111Client} client - The client instance used for processing requests.\r\n   * @param {RequestBody} [init_body={}] - The initial request body to be used for processing.\r\n   */\r\n\r\n  constructor(\r\n    readonly client: SDWebUIA1111Client,\r\n    init_body: RequestBody = {}\r\n  ) {\r\n    this.processing = new SDProcessor(init_body);\r\n  }\r\n\r\n  private async run_t2i(body: RequestBody) {\r\n    return this.client.default.text2ImgapiSdapiV1Txt2ImgPost({\r\n      requestBody: body,\r\n    });\r\n  }\r\n\r\n  private async run_i2i(body: RequestBody) {\r\n    return this.client.default.img2ImgapiSdapiV1Img2ImgPost({\r\n      requestBody: body,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Adds an extension to the list of extensions.\r\n   *\r\n   * @param {ExtensionScript} ext - The extension to be added.\r\n   * @return {SDProcessor<Body>} The current SDProcessing object.\r\n   */\r\n  use(ext: ExtensionScript) {\r\n    this.processing.use(ext);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Creates and adds a new ExtensionScript to the list of extensions.\r\n   *\r\n   * @param {string} name - The name of the extension script.\r\n   * @param {any[]} args - The arguments for the extension script.\r\n   * @return {SDProcessor<Body>} The current SDProcessing object.\r\n   */\r\n  useCustomExt(name: string, args: any[]) {\r\n    this.processing.useCustomExt(name, args);\r\n    return this;\r\n  }\r\n\r\n  is_t2i() {\r\n    return not(this.is_i2i());\r\n  }\r\n\r\n  is_i2i() {\r\n    const { init_images, mask } = this.processing.init_body;\r\n    const has_images = Array.isArray(init_images) && init_images.length !== 0;\r\n    const has_mask = mask !== undefined;\r\n    return has_images && has_mask;\r\n  }\r\n\r\n  run() {\r\n    const body = this.processing.toJSON();\r\n    if (this.is_t2i()) {\r\n      return this.run_t2i(body);\r\n    } else {\r\n      return this.run_i2i(body);\r\n    }\r\n  }\r\n\r\n  _write<K extends keyof RequestBody, V extends RequestBody[K]>(\r\n    key: K,\r\n    value: V\r\n  ) {\r\n    this.processing.init_body[key] = value;\r\n  }\r\n\r\n  // **** 拓展参数 ****\r\n\r\n  /**\r\n   * Sets the text prompt for image generation.\r\n   * @param {BodyValue<\"prompt\">} text - The prompt text.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  prompt(text: BodyValue<\"prompt\">) {\r\n    this._write(\"prompt\", text);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the negative prompt to avoid undesired features in the image.\r\n   * @param {BodyValue<\"negative_prompt\">} text - The negative prompt text.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  negative(text: BodyValue<\"negative_prompt\">) {\r\n    this._write(\"negative_prompt\", text);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the seed value for deterministic image generation.\r\n   * @param {BodyValue<\"seed\">} seed - The seed value.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  seed(seed: BodyValue<\"seed\">) {\r\n    this._write(\"seed\", seed);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the subseed value for variations in deterministic generation.\r\n   * @param {BodyValue<\"subseed\">} seed - The subseed value.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  subseed(seed: BodyValue<\"subseed\">) {\r\n    this._write(\"subseed\", seed);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the sampler method used for generating images.\r\n   * @param {SamplerName} name - The sampler name.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  sampler(name: SamplerName) {\r\n    this._write(\"sampler_name\", name);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the scheduler method for image generation.\r\n   * @param {SchedulerName} name - The scheduler name.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  scheduler(name: SchedulerName) {\r\n    this._write(\"scheduler\", name);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the batch size for image generation.\r\n   * @param {BodyValue<\"batch_size\">} size - The batch size.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  batch(size: BodyValue<\"batch_size\">) {\r\n    this._write(\"batch_size\", size);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the number of inference steps.\r\n   * @param {BodyValue<\"steps\">} steps - The number of steps.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  steps(steps: BodyValue<\"steps\">) {\r\n    this._write(\"steps\", steps);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the classifier-free guidance scale.\r\n   * @param {BodyValue<\"cfg_scale\">} scale - The CFG scale value.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  cfg(scale: BodyValue<\"cfg_scale\">) {\r\n    this._write(\"cfg_scale\", scale);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the image size.\r\n   * @param {BodyValue<\"width\">} width - The image width.\r\n   * @param {BodyValue<\"height\">} height - The image height.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  size(width: BodyValue<\"width\">, height: BodyValue<\"height\">) {\r\n    this._write(\"width\", width);\r\n    this._write(\"height\", height);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Enables high-resolution image generation.\r\n   * @param {BodyValue<\"enable_hr\">} [enable=true] - Whether to enable high-resolution mode.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  enableHR(enable: BodyValue<\"enable_hr\"> = true) {\r\n    this._write(\"enable_hr\", enable);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Configures high-resolution settings.\r\n   * @param {BodyValue<\"hr_scale\">} scale - The upscaling factor.\r\n   * @param {BodyValue<\"hr_upscaler\">} upscaler - The upscaler algorithm.\r\n   * @param {BodyValue<\"hr_second_pass_steps\">} [secondPassSteps] - Additional processing steps.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  hr(\r\n    scale: BodyValue<\"hr_scale\">,\r\n    upscaler: BodyValue<\"hr_upscaler\">,\r\n    secondPassSteps?: BodyValue<\"hr_second_pass_steps\">\r\n  ) {\r\n    this.enableHR(true);\r\n    this._write(\"hr_scale\", scale);\r\n    this._write(\"hr_upscaler\", upscaler);\r\n    if (secondPassSteps !== undefined) {\r\n      this._write(\"hr_second_pass_steps\", secondPassSteps);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Overrides some of the processing settings.\r\n   * @param {BodyValue<\"override_settings\">} settings - The settings to override.\r\n   * @param {boolean} [restore_afterwards=false] - Whether to restore the original settings after processing.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  override(\r\n    settings: BodyValue<\"override_settings\">,\r\n    restore_afterwards = false\r\n  ) {\r\n    this._write(\"override_settings\", {\r\n      ...this.processing.init_body.override_settings,\r\n      ...settings,\r\n    });\r\n    this._write(\"override_settings_restore_afterwards\", restore_afterwards);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the model checkpoint to be used for processing.\r\n   * @param {string} sd_model_checkpoint - The checkpoint identifier for the model.\r\n   * @param {boolean} [restore_afterwards=false] - Whether to restore the original model checkpoint after processing.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n\r\n  model(sd_model_checkpoint: string, restore_afterwards = false) {\r\n    this.override(\r\n      { sd_model_checkpoint: sd_model_checkpoint },\r\n      restore_afterwards\r\n    );\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the script to be used for processing.\r\n   *\r\n   * @param {BodyValue<\"script_name\">} name - The name of the script.\r\n   * @param {BodyValue<\"script_args\">} [args] - Optional arguments for the script.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  script(name: BodyValue<\"script_name\">, args?: BodyValue<\"script_args\">) {\r\n    this._write(\"script_name\", name);\r\n    if (args) {\r\n      this._write(\"script_args\", args);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Controls whether images are saved to disk or not.\r\n   * @param {BodyValue<\"save_images\">} [save=true] - Whether to save images.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  saveImages(save: BodyValue<\"save_images\"> = true) {\r\n    this._write(\"save_images\", save);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Controls whether generated images are sent back to the client or not.\r\n   * @param {BodyValue<\"send_images\">} [send=true] - Whether to send images.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  sendImages(send: BodyValue<\"send_images\"> = true) {\r\n    this._write(\"send_images\", send);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the denoising strength for image processing.\r\n   * @param {BodyValue<\"denoising_strength\">} value - The denoising strength value.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n\r\n  strength(value: BodyValue<\"denoising_strength\">) {\r\n    this._write(\"denoising_strength\", value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the initial images for image processing.\r\n   * @param {...BodyValue<\"init_images\">} images - The initial images.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  images(...images: BodyValue<\"init_images\">) {\r\n    this._write(\"init_images\", images);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the resize mode for image processing.\r\n   * @param {BodyValue<\"resize_mode\">} mode - The resize mode: 0 to upscale by upscaling_resize amount, 1 to upscale up to upscaling_resize_h x upscaling_resize_w.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  resizeMode(mode: BodyValue<\"resize_mode\">) {\r\n    this._write(\"resize_mode\", mode);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the image configuration scale used in image processing.\r\n   * @param {BodyValue<\"image_cfg_scale\">} scale - The scale value for image configuration.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n\r\n  imageCfgScale(scale: BodyValue<\"image_cfg_scale\">) {\r\n    this._write(\"image_cfg_scale\", scale);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the mask for image processing.\r\n   * @param {BodyValue<\"mask\">} mask - The mask image (base64).\r\n   * @param {Object} [options] - Optional parameters.\r\n   * @param {BodyValue<\"mask_blur_x\">} [options.blurX] - The blur value for the mask in the X direction.\r\n   * @param {BodyValue<\"mask_blur_y\">} [options.blurY] - The blur value for the mask in the Y direction.\r\n   * @param {BodyValue<\"mask_blur\">} [options.blur] - The blur value for the mask.\r\n   * @param {BodyValue<\"mask_round\">} [options.round] - Whether to round the mask.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  mask(\r\n    mask: BodyValue<\"mask\">,\r\n    {\r\n      blur,\r\n      blurX,\r\n      blurY,\r\n      round,\r\n    }: {\r\n      blurX?: BodyValue<\"mask_blur_x\">;\r\n      blurY?: BodyValue<\"mask_blur_y\">;\r\n      blur?: BodyValue<\"mask_blur\">;\r\n      round?: BodyValue<\"mask_round\">;\r\n    } = {}\r\n  ) {\r\n    this._write(\"mask\", mask);\r\n    if (blurX !== undefined) this._write(\"mask_blur_x\", blurX);\r\n    if (blurY !== undefined) this._write(\"mask_blur_y\", blurY);\r\n    if (blur !== undefined) this._write(\"mask_blur\", blur);\r\n    if (round !== undefined) this._write(\"mask_round\", round);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Configures inpainting settings for image processing.\r\n   *\r\n   * @param {BodyValue<\"inpainting_fill\">} fill - The fill type for inpainting, defaults to original.\r\n   * @param {Object} [options] - Optional parameters for inpainting.\r\n   * @param {BodyValue<\"inpaint_full_res\">} [options.fullRes] - Whether to use full resolution for inpainting.\r\n   * @param {BodyValue<\"inpaint_full_res_padding\">} [options.fullResPadding] - Padding to apply when using full resolution.\r\n   * @param {BodyValue<\"inpainting_mask_invert\">} [options.maskInvert] - Invert the mask for inpainting.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n\r\n  inpainting(\r\n    fill: BodyValue<\"inpainting_fill\"> = InpaintFill.original,\r\n    {\r\n      fullRes,\r\n      fullResPadding,\r\n      maskInvert,\r\n    }: {\r\n      fullRes?: BodyValue<\"inpaint_full_res\">;\r\n      fullResPadding?: BodyValue<\"inpaint_full_res_padding\">;\r\n      maskInvert?: BodyValue<\"inpainting_mask_invert\">;\r\n    } = {}\r\n  ) {\r\n    this._write(\"inpainting_fill\", fill);\r\n    this._write(\"inpaint_full_res\", fullRes);\r\n    if (fullResPadding !== undefined)\r\n      this._write(\"inpaint_full_res_padding\", fullResPadding);\r\n    if (maskInvert !== undefined)\r\n      this._write(\"inpainting_mask_invert\", maskInvert);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the initial noise multiplier.\r\n   * @param {BodyValue<\"initial_noise_multiplier\">} value - The initial noise multiplier.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n  initialNoiseMultiplier(value: BodyValue<\"initial_noise_multiplier\">) {\r\n    this._write(\"initial_noise_multiplier\", value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * Sets the always-on scripts.\r\n   * @param {BodyValue<\"alwayson_scripts\">} scripts - The always-on scripts configuration.\r\n   * @returns {this} The pipeline instance.\r\n   */\r\n\r\n  alwaysOnScripts(scripts: BodyValue<\"alwayson_scripts\">) {\r\n    this._write(\"alwayson_scripts\", scripts);\r\n\r\n    return this;\r\n  }\r\n}\r\n"],"names":["_globalThis$structure","deepClone","globalThis","structuredClone","x","JSON","parse","stringify","ExtensionScript","name","args","this","prototype","install","req","ControlNetExt","_ExtensionScript","unit0","options","_this","call","addUnit","_inheritsLoose","_proto","unit","add","Object","keys","length","Error","push","_extends","enabled","image","mask","module","model","weight","resize_mode","low_vram","processor_res","threshold_a","threshold_b","guidance_start","guidance_end","control_mode","pixel_perfect","clear","_this$options","_this$options2","units","disable_auto_set_image","init_image0","init_images","_step","_iterator","_createForOfIteratorHelperLoose","done","value","disable_auto_set_mask","_iterator2","_step2","params2args","params","_params$enabled","_params$targets","_params$weight","_params$disable_neg","_params$strong","_params$padding","_params$inpt","_params$debug","targets","disable_neg","strong","padding","inpt","debug","TiledDiffusionMethod","CutoffExt","update","_default_params$param","default_params","method","MULTI_DIFF","overwrite_size","keep_input_size","image_width","image_height","tile_width","tile_height","overlap","tile_batch_size","upscaler_name","scale_factor","noise_inverse","noise_inverse_steps","noise_inverse_retouch","noise_inverse_renoise_strength","noise_inverse_renoise_kernel","control_tensor_cpu","enable_bbox_control","draw_background","causal_layers","bbox_control_states","TiledDiffusionExt","_defaultParams$params","defaultParams","encoderTileSize","decoderTileSize","vaeToGPU","fastDecoder","fastEncoder","colorFix","TiledVAEExt","_defaultDynamicCFGPar","mimicScale","thresholdPercentile","mimicMode","mimicScaleMin","cfgMode","cfgScaleMin","schedVal","DynamicCFGExt","ADetailerExt","assign","ad_model","ad_model_classes","ad_tab_enable","ad_prompt","ad_negative_prompt","ad_confidence","ad_mask_filter_method","ad_mask_k","ad_mask_min_ratio","ad_mask_max_ratio","ad_dilate_erode","ad_x_offset","ad_y_offset","ad_mask_merge_invert","ad_mask_blur","ad_denoising_strength","ad_inpaint_only_masked","ad_inpaint_only_masked_padding","ad_use_inpaint_width_height","ad_inpaint_width","ad_inpaint_height","ad_use_steps","ad_steps","ad_use_cfg_scale","ad_cfg_scale","ad_use_checkpoint","ad_checkpoint","ad_use_vae","ad_vae","ad_use_sampler","ad_sampler","ad_scheduler","ad_use_noise_multiplier","ad_noise_multiplier","ad_use_clip_skip","ad_clip_skip","ad_restore_face","ad_controlnet_model","ad_controlnet_module","ad_controlnet_weight","ad_controlnet_guidance_start","ad_controlnet_guidance_end","BaseHttpRequest","config","ApiError","_Error","request","response","message","url","status","statusText","body","_wrapNativeSuper","CancelError","_createClass","key","get","_isResolved","_classPrivateFieldLooseKey","_isRejected","_isCancelled","_cancelHandlers","_promise","_resolve","_reject","_Symbol$toStringTag","Symbol","toStringTag","CancelablePromise","executor","_this2","defineProperty","writable","_classPrivateFieldLooseBase","Promise","resolve","reject","onCancel","cancelHandler","_classPrivateFieldLoo","_classPrivateFieldLoo2","reason","_classPrivateFieldLoo3","_classPrivateFieldLoo4","then","onFulfilled","onRejected","onFinally","cancel","_classPrivateFieldLoo5","_classPrivateFieldLoo6","error","console","warn","ResizeModeI2i","InpaintFill","InpaintFullRes","isDefined","isString","isStringWithValue","isBlob","type","stream","arrayBuffer","constructor","test","isFormData","FormData","getQueryString","qs","process","Array","isArray","forEach","v","entries","_ref","k","encodeURIComponent","String","append","_ref2","join","resolver","e","getHeaders","TOKEN","token","USERNAME","username","PASSWORD","password","HEADERS","additionalHeaders","headers","Accept","filter","_ref5","reduce","_ref6","_extends2","credentials","str","btoa","err","Buffer","from","toString","base64","mediaType","Headers","FetchHttpRequest","_BaseHttpRequest","_temp3","_catch","encoder","ENCODE_PATH","encodeURI","path","replace","VERSION","substring","group","_options$path","hasOwnProperty","BASE","query","getUrl","formData","_ref3","_ref4","getFormData","_options$mediaType","undefined","includes","getRequestBody","_temp2","isCancelled","controller","AbortController","signal","WITH_CREDENTIALS","CREDENTIALS","abort","fetch","sendRequest","_exit","_temp","contentType","some","toLowerCase","startsWith","json","_await$response$json","text","_await$response$text","_result3","getResponseBody","responseBody","responseHeader","content","getResponseHeader","result","ok","errors","_result$status","_result$statusText","errorStatus","errorStatusText","errorBody","catchErrorCodes","__request","DefaultService","httpRequest","getCurrentUserUserGet","getCurrentUserUserGet1","appIdAppIdGet","appIdAppIdGet1","apiInfoInfoGet","_ref$serialize","serialize","buildResourceAssetsPathGet","reverseProxyProxyUrlPathGet","url_path","urlPath","reverseProxyProxyUrlPathHead","streamStreamSessionHashRunComponentIdGet","session_hash","sessionHash","run","component_id","componentId","fileDeprecatedFilePathGet","resetIteratorResetPost","_ref7","requestBody","resetIteratorResetPost1","_ref8","predictApiApiNamePost","_ref9","api_name","apiName","predictApiApiNamePost1","_ref10","predictRunApiNamePost","_ref11","predictRunApiNamePost1","_ref12","getQueueStatusQueueStatusGet","uploadFileUploadPost","_ref13","getPendingTasksInternalPendingTasksGet","progressapiInternalProgressPost","_ref14","quicksettingsHintInternalQuicksettingsHintGet","lambdaInternalPingGet","lambdaInternalProfileStartupGet","downloadSysinfoInternalSysinfoGet","_ref15","attachment","lambdaInternalSysinfoDownloadGet","text2ImgapiSdapiV1Txt2ImgPost","_ref16","img2ImgapiSdapiV1Img2ImgPost","_ref17","extrasSingleImageApiSdapiV1ExtraSingleImagePost","_ref18","extrasBatchImagesApiSdapiV1ExtraBatchImagesPost","_ref19","pnginfoapiSdapiV1PngInfoPost","_ref20","progressapiSdapiV1ProgressGet","_ref21","_ref21$skipCurrentIma","skipCurrentImage","skip_current_image","interrogateapiSdapiV1InterrogatePost","_ref22","interruptapiSdapiV1InterruptPost","skipSdapiV1SkipPost","getConfigSdapiV1OptionsGet","setConfigSdapiV1OptionsPost","_ref23","getCmdFlagsSdapiV1CmdFlagsGet","getSamplersSdapiV1SamplersGet","getSchedulersSdapiV1SchedulersGet","getUpscalersSdapiV1UpscalersGet","getLatentUpscaleModesSdapiV1LatentUpscaleModesGet","getSdModelsSdapiV1SdModelsGet","getSdVaesSdapiV1SdVaeGet","getHypernetworksSdapiV1HypernetworksGet","getFaceRestorersSdapiV1FaceRestorersGet","getRealesrganModelsSdapiV1RealesrganModelsGet","getPromptStylesSdapiV1PromptStylesGet","getEmbeddingsSdapiV1EmbeddingsGet","refreshEmbeddingsSdapiV1RefreshEmbeddingsPost","refreshCheckpointsSdapiV1RefreshCheckpointsPost","refreshVaeSdapiV1RefreshVaePost","createEmbeddingSdapiV1CreateEmbeddingPost","_ref24","createHypernetworkSdapiV1CreateHypernetworkPost","_ref25","trainEmbeddingSdapiV1TrainEmbeddingPost","_ref26","trainHypernetworkSdapiV1TrainHypernetworkPost","_ref27","getMemorySdapiV1MemoryGet","unloadapiSdapiV1UnloadCheckpointPost","reloadapiSdapiV1ReloadCheckpointPost","getScriptsListSdapiV1ScriptsGet","getScriptInfoSdapiV1ScriptInfoGet","getExtensionsListSdapiV1ExtensionsGet","fetchFileSdExtraNetworksThumbGet","_ref28","_ref28$filename","filename","fetchCoverImagesSdExtraNetworksCoverImagesGet","_ref29","_ref29$page","page","_ref29$item","item","index","getMetadataSdExtraNetworksMetadataGet","_ref30","_ref30$page","_ref30$item","getSingleCardSdExtraNetworksGetSingleCardGet","_ref31","_ref31$page","_ref31$tabname","tabname","_ref31$name","getLorasSdapiV1LorasGet","refreshLorasSdapiV1RefreshLorasPost","apiRefreshTempFilesTacapiV1RefreshTempFilesPost","apiRefreshEmbeddingsTacapiV1RefreshEmbeddingsPost","getLoraInfoTacapiV1LoraInfoLoraNameGet","_ref32","lora_name","loraName","getLycoInfoTacapiV1LycoInfoLycoNameGet","_ref33","lyco_name","lycoName","getLoraCachedHashTacapiV1LoraCachedHashLoraNameGet","_ref34","getThumbPreviewTacapiV1ThumbPreviewFilenameGet","_ref35","getThumbPreviewBlobTacapiV1ThumbPreviewBlobFilenameGet","_ref36","getWildcardContentsTacapiV1WildcardContentsGet","_ref37","basepath","refreshStylesIfChangedTacapiV1RefreshStylesIfChangedGet","increaseUseCountTacapiV1IncreaseUseCountPost","_ref38","tagname","ttype","neg","getUseCountTacapiV1GetUseCountGet","_ref39","getUseCountListTacapiV1GetUseCountListPost","_ref40","resetUseCountTacapiV1ResetUseCountPut","_ref41","pos","getAllTagCountsTacapiV1GetAllUseCountsGet","getSamplersAgentSchedulerV1SamplersGet","getSdModelsAgentSchedulerV1SdModelsGet","queueTxt2ImgAgentSchedulerV1QueueTxt2ImgPost","_ref42","queueImg2ImgAgentSchedulerV1QueueImg2ImgPost","_ref43","queueStatusApiAgentSchedulerV1QueueGet","_ref44","_ref44$limit","limit","offset","exportQueueAgentSchedulerV1ExportGet","_ref45","_ref45$limit","importQueueAgentSchedulerV1ImportPost","_ref46","historyApiAgentSchedulerV1HistoryGet","_ref47","_ref47$limit","getTaskAgentSchedulerV1TaskIdGet","_ref48","id","updateTaskAgentSchedulerV1TaskIdPut","_ref49","deleteTaskAgentSchedulerV1TaskIdDelete","_ref50","getTaskPositionAgentSchedulerV1TaskIdPositionGet","_ref51","runTaskAgentSchedulerV1TaskIdRunPost","_ref52","runTaskAgentSchedulerV1RunIdPost","_ref53","requeueTaskAgentSchedulerV1TaskIdRequeuePost","_ref54","requeueTaskAgentSchedulerV1RequeueIdPost","_ref55","requeueFailedTasksAgentSchedulerV1TaskRequeueFailedPost","deleteTaskAgentSchedulerV1DeleteIdPost","_ref56","moveTaskAgentSchedulerV1TaskIdMoveOverIdPost","_ref57","over_id","overId","moveTaskAgentSchedulerV1MoveIdOverIdPost","_ref58","pinTaskAgentSchedulerV1TaskIdBookmarkPost","_ref59","pinTaskAgentSchedulerV1BookmarkIdPost","_ref60","unpinTaskAgentSchedulerV1TaskIdUnbookmarkPost","_ref61","unpinTaskAgentSchedulerV1UnbookmarkIdPost","_ref62","renameTaskAgentSchedulerV1TaskIdRenamePost","_ref63","renameTaskAgentSchedulerV1RenameIdPost","_ref64","getTaskResultsAgentSchedulerV1TaskIdResultsGet","_ref65","_ref65$zip","zip","getTaskResultsAgentSchedulerV1ResultsIdGet","_ref66","_ref66$zip","pauseQueueAgentSchedulerV1QueuePausePost","pauseQueueAgentSchedulerV1PausePost","resumeQueueAgentSchedulerV1QueueResumePost","resumeQueueAgentSchedulerV1ResumePost","clearQueueAgentSchedulerV1QueueClearPost","clearHistoryAgentSchedulerV1HistoryClearPost","versionControlnetVersionGet","modelListControlnetModelListGet","_ref67","_ref67$update","moduleListControlnetModuleListGet","_ref68","_ref68$aliasNames","aliasNames","alias_names","controlTypesControlnetControlTypesGet","settingsControlnetSettingsGet","detectControlnetDetectPost","_ref69","renderOpenposeJsonControlnetRenderOpenposeJsonPost","_ref70","rembgRemoveRembgPost","_ref71","SDWebUIA1111Client","HttpRequest","_config$BASE","_config$VERSION","_config$WITH_CREDENTI","_config$CREDENTIALS","OpenAPI","SDProcessor","init_body","extensions","toJSON","use","ext","useCustomExt","client","Img2imgProcess","_SDProcessor","apply","arguments","Txt2imgProcess","SystemSettingProcess","pact","state","s","_Pact","o","_settle","bind","observer","callback","_isSettledPact","thenable","SDTaskStatus","SDTaskRunner","task_id","intervalMs","data","queryLoop","running","interrupted","startQueryLoop","_for","queryResults","_this2$queryResults","setTimeout","Math","random","success","results","_this4","interrupt","_this5","SDTask","pending","runner","_proto2","errWrap","_this6","failed","_this7","_this8","_this8$runner","SDTaskScheduler","queueStatus","queryHistory","pause","resume","createImg2imgTask","img2imgProcess","checkpoint","callback_url","createTxt2imgTask","txt2imgProcess","has","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","names","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","ee","listenerCount","emit","a1","a2","a3","a4","a5","len","removeListener","j","on","removeAllListeners","off","prefixed","exports","BatchGeneration","_EventEmitter","responses","isComplete","numBatches","runOneBatch","waitForComplete","_result2","_this3","currentBatch","totalBatches","GlobalCacheHub","ensureCache","__KEY__","clearCache","CachedApi","hub","_options$disableCache","_options$cacheTime","disableCache","cacheTime","cache_key_prefix","full_cache_key","_getFromCache","fullKey","cached","_cache","expires","Date","now","_setCache","_getFromCacheOrFetch","removeCache","Img2imgBatchGeneration","_BatchGeneration","api","img2img","batch_size","batchSize","Txt2imgBatchGeneration","_BatchGeneration2","txt2img","ControlNetApi","_CachedApi","_proto3","_this$options$client$","_getModels","resp","model_list","_getModuleResponse","getModels","getModules","getModuleDetail","_this9","_getVersion","version","_getControlTypes","control_types","getControlTypes","_this12","getVersion","_this13","getAllModuleDetail","_this14","detect","pc1","cnet_ext","_resp$images","images","info","_resp$images2","img2imgBatch","batch","manual","txt2imgBatch","serviceApi","ProgressWatcher","isDone","start","stage","progress","stop","ServiceApi","_proto4","base_url","_getSDModels","_getSamplers","getSDModels","getSamplers","_this10","_getEmbeddings","getEmbeddings","_getExtensionList","getExtensionList","ping","_this15","time","_this19","getCurrentImage","watchProgress","watcher","A1111StableDiffusionApi","ControlNet","Service","cache","Pipeline","processing","run_t2i","run_i2i","is_t2i","is_i2i","_this$processing$init","_write","prompt","negative","seed","subseed","sampler","scheduler","size","steps","cfg","scale","width","height","enableHR","enable","hr","upscaler","secondPassSteps","override","settings","restore_afterwards","override_settings","sd_model_checkpoint","script","saveImages","save","sendImages","send","strength","resizeMode","mode","imageCfgScale","blur","blurX","blurY","round","inpainting","fill","original","fullRes","fullResPadding","maskInvert","initialNoiseMultiplier","alwaysOnScripts","scripts"],"mappings":"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"}