FIRST
This commit is contained in:
80
linkedin_carousel_app/styles.py
Normal file
80
linkedin_carousel_app/styles.py
Normal file
@@ -0,0 +1,80 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import List
|
||||
|
||||
# --- Data Models (Structured Output from Gemini) ---
|
||||
|
||||
class Slide(BaseModel):
|
||||
headline: str = Field(description="Catchy headline for the slide (max 10 words).")
|
||||
body: str = Field(description="Concise body text for the slide (max 30 words).")
|
||||
code_snippet: str | None = Field(description="Optional: A very short, relevant code snippet (max 5-8 lines). Use only if it adds value to the slide.")
|
||||
source_image_url: str | None = Field(description="Optional: A URL to an image mentioned in the source text that should be integrated into this slide's visual.")
|
||||
image_prompt: str = Field(description="Detailed prompt for generating the background image based on the style.")
|
||||
|
||||
class CarouselContent(BaseModel):
|
||||
slides: List[Slide] = Field(description="List of 5-7 slides for the carousel.")
|
||||
post_text: str = Field(description="Engaging LinkedIn post text to accompany the carousel, including hashtags.")
|
||||
|
||||
# --- Visual Styles ---
|
||||
|
||||
STYLES = {
|
||||
"Minimalist Tech": {
|
||||
"description": "Clean, white background, dark text, geometric shapes.",
|
||||
"bg_prompt_suffix": "minimalist, clean white background, subtle geometric tech patterns, high key lighting, 8k resolution, uncluttered.",
|
||||
"text_color": (30, 30, 30), # Dark Grey
|
||||
"overlay_color": (255, 255, 255, 220), # White with transparency
|
||||
},
|
||||
"Bold Corporate": {
|
||||
"description": "Strong blue background, white text, professional look.",
|
||||
"bg_prompt_suffix": "corporate professional background, deep blue gradients, abstract business concepts, subtle network connections, 8k resolution.",
|
||||
"text_color": (255, 255, 255), # White
|
||||
"overlay_color": (0, 50, 100, 200), # Blue with transparency
|
||||
},
|
||||
"Creative Vibrant": {
|
||||
"description": "Colorful gradients, artistic, modern.",
|
||||
"bg_prompt_suffix": "vibrant artistic background, fluid color gradients, abstract art, creative energy, 8k resolution, soft lighting.",
|
||||
"text_color": (255, 255, 255), # White
|
||||
"overlay_color": (0, 0, 0, 150), # Black with transparency
|
||||
},
|
||||
"Nature Serene": {
|
||||
"description": "Calm, nature-inspired, green tones.",
|
||||
"bg_prompt_suffix": "serene nature background, soft green leaves, organic shapes, calm atmosphere, natural light, 8k resolution.",
|
||||
"text_color": (20, 50, 20), # Dark Green
|
||||
"overlay_color": (240, 255, 240, 200), # Light Green/White with transparency
|
||||
},
|
||||
"Hand-Drawn Doodle": {
|
||||
"description": "Playful, sketch-style, white background with black ink drawings.",
|
||||
"bg_prompt_suffix": "hand-drawn doodle style, sketch, pencil on white paper, playful, creative, simple line art, black ink on white background.",
|
||||
"text_color": (0, 0, 0), # Black
|
||||
"overlay_color": (255, 255, 255, 240), # White with transparency
|
||||
},
|
||||
"Playful Color Doodle": {
|
||||
"description": "Fun, hand-drawn sketches with vibrant pops of color.",
|
||||
"bg_prompt_suffix": "colorful hand-drawn doodle style, marker drawings, watercolor splashes, vibrant accents, creative, white background, playful illustrations.",
|
||||
"text_color": (30, 30, 30), # Dark Grey
|
||||
"overlay_color": (255, 255, 255, 230), # White with transparency
|
||||
},
|
||||
"Reference-Based": {
|
||||
"description": "Uses your uploaded image to define the style. Predefined settings are ignored.",
|
||||
"bg_prompt_suffix": "match the provided reference image style perfectly.",
|
||||
"text_color": (255, 255, 255), # Default white (will be used for footer)
|
||||
"overlay_color": (0, 0, 0, 0), # No overlay
|
||||
},
|
||||
"Tech Color Doodle": {
|
||||
"description": "Hand-drawn technical sketches with neon tech accents.",
|
||||
"bg_prompt_suffix": "tech doodle style, hand-drawn circuits, network nodes, code symbols, cloud infrastructure sketches, neon blue and cyan marker accents, clean white background, modern tech aesthetic.",
|
||||
"text_color": (30, 30, 30), # Dark Grey
|
||||
"overlay_color": (255, 255, 255, 240), # White with transparency
|
||||
},
|
||||
"Excalidraw Light": {
|
||||
"description": "Clean, hand-drawn diagram style on a white background, like Excalidraw.",
|
||||
"bg_prompt_suffix": "excalidraw style, hand-drawn diagram, sketchy black lines on clean white background, rough strokes, architectural sketch, minimalist, technical drawing aesthetic, high contrast.",
|
||||
"text_color": (20, 20, 20), # Almost Black
|
||||
"overlay_color": (255, 255, 255, 230), # White with transparency
|
||||
},
|
||||
"Excalidraw Dark": {
|
||||
"description": "Dark mode hand-drawn diagram style, white lines on dark grey.",
|
||||
"bg_prompt_suffix": "excalidraw dark mode style, hand-drawn diagram, sketchy white lines on dark grey background (#121212), rough strokes, architectural sketch, minimalist, technical drawing aesthetic, high contrast.",
|
||||
"text_color": (240, 240, 240), # Off-White
|
||||
"overlay_color": (30, 30, 30, 200), # Dark Grey with transparency
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user