ghmk's picture
Initial deployment of Character Forge
5b6e956

generation_request.py

Purpose

Data model for image generation requests. Provides type-safe, validated structure for all generation parameters.

Responsibilities

  • Encapsulate all generation request parameters
  • Validate data on initialization
  • Provide convenience properties (is_text_to_image, etc.)
  • Serialize to dictionary for logging/metadata

Dependencies

  • dataclasses - Data class decorator
  • PIL.Image - Image type
  • Used by all services and backend clients

Public Interface

GenerationRequest dataclass

Fields:

  • prompt: str - Text prompt (required)
  • backend: str - Backend name (required)
  • aspect_ratio: str - Aspect ratio (required)
  • temperature: float - Temperature 0.0-1.0 (required)
  • input_images: List[Image] - Input images (optional)
  • is_character_sheet: List[bool] - Character sheet flags (optional)
  • metadata: dict - Additional metadata (optional)

Properties:

  • has_input_images: bool - True if has input images
  • image_count: int - Number of input images
  • is_text_to_image: bool - True if text-to-image mode
  • is_image_to_image: bool - True if image-to-image mode

Methods:

  • to_dict() -> dict - Convert to dictionary (excludes images)

Usage:

request = GenerationRequest(
    prompt="sunset over mountains",
    backend="Gemini API (Cloud)",
    aspect_ratio="16:9",
    temperature=0.4,
    input_images=[img1, img2]
)

if request.is_image_to_image:
    # Handle multi-image
    pass

Related Files

  • models/generation_result.py - Result model
  • All services - Create requests
  • core/backend_router.py - Receives requests