Spaces:
Sleeping
Sleeping
| # pipeline.py | |
| import asyncio | |
| import logging | |
| from api.server import pending_confirmations # Access the confirmation events | |
| # Import your modules | |
| import core.script_gen as script_gen | |
| import core.story_script as story_script | |
| # import core.image_gen as image_gen | |
| # import core.video_gen as video_gen | |
| # import core.music_gen as music_gen | |
| # import core.assemble as assemble | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s [%(levelname)s] %(message)s" | |
| ) | |
| async def run_pipeline(task: dict): | |
| task_id = task["task_id"] | |
| idea = task["idea"] | |
| logging.info(f"[Pipeline] Starting script generation for task {task_id}") | |
| script = await script_gen.generate_script(idea) # Async script generation | |
| logging.info(f"[Pipeline] Waiting for user confirmation for task {task_id}") | |
| # Wait for confirmation (manual or auto) | |
| if task_id in pending_confirmations: | |
| await pending_confirmations[task_id].wait() | |
| else: | |
| logging.info(f"[Pipeline] No pending confirmation found, auto-confirming task {task_id}") | |
| logging.info(f"[Pipeline] Generating story script for task {task_id}") | |
| story = await story_script.generate_story(script) | |
| final_output = story # Placeholder for final output | |
| # logging.info(f"[Pipeline] Generating images for task {task_id}") | |
| # images = await image_gen.generate_images(story) | |
| # logging.info(f"[Pipeline] Generating video for task {task_id}") | |
| # video = await video_gen.generate_video(images) | |
| # logging.info(f"[Pipeline] Generating music/audio for task {task_id}") | |
| # audio = await music_gen.generate_music(story) | |
| # logging.info(f"[Pipeline] Assembling final output for task {task_id}") | |
| # final_output = await assemble.create_final(video, audio) | |
| logging.info(f"[Pipeline] Task {task_id} completed. Output: {final_output}") | |
| return final_output | |