moss-pixelart-v.0.3
Model Description
moss-pixelart-v.0.3 is a Low-Rank Adaptation (LoRA) model fine-tuned on OpenMOSS-Team/MOSS-Image-SFT specifically for generating clean, grid-aligned pixel art and 2D game assets.
The model is trained to render at a strict 8x pixel scale, where every 8×8 block of output pixels represents a single logical pixel. This enforces strong grid adherence during generation and makes downsampling to native pixel resolutions straightforward.
Resolution Mapping (8:1 Scale)
| Generation Resolution | Native Pixel Art Grid | Downscale Factor |
|---|---|---|
| 512 × 512 (Training res) | 64 × 64 px | 8x (12.5%) |
| 768 × 768 | 96 × 96 px | 8x (12.5%) |
| 1024 × 1024 | 128 × 128 px | 8x (12.5%) |
Usage & Inference
Trigger Word
Prepend pxl8x (or [pxl8x]) to your prompt to activate the 8x pixel art style.
Recommended Inference Settings (MOSS-Image Defaults)
This LoRA is designed to run using the standard MOSS-Image-SFT default parameters:
- Sampler / Scheduler:
Euler(flowmatch/sgm_uniform) - Inference Steps:
50(or30–50steps for standard generation) - Guidance Scale (CFG):
3.0(recommended range3.0–6.0) - Flow Shift:
5.0 - Skip Layer Guidance (SLG): Unconditional skip on layer
22(uncond_skip_layers: [22],slg_start: 0.01,slg_stop: 1.0) - LoRA Weight:
1.0
Turbo / Step-Distilled LoRA Compatibility
moss-pixelart-v.0.3 stacks cleanly with MOSS Turbo / DMD (8-step) distillation LoRAs. When pairing with an 8-step Turbo LoRA:
- Set Inference Steps to
8. - Keep Sampler on
Eulerand Flow Shift at5.0. - Keep both LoRA weights around
1.0.
Example Prompts
pxl8x an isometric cyberpunk ramen stall at night, glowing neon sign reading "NOODLES", steam rising from bowls, rain puddles on asphalt, crisp pixel artpxl8x a retro sci-fi space marine in bulky industrial armor holding a motion tracker, dark derelict spacecraft corridor, green CRT monitor glowpxl8x a 3/4 top-down RPG potion shop interior, wooden shelves packed with glowing glass vials, a sleepy alchemist cat on the counter, warm lantern lightpxl8x a classic 16-bit boss sprite of a mechanical dragon breathing plasma fire, dark volcanic cavern background, high contrast arcade palette
Post-Processing (Recommended)
While the model maintains an 8×8 pixel grid natively, diffusion decoding can occasionally introduce subtle sub-pixel edge bleeding or slight grid drift ("mixels").
For game-ready 1:1 assets, post-process your raw outputs with Sprite Fusion Pixel Snapper (GitHub). It automatically detects the pixel grid, cleans up blurry or inconsistent blocks, and snaps the image down to a crisp, true-resolution sprite sheet or tile.
Training Details & Hyperparameters
Trained via Ostris's ai-toolkit (diffusion_trainer) using the following configuration:
Architecture & Network
- Base Model:
OpenMOSS-Team/MOSS-Image-SFT(moss_imagearch) - Network Type: LoRA (
diffusersformat,bf16) - Linear Rank / Alpha:
32/32 - Conv Rank / Alpha:
16/16 - Excluded Layers:
layers.22.(paired withuncond_skip_layers: [22]on the base model) - Base Quantization:
convrot8(applied to both Transformer and Text Encoder) - Trained Components: Transformer / UNet only (
train_text_encoder: false)
Training Configuration
- Dataset:
30 pixelsnapped 64x64 sprites upscaled to 512x512(512x512resolution,flip_x: false,flip_y: false) - Training Steps:
3000 - Batch Size:
2(Gradient Accumulation2= Effective Batch Size4) - Optimizer:
adamw8bit(lr: 0.0001,weight_decay: 0.001) - Noise Scheduler:
flowmatch(timestep_type: shift) - Loss Type:
mse - Differential Guidance: Enabled (
scale: 3.0) - Caption Dropout Rate:
0.05(5%) - Precision:
bf16
Limitations
- Resolution Multiples: Always generate at dimensions divisible by 16 (and ideally multiples of 64 like
512x512,768x768, or1024x1024) to keep the 8x pixel grid evenly aligned with the VAE latent space. - Fine Text At Low Resolutions: Generating at
512x512yields a64x64logical canvas—keep in-image text short (1–2 words in block font) or generate at1024x1024(128x128logical grid) if you need readable signage.
ComfyUI Workflow
Download the ComfyUI workflow. Model setup and usage notes are included on the canvas, with optional bounding-box layout control and separate raw, native-size, and display outputs.
For pixel cleanup, install SpriteFusion Pixel Snapper (Rust) through ComfyUI Manager (Registry ID: spritefusion-pixel-snapper-rust), then restart ComfyUI. The workflow uses SpriteFusionPixelSnapper, with 8-pixel uniform spacing, 64 colors, and native-size output by default.