Views
No views yet



1import gradio as gr
2from PIL import Image
3import torch
4import random
5from fengshen.models.Lyrics.modeling_lyrics import LyricsLMForConditionalGeneration
6from torchvision.transforms import Compose, ToTensor, Resize, Normalize
7from transformers import InstructBlipProcessor, LlamaTokenizer, BertTokenizer, GenerationConfig
8from torchvision.transforms import Normalize, Compose, RandomResizedCrop, InterpolationMode, ToTensor, RandomHorizontalFlip
9import fengshen.models.Lyrics.groundingdino.transforms as T
10from transformers import InstructBlipForConditionalGeneration
11from peft import PeftModel
12
13OPENAI_DATASET_MEAN = (0.48145466, 0.4578275, 0.40821073)
14OPENAI_DATASET_STD = (0.26862954, 0.26130258, 0.27577711)
15device = "cuda" if torch.cuda.is_available() else "cpu"
16
17_MODEL_PATH = "your_model_path"
18
19processor = InstructBlipProcessor.from_pretrained(os.path.join(_MODEL_PATH, "vicuna-13b_processor"), padding_side = "left")
20grounding_transforms = T.Compose(
21 [
22 T.RandomResize([800], max_size=1333),
23 # T.RandomResize([800]),
24 T.ToTensor(),
25 T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
26 ]
27)
28ram_transforms = Compose([
29 Resize((384, 384)),
30 ToTensor(),
31 Normalize(mean=[0.485, 0.456, 0.406],
32 std=[0.229, 0.224, 0.225])
33 ])
34
35
36model = LyricsLMForConditionalGeneration.from_pretrained(_MODEL_PATH).to(device).eval().float()
37model = PeftModel.from_pretrained(model, _MODEL_PATH).to(device).eval().float()
38model.requires_grad_=False
39
40prompt = [
41 "Question A",
42 "Question B",
43 ]
44
45image_url = [
46 'Img Path A',
47 'Img Path B',
48 ]
49
50imgs = []
51
52for image, text in zip(image_url, prompt):
53 image = Image.open(image).convert("RGB")
54 ram_pixel_values = ram_transforms(image).unsqueeze(0).to(device)
55 grounding_pixel_values = [grounding_transforms(image, None)[0]]
56
57 inputs = processor(images=image, text=text, return_tensors="pt").to(device)
58
59 outputs = model.generate(
60 # **inputs,
61 pixel_values=inputs.pixel_values,
62 ram_pixel_values=ram_pixel_values,
63 grounding_pixel_values=grounding_pixel_values,
64 input_ids=inputs.input_ids,
65 attention_mask=inputs.attention_mask,
66 qformer_input_ids=inputs.qformer_input_ids,
67 qformer_attention_mask=inputs.qformer_attention_mask,
68 do_sample=False,
69 num_beams=5,
70 max_length=256,
71 min_length=4,
72 # repetition_penalty=1.5,
73 length_penalty=1.0,
74 # temperature=0.3,
75 # top_p=0.1,
76 # pad_token_id=32000,
77 )
78 generated_text = processor.batch_decode(outputs, skip_special_tokens=True)[0].strip()
79 print(generated_text, '\n')




1@misc{lu2023lyrics,
2 title={Lyrics: Boosting Fine-grained Language-Vision Alignment and Comprehension via Semantic-aware Visual Objects},
3 author={Junyu Lu and Ruyi Gan and Dixiang Zhang and Xiaojun Wu and Ziwei Wu and Renliang Sun and Jiaxing Zhang and Pingjian Zhang and Yan Song},
4 year={2023},
5 eprint={2312.05278},
6 archivePrefix={arXiv},
7 primaryClass={cs.CL}
8}1@misc{Fengshenbang-LM,
2 title={Fengshenbang-LM},
3 author={IDEA-CCNL},
4 year={2021},
5 howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
6}