--- license: creativeml-openrail-m base_model: stabilityai/stable-diffusion-xl-base-1.0 tags: - stable-diffusion-xl - sdxl - lora - text-to-image - punk - art-style - collage - xerox - zine - orange-county - diffusers library_name: diffusers pipeline_tag: text-to-image widget: - text: "oc-punk-flyer, collage of skulls and reaching hands, torn paper edges, xerox photocopy, high contrast, no text, no words, no letters" output: url: examples/collage_skulls_hands_s0.4.png - text: "oc-punk-flyer, skeleton surfer, palm trees, waves, torn magazine cutouts, xerox texture, high contrast, no text, no words, no letters" output: url: examples/collage_surf_death_s0.4.png - text: "oc-punk-flyer, raised fists, broken chains, barbed wire, punk resistance, xerox photocopy, high contrast, no text, no words, no letters" output: url: examples/collage_fists_s0.35.png - text: "oc-punk-flyer, burning suburban house, palm trees, fire, Orange County decay, high contrast, no text, no words, no letters" output: url: examples/burning_suburb_s0.35.png --- # OC Punk Flyer LoRA — Orange County California Punk Art Style A LoRA fine-tune of SDXL 1.0 trained on **Orange County, California punk rock flyer art** from 1978–2000. Generates high-contrast Xerox-style collages, cut-and-paste zine aesthetics, skull/skeleton motifs, and Southern California beach-nihilism imagery in the visual language of the OC hardcore punk scene — the same DIY aesthetic behind bands like Social Distortion, The Offspring, Bad Religion, Agent Orange, and the entire Huntington Beach / Costa Mesa / Fullerton punk underground. > **Trigger word:** `oc-punk-flyer` ## Example Generations ### OC City Vibes
| Huntington Beach — Surf Punk | Huntington Beach — Pier Walk | Costa Mesa — Strip Mall Decay | |:---:|:---:|:---:| | ![HB Surf Punk](examples/hb_surf_punk_s0.4.png) | ![HB Pier](examples/hb_pier_s0.35.png) | ![Costa Mesa](examples/costa_mesa_s0.4.png) | | Irvine — Tract Houses | Santa Ana — Downtown Grit | Orange — Old Towne | |:---:|:---:|:---:| | ![Irvine](examples/irvine_s0.4.png) | ![Santa Ana](examples/santa_ana_s0.4.png) | ![Orange](examples/orange_s0.4.png) | | Tustin — Hangar Ruins | Long Beach — Harbor Industrial | Irvine — Suburban Sprawl | |:---:|:---:|:---:| | ![Tustin](examples/tustin_s0.4.png) | ![Long Beach](examples/long_beach_s0.4.png) | ![Irvine Sprawl](examples/irvine_sprawl_s0.35.png) |
### Collages | Skulls & Hands | Surf & Death | Eyes | |:---:|:---:|:---:| | ![Skulls Hands](examples/collage_skulls_hands_s0.4.png) | ![Surf Death](examples/collage_surf_death_s0.4.png) | ![Eyes](examples/collage_eyes_s0.4.png) | | Raised Fist | TV Static | Suburban Decay | |:---:|:---:|:---:| | ![Fists](examples/collage_fists_s0.35.png) | ![TV Static](examples/collage_tv_static_s0.4.png) | ![Suburban Decay](examples/collage_suburban_decay_s0.4.png) | | Anarchy | Beach Punk | Skate & Destroy | |:---:|:---:|:---:| | ![Anarchy](examples/collage_anarchy_s0.35.png) | ![Beach Punk](examples/collage_beach_punk_s0.4.png) | ![Skate Destroy](examples/collage_skate_destroy_s0.4.png) | ### Punk Portraits & Objects | Guitar Closeup | Mohawk Portrait | Mosh Pit | |:---:|:---:|:---:| | ![Guitar](examples/guitar_closeup_s0.3.png) | ![Mohawk](examples/mohawk_portrait_s0.4.png) | ![Mosh Pit](examples/moshpit_v3_s0.3.png) | | Combat Boots | Burning Suburbs | Skeleton Beach | |:---:|:---:|:---:| | ![Boots](examples/boots_s0.35.png) | ![Burning Suburb](examples/burning_suburb_s0.35.png) | ![Skeleton Beach](examples/skeleton_beach_s0.5.png) | | Skater Punk | Beach Nihilism | Skulls Collage | |:---:|:---:|:---:| | ![Skater](examples/skater_s0.5.png) | ![Beach Nihilism](examples/beach_nihilism_s0.5.png) | ![Skulls Collage](examples/skulls_collage_s0.5.png) | ## Usage ### With Diffusers ```python import torch from diffusers import StableDiffusionXLPipeline pipe = StableDiffusionXLPipeline.from_pretrained( "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", ) pipe.load_lora_weights("cahlen/oc-punk-flyer-sdxl-lora") pipe.set_adapters(["default_0"], adapter_weights=[0.4]) pipe.to("cuda") image = pipe( prompt="oc-punk-flyer, collage of skulls and reaching hands, torn paper edges, xerox photocopy, high contrast, no text, no words, no letters", negative_prompt="text, words, letters, writing, typography, font, caption, label, title, headline, sign, logo, watermark, signature, blurry, photorealistic, photo, smooth gradients, 3d render, clean, modern, digital", width=768, height=1024, num_inference_steps=30, guidance_scale=7.5, ).images[0] image.save("punk_art.png") ``` ### With ComfyUI / A1111 Load `pytorch_lora_weights.safetensors` as a standard SDXL LoRA. Use trigger word `oc-punk-flyer` in your prompt. ## Recommended Settings | Parameter | Recommended | Notes | |-----------|------------|-------| | **LoRA scale** | **0.3–0.5** | Sweet spot for style without text artifacts. See guide below. | | **Resolution** | 768x1024 | Portrait orientation works best (trained at 1024px) | | **CFG / Guidance** | 7.5 | Standard SDXL guidance | | **Steps** | 25–30 | Diminishing returns past 30 | | **Sampler** | Euler a, DPM++ 2M Karras | Standard SDXL samplers | ### LoRA Scale Guide The most important parameter. Controls how much of the punk flyer style is applied: | Scale | Effect | Best For | |-------|--------|----------| | **0.3** | Light style influence, very clean | Crowd scenes, portraits — subjects that tend to trigger text | | **0.35** | Moderate style, mostly clean | General purpose, collages, city scenes | | **0.4** | Strong style, good balance | Collages, objects, landscapes — the default sweet spot | | **0.5** | Full style, occasional text artifacts | Skulls, skeletons, abstract subjects that don't trigger text | | **0.6+** | Very strong, likely text artifacts | Only for subjects that never trigger text (abstract, objects) | ### Text Suppression This LoRA was trained on punk rock flyers which are inherently text-heavy. The model has learned to associate the style with text/typography elements. To generate clean art without garbled text: 1. **Use LoRA scale 0.3–0.4** (most important) 2. **Add to your prompt:** `no text, no words, no letters` 3. **Add to negative prompt:** `text, words, letters, writing, typography, font, caption, label, title, headline, sign, logo, watermark, signature` 4. **Avoid "performance" prompts** — band-on-stage, concert venue, performer compositions strongly trigger text. Use object/scene/collage prompts instead. ### Prompt Tips - Always start with the trigger word: `oc-punk-flyer` - **Collage prompts work best:** `collage of [subjects], torn paper, xerox texture, high contrast` - **Object-focused prompts stay clean:** guitars, boots, skateboards, buildings - **Scene/landscape prompts work well:** burning houses, beach scenes, urban decay, suburban sprawl - **Add xerox/zine keywords** to reinforce the style: `xerox texture`, `xerox photocopy`, `punk zine`, `torn paper`, `cut-and-paste` - **Avoid:** `poster`, `flyer`, `banner`, `concert`, `show`, `performing` (trigger text generation) ## Training Details | Parameter | Value | |-----------|-------| | **Base model** | [stabilityai/stable-diffusion-xl-base-1.0](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) | | **Framework** | [SimpleTuner](https://github.com/bghira/SimpleTuner) | | **LoRA rank / alpha** | 32 / 32 | | **Optimizer** | Prodigy (auto-adjusting LR, initial 1.0) | | **Batch size x Accum** | 1 x 4 (effective batch 4) | | **Max steps** | 3,500 | | **Precision** | bf16 | | **SNR gamma** | 5 | | **Noise offset** | 0.05 | | **Caption dropout** | 0.20 | ### Dataset | Metric | Value | |--------|-------| | **Sources** | Cornell Digital Library, Internet Archive | | **Raw scraped** | 2,351 punk flyer images | | **Curated** | Top 200 by programmatic scoring (entropy, contrast, B&W fraction, edge density, aspect ratio, resolution) | | **After preprocessing** | 402 images (200 original + 200 B&W augmentation + 2 multi-crop) | | **Repeats** | 2 | | **Effective samples/epoch** | 804 | | **Total epochs** | ~17.4 | | **Caption strategy** | Instance prompt only (`oc-punk-flyer`) — style LoRAs learn better when captions describe content only | ### Why SDXL over FLUX SDXL 1.0 (3.5B parameters) was chosen over FLUX (12B+) because FLUX's strong photorealistic prior overwhelms rank-32 style LoRAs. SDXL's smaller parameter count is more amenable to specialized art styles at practical LoRA ranks. ## Style Reference This LoRA captures the visual language of Orange County punk/hardcore flyers from 1978–2000: - **High-contrast Xerox aesthetic** — photocopied, degraded, raw - **Cut-and-paste collage** — torn paper, magazine cutouts, layered imagery - **Skull/skeleton motifs** — the universal punk visual shorthand - **Beach nihilism** — palm trees, surf culture subverted with death imagery - **Suburban decay** — tract houses, strip malls, power lines, OC sprawl - **DIY zine culture** — hand-drawn, rough, anti-commercial ## License This LoRA inherits the [CreativeML OpenRAIL-M](https://huggingface.co/spaces/CompVis/stable-diffusion-license) license from the SDXL base model. ## Acknowledgments Training data sourced from public digital archives (Cornell Digital Library, Internet Archive). This LoRA is a tribute to the OC punk and hardcore community and their extraordinary DIY visual culture.