SDXS-1B (CLIP version)
Text-to-image diffusion model on a custom UNet with CLIP text encoder (converted from Qwen).
Architecture
- UNet: ~1.585B params,
cross_attention_dim=768block_out_channels: [320, 640, 1280, 1536]layers_per_block: [4, 3, 2, 2]transformer_layers_per_block: [2, 2, 3, 4]
- Text encoder: CLIPTextModel (768 hidden, 12 layers, 248 max tokens) — LongCLIP-style
- VAE: AsymmetricAutoencoderKL (32ch, 8x encoder / 16x decoder, built-in 2x upscaler)
- Scheduler: FlowMatchEulerDiscreteScheduler, shift=5.0, 40 steps default
- Embeddings:
hidden_states[-2]+final_layer_norm
Usage
import torch
from pipeline_sdxs import SdxsPipeline
pipe = SdxsPipeline.from_pretrained(
"recoilme/sdxs",
torch_dtype=torch.float16,
trust_remote_code=True,
).to("cuda")
image = pipe(
prompt="1girl, smiling, red eyes, blue hair, white shirt",
negative_prompt="bad quality grainy image with low details, incomplete text, despite numerous technical flaws and distorted figures",
width=1024,
height=1280,
guidance_scale=5.0,
seed=0,
)[0][0]
image.show()
Notes
- Converted from the Qwen-based SDXS-1B: text encoder replaced with CLIP, UNet cross-attention migrated 2048 → 768 (warm-started projections).
- No
refine_prompts(CLIP is not an LLM) and no image conditioning. - Training: flow matching (velocity), cfg-dropout 0.10, timestep shift aligned with the scheduler.