Spaces:
Runtime error
Runtime error
#!/usr/bin/env python | |
# encoding: utf-8 | |
import gradio as gr | |
from datasets import load_dataset | |
from PIL import Image | |
import re | |
import os | |
import requests | |
import threading | |
import base64 | |
import io | |
sem = threading.Semaphore() | |
def infer(prompt, negative, scale): | |
try: | |
url = os.environ.get('SERVICE_URL', 'https://modelbest.cn/') | |
sem.acquire() | |
resp = requests.post(url, headers={ | |
"X-Model-Best-Model": "viscpm-paint-balance", | |
"X-Model-Best-Trace-ID": "test-trace", | |
}, json={ | |
"question": prompt, | |
"negative_prompt": negative, | |
"num_images_per_prompt": 4, | |
}) | |
sem.release() | |
resp = resp.json() | |
images = resp['data']['response'] | |
images = [Image.open(io.BytesIO(base64.b64decode(encoded_image))).convert("RGB") for encoded_image in images] | |
return images | |
except Exception as e: | |
print(e) | |
return [] | |
with gr.Blocks() as demo: | |
gr.Markdown('<div align="center"><big><b>百亿参数量中英双语多模态大模型VisCPM</b></big></div>') | |
with gr.Column(variant="panel"): | |
with gr.Row(variant="compact"): | |
with gr.Column(variant="compact"): | |
text = gr.Textbox( | |
label="Enter your prompt", | |
show_label=False, | |
max_lines=1, | |
placeholder="输入提示词", | |
).style( | |
container=False, | |
) | |
neg_text = gr.Textbox( | |
label="Enter your negative prompt", | |
show_label=False, | |
max_lines=1, | |
placeholder="输入负向提示词(你不想生成的内容)", | |
).style( | |
container=False, | |
) | |
btn = gr.Button("生成图像").style(full_width=False) | |
gallery = gr.Gallery( | |
label="Generated images", show_label=False, elem_id="gallery", height="1024" | |
).style(columns=[2], rows=[2], object_fit="contain") | |
btn.click(infer, [text, neg_text], gallery) | |
if __name__ == "__main__": | |
demo.launch() |