← all repositories
varunshenoy/opendream

Photoshop's layer logic, finally applied to Stable Diffusion

A web UI that treats diffusion models as non-destructive layers you can rearrange, replay, and share as JSON.

opendream
Velocity · 7d
+1.5
★ / day
Trend
steady
star history

What it does

Opendream is a web interface for Stable Diffusion built around layers and non-destructive editing. Each generation or edit becomes a layer; delete one and everything built on top of it goes too, keeping the dependency chain clean. Workflows save as portable JSON files you can reopen or hand to collaborators.

The interesting bit

The extension system is deliberately low-ceremony: write a Python function with type hints and a @opendream.define_op decorator, drop it in a folder, and the backend auto-generates frontend form fields from your annotations. The README shows swapping the default dream operation for DALL-E or a serverless endpoint as a one-file gist.

Key highlights

  • Core primitives are dream (txt2img) and mask_and_inpaint; everything else is an extension
  • Bundled extensions include ControlNet (Canny, OpenPose), InstructPix2Pix, Segment Anything, and a DALL-E adapter
  • Layer model guarantees deterministic replay: the canvas state is always derivable from its layer stack
  • One-command startup via run_opendream.sh (~30 seconds, Node required)
  • Born as a Stanford CS 348K course project

Caveats

  • Extension dependencies are manual: you add packages to requirements.txt yourself, and mismatches are your problem
  • The “seamlessly integrate” claim in the README is aspirational; actual integration friction depends on the extension

Verdict

Worth a spin if you treat image generation as iterative experimentation rather than one-shot prompts. Skip it if you just want fastest-possible generation and don’t care about revising earlier steps.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.