参考: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

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: