import{isEmpty,deepClone}from"../../base/helpers.mjs";import{Controller}from"../base.mjs";import{UpscaleFormView}from"../../forms/enfugue/upscale.mjs";class UpscaleController extends Controller{getState(i=!0){return{upscale:this.upscaleForm.values}}getDefaultState(){return{upscale:{outscale:1,upscale:["esrgan"],upscalePipeline:null,upscaleIterative:!1,upscaleDiffusion:!1,upscaleDiffusionSteps:[100],upscaleDiffusionStrength:[.2],upscaleDiffusionGuidanceScale:[12],upscaleDiffusionChunkingSize:128,upscaleDiffusionChunkingBlur:128,upscaleDiffusionScaleChunkingSize:!0,upscaleDiffusionScaleChunkingBlur:!0}}}setState(i){if(!isEmpty(i.upscale)){let e=deepClone(i.upscale);isEmpty(e.upscaleDiffusionControlnet)&&(e.upscaleDiffusionControlnet=[]),isEmpty(e.upscaleDiffusionPrompt)&&(e.upscaleDiffusionPrompt=[]),isEmpty(e.upscaleDiffusionNegativePrompt)&&(e.upscaleDiffusionNegativePrompt=[]),this.upscaleForm.setValues(e).then((()=>this.upscaleForm.submit()))}}async initialize(){this.upscaleForm=new UpscaleFormView(this.config),this.upscaleForm.onSubmit((async i=>{this.engine.upscale=i.upscale,this.engine.outscale=i.outscale,this.engine.upscaleIterative=i.upscaleIterative,this.engine.upscalePipeline=i.upscalePipeline,this.engine.upscaleMethod=i.upscaleMethod,this.engine.upscaleDiffusion=i.upscaleDiffusion,this.engine.upscaleDiffusionPrompt=i.upscaleDiffusionPrompt,this.engine.upscaleDiffusionNegativePrompt=i.upscaleDiffusionNegativePrompt,this.engine.upscaleDiffusionControlnet=i.upscaleDiffusionControlnet,this.engine.upscaleDiffusionSteps=i.upscaleDiffusionSteps,this.engine.upscaleDiffusionStrength=i.upscaleDiffusionStrength,this.engine.upscaleDiffusionGuidanceScale=i.upscaleDiffusionGuidanceScale,this.engine.upscaleDiffusionChunkingSize=i.upscaleDiffusionChunkingSize,this.engine.upscaleDiffusionChunkingBlur=i.upscaleDiffusionChunkingBlur,this.engine.upscaleDiffusionScaleChunkingSize=i.upscaleDiffusionScaleChunkingSize,this.engine.upscaleDiffusionScaleChunkingBlur=i.upscaleDiffusionScaleChunkingBlur})),this.subscribe("modelPickerChange",(i=>{if(!isEmpty(i)){let e=i.defaultConfiguration,s={};isEmpty(e.upscale)||(s.upscale=e.upscale),isEmpty(e.outscale)||(s.outscale=e.outscale),isEmpty(e.upscale_iterative)||(s.upscaleIterative=e.upscale_iterative),isEmpty(e.upscale_diffusion)||(s.upscaleDiffusion=e.upscale_diffusion),isEmpty(e.upscale_diffusion_steps)||(s.upscaleDiffusionSteps=e.upscale_diffusion_steps),isEmpty(e.upscale_diffusion_pipeline)||(s.upscaleDiffusionPipeline=e.upscale_diffusion_pipeline),isEmpty(e.upscale_diffusion_strength)||(s.upscaleDiffusionStrength=e.upscale_diffusion_strength),isEmpty(e.upscale_diffusion_guidance_scale)||(s.upscaleDiffusionGuidanceScale=e.upscale_diffusion_guidance_scale),isEmpty(e.upscale_diffusion_controlnet)||(s.upscaleDiffusionControlnet=e.upscale_diffusion_controlnet),isEmpty(e.upscale_diffusion_chunking_size)||(s.upscaleDiffusionChunkingSize=e.upscale_diffusion_chunking_size),isEmpty(e.upscale_diffusion_chunking_blur)||(s.upscaleDiffusionChunkingBlur=e.upscale_diffusion_chunking_blur),isEmpty(e.upscale_diffusion_scale_chunking_size)||(s.upscaleDiffusionScaleChunkingSize=e.upscale_diffusion_scale_chunking_size),isEmpty(e.upscale_diffusion_scale_chunking_blur)||(s.upscaleDiffusionScaleChunkingBlur=e.upscale_diffusion_scale_chunking_blur),isEmpty(e.upscale_diffusion_prompt)||(isEmpty(e.upscale_diffusion_prompt_2)?s.upscaleDiffusionPrompt=e.upscale_diffusion_prompt:s.upscaleDiffusionPrompt=[e.upscale_diffusion_prompt,e.upscale_diffusion_prompt_2]),isEmpty(e.upscale_diffusion_negative_prompt)||(isEmpty(e.upscale_diffusion_negative_prompt_2)?s.upscaleDiffusionNegativePrompt=e.upscale_diffusion_negative_prompt:s.upscaleDiffusionNegativePrompt=[e.upscale_diffusion_negative_prompt,e.upscale_diffusion_negative_prompt_2]),isEmpty(s)||this.upscaleForm.setValues(s)}})),this.application.sidebar.addChild(this.upscaleForm)}}export{UpscaleController as SidebarController};
