Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -30,7 +30,9 @@ from mmaudio.model.flow_matching import FlowMatching
|
|
| 30 |
from mmaudio.model.networks import MMAudio, get_my_mmaudio
|
| 31 |
from mmaudio.model.sequence_config import SequenceConfig
|
| 32 |
from mmaudio.model.utils.features_utils import FeaturesUtils
|
| 33 |
-
|
|
|
|
|
|
|
| 34 |
# 3. API ์ค์
|
| 35 |
CATBOX_USER_HASH = "30f52c895fd9d9cb387eee489"
|
| 36 |
REPLICATE_API_TOKEN = os.getenv("API_KEY")
|
|
@@ -424,31 +426,43 @@ with gr.Blocks(theme="Yntec/HaleyCH_Theme_Orange", css=css) as demo:
|
|
| 424 |
with gr.Column(scale=4):
|
| 425 |
video_output = gr.Video(label="Generated Video")
|
| 426 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 427 |
def process_and_generate_video(image, prompt):
|
| 428 |
if image is None:
|
| 429 |
return "Please upload an image"
|
| 430 |
|
| 431 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 432 |
img = Image.open(image)
|
| 433 |
if img.mode != 'RGB':
|
| 434 |
img = img.convert('RGB')
|
| 435 |
-
|
| 436 |
temp_path = f"temp_{int(time.time())}.png"
|
| 437 |
img.save(temp_path, 'PNG')
|
| 438 |
-
|
| 439 |
result = generate_video(temp_path, prompt)
|
| 440 |
|
| 441 |
try:
|
| 442 |
os.remove(temp_path)
|
| 443 |
except:
|
| 444 |
pass
|
| 445 |
-
|
| 446 |
return result
|
| 447 |
|
| 448 |
except Exception as e:
|
| 449 |
logger.error(f"Error processing image: {str(e)}")
|
| 450 |
return "Error processing image"
|
| 451 |
|
|
|
|
| 452 |
video_generate_btn.click(
|
| 453 |
process_and_generate_video,
|
| 454 |
inputs=[upload_image, video_prompt],
|
|
|
|
| 30 |
from mmaudio.model.networks import MMAudio, get_my_mmaudio
|
| 31 |
from mmaudio.model.sequence_config import SequenceConfig
|
| 32 |
from mmaudio.model.utils.features_utils import FeaturesUtils
|
| 33 |
+
# ์๋จ์ ๋ฒ์ญ ๋ชจ๋ธ import ์ถ๊ฐ
|
| 34 |
+
from transformers import pipeline
|
| 35 |
+
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en")
|
| 36 |
# 3. API ์ค์
|
| 37 |
CATBOX_USER_HASH = "30f52c895fd9d9cb387eee489"
|
| 38 |
REPLICATE_API_TOKEN = os.getenv("API_KEY")
|
|
|
|
| 426 |
with gr.Column(scale=4):
|
| 427 |
video_output = gr.Video(label="Generated Video")
|
| 428 |
|
| 429 |
+
|
| 430 |
+
|
| 431 |
+
|
| 432 |
+
# process_and_generate_video ํจ์ ์์
|
| 433 |
def process_and_generate_video(image, prompt):
|
| 434 |
if image is None:
|
| 435 |
return "Please upload an image"
|
| 436 |
|
| 437 |
try:
|
| 438 |
+
# ํ๊ธ ํ๋กฌํํธ ๊ฐ์ง ๋ฐ ๋ฒ์ญ
|
| 439 |
+
contains_korean = any(ord('๊ฐ') <= ord(char) <= ord('ํฃ') for char in prompt)
|
| 440 |
+
if contains_korean:
|
| 441 |
+
translated = translator(prompt)[0]['translation_text']
|
| 442 |
+
logger.info(f"Translated prompt from '{prompt}' to '{translated}'")
|
| 443 |
+
prompt = translated
|
| 444 |
+
|
| 445 |
img = Image.open(image)
|
| 446 |
if img.mode != 'RGB':
|
| 447 |
img = img.convert('RGB')
|
| 448 |
+
|
| 449 |
temp_path = f"temp_{int(time.time())}.png"
|
| 450 |
img.save(temp_path, 'PNG')
|
| 451 |
+
|
| 452 |
result = generate_video(temp_path, prompt)
|
| 453 |
|
| 454 |
try:
|
| 455 |
os.remove(temp_path)
|
| 456 |
except:
|
| 457 |
pass
|
| 458 |
+
|
| 459 |
return result
|
| 460 |
|
| 461 |
except Exception as e:
|
| 462 |
logger.error(f"Error processing image: {str(e)}")
|
| 463 |
return "Error processing image"
|
| 464 |
|
| 465 |
+
|
| 466 |
video_generate_btn.click(
|
| 467 |
process_and_generate_video,
|
| 468 |
inputs=[upload_image, video_prompt],
|