From b6d8743a95242a916e70f64f0af8b7e6ac0d82f9 Mon Sep 17 00:00:00 2001 From: puke <1129090915@qq.com> Date: Thu, 6 Nov 2025 11:13:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E5=B8=83=E5=B1=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/app.py | 90 +++++------------------------------------------------- 1 file changed, 8 insertions(+), 82 deletions(-) diff --git a/web/app.py b/web/app.py index 2fa8430..3d39b71 100644 --- a/web/app.py +++ b/web/app.py @@ -877,96 +877,22 @@ def main(): template_width, template_height = parse_template_size(f"templates/{frame_template}") st.info(f"📐 {tr('template.size_info')}: {template_width} × {template_height}") - # Parse and render custom parameters - from pixelle_video.services.frame_html import HTMLFrameGenerator - template_path = f"templates/{frame_template}" - generator = HTMLFrameGenerator(template_path) - custom_params = generator.parse_template_parameters() - - preview_custom_values = {} - if custom_params: - st.markdown("📝 " + tr("template.custom_parameters")) - - # Render custom parameter inputs in 2 columns - custom_col1, custom_col2 = st.columns(2) - - param_items = list(custom_params.items()) - mid_point = (len(param_items) + 1) // 2 - - # Left column parameters - with custom_col1: - for param_name, config in param_items[:mid_point]: - param_type = config['type'] - default = config['default'] - label = config['label'] - - if param_type == 'text': - preview_custom_values[param_name] = st.text_input( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'number': - preview_custom_values[param_name] = st.number_input( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'color': - preview_custom_values[param_name] = st.color_picker( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'bool': - preview_custom_values[param_name] = st.checkbox( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - - # Right column parameters - with custom_col2: - for param_name, config in param_items[mid_point:]: - param_type = config['type'] - default = config['default'] - label = config['label'] - - if param_type == 'text': - preview_custom_values[param_name] = st.text_input( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'number': - preview_custom_values[param_name] = st.number_input( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'color': - preview_custom_values[param_name] = st.color_picker( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - elif param_type == 'bool': - preview_custom_values[param_name] = st.checkbox( - label, - value=default, - key=f"preview_custom_{param_name}" - ) - # Preview button if st.button(tr("template.preview_button"), key="btn_preview_template", use_container_width=True): with st.spinner(tr("template.preview_generating")): try: - # Generate preview (size is auto-determined from template) + from pixelle_video.services.frame_html import HTMLFrameGenerator + + # Use the currently selected template (size is auto-parsed) + template_path = f"templates/{frame_template}" + generator = HTMLFrameGenerator(template_path) + + # Generate preview (use custom parameters from video generation section) preview_path = run_async(generator.generate_frame( title=preview_title, text=preview_text, image=preview_image, - ext=preview_custom_values if preview_custom_values else None + ext=custom_values_for_video if custom_values_for_video else None )) # Display preview