clip-blip / app.py
lamoimage's picture
Update app.py
0915372 verified
import gradio as gr
from transformers import pipeline
from PIL import Image
import jieba.analyse
# 初始化多语言描述管道(英文生成+中英翻译)
image_to_text = pipeline("image-to-text", model="IDEA-CCNL/Taiyi-BLIP-750M-Chinese")
def analyze_image(image):
# 生成英文描述
zh_result = image_to_text(image)[0]['generated_text']
print(zh_result)
# 提取关键词
keywords = jieba.analyse.textrank(
zh_result,
topK=5,
allowPOS=('n', 'vn', 'v')
)
# 格式化输出
return f"图片描述:{zh_result}\n关键字:{', '.join(keywords)}\n" # 第三行为空行保持格式
# 创建 Gradio 界面
demo = gr.Interface(
fn=analyze_image,
inputs=gr.Image(type="pil", label="上传商品图片"),
outputs=gr.Textbox(label="分析结果", lines=3),
title="",
description="上传商品图片,自动生成中文描述并提取关键词",
allow_flagging="never"
)
# 运行应用
if __name__ == "__main__":
demo.launch()