Team Ai
Apppublic

cppowboy/viscpm-paint

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
app.py67 linesDownload Raw Back to root
1#!/usr/bin/env python2# encoding: utf-83import gradio as gr4from datasets import load_dataset5from PIL import Image6 7import re8import os9import requests10import threading11import base64 12import io13 14sem = threading.Semaphore()15def infer(prompt, negative, scale):16    try:17        url = os.environ.get('SERVICE_URL', 'https://modelbest.cn/')18        sem.acquire()19        resp = requests.post(url, headers={20            "X-Model-Best-Model": "viscpm-paint-balance",21            "X-Model-Best-Trace-ID": "test-trace",22        }, json={23            "question": prompt,24            "negative_prompt": negative,25            "num_images_per_prompt": 4,26        })27        sem.release()28        resp = resp.json()29        images = resp['data']['response']30        images = [Image.open(io.BytesIO(base64.b64decode(encoded_image))).convert("RGB") for encoded_image in images]31        return images32    except Exception as e:33        print(e)34        return []35 36 37with gr.Blocks() as demo:38    gr.Markdown('<div align="center"><big><b>百亿参数量中英双语多模态大模型VisCPM</b></big></div>')39    with gr.Column(variant="panel"):40        with gr.Row(variant="compact"):41            with gr.Column(variant="compact"):42                text = gr.Textbox(43                    label="Enter your prompt",44                    show_label=False,45                    max_lines=1,46                    placeholder="输入提示词",47                ).style(48                    container=False,49                )50                neg_text = gr.Textbox(51                    label="Enter your negative prompt",52                    show_label=False,53                    max_lines=1,54                    placeholder="输入负向提示词(你不想生成的内容)",55                ).style(56                    container=False,57                )58            btn = gr.Button("生成图像").style(full_width=False)59 60        gallery = gr.Gallery(61            label="Generated images", show_label=False, elem_id="gallery", height="1024"62        ).style(columns=[2], rows=[2], object_fit="contain")63 64    btn.click(infer, [text, neg_text], gallery)65 66if __name__ == "__main__":67    demo.launch()