Spaces:
Sleeping
Sleeping
Upload 222 files (#2)
Browse files- Upload 222 files (b936df36a29daa7dd0d000fb89b0c320d14a1e97)
This view is limited to 50 files because it contains too many changes.
See raw diff
- meme_generator/memes/behead/__init__.py +34 -0
- meme_generator/memes/behead/images/0.png +0 -0
- meme_generator/memes/behead/images/1.png +0 -0
- meme_generator/memes/behead/images/10.png +0 -0
- meme_generator/memes/behead/images/11.png +0 -0
- meme_generator/memes/behead/images/12.png +0 -0
- meme_generator/memes/behead/images/13.png +0 -0
- meme_generator/memes/behead/images/14.png +0 -0
- meme_generator/memes/behead/images/15.png +0 -0
- meme_generator/memes/behead/images/16.png +0 -0
- meme_generator/memes/behead/images/17.png +0 -0
- meme_generator/memes/behead/images/18.png +0 -0
- meme_generator/memes/behead/images/19.png +0 -0
- meme_generator/memes/behead/images/2.png +0 -0
- meme_generator/memes/behead/images/20.png +0 -0
- meme_generator/memes/behead/images/3.png +0 -0
- meme_generator/memes/behead/images/4.png +0 -0
- meme_generator/memes/behead/images/5.png +0 -0
- meme_generator/memes/behead/images/6.png +0 -0
- meme_generator/memes/behead/images/7.png +0 -0
- meme_generator/memes/behead/images/8.png +0 -0
- meme_generator/memes/behead/images/9.png +0 -0
- meme_generator/memes/can_can_need/__init__.py +20 -0
- meme_generator/memes/can_can_need/images/0.jpg +0 -0
- meme_generator/memes/do/__init__.py +38 -0
- meme_generator/memes/do/images/0.png +0 -0
- meme_generator/memes/do/images/1.png +0 -0
- meme_generator/memes/do/images/2.png +0 -0
- meme_generator/memes/empathy/__init__.py +20 -0
- meme_generator/memes/empathy/images/0.png +0 -0
- meme_generator/memes/fleshlight/__init__.py +64 -0
- meme_generator/memes/fleshlight/images/0.png +0 -0
- meme_generator/memes/fleshlight/images/1.png +0 -0
- meme_generator/memes/fleshlight/images/10.png +0 -0
- meme_generator/memes/fleshlight/images/11.png +0 -0
- meme_generator/memes/fleshlight/images/12.png +0 -0
- meme_generator/memes/fleshlight/images/13.png +0 -0
- meme_generator/memes/fleshlight/images/14.png +0 -0
- meme_generator/memes/fleshlight/images/15.png +0 -0
- meme_generator/memes/fleshlight/images/16.png +0 -0
- meme_generator/memes/fleshlight/images/17.png +0 -0
- meme_generator/memes/fleshlight/images/18.png +0 -0
- meme_generator/memes/fleshlight/images/19.png +0 -0
- meme_generator/memes/fleshlight/images/2.png +0 -0
- meme_generator/memes/fleshlight/images/20.png +0 -0
- meme_generator/memes/fleshlight/images/21.png +0 -0
- meme_generator/memes/fleshlight/images/22.png +0 -0
- meme_generator/memes/fleshlight/images/23.png +0 -0
- meme_generator/memes/fleshlight/images/24.png +0 -0
- meme_generator/memes/fleshlight/images/25.png +0 -0
meme_generator/memes/behead/__init__.py
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
from typing import List
|
3 |
+
|
4 |
+
from meme_generator import add_meme
|
5 |
+
from meme_generator.utils import save_gif
|
6 |
+
from PIL.Image import Image as IMG
|
7 |
+
from pil_utils import BuildImage
|
8 |
+
|
9 |
+
img_dir = Path(__file__).parent / "images"
|
10 |
+
|
11 |
+
|
12 |
+
def behead(images: List[BuildImage], texts, args):
|
13 |
+
img = images[0].convert("RGBA").square().resize((75, 75))
|
14 |
+
# fmt: off
|
15 |
+
locs = [
|
16 |
+
(80, 72, 0), (83, 73, 0), (82, 73, 0),
|
17 |
+
(78, 73, 0), (72, 74, 0), (72, 75, 0),
|
18 |
+
(73, 76, 0), (73, 76, 0), (73, 76, 0),
|
19 |
+
(74, 76, 0), (74, 76, 0), (70, 73, 12),
|
20 |
+
(61, 62, 25), (49, 40, 45), (46, 30, 65),
|
21 |
+
(50, 35, 85), (39, 34, 105), (19, 45, 135),
|
22 |
+
(9, 91, 155), (6, 161, 175), (-4, 248, 180),
|
23 |
+
]
|
24 |
+
# fmt: on
|
25 |
+
frames: List[IMG] = []
|
26 |
+
for i in range(21):
|
27 |
+
frame = BuildImage.open(img_dir / f"{i}.png")
|
28 |
+
x, y, angle = locs[i]
|
29 |
+
frame.paste(img.rotate(angle, expand=True), (x, y), below=True)
|
30 |
+
frames.append(frame.image)
|
31 |
+
return save_gif(frames, 0.05)
|
32 |
+
|
33 |
+
|
34 |
+
add_meme("behead", behead, min_images=1, max_images=1, keywords=["砍头", "斩首"])
|
meme_generator/memes/behead/images/0.png
ADDED
meme_generator/memes/behead/images/1.png
ADDED
meme_generator/memes/behead/images/10.png
ADDED
meme_generator/memes/behead/images/11.png
ADDED
meme_generator/memes/behead/images/12.png
ADDED
meme_generator/memes/behead/images/13.png
ADDED
meme_generator/memes/behead/images/14.png
ADDED
meme_generator/memes/behead/images/15.png
ADDED
meme_generator/memes/behead/images/16.png
ADDED
meme_generator/memes/behead/images/17.png
ADDED
meme_generator/memes/behead/images/18.png
ADDED
meme_generator/memes/behead/images/19.png
ADDED
meme_generator/memes/behead/images/2.png
ADDED
meme_generator/memes/behead/images/20.png
ADDED
meme_generator/memes/behead/images/3.png
ADDED
meme_generator/memes/behead/images/4.png
ADDED
meme_generator/memes/behead/images/5.png
ADDED
meme_generator/memes/behead/images/6.png
ADDED
meme_generator/memes/behead/images/7.png
ADDED
meme_generator/memes/behead/images/8.png
ADDED
meme_generator/memes/behead/images/9.png
ADDED
meme_generator/memes/can_can_need/__init__.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
from typing import List
|
3 |
+
|
4 |
+
from meme_generator import add_meme
|
5 |
+
from pil_utils import BuildImage
|
6 |
+
|
7 |
+
img_dir = Path(__file__).parent / "images"
|
8 |
+
|
9 |
+
|
10 |
+
def can_can_need(images: List[BuildImage], texts, args):
|
11 |
+
frame = BuildImage.open(img_dir / "0.jpg")
|
12 |
+
frame.paste(
|
13 |
+
images[1].convert("RGBA").circle().resize((340, 340)), (120, 21), alpha=True
|
14 |
+
).paste(
|
15 |
+
images[0].convert("RGBA").circle().resize((300, 300)), (611, 718), alpha=True
|
16 |
+
)
|
17 |
+
return frame.save_jpg()
|
18 |
+
|
19 |
+
|
20 |
+
add_meme("can_can_need", can_can_need, min_images=2, max_images=2, keywords=["看看你的"])
|
meme_generator/memes/can_can_need/images/0.jpg
ADDED
meme_generator/memes/do/__init__.py
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
from typing import List
|
3 |
+
|
4 |
+
from meme_generator import add_meme
|
5 |
+
from meme_generator.utils import save_gif
|
6 |
+
from PIL.Image import Image as IMG
|
7 |
+
from pil_utils import BuildImage
|
8 |
+
|
9 |
+
img_dir = Path(__file__).parent / "images"
|
10 |
+
|
11 |
+
|
12 |
+
def do(images: List[BuildImage], texts, args):
|
13 |
+
self_locs = [(116, -8), (109, 3), (130, -10)]
|
14 |
+
user_locs = [(2, 177), (12, 172), (6, 158)]
|
15 |
+
self_head = (
|
16 |
+
images[0]
|
17 |
+
.convert("RGBA")
|
18 |
+
.resize((122, 122), keep_ratio=True)
|
19 |
+
.circle()
|
20 |
+
.rotate(15)
|
21 |
+
)
|
22 |
+
user_head = (
|
23 |
+
images[1]
|
24 |
+
.convert("RGBA")
|
25 |
+
.resize((112, 112), keep_ratio=True)
|
26 |
+
.circle()
|
27 |
+
.rotate(90)
|
28 |
+
)
|
29 |
+
frames: List[IMG] = []
|
30 |
+
for i in range(3):
|
31 |
+
frame = BuildImage.open(img_dir / f"{i}.png")
|
32 |
+
frame.paste(user_head, user_locs[i], alpha=True)
|
33 |
+
frame.paste(self_head, self_locs[i], alpha=True)
|
34 |
+
frames.append(frame.image)
|
35 |
+
return save_gif(frames, 0.05)
|
36 |
+
|
37 |
+
|
38 |
+
add_meme("do", do, min_images=2, max_images=2, keywords=["撅", "狠狠地撅"])
|
meme_generator/memes/do/images/0.png
ADDED
meme_generator/memes/do/images/1.png
ADDED
meme_generator/memes/do/images/2.png
ADDED
meme_generator/memes/empathy/__init__.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
from typing import List
|
3 |
+
|
4 |
+
from meme_generator import add_meme
|
5 |
+
from pil_utils import BuildImage
|
6 |
+
|
7 |
+
img_dir = Path(__file__).parent / "images"
|
8 |
+
|
9 |
+
|
10 |
+
def empathy(images: List[BuildImage], texts, args):
|
11 |
+
frame = BuildImage.open(img_dir / "0.png")
|
12 |
+
frame.paste(
|
13 |
+
images[0].convert("RGBA").circle().resize((90, 90)).rotate(100),
|
14 |
+
(210, 425),
|
15 |
+
below=True,
|
16 |
+
)
|
17 |
+
return frame.save_jpg()
|
18 |
+
|
19 |
+
|
20 |
+
add_meme("empathy", empathy, min_images=1, max_images=1, keywords=["换位思考"])
|
meme_generator/memes/empathy/images/0.png
ADDED
meme_generator/memes/fleshlight/__init__.py
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from pathlib import Path
|
2 |
+
from typing import List
|
3 |
+
|
4 |
+
from meme_generator import add_meme
|
5 |
+
from meme_generator.utils import FrameAlignPolicy, Maker, make_gif_or_combined_gif
|
6 |
+
from pil_utils import BuildImage
|
7 |
+
|
8 |
+
img_dir = Path(__file__).parent / "images"
|
9 |
+
|
10 |
+
|
11 |
+
def fleshlight(images: List[BuildImage], texts, args):
|
12 |
+
params = [
|
13 |
+
(((0, 6), (205, 0), (213, 157), (8, 171)), (117, 59)),
|
14 |
+
(((0, 6), (205, 0), (213, 157), (8, 171)), (117, 59)),
|
15 |
+
(((0, 6), (205, 0), (213, 157), (8, 171)), (117, 59)),
|
16 |
+
(((0, 7), (204, 0), (213, 157), (8, 172)), (118, 58)),
|
17 |
+
(((0, 6), (207, 0), (213, 158), (8, 173)), (119, 57)),
|
18 |
+
(((0, 6), (207, 0), (213, 158), (8, 173)), (119, 57)),
|
19 |
+
(((0, 6), (207, 0), (213, 158), (8, 173)), (119, 57)),
|
20 |
+
(((0, 6), (205, 0), (212, 157), (7, 171)), (121, 58)),
|
21 |
+
(((0, 6), (205, 0), (212, 157), (7, 171)), (121, 58)),
|
22 |
+
(((0, 6), (206, 0), (212, 158), (8, 172)), (121, 56)),
|
23 |
+
(((0, 6), (206, 0), (212, 158), (8, 172)), (121, 56)),
|
24 |
+
(((0, 6), (207, 0), (214, 157), (10, 171)), (121, 55)),
|
25 |
+
(((0, 7), (201, 0), (218, 154), (13, 169)), (121, 49)),
|
26 |
+
(((0, 7), (195, 0), (219, 147), (18, 162)), (118, 50)),
|
27 |
+
(((0, 4), (196, 0), (223, 133), (18, 143)), (114, 54)),
|
28 |
+
(((0, 0), (192, 1), (219, 121), (17, 124)), (115, 58)),
|
29 |
+
(((0, 0), (188, 5), (220, 110), (20, 107)), (112, 61)),
|
30 |
+
(((0, 0), (185, 15), (217, 86), (26, 73)), (108, 72)),
|
31 |
+
(((0, 0), (182, 19), (234, 67), (34, 44)), (102, 88)),
|
32 |
+
(((0, 0), (175, 25), (224, 55), (22, 23)), (111, 105)),
|
33 |
+
(((0, 0), (167, 29), (209, 49), (13, 14)), (121, 110)),
|
34 |
+
(((0, 0), (144, 27), (195, 46), (8, 8)), (135, 110)),
|
35 |
+
(((0, 0), (177, 36), (206, 59), (13, 18)), (129, 93)),
|
36 |
+
(((0, 0), (180, 38), (211, 69), (16, 25)), (126, 83)),
|
37 |
+
(((0, 0), (181, 28), (220, 70), (26, 39)), (119, 82)),
|
38 |
+
(((0, 0), (180, 17), (227, 65), (27, 45)), (115, 89)),
|
39 |
+
(((0, 0), (181, 15), (230, 63), (33, 46)), (110, 95)),
|
40 |
+
(((0, 0), (184, 24), (228, 73), (27, 47)), (91, 102)),
|
41 |
+
(((0, 0), (189, 8), (208, 73), (0, 66)), (83, 94)),
|
42 |
+
(((19, 0), (202, 25), (204, 85), (0, 58)), (63, 82)),
|
43 |
+
(((12, 0), (196, 18), (205, 70), (0, 50)), (70, 87)),
|
44 |
+
(((4, 0), (189, 17), (205, 74), (0, 53)), (82, 79)),
|
45 |
+
(((0, 0), (184, 18), (205, 72), (1, 51)), (91, 74)),
|
46 |
+
(((0, 0), (183, 17), (206, 69), (4, 52)), (92, 73)),
|
47 |
+
]
|
48 |
+
|
49 |
+
def maker(i: int) -> Maker:
|
50 |
+
def make(img: BuildImage) -> BuildImage:
|
51 |
+
img = img.convert("RGBA").resize((210, 170), keep_ratio=True)
|
52 |
+
frame = BuildImage.open(img_dir / f"{i}.png")
|
53 |
+
points, pos = params[i]
|
54 |
+
frame.paste(img.perspective(points), pos, below=True)
|
55 |
+
return frame
|
56 |
+
|
57 |
+
return make
|
58 |
+
|
59 |
+
return make_gif_or_combined_gif(
|
60 |
+
images[0], maker, 34, 0.1, FrameAlignPolicy.extend_first
|
61 |
+
)
|
62 |
+
|
63 |
+
|
64 |
+
add_meme("fleshlight", fleshlight, min_images=1, max_images=1, keywords=["飞机杯"])
|
meme_generator/memes/fleshlight/images/0.png
ADDED
meme_generator/memes/fleshlight/images/1.png
ADDED
meme_generator/memes/fleshlight/images/10.png
ADDED
meme_generator/memes/fleshlight/images/11.png
ADDED
meme_generator/memes/fleshlight/images/12.png
ADDED
meme_generator/memes/fleshlight/images/13.png
ADDED
meme_generator/memes/fleshlight/images/14.png
ADDED
meme_generator/memes/fleshlight/images/15.png
ADDED
meme_generator/memes/fleshlight/images/16.png
ADDED
meme_generator/memes/fleshlight/images/17.png
ADDED
meme_generator/memes/fleshlight/images/18.png
ADDED
meme_generator/memes/fleshlight/images/19.png
ADDED
meme_generator/memes/fleshlight/images/2.png
ADDED
meme_generator/memes/fleshlight/images/20.png
ADDED
meme_generator/memes/fleshlight/images/21.png
ADDED
meme_generator/memes/fleshlight/images/22.png
ADDED
meme_generator/memes/fleshlight/images/23.png
ADDED
meme_generator/memes/fleshlight/images/24.png
ADDED
meme_generator/memes/fleshlight/images/25.png
ADDED