Upload 6 files
Browse files- api_client.py +11 -19
- page_modules/process_video.py +11 -9
api_client.py
CHANGED
|
@@ -602,18 +602,14 @@ def describe_image_with_svision(image_path: str, is_face: bool = True) -> Tuple[
|
|
| 602 |
try:
|
| 603 |
from gradio_client import Client, handle_file
|
| 604 |
|
| 605 |
-
# Conectar al space svision con timeout generoso
|
| 606 |
svision_url = os.getenv("SVISION_URL", "https://veureu-svision.hf.space")
|
| 607 |
print(f"[svision] Connectant a {svision_url}...")
|
| 608 |
-
|
| 609 |
-
#
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
print(f"[svision] Autenticat amb token HF")
|
| 614 |
-
else:
|
| 615 |
-
client = Client(svision_url)
|
| 616 |
-
print(f"[svision] Sense autenticaci贸 (cuota limitada)")
|
| 617 |
|
| 618 |
# Preparar prompt seg煤n el tipo
|
| 619 |
if is_face:
|
|
@@ -759,15 +755,11 @@ def generate_short_scene_name(description: str) -> str:
|
|
| 759 |
# URL del space schat
|
| 760 |
schat_url = os.getenv("SCHAT_URL", "https://veureu-schat.hf.space")
|
| 761 |
print(f"[schat] Connectant a {schat_url}...")
|
| 762 |
-
|
| 763 |
-
#
|
| 764 |
-
|
| 765 |
-
|
| 766 |
-
|
| 767 |
-
print(f"[schat] Autenticat amb token HF")
|
| 768 |
-
else:
|
| 769 |
-
client = Client(schat_url)
|
| 770 |
-
print(f"[schat] Sense autenticaci贸")
|
| 771 |
|
| 772 |
# Preparar prompt
|
| 773 |
prompt = f"Basant-te en aquesta descripci贸 d'una escena, genera un nom curt de menys de 3 paraules que la resumeixi:\n\n{description}\n\nNom de l'escena:"
|
|
|
|
| 602 |
try:
|
| 603 |
from gradio_client import Client, handle_file
|
| 604 |
|
| 605 |
+
# Conectar al space svision con timeout generoso per al cold start de ZeroGPU
|
| 606 |
svision_url = os.getenv("SVISION_URL", "https://veureu-svision.hf.space")
|
| 607 |
print(f"[svision] Connectant a {svision_url}...")
|
| 608 |
+
|
| 609 |
+
# La versi贸 actual de gradio_client al Space no accepta el par脿metre hf_token al constructor.
|
| 610 |
+
# Confiem en la configuraci贸 d'entorn del Space per a l'autenticaci贸 (si s'escau).
|
| 611 |
+
client = Client(svision_url)
|
| 612 |
+
print("[svision] Client creat (sense hf_token expl铆cit)")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 613 |
|
| 614 |
# Preparar prompt seg煤n el tipo
|
| 615 |
if is_face:
|
|
|
|
| 755 |
# URL del space schat
|
| 756 |
schat_url = os.getenv("SCHAT_URL", "https://veureu-schat.hf.space")
|
| 757 |
print(f"[schat] Connectant a {schat_url}...")
|
| 758 |
+
|
| 759 |
+
# La versi贸 actual de gradio_client al Space no accepta el par脿metre hf_token.
|
| 760 |
+
# Confiem en la configuraci贸 d'entorn per a l'autenticaci贸 si 茅s necessari.
|
| 761 |
+
client = Client(schat_url)
|
| 762 |
+
print("[schat] Client creat (sense hf_token expl铆cit)")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 763 |
|
| 764 |
# Preparar prompt
|
| 765 |
prompt = f"Basant-te en aquesta descripci贸 d'una escena, genera un nom curt de menys de 3 paraules que la resumeixi:\n\n{description}\n\nNom de l'escena:"
|
page_modules/process_video.py
CHANGED
|
@@ -1066,19 +1066,21 @@ def render_process_video_page(api, backend_base_url: str) -> None:
|
|
| 1066 |
voice_clusters = {}
|
| 1067 |
for i, seg in enumerate(segs):
|
| 1068 |
lbl = vlabels[i] if i < len(vlabels) else -1
|
|
|
|
|
|
|
|
|
|
| 1069 |
clip_local = seg.get("clip_path")
|
| 1070 |
fname = os.path.basename(clip_local) if clip_local else None
|
| 1071 |
if fname:
|
| 1072 |
-
default_voice_name = get_catalan_name_for_speaker(int(lbl), used_names_home_fin, used_names_dona_fin)
|
| 1073 |
voice_clusters.setdefault(lbl, {"label": lbl, "name": default_voice_name, "description": "", "clips": []})
|
| 1074 |
-
|
| 1075 |
-
|
| 1076 |
-
|
| 1077 |
-
|
| 1078 |
-
|
| 1079 |
-
|
| 1080 |
-
|
| 1081 |
-
voice_clusters[lbl]["description"] = vdesc_custom
|
| 1082 |
voice_clusters[lbl]["clips"].append(fname)
|
| 1083 |
|
| 1084 |
payload = {
|
|
|
|
| 1066 |
voice_clusters = {}
|
| 1067 |
for i, seg in enumerate(segs):
|
| 1068 |
lbl = vlabels[i] if i < len(vlabels) else -1
|
| 1069 |
+
# Nom茅s considerem cl煤sters de veu amb etiqueta v脿lida (enter >= 0)
|
| 1070 |
+
if not (isinstance(lbl, int) and lbl >= 0):
|
| 1071 |
+
continue
|
| 1072 |
clip_local = seg.get("clip_path")
|
| 1073 |
fname = os.path.basename(clip_local) if clip_local else None
|
| 1074 |
if fname:
|
| 1075 |
+
default_voice_name = get_catalan_name_for_speaker(int(lbl), used_names_home_fin, used_names_dona_fin)
|
| 1076 |
voice_clusters.setdefault(lbl, {"label": lbl, "name": default_voice_name, "description": "", "clips": []})
|
| 1077 |
+
vpref = f"voice_{int(lbl):02d}"
|
| 1078 |
+
vname_custom = st.session_state.get(f"{vpref}_name")
|
| 1079 |
+
vdesc_custom = st.session_state.get(f"{vpref}_desc")
|
| 1080 |
+
if vname_custom:
|
| 1081 |
+
voice_clusters[lbl]["name"] = vname_custom
|
| 1082 |
+
if vdesc_custom is not None:
|
| 1083 |
+
voice_clusters[lbl]["description"] = vdesc_custom
|
|
|
|
| 1084 |
voice_clusters[lbl]["clips"].append(fname)
|
| 1085 |
|
| 1086 |
payload = {
|