Spaces:
Running
Running
fr + reco taille canvas fr
Browse files- copaint/cli.py +1 -7
- copaint/copaint.py +2 -2
- copaint/gradio_ui.py +20 -17
copaint/cli.py
CHANGED
@@ -55,21 +55,15 @@ default_identifiers_fr = [
|
|
55 |
"bisou", # kiss
|
56 |
"amour", # love
|
57 |
"paix", # peace
|
58 |
-
"
|
59 |
-
"rosée", # dew
|
60 |
-
"papillon", # butterfly
|
61 |
-
"souffle", # breath
|
62 |
"bulle", # bubble
|
63 |
"câlin", # cuddle
|
64 |
"grâce", # grace
|
65 |
"mistral", # southern wind
|
66 |
"lumière", # light
|
67 |
"frisson", # shiver (pleasant)
|
68 |
-
"cocorico", # rooster cry, French pride symbol
|
69 |
"azur", # blue sky
|
70 |
-
"jojo", # playful diminutive for joy
|
71 |
"rire", # laughter
|
72 |
-
"chouette" # owl / also means “great”
|
73 |
]
|
74 |
# Function to get a default identifier (random or specified)
|
75 |
def default_identifier(index=None, language="en"):
|
|
|
55 |
"bisou", # kiss
|
56 |
"amour", # love
|
57 |
"paix", # peace
|
58 |
+
"rosée", # dew
|
|
|
|
|
|
|
59 |
"bulle", # bubble
|
60 |
"câlin", # cuddle
|
61 |
"grâce", # grace
|
62 |
"mistral", # southern wind
|
63 |
"lumière", # light
|
64 |
"frisson", # shiver (pleasant)
|
|
|
65 |
"azur", # blue sky
|
|
|
66 |
"rire", # laughter
|
|
|
67 |
]
|
68 |
# Function to get a default identifier (random or specified)
|
69 |
def default_identifier(index=None, language="en"):
|
copaint/copaint.py
CHANGED
@@ -212,7 +212,7 @@ def save_tensor_to_pdf(tensor, pdf_path, is_front=True, margin=0.25, img_small_s
|
|
212 |
ram_folder_linux = "/dev/shm/"
|
213 |
if os.path.exists(ram_folder_linux):
|
214 |
image_path = os.path.join(ram_folder_linux, image_path)
|
215 |
-
|
216 |
image.save(image_path)
|
217 |
if debug:
|
218 |
logger.debug(f"Temporary image saving took {time.time() - t3:.4f} seconds")
|
@@ -357,7 +357,7 @@ def create_back_image(h, w, h_cells, w_cells, logo_image, logo_insta_image, uniq
|
|
357 |
save_image(logo_insta_image_resized, "logo_insta_image_resized.png", debug=debug)
|
358 |
# Add content to cells
|
359 |
cell_content_time = time.time()
|
360 |
-
letscopaint = create_image_with_text("
|
361 |
size=(int(0.8*number_size), number_size//8),
|
362 |
debug=debug)
|
363 |
# add unique identifier
|
|
|
212 |
ram_folder_linux = "/dev/shm/"
|
213 |
if os.path.exists(ram_folder_linux):
|
214 |
image_path = os.path.join(ram_folder_linux, image_path)
|
215 |
+
|
216 |
image.save(image_path)
|
217 |
if debug:
|
218 |
logger.debug(f"Temporary image saving took {time.time() - t3:.4f} seconds")
|
|
|
357 |
save_image(logo_insta_image_resized, "logo_insta_image_resized.png", debug=debug)
|
358 |
# Add content to cells
|
359 |
cell_content_time = time.time()
|
360 |
+
letscopaint = create_image_with_text("copaint.art", underline=False,
|
361 |
size=(int(0.8*number_size), number_size//8),
|
362 |
debug=debug)
|
363 |
# add unique identifier
|
copaint/gradio_ui.py
CHANGED
@@ -132,11 +132,11 @@ def get_canvas_ratio_message(image, h_cells, w_cells, language="en"):
|
|
132 |
example_str = ", par exemple, une toile de 30cmx60cm."
|
133 |
|
134 |
if language == "en":
|
135 |
-
return_str = f"You have
|
136 |
-
return_str += f"Preparing your canvas: <b>choose a canvas with a {closest_ratio_str} ratio</b> to
|
137 |
else:
|
138 |
-
return_str = f"Vous avez choisi
|
139 |
-
return_str += f"
|
140 |
print(f"return_str: {return_str}")
|
141 |
return f"<div style='font-size: 1.2em; line-height: 1.5;'>{return_str}</div>"
|
142 |
|
@@ -222,7 +222,7 @@ def build_gradio_ui(language="en"):
|
|
222 |
gr.Markdown("Upload an image, set grid parameters, and we generate your Copaint PDF 🖨️📄✂️ for your next collaborative painting activity. 🎨🖌️")
|
223 |
elif language == "fr":
|
224 |
gr.Markdown("# 🤖 Générateur de Copaint")
|
225 |
-
gr.Markdown("Téléchargez une image, définissez les paramètres de
|
226 |
|
227 |
# --- inputs ---
|
228 |
with gr.Row(equal_height=True):
|
@@ -245,7 +245,7 @@ def build_gradio_ui(language="en"):
|
|
245 |
if language == "en":
|
246 |
label_grid_layout = "Grid Layout"
|
247 |
elif language == "fr":
|
248 |
-
label_grid_layout = "
|
249 |
with gr.Tab(label_grid_layout):
|
250 |
if language == "en":
|
251 |
gr.Markdown("<div style='text-align: left; font-weight: bold;'>Squares' Grid</div>")
|
@@ -253,7 +253,7 @@ def build_gradio_ui(language="en"):
|
|
253 |
h_cells = gr.Number(label=" by ↕ (heigth)", value=6, precision=0)
|
254 |
language_gr_state = gr.State("en")
|
255 |
elif language == "fr":
|
256 |
-
gr.Markdown("<div style='text-align: center; font-weight: bold;'>
|
257 |
w_cells = gr.Number(label="↔ (largeur)", value=4, precision=0)
|
258 |
h_cells = gr.Number(label=" par ↕ (hauteur)", value=6, precision=0)
|
259 |
language_gr_state = gr.State("fr")
|
@@ -267,16 +267,18 @@ def build_gradio_ui(language="en"):
|
|
267 |
"Copaint Mini 2x2 Grid (4 squares)"
|
268 |
]
|
269 |
examples_labels_fr = [
|
270 |
-
"Copaint Mariage
|
271 |
-
"Copaint Classique
|
272 |
-
"Copaint Mini
|
273 |
-
"Copaint Mini
|
274 |
-
"Copaint Mini
|
275 |
]
|
276 |
if language == "en":
|
277 |
example_labels = examples_labels_en
|
|
|
278 |
elif language == "fr":
|
279 |
example_labels = examples_labels_fr
|
|
|
280 |
gr.Examples(
|
281 |
examples=[
|
282 |
[6, 9],
|
@@ -287,6 +289,7 @@ def build_gradio_ui(language="en"):
|
|
287 |
],
|
288 |
example_labels=example_labels,
|
289 |
inputs=[w_cells, h_cells],
|
|
|
290 |
)
|
291 |
|
292 |
# Grid + Design preview
|
@@ -341,19 +344,19 @@ def build_gradio_ui(language="en"):
|
|
341 |
"You can add a custom logo: it will appear on the back of each square, in the bottom right corner."
|
342 |
"</div>")
|
343 |
elif language == "fr":
|
344 |
-
high_res = gr.Checkbox(label="Mode haute résolution (
|
345 |
cell_size = gr.Number(label="Taille des tuiles, en cm (optionnel)",
|
346 |
value="",
|
347 |
-
info="Si
|
348 |
copaint_name = gr.Textbox(label="Ajouter un nom personnalisé à votre design (optionnel)",
|
349 |
value="",
|
350 |
max_length=10,
|
351 |
-
info="Vous pouvez ajouter un nom personnalisé: il apparaîtra
|
352 |
copaint_logo = gr.Image(type="pil",
|
353 |
label="Ajouter un logo personnalisé (optionnel)")
|
354 |
gr.Markdown(
|
355 |
"<div style='font-size: 0.85em;'>"
|
356 |
-
"Vous pouvez ajouter un logo personnalisé: il apparaîtra
|
357 |
"</div>")
|
358 |
|
359 |
# --- outputs ---
|
@@ -363,7 +366,7 @@ def build_gradio_ui(language="en"):
|
|
363 |
if language == "en":
|
364 |
submit_btn = gr.Button("Generate Copaint PDF", variant="primary")
|
365 |
elif language == "fr":
|
366 |
-
submit_btn = gr.Button("Générer
|
367 |
|
368 |
with gr.Row():
|
369 |
with gr.Column(scale=1):
|
|
|
132 |
example_str = ", par exemple, une toile de 30cmx60cm."
|
133 |
|
134 |
if language == "en":
|
135 |
+
return_str = f"You have selected a <b>{h_cells}x{w_cells} Grid ({h_cells*w_cells} squares)</b>.\n\n"
|
136 |
+
return_str += f"Preparing your canvas: <b>choose a canvas with a {closest_ratio_str} size ratio</b> to match your design's ({w} x {h} pixels){example_str}"
|
137 |
else:
|
138 |
+
return_str = f"Vous avez choisi un découpage de {h_cells} par {w_cells} ({h_cells*w_cells} tuiles).\n\n"
|
139 |
+
return_str += f"Choix de la toile: prenez une toile dont le rapport largeur sur longueur est de <b>{closest_ratio_str}</b> pour respecter la taille de votre design ({w}x{h} pixels){example_str}"
|
140 |
print(f"return_str: {return_str}")
|
141 |
return f"<div style='font-size: 1.2em; line-height: 1.5;'>{return_str}</div>"
|
142 |
|
|
|
222 |
gr.Markdown("Upload an image, set grid parameters, and we generate your Copaint PDF 🖨️📄✂️ for your next collaborative painting activity. 🎨🖌️")
|
223 |
elif language == "fr":
|
224 |
gr.Markdown("# 🤖 Générateur de Copaint")
|
225 |
+
gr.Markdown("Téléchargez une image, définissez les paramètres de découpage et on vous génère votre PDF Copaint 🖨️📄✂️ pour votre prochaine activité de peinture collaborative. 🎨🖌️")
|
226 |
|
227 |
# --- inputs ---
|
228 |
with gr.Row(equal_height=True):
|
|
|
245 |
if language == "en":
|
246 |
label_grid_layout = "Grid Layout"
|
247 |
elif language == "fr":
|
248 |
+
label_grid_layout = "Découpage"
|
249 |
with gr.Tab(label_grid_layout):
|
250 |
if language == "en":
|
251 |
gr.Markdown("<div style='text-align: left; font-weight: bold;'>Squares' Grid</div>")
|
|
|
253 |
h_cells = gr.Number(label=" by ↕ (heigth)", value=6, precision=0)
|
254 |
language_gr_state = gr.State("en")
|
255 |
elif language == "fr":
|
256 |
+
gr.Markdown("<div style='text-align: center; font-weight: bold;'>Découpage (nombre de tuiles)</div>")
|
257 |
w_cells = gr.Number(label="↔ (largeur)", value=4, precision=0)
|
258 |
h_cells = gr.Number(label=" par ↕ (hauteur)", value=6, precision=0)
|
259 |
language_gr_state = gr.State("fr")
|
|
|
267 |
"Copaint Mini 2x2 Grid (4 squares)"
|
268 |
]
|
269 |
examples_labels_fr = [
|
270 |
+
"Copaint Mariage 6 par 9 tuiles (54 tuiles)",
|
271 |
+
"Copaint Classique 4 par 6 tuiles (24 tuiles)",
|
272 |
+
"Copaint Mini 3 par 3 tuiles (9 tuiles)",
|
273 |
+
"Copaint Mini 3 par 4 tuiles (12 tuiles)",
|
274 |
+
"Copaint Mini 2 par 2 tuiles (4 tuiles)"
|
275 |
]
|
276 |
if language == "en":
|
277 |
example_labels = examples_labels_en
|
278 |
+
label_example = "Examples"
|
279 |
elif language == "fr":
|
280 |
example_labels = examples_labels_fr
|
281 |
+
label_example = "Exemples"
|
282 |
gr.Examples(
|
283 |
examples=[
|
284 |
[6, 9],
|
|
|
289 |
],
|
290 |
example_labels=example_labels,
|
291 |
inputs=[w_cells, h_cells],
|
292 |
+
label=label_example
|
293 |
)
|
294 |
|
295 |
# Grid + Design preview
|
|
|
344 |
"You can add a custom logo: it will appear on the back of each square, in the bottom right corner."
|
345 |
"</div>")
|
346 |
elif language == "fr":
|
347 |
+
high_res = gr.Checkbox(label="Mode haute résolution (plus de 20 secondes de traitement)")
|
348 |
cell_size = gr.Number(label="Taille des tuiles, en cm (optionnel)",
|
349 |
value="",
|
350 |
+
info="Si elle n'est pas spécifiée, la hauteur des tuiles est automatiquement calculée afin que votre impression tienne sur une seule page, recto-verso.")
|
351 |
copaint_name = gr.Textbox(label="Ajouter un nom personnalisé à votre design (optionnel)",
|
352 |
value="",
|
353 |
max_length=10,
|
354 |
+
info="Vous pouvez ajouter un nom personnalisé: : il apparaîtra au dos de chaque tuile, en haut à gauche.")
|
355 |
copaint_logo = gr.Image(type="pil",
|
356 |
label="Ajouter un logo personnalisé (optionnel)")
|
357 |
gr.Markdown(
|
358 |
"<div style='font-size: 0.85em;'>"
|
359 |
+
"Vous pouvez ajouter un logo personnalisé: il apparaîtra au dos de chaque tuile, en bas à droite."
|
360 |
"</div>")
|
361 |
|
362 |
# --- outputs ---
|
|
|
366 |
if language == "en":
|
367 |
submit_btn = gr.Button("Generate Copaint PDF", variant="primary")
|
368 |
elif language == "fr":
|
369 |
+
submit_btn = gr.Button("Générer mon PDF Copaint", variant="primary")
|
370 |
|
371 |
with gr.Row():
|
372 |
with gr.Column(scale=1):
|