Commit
路
437e10c
1
Parent(s):
d2a1b04
Update app.py
Browse files
app.py
CHANGED
|
@@ -26,7 +26,7 @@ def generate_caption(image):
|
|
| 26 |
response = openai.ChatCompletion.create(
|
| 27 |
model="gpt-4",
|
| 28 |
messages=[
|
| 29 |
-
{"role": "system", "content": "Escribe un meme chistoso para una imagen a partir en la descripci贸n dada por el usuario. No uses emojis. El meme tiene que ser corto y gracioso. El output del asistente solo debe ser el meme. Aseg煤rate que el meme sea tan bueno que se vuelva viral!"},
|
| 30 |
{"role": "user", "content": caption}
|
| 31 |
],
|
| 32 |
temperature=0.6
|
|
@@ -35,19 +35,19 @@ def generate_caption(image):
|
|
| 35 |
meme_text = response.choices[0].message.content
|
| 36 |
print(meme_text)
|
| 37 |
|
| 38 |
-
|
| 39 |
draw = ImageDraw.Draw(pil_image)
|
| 40 |
|
| 41 |
-
#
|
| 42 |
-
|
|
|
|
| 43 |
font = ImageFont.truetype("impact.ttf", font_size)
|
| 44 |
-
|
| 45 |
-
# Wrap the text to fit within the image width
|
| 46 |
-
wrapped_text = textwrap.fill(meme_text, width=int(
|
| 47 |
-
|
| 48 |
-
# Calculate the position to place the text at the top and center horizontally
|
| 49 |
text_lines = wrapped_text.split('\n')
|
| 50 |
-
|
|
|
|
| 51 |
for line in text_lines:
|
| 52 |
line_width, line_height = draw.textsize(line, font=font)
|
| 53 |
x = (pil_image.width - line_width) // 2
|
|
|
|
| 26 |
response = openai.ChatCompletion.create(
|
| 27 |
model="gpt-4",
|
| 28 |
messages=[
|
| 29 |
+
{"role": "system", "content": "Escribe un meme chistoso en espa帽ol para una imagen a partir en la descripci贸n dada por el usuario. No uses emojis. El meme tiene que ser corto y gracioso. El output del asistente solo debe ser el meme. Aseg煤rate que el meme sea tan bueno que se vuelva viral!"},
|
| 30 |
{"role": "user", "content": caption}
|
| 31 |
],
|
| 32 |
temperature=0.6
|
|
|
|
| 35 |
meme_text = response.choices[0].message.content
|
| 36 |
print(meme_text)
|
| 37 |
|
| 38 |
+
# Put the meme text on the image
|
| 39 |
draw = ImageDraw.Draw(pil_image)
|
| 40 |
|
| 41 |
+
# Determine font size
|
| 42 |
+
max_width = int(pil_image.width * 0.9)
|
| 43 |
+
font_size = int(max_width / (len(meme_text) / 2))
|
| 44 |
font = ImageFont.truetype("impact.ttf", font_size)
|
| 45 |
+
|
| 46 |
+
# Wrap the text to fit within the image width and have a maximum of 2 lines
|
| 47 |
+
wrapped_text = textwrap.fill(meme_text, width=int(max_width / font.getsize("A")[0]))
|
|
|
|
|
|
|
| 48 |
text_lines = wrapped_text.split('\n')
|
| 49 |
+
|
| 50 |
+
y = 10
|
| 51 |
for line in text_lines:
|
| 52 |
line_width, line_height = draw.textsize(line, font=font)
|
| 53 |
x = (pil_image.width - line_width) // 2
|