| """Style registry β maps style names to LoRA sources. |
| |
| Each style can point to a local .safetensors file or a HuggingFace Hub repo. |
| pipe.load_lora_weights() handles both transparently. |
| """ |
|
|
| STYLES = { |
| "Sunset Coastal Drive": { |
| "source": "samuelsattler/warm-sunset-lora", |
| "weight_name": "pytorch_lora_weights.safetensors", |
| "weight": 1.0, |
| "trigger": "sks", |
| "description": "Golden hour warmth, sun flares, silhouettes, warm color grading", |
| "quality_suffix": "8K, cinematic, golden hour glow, warm volumetric light, lens flare, shallow depth of field", |
| "image_prompt_guidance": ( |
| "SETTING β Coastal sunset drive:\n" |
| "The shared world is a drive along a coastal highway as the sun " |
| "sets. All scenes take place in or around this journey β a car " |
| "cruising along cliffs above the ocean, waves crashing against " |
| "rocks below, wind whipping through open windows, palm trees " |
| "swaying overhead, the sun sinking into the sea on the horizon. " |
| "No humans visible β focus on the car, the road, the ocean, " |
| "and the landscape. Every shot must have motion: wheels turning, " |
| "waves rolling, sun flares shifting, clouds drifting." |
| ), |
| }, |
| "Rainy City Night": { |
| "source": "artificialguybr/filmgrain-redmond-filmgrain-lora-for-sdxl", |
| "weight_name": "FilmGrainRedmond-FilmGrain-FilmGrainAF.safetensors", |
| "weight": 0.8, |
| "trigger": "FilmGrainAF", |
| "description": "35mm film grain, moody color grading, cinematic lighting", |
| "quality_suffix": "8K, cinematic, shot on 35mm film, dramatic rim lighting, high contrast, shallow depth of field", |
| "image_prompt_guidance": ( |
| "SETTING β Rainy city at night:\n" |
| "The shared world is a walk through a rain-soaked city after dark. " |
| "All scenes take place on these streets β rain streaking through " |
| "streetlights, puddles reflecting neon signs, steam rising from " |
| "grates, traffic passing with blurred headlights, wet umbrellas, " |
| "rain hammering awnings, water streaming down windows. " |
| "No humans visible β focus on the environment, the rain, the " |
| "reflections, and the city itself. Every shot must have motion: " |
| "rain falling, cars passing, lights flickering, water flowing " |
| "through gutters." |
| ), |
| }, |
| "Cyberpunk": { |
| "source": "jbilcke-hf/sdxl-cyberpunk-2077", |
| "weight_name": "pytorch_lora_weights.safetensors", |
| "weight": 0.9, |
| "trigger": "cyberpunk-2077", |
| "description": "Neon-lit cityscapes, dark futuristic vibes, glowing signs", |
| "quality_suffix": "8K, cinematic, neon-drenched, volumetric fog, sharp details, high contrast, dramatic lighting", |
| "image_prompt_guidance": ( |
| "SETTING β Cyberpunk nightlife cityscape:\n" |
| "The shared world is a futuristic megacity at night. All scenes " |
| "take place in this neon-drenched urban sprawl β holographic " |
| "billboards flickering on skyscrapers, flying vehicles streaking " |
| "between towers, neon signs buzzing and glitching, rain falling " |
| "through laser grids, steam erupting from vents, LED-lit market " |
| "stalls with flickering displays. " |
| "No humans visible β focus on the city, the machines, the neon, " |
| "and the architecture. Every shot must have motion: vehicles " |
| "flying, signs flickering, rain falling, smoke drifting, lights " |
| "pulsing." |
| ), |
| }, |
| "Watercolour Harbour": { |
| "source": "ostris/watercolor_style_lora_sdxl", |
| "weight_name": "watercolor_v1_sdxl.safetensors", |
| "weight": 1.4, |
| "trigger": "", |
| "description": "Soft watercolor painting style, fluid washes, gentle blending", |
| "quality_suffix": "8K, watercolor painting, soft painterly washes, fluid blending, delicate brushstrokes, atmospheric", |
| "image_prompt_guidance": ( |
| "SETTING β Stormy harbour village:\n" |
| "The shared world is a coastal fishing village during a storm. " |
| "All scenes take place in and around this harbour β waves " |
| "crashing against stone sea walls, fishing boats rocking and " |
| "pulling at their moorings, rain sweeping across the harbour " |
| "in sheets, wind tearing through flags and sails, seabirds " |
| "wheeling against dark clouds, lanterns swinging on posts, " |
| "water pouring off rooftops into cobblestone streets. " |
| "No humans visible β focus on the sea, the boats, the storm, " |
| "and the village. Every shot must have motion: waves surging, " |
| "boats swaying, rain lashing, flags snapping in the wind." |
| ), |
| }, |
| } |
|
|
|
|
| def get_style(name: str) -> dict: |
| """Look up a style by name. Raises KeyError if not found.""" |
| return STYLES[name] |
|
|
|
|
| def style_names() -> list[str]: |
| """Return list of available style names for UI dropdowns.""" |
| return list(STYLES.keys()) |
|
|