Closed cavaniho closed 3 months ago
Hey, seems unipc call the model in a different way. I will try to fix it soon.
Hello, I've updated the code to support UniPC sampler, please try it~ @cavaniho
Hello, I've updated the code to support UniPC sampler, please try it~ @cavaniho
The plugin can now be used on unipc, thanks
haracteristic Guidance recorded iterations info for 0 steps Characteristic Guidance recovering the CFGDenoiser Traceback (most recent call last): File "E:\aidraw\stable-diffusion-webui-forge\modules_forge\main_thread.py", line 37, in loop task.work() File "E:\aidraw\stable-diffusion-webui-forge\modules_forge\main_thread.py", line 26, in work self.result = self.func(*self.args, **self.kwargs) File "E:\aidraw\stable-diffusion-webui-forge\modules\txt2img.py", line 111, in txt2img_function processed = processing.process_images(p) File "E:\aidraw\stable-diffusion-webui-forge\modules\processing.py", line 752, in process_images res = process_images_inner(p) File "E:\aidraw\stable-diffusion-webui-forge\modules\processing.py", line 922, in process_images_inner samples_ddim = p.sample(conditioning=p.c, unconditional_conditioning=p.uc, seeds=p.seeds, subseeds=p.subseeds, subseed_strength=p.subseed_strength, prompts=p.prompts) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\CHGextension.py", line 421, in wrapper raise e File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\CHGextension.py", line 417, in wrapper result = sample(conditioning, unconditional_conditioning, seeds, subseeds, subseed_strength, File "E:\aidraw\stable-diffusion-webui-forge\modules\processing.py", line 1275, in sample samples = self.sampler.sample(self, x, conditioning, unconditional_conditioning, image_conditioning=self.txt2img_image_conditioning(x)) File "E:\aidraw\stable-diffusion-webui-forge\modules\sd_samplers_timesteps.py", line 173, in sample samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs)) File "E:\aidraw\stable-diffusion-webui-forge\modules\sd_samplers_common.py", line 263, in launch_sampling return func() File "E:\aidraw\stable-diffusion-webui-forge\modules\sd_samplers_timesteps.py", line 173, in <lambda> samples = self.launch_sampling(steps, lambda: self.func(self.model_wrap_cfg, x, extra_args=self.sampler_extra_args, disable=False, callback=self.callback_state, **extra_params_kwargs)) File "E:\aidraw\stable-diffusion-webui-forge\modules\sd_samplers_timesteps_impl.py", line 135, in unipc x = unipc_sampler.sample(x, steps=len(timesteps), t_start=t_start, skip_type=shared.opts.uni_pc_skip_type, method="multistep", order=shared.opts.uni_pc_order, lower_order_final=shared.opts.uni_pc_lower_order_final) File "E:\aidraw\stable-diffusion-webui-forge\modules\models\diffusion\uni_pc\uni_pc.py", line 760, in sample model_prev_list = [self.model_fn(x, vec_t)] File "E:\aidraw\stable-diffusion-webui-forge\modules\models\diffusion\uni_pc\uni_pc.py", line 455, in model_fn return self.data_prediction_fn(x, t) File "E:\aidraw\stable-diffusion-webui-forge\modules\models\diffusion\uni_pc\uni_pc.py", line 439, in data_prediction_fn noise = self.noise_prediction_fn(x, t) File "E:\aidraw\stable-diffusion-webui-forge\modules\models\diffusion\uni_pc\uni_pc.py", line 433, in noise_prediction_fn return self.model(x, t) File "E:\aidraw\stable-diffusion-webui-forge\modules\sd_samplers_timesteps_impl.py", line 124, in model res = self.cfg_model(x, t_input, **self.extra_args) File "E:\aidraw\stable-diffusion-webui-forge\venv\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "E:\aidraw\stable-diffusion-webui-forge\venv\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\CHGextension.py", line 382, in _call_forward return CHGDenoiser.forward(self, *args, **kwargs) File "<string>", line 36, in forward File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\forge_inject.py", line 263, in forge_sample denoised = sampling_function(self,model, x, timestep, uncond, cond, cond_scale, model_options, seed) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\forge_inject.py", line 193, in sampling_function cond_pred, uncond_pred = calc_cond_uncond_batch(self,model, cond, uncond_, x, timestep, model_options,cond_scale) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\forge_inject.py", line 157, in calc_cond_uncond_batch output = Chara_iteration(self,model,None,input_x,timestep_,cond_scale,uncond[0]['cross_attn'],c).chunk(batch_chunks) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\CharaIte.py", line 182, in Chara_iteration dxs_add = chara_ite_inner_loop(self, evaluations, ite_paras) File "E:\aidraw\stable-diffusion-webui-forge\extensions\CharacteristicGuidanceWebUI\scripts\CharaIte.py", line 222, in chara_ite_inner_loop abt = self.alphas[t_in.long()] RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu) indices should be either on cpu or on the same device as the indexed tensor (cpu)