ghmk's picture
Initial deployment of Character Forge
5b6e956

generation_result.py

Purpose

Data model for image generation results. Consistent structure for results from any backend.

Responsibilities

  • Encapsulate generation results (success/failure)
  • Store generated image and metadata
  • Validate result consistency
  • Provide factory methods for success/error results
  • Serialize to dictionary for logging

Dependencies

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

Public Interface

GenerationResult dataclass

Fields:

  • success: bool - Success status (required)
  • message: str - Status/error message (required)
  • image: Image - Generated image (optional, required if success)
  • generation_time: float - Time in seconds (optional)
  • saved_path: Path - Save location (optional)
  • metadata: dict - Additional metadata (optional)
  • timestamp: datetime - Auto-populated

Properties:

  • is_successful: bool - Alias for success
  • has_image: bool - True if image present
  • is_saved: bool - True if saved to disk

Factory Methods:

  • success_result(image, message, generation_time, **kwargs) - Create success result
  • error_result(message, **kwargs) - Create error result

Usage:

# Success
result = GenerationResult.success_result(
    image=generated_image,
    message="Generated in 3.2s",
    generation_time=3.2
)

# Error
result = GenerationResult.error_result(
    message="Backend not available"
)

if result.is_successful:
    st.image(result.image)

Related Files

  • models/generation_request.py - Request model
  • All backends - Return results
  • All services - Process results