Spaces:
Runtime error
Runtime error
import gradio as gr | |
from modules import scripts, processing, shared, sd_models | |
title = 'BLIP Diffusion' | |
class Script(scripts.Script): | |
def title(self): | |
return title | |
def show(self, is_img2img): | |
return is_img2img if shared.backend == shared.Backend.DIFFUSERS else False | |
def ui(self, _is_img2img): | |
with gr.Row(): | |
gr.HTML('<a href="https://huggingface.co/salesforce/blipdiffusion">  BLIP Diffusion</a><br>') | |
with gr.Row(): | |
source_subject = gr.Textbox(value='', label='Source subject') | |
with gr.Row(): | |
target_subject = gr.Textbox(value='', label='Target subject') | |
with gr.Row(): | |
prompt_strength = gr.Slider(label='Prompt strength', minimum=0.0, maximum=1.0, step=0.01, value=0.5) | |
return [source_subject, target_subject, prompt_strength] | |
def run(self, p: processing.StableDiffusionProcessing, source_subject, target_subject, prompt_strength): # pylint: disable=arguments-differ, unused-argument | |
c = shared.sd_model.__class__.__name__ if shared.sd_model is not None else '' | |
if c != 'BlipDiffusionPipeline': | |
shared.log.error(f'{title}: model selected={c} required=BLIPDiffusion') | |
return None | |
if hasattr(p, 'init_images') and len(p.init_images) > 0: | |
p.task_args['reference_image'] = p.init_images[0] | |
p.task_args['prompt'] = [p.prompt] | |
p.task_args['neg_prompt'] = p.negative_prompt | |
p.task_args['prompt_strength'] = prompt_strength | |
p.task_args['source_subject_category'] = [source_subject] | |
p.task_args['target_subject_category'] = [target_subject] | |
p.task_args['output_type'] = 'pil' | |
shared.log.debug(f'BLIP Diffusion: args={p.task_args}') | |
shared.sd_model = sd_models.set_diffuser_pipe(shared.sd_model, sd_models.DiffusersTaskType.IMAGE_2_IMAGE) | |
processed = processing.process_images(p) | |
return processed | |
else: | |
shared.log.error(f'{title}: no init_images') | |
return None | |