from flask import Blueprint, request from controllers.glb_controller import GlbController from controllers.render_controller import RenderController from controllers.suggest_controller import SuggestController glb_bp = Blueprint('glb', __name__) render_bp = Blueprint('render', __name__) suggest_bp = Blueprint('suggest', __name__) glb_controller = GlbController() render_controller = RenderController() suggest_controller = SuggestController() def setup_routes(app): @app.route('/glb', methods=['GET']) # Image to model def get_glb(): base_image_url = request.args.get('base_image_url', type=str) hf_token = request.args.get('hf_token', '', type=str) ss_guidance_strength = request.args.get('ss_guidance_strength', 7.5, type=float) ss_sampling_steps = request.args.get('ss_sampling_steps', 12, type=int) slat_guidance_strength = request.args.get('slat_guidance_strength', 3, type=float) slat_sampling_steps = request.args.get('slat_sampling_steps', 12, type=int) multiimage_algo = request.args.get('multiimage_algo', 'stochastic', type=str) mesh_simplify = request.args.get('mesh_simplify', 0.95, type=bool) texture_size = request.args.get('texture_size', 1024, type=int) return glb_controller.get_glb(hf_token, base_image_url, ss_guidance_strength, ss_sampling_steps, slat_guidance_strength, slat_sampling_steps, multiimage_algo, mesh_simplify, texture_size) # Text to image @app.route('/render', methods=['GET']) def get_render(): hf_token = request.args.get('hf_token', '', type=str) text = request.args.get('text', 'Hello!!', type=str) selected_model = request.args.get('selected_model', 'Model 1 (Turbo Realism)', type=str) return render_controller.get_render(hf_token, text, selected_model) # Suggest @app.route('/suggest', methods=['GET']) def get_suggest(): hf_token = request.args.get('hf_token', '', type=str) message = request.args.get('message', 'Hello!!', type=str) system_prompt = request.args.get('system_prompt', 'You are a helpful assistant. First recognize the user request and then reply carefully with thinking.', type=str) temperature = request.args.get('temperature', 0.7, type=float) max_new_tokens = request.args.get('max_new_tokens', 12000, type=int) top_k_sampling = request.args.get('top_k_sampling', 50, type=int) repetition_penalty = request.args.get('repetition_penalty', 1.1, type=float) top_p_sampling = request.args.get('top_p_sampling', 0.95, type=float) return suggest_controller.get_suggest(hf_token, message, system_prompt, temperature, max_new_tokens, top_k_sampling, repetition_penalty, top_p_sampling)