|
import gradio as gr
|
|
from transformers import BlipProcessor, BlipForConditionalGeneration
|
|
from PIL import Image
|
|
|
|
|
|
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
|
|
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
|
|
|
|
def generate_caption(image):
|
|
inputs = processor(image, return_tensors="pt")
|
|
outputs = model.generate(**inputs)
|
|
description = processor.decode(outputs[0], skip_special_tokens=True)
|
|
return description
|
|
|
|
|
|
gradio_app = gr.Interface(
|
|
fn=generate_caption,
|
|
inputs=gr.Image(type="pil"),
|
|
outputs="text",
|
|
title="图片描述生成器",
|
|
description="上传一张图片,生成相应的描述。"
|
|
)
|
|
|
|
if __name__ == "__main__":
|
|
gradio_app.launch()
|
|
|