Spaces:
Running
on
T4
Running
on
T4
Fix file location bug
Browse files- app.py +5 -5
- modules/user_history.py +20 -15
app.py
CHANGED
@@ -482,7 +482,7 @@ def ui(**kwargs):
|
|
482 |
topk = gr.Number(label="Top-k", value=280, precision=0, interactive=True)
|
483 |
topp = gr.Number(label="Top-p", value=1150, precision=0, interactive=True)
|
484 |
temperature = gr.Number(label="Randomness Temperature", value=0.7, precision=None, interactive=True)
|
485 |
-
cfg_coef = gr.Number(label="Classifier Free Guidance", value=3.
|
486 |
with gr.Row():
|
487 |
seed = gr.Number(label="Seed", value=-1, precision=0, interactive=True)
|
488 |
gr.Button('\U0001f3b2\ufe0f', elem_classes="small-btn").click(fn=lambda: -1, outputs=[seed], queue=False)
|
@@ -505,7 +505,7 @@ def ui(**kwargs):
|
|
505 |
"80s Pop Synth",
|
506 |
950,
|
507 |
0.6,
|
508 |
-
3.
|
509 |
],
|
510 |
[
|
511 |
"4/4 120bpm 320kbps 48khz, A cheerful country song with acoustic guitars",
|
@@ -532,16 +532,16 @@ def ui(**kwargs):
|
|
532 |
"EDM my Bach",
|
533 |
500,
|
534 |
0.7,
|
535 |
-
3.
|
536 |
],
|
537 |
[
|
538 |
"4/4 320kbps 48khz, lofi slow bpm electro chill with organic samples",
|
539 |
None,
|
540 |
"medium",
|
541 |
"LoFi Chill",
|
542 |
-
|
543 |
0.7,
|
544 |
-
|
545 |
],
|
546 |
],
|
547 |
inputs=[text, melody_filepath, model, title, topp, temperature, cfg_coef],
|
|
|
482 |
topk = gr.Number(label="Top-k", value=280, precision=0, interactive=True)
|
483 |
topp = gr.Number(label="Top-p", value=1150, precision=0, interactive=True)
|
484 |
temperature = gr.Number(label="Randomness Temperature", value=0.7, precision=None, interactive=True)
|
485 |
+
cfg_coef = gr.Number(label="Classifier Free Guidance", value=3.5, precision=None, interactive=True)
|
486 |
with gr.Row():
|
487 |
seed = gr.Number(label="Seed", value=-1, precision=0, interactive=True)
|
488 |
gr.Button('\U0001f3b2\ufe0f', elem_classes="small-btn").click(fn=lambda: -1, outputs=[seed], queue=False)
|
|
|
505 |
"80s Pop Synth",
|
506 |
950,
|
507 |
0.6,
|
508 |
+
3.0
|
509 |
],
|
510 |
[
|
511 |
"4/4 120bpm 320kbps 48khz, A cheerful country song with acoustic guitars",
|
|
|
532 |
"EDM my Bach",
|
533 |
500,
|
534 |
0.7,
|
535 |
+
3.5
|
536 |
],
|
537 |
[
|
538 |
"4/4 320kbps 48khz, lofi slow bpm electro chill with organic samples",
|
539 |
None,
|
540 |
"medium",
|
541 |
"LoFi Chill",
|
542 |
+
0,
|
543 |
0.7,
|
544 |
+
4.0
|
545 |
],
|
546 |
],
|
547 |
inputs=[text, melody_filepath, model, title, topp, temperature, cfg_coef],
|
modules/user_history.py
CHANGED
@@ -18,7 +18,7 @@ Useful links:
|
|
18 |
Update by Surn (Charles Fettinger)
|
19 |
"""
|
20 |
|
21 |
-
__version__ = "0.2.
|
22 |
|
23 |
import json
|
24 |
import os
|
@@ -40,6 +40,7 @@ import wave
|
|
40 |
from mutagen.mp3 import MP3, EasyMP3
|
41 |
import torchaudio
|
42 |
import subprocess
|
|
|
43 |
|
44 |
user_profile = gr.State(None)
|
45 |
|
@@ -216,19 +217,19 @@ def save_file(
|
|
216 |
|
217 |
video_path = None
|
218 |
# Copy video to storage
|
219 |
-
if video is not None:
|
220 |
video_path = _copy_file(video, dst_folder=user_history._user_file_path(username, "videos"))
|
221 |
video_path = _add_metadata(video_path, metadata)
|
222 |
|
223 |
audio_path = None
|
224 |
# Copy audio to storage
|
225 |
-
if audio is not None:
|
226 |
audio_path = _copy_file(audio, dst_folder=user_history._user_file_path(username, "audios"))
|
227 |
audio_path = _add_metadata(audio_path, metadata)
|
228 |
|
229 |
document_path = None
|
230 |
# Copy document to storage
|
231 |
-
if document is not None:
|
232 |
document_path = _copy_file(document, dst_folder=user_history._user_file_path(username, "documents"))
|
233 |
document_path = _add_metadata(document_path, metadata)
|
234 |
|
@@ -241,7 +242,7 @@ def save_file(
|
|
241 |
with user_history._user_lock(username):
|
242 |
with user_history._user_jsonl_path(username).open("a") as f:
|
243 |
f.write(json.dumps(data) + "\n")
|
244 |
-
|
245 |
|
246 |
#############
|
247 |
# Internals #
|
@@ -439,6 +440,9 @@ def _add_metadata(file_location: Path, metadata: Dict[str, Any]) -> Path:
|
|
439 |
if file_type not in valid_file_types:
|
440 |
raise ValueError("Invalid file type. Valid file types are .wav, .mp3, .mp4, .png")
|
441 |
|
|
|
|
|
|
|
442 |
if file_type == ".wav":
|
443 |
# Open and process .wav file
|
444 |
with wave.open(file_location, 'rb') as wav_file:
|
@@ -448,13 +452,11 @@ def _add_metadata(file_location: Path, metadata: Dict[str, Any]) -> Path:
|
|
448 |
# Update metadata
|
449 |
current_metadata.update(metadata)
|
450 |
|
451 |
-
|
452 |
-
with wave.open(
|
453 |
-
# Set the new metadata
|
454 |
wav_output_file.setparams(wav_file.getparams())
|
455 |
-
|
456 |
-
|
457 |
-
wav_output_file.close()
|
458 |
elif file_type == ".mp3":
|
459 |
# Open and process .mp3 file
|
460 |
audio = EasyMP3(file_location)
|
@@ -463,8 +465,9 @@ def _add_metadata(file_location: Path, metadata: Dict[str, Any]) -> Path:
|
|
463 |
for key, value in metadata.items():
|
464 |
audio[key] = value
|
465 |
|
466 |
-
# Save the MP3 file
|
467 |
-
audio.save()
|
|
|
468 |
elif file_type == ".mp4":
|
469 |
# Open and process .mp4 file
|
470 |
# Add metadata to the file
|
@@ -478,19 +481,21 @@ def _add_metadata(file_location: Path, metadata: Dict[str, Any]) -> Path:
|
|
478 |
# Use ffmpeg to add metadata to the video file
|
479 |
metadata_args = [f"{key}={value}" for key, value in metadata.items()]
|
480 |
ffmpeg_metadata = ":".join(metadata_args)
|
481 |
-
ffmpeg_cmd = f'ffmpeg -y -i "{file_location}" -i "{wav_file_location}" -map 0:v:0 -map 1:a:0 -c:v copy -c:a aac -metadata "{ffmpeg_metadata}" "{
|
482 |
subprocess.run(ffmpeg_cmd, shell=True, check=True)
|
483 |
|
484 |
# Remove temporary WAV file
|
485 |
if not wave_exists:
|
486 |
wav_file_location.unlink()
|
|
|
487 |
elif file_type == ".png":
|
488 |
# Open and process .png file
|
489 |
image = Image.open(file_location)
|
490 |
exif_data = image.info.get("exif", {})
|
491 |
exif_data.update(metadata)
|
492 |
# Add metadata to the file
|
493 |
-
image.save(
|
|
|
494 |
|
495 |
return file_location # Return the path to the modified file
|
496 |
|
|
|
18 |
Update by Surn (Charles Fettinger)
|
19 |
"""
|
20 |
|
21 |
+
__version__ = "0.2.2"
|
22 |
|
23 |
import json
|
24 |
import os
|
|
|
40 |
from mutagen.mp3 import MP3, EasyMP3
|
41 |
import torchaudio
|
42 |
import subprocess
|
43 |
+
from modules.file_utils import get_file_parts, rename_file_to_lowercase_extension
|
44 |
|
45 |
user_profile = gr.State(None)
|
46 |
|
|
|
217 |
|
218 |
video_path = None
|
219 |
# Copy video to storage
|
220 |
+
if video is not None:
|
221 |
video_path = _copy_file(video, dst_folder=user_history._user_file_path(username, "videos"))
|
222 |
video_path = _add_metadata(video_path, metadata)
|
223 |
|
224 |
audio_path = None
|
225 |
# Copy audio to storage
|
226 |
+
if audio is not None:
|
227 |
audio_path = _copy_file(audio, dst_folder=user_history._user_file_path(username, "audios"))
|
228 |
audio_path = _add_metadata(audio_path, metadata)
|
229 |
|
230 |
document_path = None
|
231 |
# Copy document to storage
|
232 |
+
if document is not None:
|
233 |
document_path = _copy_file(document, dst_folder=user_history._user_file_path(username, "documents"))
|
234 |
document_path = _add_metadata(document_path, metadata)
|
235 |
|
|
|
242 |
with user_history._user_lock(username):
|
243 |
with user_history._user_jsonl_path(username).open("a") as f:
|
244 |
f.write(json.dumps(data) + "\n")
|
245 |
+
|
246 |
|
247 |
#############
|
248 |
# Internals #
|
|
|
440 |
if file_type not in valid_file_types:
|
441 |
raise ValueError("Invalid file type. Valid file types are .wav, .mp3, .mp4, .png")
|
442 |
|
443 |
+
directory, filename, name, ext, new_ext = get_file_parts(file_location)
|
444 |
+
new_file_location = rename_file_to_lowercase_extension(directory + name +"_h"+ new_ext)
|
445 |
+
|
446 |
if file_type == ".wav":
|
447 |
# Open and process .wav file
|
448 |
with wave.open(file_location, 'rb') as wav_file:
|
|
|
452 |
# Update metadata
|
453 |
current_metadata.update(metadata)
|
454 |
|
455 |
+
# Copy the WAV file
|
456 |
+
with wave.open(new_file_location, 'wb') as wav_output_file:
|
|
|
457 |
wav_output_file.setparams(wav_file.getparams())
|
458 |
+
wav_output_file.writeframes(wav_file.readframes(wav_file.getnframes()))
|
459 |
+
return new_file_location
|
|
|
460 |
elif file_type == ".mp3":
|
461 |
# Open and process .mp3 file
|
462 |
audio = EasyMP3(file_location)
|
|
|
465 |
for key, value in metadata.items():
|
466 |
audio[key] = value
|
467 |
|
468 |
+
# Save the MP3 file to the new file location
|
469 |
+
audio.save(new_file_location)
|
470 |
+
return new_file_location
|
471 |
elif file_type == ".mp4":
|
472 |
# Open and process .mp4 file
|
473 |
# Add metadata to the file
|
|
|
481 |
# Use ffmpeg to add metadata to the video file
|
482 |
metadata_args = [f"{key}={value}" for key, value in metadata.items()]
|
483 |
ffmpeg_metadata = ":".join(metadata_args)
|
484 |
+
ffmpeg_cmd = f'ffmpeg -y -i "{file_location}" -i "{wav_file_location}" -map 0:v:0 -map 1:a:0 -c:v copy -c:a aac -metadata "{ffmpeg_metadata}" "{new_file_location}"'
|
485 |
subprocess.run(ffmpeg_cmd, shell=True, check=True)
|
486 |
|
487 |
# Remove temporary WAV file
|
488 |
if not wave_exists:
|
489 |
wav_file_location.unlink()
|
490 |
+
return new_file_location
|
491 |
elif file_type == ".png":
|
492 |
# Open and process .png file
|
493 |
image = Image.open(file_location)
|
494 |
exif_data = image.info.get("exif", {})
|
495 |
exif_data.update(metadata)
|
496 |
# Add metadata to the file
|
497 |
+
image.save(new_file_location, exif=exif_data)
|
498 |
+
return new_file_location
|
499 |
|
500 |
return file_location # Return the path to the modified file
|
501 |
|