赞
踩
参考:https://zhuanlan.zhihu.com/p/644545784
1、修改 modules/api/models.py
中的 StableDiffusionTxt2ImgProcessingAPI
增加模型名称
- StableDiffusionTxt2ImgProcessingAPI = PydanticModelGenerator(
- "StableDiffusionProcessingTxt2Img",
- StableDiffusionProcessingTxt2Img,
- [
- {"key": "sampler_index", "type": str, "default": "Euler"},
- {"key": "script_name", "type": str, "default": None},
- {"key": "script_args", "type": list, "default": []},
- {"key": "send_images", "type": bool, "default": True},
- {"key": "save_images", "type": bool, "default": False},
- {"key": "alwayson_scripts", "type": dict, "default": {}},
- {"key": "model_name", "type": str, "default": None},
- ]
- ).generate_model()
2、修改 modules/api/api.py 中 text2imgapi
代码:
- ......
-
- from modules import sd_samplers, deepbooru, sd_hijack, images, scripts, ui, \
- postprocessing, errors, restart, shared_items, sd_models
- from modules.api import models
- from modules.shared import opts, models_path
-
- ......
-
- def text2imgapi(self, txt2imgreq: models.StableDiffusionTxt2ImgProcessingAPI):
- ......
- with self.queue_lock:
- if txt2imgreq.model_name is not None:
- checkpoint_info = sd_models.CheckpointInfo(os.path.join(models_path,
- 'Stable-diffusion', txt2imgreq.model_name))
- sd_models.reload_model_weights(info = checkpoint_info)
- with closing(StableDiffusionProcessingTxt2Img(sd_model=shared.sd_model, **args)) as p:
- ......
3、修改 modules/processing.py
中的 StableDiffusionProcessingTxt2Img
,增加模型名称接收
- @dataclass(repr=False)
- class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing):
- enable_hr: bool = False
- denoising_strength: float = 0.75
- firstphase_width: int = 0
- firstphase_height: int = 0
- hr_scale: float = 2.0
- hr_upscaler: str = None
- hr_second_pass_steps: int = 0
- hr_resize_x: int = 0
- hr_resize_y: int = 0
- hr_checkpoint_name: str = None
- hr_sampler_name: str = None
- hr_prompt: str = ''
- hr_negative_prompt: str = ''
- model_name: str = None
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。