digiPal / test_3d_generation.py
BladeSzaSza's picture
refactor(3d): Remove duplicated Hunyuan3D code and use dynamic loading
05ce3e0
import sys
from pathlib import Path
# Add the project root to the Python path
sys.path.insert(0, str(Path(__file__).resolve().parent))
import asyncio
from app import generate_monster
from core.ai_pipeline import MonsterGenerationPipeline
class MockOAuthProfile:
def __init__(self, username):
self.username = username
async def main():
# Create a mock OAuth profile
mock_profile = MockOAuthProfile(username="test_user")
# Call the generate_monster function with a text prompt
# This will trigger the 3D generation pipeline
image_path, model_path, stats, dialogue, message = await asyncio.to_thread(
generate_monster,
oauth_profile=mock_profile,
text_input="a cute, fluffy, blue monster"
)
# Print the results
print(f"Message: {message}")
print(f"Image Path: {image_path}")
print(f"3D Model Path: {model_path}")
print(f"Stats: {stats}")
print(f"Dialogue: {dialogue}")
if __name__ == "__main__":
# The generate_monster function is a regular function, but since it can be run in a separate thread by Gradio,
# it's better to run it in an asyncio event loop to be safe.
asyncio.run(main())