diff --git a/src/talemate/agents/director/chat/websocket_handler.py b/src/talemate/agents/director/chat/websocket_handler.py
index 75fdf508..24c5580c 100644
--- a/src/talemate/agents/director/chat/websocket_handler.py
+++ b/src/talemate/agents/director/chat/websocket_handler.py
@@ -42,6 +42,7 @@ class ChatRemoveMessagePayload(pydantic.BaseModel):
class ChatCreateGenerateArcPayload(pydantic.BaseModel):
instructions: str
beat_count: int = 8
+ dialogue_ratio: float | None = None
class ChatRegeneratePayload(pydantic.BaseModel):
@@ -446,6 +447,9 @@ class DirectorChatWebsocketMixin:
async def handle_chat_create_generate_arc(self, data: dict):
payload = ChatCreateGenerateArcPayload(**data)
+ if payload.dialogue_ratio is not None:
+ self.director.actions["chat"].config["generate_arc_dialogue_ratio"].value = payload.dialogue_ratio
+
chat = self.director.chat_create_generate_arc(
payload.instructions,
payload.beat_count,
diff --git a/talemate_frontend/src/components/SceneToolsDirector.vue b/talemate_frontend/src/components/SceneToolsDirector.vue
index 73f68c01..52877347 100644
--- a/talemate_frontend/src/components/SceneToolsDirector.vue
+++ b/talemate_frontend/src/components/SceneToolsDirector.vue
@@ -62,10 +62,22 @@
:min="3"
:max="24"
:step="1"
- thumb-label
+ thumb-label="always"
color="primary"
class="mt-4"
>
+
+ {{ modelValue }}%
+