"""Prompt-Oberfläche für alle drei Modelle: das SFT3-Nutzer-Template (prompt_lib2.USER_INST_TEMPLATE, byte-gleich), Instruction = Hausformat-Prompt der Leiter (GENERAL + SCRIPT), Text = SCRIPT-Teil, Tokens = Frames, Referenz = <|audio|> oder None.""" AUDIO_PLACEHOLDER = "<|audio|>" USER_INST_TEMPLATE = """ - Reference(s): {reference} - Instruction: {instruction} - Tokens: {tokens} - Quality: {quality} - Sound Event: {sound_event} - Ambient Sound: {ambient_sound} - Language: {language} - Text: {text} """ def lang_name(lang): return "German" if str(lang or "en").lower().startswith("de") else "English" def split_prompt(prompt): if 'SCRIPT:\n' in prompt: return prompt, prompt.split('SCRIPT:\n', 1)[1].strip() return prompt, prompt.strip() def user_content(meta, use_ref, frames=None): instruction, script = split_prompt(meta['prompt']) return USER_INST_TEMPLATE.format( reference=AUDIO_PLACEHOLDER if use_ref else "None", instruction=instruction.strip() or "None", tokens=int(frames if frames is not None else meta['frames']), quality="None", sound_event="None", ambient_sound="None", language=lang_name(meta['lang']), text=script or "None")