|
|
|
|
|
import gradio as gr
|
|
from config import SCENE_CONFIGS
|
|
from logging_utils import read_logs, format_logs_for_display
|
|
|
|
def update_history_display(history: list) -> list:
|
|
updates = []
|
|
for i in range(10):
|
|
if i < len(history):
|
|
entry = history[i]
|
|
label_text = f"Simulation {i+1} scene: {entry['scene']}, model: {entry.get('model','')}, mode: {entry.get('mode','')}, prompt: {entry['prompt']}"
|
|
updates.extend([
|
|
gr.update(visible=True),
|
|
gr.update(visible=True, label=label_text, open=False),
|
|
gr.update(value=entry['video_path'], visible=True),
|
|
gr.update(value=f"{entry['timestamp']}")
|
|
])
|
|
else:
|
|
updates.extend([
|
|
gr.update(visible=False),
|
|
gr.update(visible=False),
|
|
gr.update(value=None, visible=False),
|
|
gr.update(value="")
|
|
])
|
|
return updates
|
|
|
|
def update_scene_display(scene: str):
|
|
config = SCENE_CONFIGS.get(scene, {})
|
|
desc = config.get("description", "No Description")
|
|
objects = "、".join(config.get("objects", []))
|
|
image = config.get("preview_image", None)
|
|
markdown = f"**{desc}** \nPlaces Included: {objects}"
|
|
return markdown, image
|
|
|
|
def get_scene_instruction(scene: str):
|
|
"""根据场景获取默认指令"""
|
|
config = SCENE_CONFIGS.get(scene, {})
|
|
return config.get("default_instruction", "")
|
|
|
|
def update_log_display():
|
|
logs = read_logs()
|
|
return format_logs_for_display(logs)
|
|
|