PS-IMAGE 1.5 LITE — rápida e leve só em CPU (512px, 6-10 steps)

Derivada de Pedro21613/PS-IMAGE-1.5 (LoRA SDXL r16/alpha32), compactada para rodar rápido e leve somente em CPU, sem GPU.

⚠️ AVISO DE QUALIDADE: o modo LITE prioriza velocidade e pouca RAM em CPU. Pode perder qualidade da imagem (nitidez, detalhes finos e texto legível) em comparação com a 1.5 full em GPU (20 steps, 768px, VAE full). Textos curtos (1–3 palavras + números) ainda saem razoáveis, mas textos longos falham mais. Gere 2–3 variações e escolha a melhor. Para máxima fidelidade, use a 1.5 full em GPU.

O que foi compactado

Item Full 1.5 LITE (este repo) Efeito
LoRA fp32 168 MB fp16 84 MB (erro max ~1.5e-05, sem perda visível) metade do download/disco
VAE full SDXL (~300 MB, pesado no CPU) TAESDXL (~5 MB) decode ~10x mais rápido, ~2 GB menos RAM
Scheduler/steps DPM++ Karras 20 steps 768px DPM++ Karras 6–10 steps, padrão 8, 512px ~2.5–3x mais rápido + ~4x menos pixels
Precisão CPU — float32 + attention/VAE slicing + tiling roda em 8–12 GB RAM sem GPU
UNet LoRA separado mergeado (fuse) no carregamento sem overhead de adapter

Tamanho total em disco (base SDXL + lite): menor pico de RAM e inferência muito mais rápida em CPU. Em CPU de 2–8 núcleos, espere algo como 1–5 min por imagem 512px/8 steps (varia muito com a máquina) — contra 15–40 min da full 768px/20 steps no mesmo CPU.

Como usar (só CPU, rápido — recomendado)

import torch
from diffusers import StableDiffusionXLPipeline, DPMSolverMultistepScheduler, AutoencoderTiny
from peft import PeftModel

BASE = "stabilityai/stable-diffusion-xl-base-1.0"
pipe = StableDiffusionXLPipeline.from_pretrained(BASE, torch_dtype=torch.float32, safety_checker=None)
pipe.unet = PeftModel.from_pretrained(pipe.unet, "Pedro21613/PS-IMAGE-1.5-LITE")
pipe.unet = pipe.unet.merge_and_unload()
pipe.vae = AutoencoderTiny.from_pretrained("madebyollin/taesdxl", torch_dtype=torch.float32)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(
    pipe.scheduler.config, use_karras_sigmas=True, algorithm_type="dpmsolver++")
pipe.to("cpu")
pipe.enable_attention_slicing(); pipe.enable_vae_slicing(); pipe.enable_vae_tiling()

# DICA p/ texto: escrito entre aspas + "clear legible text", gere 2-3 variações
img = pipe('photo of a storefront sign that says "PADARIA 123", clear legible text, sharp focus, high quality',
           num_inference_steps=8, guidance_scale=5.5, height=512, width=512, generator=torch.Generator("cpu").manual_seed(42)).images[0]
img.save("lite.png")

Via script (igual ao usar_cpu.py deste repo):

pip install -r requirements.txt
python usar_cpu.py 'photo of a neon sign that says "CAFE 24h", clear legible text, night, sharp focus, high quality' saida.png --steps 8 --guid 5.5 --size 512 --seed 42

Gradio CPU: python app_gradio.py

Prompts em português

O SDXL rende melhor em inglês. Traduza antes (ex. Helsinki-NLP/opus-mt-mul-en) e adicione , clear legible text, sharp focus, high quality. Prompting direto em PT/ES funciona (a 1.5 treinou com captions multilíngues), mas traduzir continua mais fiel — principalmente no modo lite.

Limitações conhecidas (lite CPU)

  • 512px + 6–10 steps + TinyVAE = menos detalhe que 768px/20 steps/VAE full.
  • Texto longo pode borrar; prefira 1–3 palavras + números entre aspas.
  • Rostros/mãos pequenas podem deformar mais que na full.
  • Cor/contraste levemente diferentes por causa do TAESDXL.

Base: stabilityai/stable-diffusion-xl-base-1.0 + LoRA Pedro21613/PS-IMAGE-1.5 convertido para fp16. Licença: segue a da base SDXL + termos do Hugging Face.

Downloads last month
-
Inference Providers NEW

Model tree for Pedro21613/PS-IMAGE-1.5-LITE

Adapter
(9749)
this model