Update README.md
Browse files
README.md
CHANGED
@@ -12,26 +12,24 @@ language:
|
|
12 |
|
13 |
<p align="center">
|
14 |
<!-- <a href="https://arxiv.org/abs/2502.12579"><img src="https://img.shields.io/badge/arXiv%20paper-2502.12579-b31b1b.svg" alt="arxiv"></a> -->
|
15 |
-
<a href="https://github.com/AIDC-AI/Ovis"><img src="https://img.shields.io/badge/
|
|
|
16 |
<a href="https://huggingface.co/spaces/AIDC-AI/Ovis-U1-3B"><img src="https://img.shields.io/badge/π¨_HF_Spaces-AIDC--AI/Ovis--U1--3B-lightblack" alt="demo"></a>
|
17 |
<a href="https://huggingface.co/AIDC-AI/Ovis-U1-3B"><img src="https://img.shields.io/badge/π€_Model-AIDC--AI/Ovis--U1--3B-yellow" alt="model"></a>
|
18 |
</p>
|
19 |
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
<img src="https://cdn-uploads.huggingface.co/production/uploads/636f4c6b5d2050767e4a1491/EmEEGmot9JzaBfHP2uWld.jpeg" alt="Ovis-U1 architecture">
|
25 |
-
<figcaption style="text-align: center;">The overall architecture of Ovis-U1 (cf. Fig.2 in our report).</figcaption>
|
26 |
-
</figure>
|
27 |
|
28 |
-
---
|
29 |
|
30 |
-
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
- [2025/6/28] π₯ Announcing Ovis-U1-3B ([Model](https://huggingface.co/AIDC-AI/Ovis-U1-3B), [Demo](https://huggingface.co/spaces/AIDC-AI/Ovis-U1-3B))!
|
33 |
-
|
34 |
-
---
|
35 |
|
36 |
## π¦ Installation
|
37 |
|
@@ -47,24 +45,18 @@ pip install -e .
|
|
47 |
|
48 |
```
|
49 |
|
50 |
-
## π Model Checkpoints
|
51 |
-
|
52 |
-
We provide pretrained Ovis-U1-3B checkpoints for easy download and evaluation:
|
53 |
-
|
54 |
-
- **Model Repository**: [](https://huggingface.co/AIDC-AI/Ovis-U1-3B)
|
55 |
-
|
56 |
|
57 |
## π οΈ Inference
|
58 |
|
59 |
For multimodal understanding, please run
|
60 |
|
61 |
```bash
|
62 |
-
python
|
63 |
```
|
64 |
|
65 |
For text-to-image, please run
|
66 |
```bash
|
67 |
-
python
|
68 |
--height 1024 \
|
69 |
--width 1024 \
|
70 |
--steps 50 \
|
@@ -74,85 +66,87 @@ python ovis/eval/test_t2i.py \
|
|
74 |
|
75 |
For image editing, please run
|
76 |
```bash
|
77 |
-
python
|
78 |
--steps 50 \
|
79 |
-
--img_cfg
|
80 |
-
--txt_cfg
|
81 |
```
|
82 |
|
83 |
## π Performance
|
84 |
|
85 |
#### OpenCompass Multi-modal Academic Benchmarks
|
86 |
|
87 |
-
| Model | MMB | MMS | MMMU | MathVista | Hallusion | AI2D | OCRBench | MMVet |
|
88 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
89 |
-
| GPT-4o |
|
90 |
-
| InternVL2.5-2B | 70.9 | 54.3 | 43.2 | 51.1 | 42.3 | 74.9 | 80.2 | 62.6 |
|
91 |
-
| SAIL-VL-2B | 73.7 |
|
92 |
-
| InternVL3-2B | 78 |
|
93 |
-
| Qwen2.5-VL-3B | 76.8 | 56.3 | 51.2 | 61.2 | 46.6 | 81.4 | 82.8 | 60 |
|
94 |
-
| Ovis2-2B | 76.9 | 56.7 | 45.6 | 64.1 | 50.2 | 82.7 | 87.3 | 58.3 |
|
95 |
-
| SAIL-VL-1.5-2B | 78.5 | 62.6 | 46.4 | 67 | 50 | 83.7 | 89.1 | 58.8 |
|
96 |
-
| Ristretto-3B | 80.2 | 62.8 | 51.3 | 67.6 | 50.2 | 84.2 | 84.7 | 60.7 |
|
97 |
-
| Ovis-U1 | 77.8 |
|
98 |
|
99 |
#### GenEval
|
100 |
|
101 |
-
| Model | Single object | Two object | Counting | Colors | Position | Attribute binding |
|
102 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
103 |
-
| GPT-4o | 0.99 | 0.92 | 0.85 | 0.92 | 0.75 | 0.61 |
|
104 |
-
| BAGEL | 0.99 | 0.94 | 0.81 | 0.88 | 0.64 | 0.63 |
|
105 |
-
| BAGEL π | 0.98 | 0.95 | 0.84 | 0.95 | 0.78 | 0.77
|
106 |
-
| UniWorld-V1 | 0.99 | 0.93 | 0.79 | 0.89 | 0.49 | 0.70 |
|
107 |
-
| UniWorld-V1 π | 0.98 | 0.93 | 0.81 | 0.89 | 0.74 | 0.71 |
|
108 |
-
| OmniGen | 0.98 | 0.84 | 0.66 | 0.74 | 0.40 | 0.43 |
|
109 |
-
| OmniGen2 | 1 | 0.95 | 0.64 | 0.88 | 0.55 | 0.76 |
|
110 |
-
| OmniGen2 π | 0.99 | 0.96 | 0.74 | 0.98 | 0.71 | 0.75 |
|
111 |
-
| Ovis-U1 |
|
112 |
|
113 |
*π denotes using the rewritten prompts*
|
114 |
|
115 |
#### DPG-Bench
|
116 |
|
117 |
-
| Model | Global | Entity | Attribute | Relation | Other |
|
118 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
119 |
-
| BAGEL | 88.94 | 90.37 | 91.29 | 90.82 | 88.67 |
|
120 |
-
| UniWorld-V1 | 83.64 | 88.39 | 88.44 | 89.27 | 87.22 |
|
121 |
-
| OmniGen | 87.90 | 88.97 | 88.47 | 87.95 | 83.56 |
|
122 |
-
| OmniGen2 | 88.81 | 88.83 | 90.18 | 89.37 | 90.27 |
|
123 |
-
| Ovis-U1 | 82.37 | 90.08 | 88.68 | 93.35 | 85.20 |
|
124 |
|
125 |
#### ImgEdit-Bench
|
126 |
|
127 |
-
| Model | Add | Adjust | Extract | Replace | Remove | Background | Style | Hybrid | Action |
|
128 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
129 |
-
| GPT-4o | 4.61 | 4.33 | 2.9 | 4.35 | 3.66 | 4.57 | 4.93 | 3.96 | 4.89 |
|
130 |
-
| MagicBrush | 2.84 | 1.58 | 1.51 | 1.97 | 1.58 | 1.75 | 2.38 | 1.62 | 1.22 |
|
131 |
-
| Instruct-P2P | 2.45 | 1.83 | 1.44 | 2.01 | 1.50 | 1.44 | 3.55 | 1.2 | 1.46 |
|
132 |
-
| AnyEdit | 3.18 | 2.95 | 1.88 | 2.47 | 2.23 | 2.24 | 2.85 | 1.56 | 2.65 |
|
133 |
-
| UltraEdit | 3.44 | 2.81 | 2.13 | 2.96 | 1.45 | 2.83 | 3.76 | 1.91 | 2.98 |
|
134 |
-
| OmniGen | 3.47 | 3.04 | 1.71 | 2.94 | 2.43 | 3.21 | 4.19 | 2.24 | 3.38 |
|
135 |
-
| Step1X-Edit | 3.88 | 3.14 | 1.76 | 3.40 | 2.41 | 3.16 | 4.63 | 2.64 | 2.52 |
|
136 |
-
| ICEdit | 3.58 | 3.39 | 1.73 | 3.15 | 2.93 | 3.08 | 3.84 | 2.04 | 3.68 |
|
137 |
-
| BAGEL | 3.56 | 3.31 | 1.7 | 3.3 | 2.62 | 3.24 | 4.49 | 2.38 | 4.17 |
|
138 |
-
| UniWorld-V1 | 3.82 | 3.64 | 2.27 | 3.47 | 3.24 | 2.99 | 4.21 | 2.96 | 2.74 |
|
139 |
-
| OmniGen2 | 3.57 | 3.06 | 1.77 | 3.74 | 3.2 | 3.57 | 4.81 | 2.52 | 4.68 |
|
140 |
-
| Ovis-U1 | 4.13 | 3.62 | 2.98 | 4.45 | 4.06 | 4.22 | 4.69 | 3.45 | 4.61 |
|
|
|
141 |
|
142 |
#### GEdit-Bench-EN
|
143 |
|
144 |
-
| Model | Background Change | Color Alteration | Material Modification | Motion Change | Portrait Beautification | Style Transfer | Subject Addition | Subject Removal | Subject Replacement | Text Modification | Tone Transformation |
|
145 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
146 |
-
| GPT-4o | 7.205 | 6.491 | 6.607 | 8.096 | 7.768 | 6.961 | 7.622 | 8.331 | 8.067 | 7.427 | 8.301 |
|
147 |
-
| AnyEdit | 4.663 | 4.260 | 2.537 | 2.024 | 3.479 | 2.032 | 3.995 | 3.089 | 3.180 | 0.922 | 5.151 |
|
148 |
-
| Instruct-Pix2Pix | 3.825 | 5.182 | 3.688 | 3.509 | 4.339 | 4.560 | 3.461 | 2.031 | 4.237 | 0.955 | 4.733 |
|
149 |
-
| MagicBrush | 5.637 | 5.136 | 5.078 | 4.513 | 4.487 | 4.439 | 5.252 | 3.704 | 4.941 | 1.384 | 5.130 |
|
150 |
-
| OmniGen | 5.281 | 6.003 | 5.308 | 2.916 | 3.087 | 4.903 | 6.628 | 6.352 | 5.616 | 4.519 | 5.064 |
|
151 |
-
| Gemini |
|
152 |
-
| Step1X-Edit | 6.547 | 6.545 | 6.204 | 6.483 | 6.787 | 7.221 | 6.975 | 6.512 | 7.068 | 6.921 | 6.448 |
|
153 |
-
| Doubao |
|
154 |
-
| BAGEL | 7.324 | 6.909 | 6.381 | 4.753 | 4.573 | 6.150 | 7.896 | 7.164 | 7.021 | 7.320 | 6.218 |
|
155 |
-
| Ovis-U1 | 7.486 | 6.879 | 6.208 | 4.790 | 5.981 | 6.463 | 7.491 | 7.254 | 7.266 | 4.482 | 6.314 |
|
|
|
156 |
|
157 |
## π Citation
|
158 |
|
|
|
12 |
|
13 |
<p align="center">
|
14 |
<!-- <a href="https://arxiv.org/abs/2502.12579"><img src="https://img.shields.io/badge/arXiv%20paper-2502.12579-b31b1b.svg" alt="arxiv"></a> -->
|
15 |
+
<a href="https://github.com/AIDC-AI/Ovis-U1/blob/main/docs/Ovis_U1_Report.pdf"><img src="https://img.shields.io/badge/Paper-Tech_Report-b31b1b" alt="paper"></a>
|
16 |
+
<a href="https://github.com/AIDC-AI/Ovis-U1"><img src="https://img.shields.io/badge/GitHub-AIDC--AI/Ovis--U1-blue?style=flat&logo=github" alt="code"></a>
|
17 |
<a href="https://huggingface.co/spaces/AIDC-AI/Ovis-U1-3B"><img src="https://img.shields.io/badge/π¨_HF_Spaces-AIDC--AI/Ovis--U1--3B-lightblack" alt="demo"></a>
|
18 |
<a href="https://huggingface.co/AIDC-AI/Ovis-U1-3B"><img src="https://img.shields.io/badge/π€_Model-AIDC--AI/Ovis--U1--3B-yellow" alt="model"></a>
|
19 |
</p>
|
20 |
|
21 |
|
22 |
+
<p align="left">
|
23 |
+
Building on the foundation of the Ovis series, Ovis-U1 is a 3-billion-parameter unified model that seamlessly integrates <b>multimodal understanding</b>, <b>text-to-image generation</b>, and <b>image editing</b> within a single powerful framework.
|
24 |
+
</p>
|
|
|
|
|
|
|
25 |
|
|
|
26 |
|
27 |
+
<p align="center">
|
28 |
+
<img src="https://cdn-uploads.huggingface.co/production/uploads/636f4c6b5d2050767e4a1491/EmEEGmot9JzaBfHP2uWld.jpeg" width="95%">
|
29 |
+
<br>
|
30 |
+
<em>The overall architecture of Ovis-U1 (cf. Fig.2 in our report).</em>
|
31 |
+
</p>
|
32 |
|
|
|
|
|
|
|
33 |
|
34 |
## π¦ Installation
|
35 |
|
|
|
45 |
|
46 |
```
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
## π οΈ Inference
|
50 |
|
51 |
For multimodal understanding, please run
|
52 |
|
53 |
```bash
|
54 |
+
python test_img_to_txt.py
|
55 |
```
|
56 |
|
57 |
For text-to-image, please run
|
58 |
```bash
|
59 |
+
python test_txt_to_img.py \
|
60 |
--height 1024 \
|
61 |
--width 1024 \
|
62 |
--steps 50 \
|
|
|
66 |
|
67 |
For image editing, please run
|
68 |
```bash
|
69 |
+
python test_img_edit.py \
|
70 |
--steps 50 \
|
71 |
+
--img_cfg 1.5 \
|
72 |
+
--txt_cfg 6
|
73 |
```
|
74 |
|
75 |
## π Performance
|
76 |
|
77 |
#### OpenCompass Multi-modal Academic Benchmarks
|
78 |
|
79 |
+
| Model | Avg | MMB | MMS | MMMU | MathVista | Hallusion | AI2D | OCRBench | MMVet |
|
80 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
81 |
+
| GPT-4o | **75.4** | **86** |**70.2** | **72.9** | **71.6** | **57** | **86.3** | 82.2 | **76.9** |
|
82 |
+
| InternVL2.5-2B | 59.9 | 70.9 | 54.3 | 43.2 | 51.1 | 42.3 | 74.9 | 80.2 | 62.6 |
|
83 |
+
| SAIL-VL-2B | 61 | 73.7 |56.5 | 44.1 | 62.8 | 45.9 | 77.4 | 83.1 | 44.2 |
|
84 |
+
| InternVL3-2B | 61.1 | 78 |61.1 | 48.7 | 57.6 | 41.9 | 78.6 | 83.1 | <ins>67</ins> |
|
85 |
+
| Qwen2.5-VL-3B | 64.5 | 76.8 | 56.3 | 51.2 | 61.2 | 46.6 | 81.4 | 82.8 | 60 |
|
86 |
+
| Ovis2-2B | 65.2 | 76.9 | 56.7 | 45.6 | 64.1 | 50.2 | 82.7 | 87.3 | 58.3 |
|
87 |
+
| SAIL-VL-1.5-2B | 67 | 78.5 | 62.6 | 46.4 | 67 | 50 | 83.7 | **89.1** | 58.8 |
|
88 |
+
| Ristretto-3B | 67.7 | <ins>80.2</ins> | <ins>62.8</ins> | <ins>51.3</ins> | 67.6 | 50.2 | 84.2 | 84.7 | 60.7 |
|
89 |
+
| Ovis-U1 | <ins>69.6</ins> | 77.8 |61.3 | 51.1 | <ins>69.4</ins> | <ins>56.3</ins> | <ins>85.6</ins> | <ins>88.3</ins> | 66.7 |
|
90 |
|
91 |
#### GenEval
|
92 |
|
93 |
+
| Model | Overall |Single object | Two object | Counting | Colors | Position | Attribute binding |
|
94 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
95 |
+
| GPT-4o | 0.84 | <ins>0.99</ins> | 0.92 | <ins>0.85</ins> | 0.92 | 0.75 | 0.61 |
|
96 |
+
| BAGEL | 0.82 | <ins>0.99</ins> | 0.94 | 0.81 | 0.88 | 0.64 | 0.63 |
|
97 |
+
| BAGEL π | <ins>0.88</ins> | 0.98 | 0.95 | 0.84 | <ins>0.95</ins> | <ins>0.78</ins> | **0.77** |
|
98 |
+
| UniWorld-V1 | 0.80 | <ins>0.99</ins> | 0.93 | 0.79 | 0.89 | 0.49 | 0.70 |
|
99 |
+
| UniWorld-V1 π | 0.84 | 0.98 | 0.93 | 0.81 | 0.89 | 0.74 | 0.71 |
|
100 |
+
| OmniGen | 0.68 | 0.98 | 0.84 | 0.66 | 0.74 | 0.40 | 0.43 |
|
101 |
+
| OmniGen2 |0.80 | **1** | 0.95 | 0.64 | 0.88 | 0.55 | <ins>0.76</ins> |
|
102 |
+
| OmniGen2 π | 0.86 | <ins>0.99</ins> | <ins>0.96</ins> | 0.74 | **0.98** | 0.71 | 0.75 |
|
103 |
+
| Ovis-U1 |**0.89** | 0.98 | **0.98** | **0.90** | 0.92 | **0.79** | 0.75 |
|
104 |
|
105 |
*π denotes using the rewritten prompts*
|
106 |
|
107 |
#### DPG-Bench
|
108 |
|
109 |
+
| Model | Overall | Global | Entity | Attribute | Relation | Other |
|
110 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
111 |
+
| BAGEL | **85.07** | **88.94** | **90.37** | **91.29** | <ins>90.82</ins> | <ins>88.67</ins> |
|
112 |
+
| UniWorld-V1 |81.38 | 83.64 | 88.39 | 88.44 | 89.27 | 87.22 |
|
113 |
+
| OmniGen |81.16 | 87.90 | 88.97 | 88.47 | 87.95 | 83.56 |
|
114 |
+
| OmniGen2 |83.57 | <ins>88.81</ins> | 88.83 | <ins>90.18</ins> | 89.37 | **90.27** |
|
115 |
+
| Ovis-U1 | <ins>83.72</ins> | 82.37 | <ins>90.08</ins> | 88.68 | **93.35** | 85.20 |
|
116 |
|
117 |
#### ImgEdit-Bench
|
118 |
|
119 |
+
| Model | Overall |Add | Adjust | Extract | Replace | Remove | Background | Style | Hybrid | Action |
|
120 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
121 |
+
| GPT-4o | **4.2** | **4.61** | **4.33** | <ins>2.9</ins> | <ins>4.35</ins> | <ins>3.66</ins> | **4.57** | **4.93** | **3.96** | **4.89** |
|
122 |
+
| MagicBrush | 1.90 | 2.84 | 1.58 | 1.51 | 1.97 | 1.58 | 1.75 | 2.38 | 1.62 | 1.22 |
|
123 |
+
| Instruct-P2P | 1.88 | 2.45 | 1.83 | 1.44 | 2.01 | 1.50 | 1.44 | 3.55 | 1.2 | 1.46 |
|
124 |
+
| AnyEdit | 2.45 | 3.18 | 2.95 | 1.88 | 2.47 | 2.23 | 2.24 | 2.85 | 1.56 | 2.65 |
|
125 |
+
| UltraEdit |2.7 | 3.44 | 2.81 | 2.13 | 2.96 | 1.45 | 2.83 | 3.76 | 1.91 | 2.98 |
|
126 |
+
| OmniGen | 2.96 | 3.47 | 3.04 | 1.71 | 2.94 | 2.43 | 3.21 | 4.19 | 2.24 | 3.38 |
|
127 |
+
| Step1X-Edit |3.06 | 3.88 | 3.14 | 1.76 | 3.40 | 2.41 | 3.16 | 4.63 | 2.64 | 2.52 |
|
128 |
+
| ICEdit |3.05 | 3.58 | 3.39 | 1.73 | 3.15 | 2.93 | 3.08 | 3.84 | 2.04 | 3.68 |
|
129 |
+
| BAGEL |3.2 | 3.56 | 3.31 | 1.7 | 3.3 | 2.62 | 3.24 | 4.49 | 2.38 | 4.17 |
|
130 |
+
| UniWorld-V1 |3.26 | 3.82 | 3.64 | 2.27 | 3.47 | 3.24 | 2.99 | 4.21 | 2.96 | 2.74 |
|
131 |
+
| OmniGen2 | 3.44 | 3.57 | 3.06 | 1.77 | 3.74 | 3.2 | 3.57 | <ins>4.81</ins> | 2.52 | <ins>4.68</ins> |
|
132 |
+
| Ovis-U1 |<ins>4.00</ins> | <ins>4.13</ins> | <ins>3.62</ins> | **2.98** | **4.45** | **4.06** | <ins>4.22</ins> | 4.69 | <ins>3.45</ins> | 4.61 |
|
133 |
+
|
134 |
|
135 |
#### GEdit-Bench-EN
|
136 |
|
137 |
+
| Model | Avg | Background Change | Color Alteration | Material Modification | Motion Change | Portrait Beautification | Style Transfer | Subject Addition | Subject Removal | Subject Replacement | Text Modification | Tone Transformation |
|
138 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
139 |
+
| GPT-4o |**7.534** | 7.205 | 6.491 | **6.607** | **8.096** | **7.768** | <ins>6.961</ins> | 7.622 | **8.331** | **8.067** | **7.427** | **8.301** |
|
140 |
+
| AnyEdit | 3.212 | 4.663 | 4.260 | 2.537 | 2.024 | 3.479 | 2.032 | 3.995 | 3.089 | 3.180 | 0.922 | 5.151 |
|
141 |
+
| Instruct-Pix2Pix | 3.684 | 3.825 | 5.182 | 3.688 | 3.509 | 4.339 | 4.560 | 3.461 | 2.031 | 4.237 | 0.955 | 4.733 |
|
142 |
+
| MagicBrush |4.518 | 5.637 | 5.136 | 5.078 | 4.513 | 4.487 | 4.439 | 5.252 | 3.704 | 4.941 | 1.384 | 5.130 |
|
143 |
+
| OmniGen | 5.062 | 5.281 | 6.003 | 5.308 | 2.916 | 3.087 | 4.903 | 6.628 | 6.352 | 5.616 | 4.519 | 5.064 |
|
144 |
+
| Gemini |6.315 | 6.781 | 6.369 | 6.040 | 6.938 | 5.591 | 4.676 | 7.501 | 6.447 | 7.003 | 5.765 | 6.350 |
|
145 |
+
| Step1X-Edit | 6.701 | 6.547 | 6.545 | 6.204 | 6.483 | 6.787 | **7.221** | 6.975 | 6.512 | 7.068 | <ins>6.921</ins> | 6.448 |
|
146 |
+
| Doubao |<ins>6.754</ins> | <ins>7.430</ins> | **7.095** | 6.339 | <ins>6.973</ins> | <ins>6.972</ins> | 6.767 | <ins>7.674</ins> | 6.748 | <ins>7.447</ins> | 3.471 | <ins>7.383</ins> |
|
147 |
+
| BAGEL | 6.519 | 7.324 | <ins>6.909</ins> | <ins>6.381</ins> | 4.753 | 4.573 | 6.150 | **7.896** | 7.164 | 7.021 | 7.320 | 6.218 |
|
148 |
+
| Ovis-U1 |6.420 | **7.486** | 6.879 | 6.208 | 4.790 | 5.981 | 6.463 | 7.491 | <ins>7.254</ins> | 7.266 | 4.482 | 6.314 |
|
149 |
+
|
150 |
|
151 |
## π Citation
|
152 |
|