2023-12-02 23:01:11 +08:00
|
|
|
from modules import scripts_postprocessing, ui_components, deepbooru, shared
|
|
|
|
import gradio as gr
|
|
|
|
|
|
|
|
|
|
|
|
class ScriptPostprocessingCeption(scripts_postprocessing.ScriptPostprocessing):
|
|
|
|
name = "Caption"
|
2023-12-19 17:48:49 +08:00
|
|
|
order = 4040
|
2023-12-02 23:01:11 +08:00
|
|
|
|
|
|
|
def ui(self):
|
|
|
|
with ui_components.InputAccordion(False, label="Caption") as enable:
|
|
|
|
option = gr.CheckboxGroup(value=["Deepbooru"], choices=["Deepbooru", "BLIP"], show_label=False)
|
|
|
|
|
|
|
|
return {
|
|
|
|
"enable": enable,
|
|
|
|
"option": option,
|
|
|
|
}
|
|
|
|
|
|
|
|
def process(self, pp: scripts_postprocessing.PostprocessedImage, enable, option):
|
|
|
|
if not enable:
|
|
|
|
return
|
|
|
|
|
|
|
|
captions = [pp.caption]
|
|
|
|
|
|
|
|
if "Deepbooru" in option:
|
|
|
|
captions.append(deepbooru.model.tag(pp.image))
|
|
|
|
|
|
|
|
if "BLIP" in option:
|
2023-12-16 21:14:39 +08:00
|
|
|
captions.append(shared.interrogator.interrogate(pp.image.convert("RGB")))
|
2023-12-02 23:01:11 +08:00
|
|
|
|
|
|
|
pp.caption = ", ".join([x for x in captions if x])
|