from typing import List, Optional
from pydantic import BaseModel, HttpUrl
from pydantic import validator


class Scene(BaseModel):
    narration: str
    image_prompts: List[str]
    voice: str


class Story(BaseModel):
    scenes: List[Scene]
    reference_image_url: Optional[str] = None
    ip_adapter_weight: Optional[float] = 0.4  # Add this line


class GeneratorRequest(BaseModel):
    prompt: str
    batch_size: int = 4
    grok: bool = False
    model: str = "command"


class GeneratorBulkRequest(BaseModel):
    stories: List[GeneratorRequest]