mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2024-11-22 08:07:56 +01:00
Add the "send picture" extension file
This commit is contained in:
parent
7a527a5581
commit
58e6734308
56
extensions/send_pictures/script.py
Normal file
56
extensions/send_pictures/script.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import base64
|
||||||
|
from io import BytesIO
|
||||||
|
|
||||||
|
import gradio as gr
|
||||||
|
import modules.chat as chat
|
||||||
|
import modules.shared as shared
|
||||||
|
from modules.bot_picture import caption_image
|
||||||
|
|
||||||
|
params = {
|
||||||
|
}
|
||||||
|
|
||||||
|
input_hijack = {
|
||||||
|
'state': False,
|
||||||
|
'value': []
|
||||||
|
}
|
||||||
|
|
||||||
|
def generate_chat_picture(picture, name1, name2):
|
||||||
|
text = f'*{name1} sends {name2} a picture that contains the following: "{caption_image(picture)}"*'
|
||||||
|
buffer = BytesIO()
|
||||||
|
picture.save(buffer, format="JPEG")
|
||||||
|
img_str = base64.b64encode(buffer.getvalue()).decode('utf-8')
|
||||||
|
visible_text = f'<img src="data:image/jpeg;base64,{img_str}">'
|
||||||
|
return text, visible_text
|
||||||
|
|
||||||
|
def input_modifier(string):
|
||||||
|
"""
|
||||||
|
This function is applied to your text inputs before
|
||||||
|
they are fed into the model.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return string
|
||||||
|
|
||||||
|
def output_modifier(string):
|
||||||
|
"""
|
||||||
|
This function is applied to the model outputs.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return string
|
||||||
|
|
||||||
|
def bot_prefix_modifier(string):
|
||||||
|
"""
|
||||||
|
This function is only applied in chat mode. It modifies
|
||||||
|
the prefix text for the Bot and can be used to bias its
|
||||||
|
behavior.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return string
|
||||||
|
|
||||||
|
def ui():
|
||||||
|
picture_select = gr.Image(label='Send a picture', type='pil')
|
||||||
|
|
||||||
|
function_call = 'chat.cai_chatbot_wrapper' if shared.args.cai_chat else 'chat.chatbot_wrapper'
|
||||||
|
picture_select.upload(lambda picture, name1, name2: input_hijack.update({"state": True, "value": generate_chat_picture(picture, name1, name2)}), [picture_select, shared.gradio['name1'], shared.gradio['name2']], None)
|
||||||
|
picture_select.upload(eval(function_call), shared.input_params, shared.gradio['display'], show_progress=shared.args.no_stream)
|
||||||
|
picture_select.upload(lambda : None, [], [picture_select], show_progress=False)
|
||||||
|
#parser.add_argument('--picture', action='store_true', help='Adds an ability to send pictures in chat UI modes. Captions are generated by BLIP.')
|
Loading…
Reference in New Issue
Block a user