Skip to content

Commit d3c5d1b

Browse files
committed
Update blog
1 parent 1cf0d07 commit d3c5d1b

17 files changed

+96
-68
lines changed

content/blog/2024-09-04-1725463249.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
---
2-
layout: post
32
title: "Post from Sep 04, 2024"
4-
date: 2024-09-04 15:20:49 +0000
3+
date: 2024-09-04T15:20:49
54
slug: 1725463249
6-
tags: [easydiffusion, ai, lab, performance, featured]
5+
tags:
6+
- easydiffusion
7+
- ai
8+
- lab
9+
- performance
10+
- featured
711
---
8-
912
**tl;dr**: Explored a possible optimization for Flux with `diffusers` when using `enable_sequential_cpu_offload()`. It did not work.
1013

1114
While trying to use Flux (nearly 22 GB of weights) with `diffusers` on a 12 GB graphics card, I noticed that it barely used any GPU memory when using `enable_sequential_cpu_offload()`. And it was super slow. It turns out that the largest module in Flux's transformer model is around 108 MB, so because diffusers streams modules one-at-a-time, the peak VRAM usage never crossed above a few hundred MBs.

content/blog/2024-10-16-1729102225.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
---
2-
layout: post
32
title: "Post from Oct 16, 2024"
4-
date: 2024-10-16 18:10:25 +0000
3+
date: 2024-10-16T18:10:25
54
slug: 1729102225
6-
tags: [stable-diffusion, c++, cuda, easydiffusion, lab, performance, featured]
5+
tags:
6+
- stable-diffusion
7+
- c++
8+
- cuda
9+
- easydiffusion
10+
- lab
11+
- performance
12+
- featured
713
---
8-
914
**tl;dr** - *Today, I worked on using stable-diffusion.cpp in a simple C++ program. As a linked library, as well as compiling sd.cpp from scratch (with and without CUDA). The intent was to get a tiny and fast-starting executable UI for Stable Diffusion working. Also, ChatGPT is very helpful!*
1015

1116
## Part 1: Using sd.cpp as a library

content/blog/2024-11-19-1732043895.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
2-
layout: post
32
title: "Post from Nov 19, 2024"
4-
date: 2024-11-19 19:18:15 +0000
3+
date: 2024-11-19T19:18:15
54
slug: 1732043895
6-
tags: [easydiffusion, stable-diffusion]
5+
tags:
6+
- easydiffusion
7+
- stable-diffusion
78
---
8-
99
Spent a few days getting a C++ based version of Easy Diffusion working, using stable-diffusion.cpp. I'm working with a fork of stable-diffusion.cpp [here](https://github.com/cmdr2/stable-diffusion.cpp), to add a few changes like per-step callbacks, live image previews etc.
1010

1111
It doesn't have a UI yet, and currently hardcodes a model path. It exposes a RESTful API server (written using the `Crow` C++ library), and uses a simple task manager that runs image generation tasks on a thread. The generated images are available at an API endpoint, and it shows the binary JPEG/PNG image (instead of base64 encoding).

content/blog/2024-11-21-1732202276.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
layout: post
32
title: "Post from Nov 21, 2024"
4-
date: 2024-11-21 15:17:56 +0000
3+
date: 2024-11-21T15:17:56
54
slug: 1732202276
6-
tags: [easydiffusion, stable-diffusion, c++]
5+
tags:
6+
- easydiffusion
7+
- stable-diffusion
8+
- c++
79
---
8-
910
Spent some more time on the [v4 experiments](https://github.com/cmdr2/easy-diffusion4) for Easy Diffusion (i.e. C++ based, fast-startup, lightweight). `stable-diffusion.cpp` is missing a few features, which will be necessary for Easy Diffusion's typical workflow. I wasn't keen on forking stable-diffusion.cpp, but it's probably faster to work on [a fork](https://github.com/cmdr2/stable-diffusion.cpp) for now.
1011

1112
For now, I've added live preview and per-step progress callbacks (based on a few pending pull-requests on sd.cpp). And protection from `GGML_ASSERT` killing the entire process. I've been looking at the ability to load individual models (like the vae) without needing to reload the entire SD model.

content/blog/2024-12-14-1734205658.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
layout: post
32
title: "Post from Dec 14, 2024"
4-
date: 2024-12-14 19:47:38 +0000
3+
date: 2024-12-14T19:47:38
54
slug: 1734205658
6-
tags: [easydiffusion, ui, design, v4]
5+
tags:
6+
- easydiffusion
7+
- ui
8+
- design
9+
- v4
710
---
8-
911
Worked on a few UI design ideas for Easy Diffusion v4. I've uploaded the work-in-progress mockups at [https://github.com/easydiffusion/files](https://github.com/easydiffusion/files).
1012

1113
So far, I've mocked out the design for the outer skeleton. That is, the new tabbed interface, the status bar, and the unified main menu. I also worked on how they would look like on mobile devices.

content/blog/2024-12-17-1734433390.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
layout: post
32
title: "Post from Dec 17, 2024"
4-
date: 2024-12-17 11:03:10 +0000
3+
date: 2024-12-17T11:03:10
54
slug: 1734433390
6-
tags: [easydiffusion, v4, ui]
5+
tags:
6+
- easydiffusion
7+
- v4
8+
- ui
79
---
8-
910
Notes on two directions for ED4's UI that I'm unlikely to continue on.
1011

1112
One is to start a desktop app with a full-screen webview (for the app UI). The other is writing the tabbed browser-like shell of ED4 in a compiled language (like Go or C++) and loading the contents of the tabs as regular webpages (by using webviews). So it would load URLs like `http://localhost:9000/ui/image_editor` and `http://localhost:9000/ui/settings` etc.

content/blog/2025-01-03-1735918711.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
layout: post
32
title: "Post from Jan 03, 2025"
4-
date: 2025-01-03 15:38:31 +0000
3+
date: 2025-01-03T15:38:31
54
slug: 1735918711
6-
tags: [easydiffusion, ui, v4]
5+
tags:
6+
- easydiffusion
7+
- ui
8+
- v4
79
---
8-
910
Spent a few days prototyping a UI for Easy Diffusion v4. Files are at [this repo](https://github.com/easydiffusion/files/blob/main/ED4-ui-design/prototype).
1011

1112
The main focus was to get a simple but pluggable UI, that was backed by a reactive data model, and to allow splitting the codebase into individual components (with their own files). And require only a text editor and a browser to develop, i.e. no compilation or nodejs-based developer experiences.

content/blog/2025-01-04-1736020626.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
layout: post
32
title: "Post from Jan 04, 2025"
4-
date: 2025-01-04 19:57:06 +0000
3+
date: 2025-01-04T19:57:06
54
slug: 1736020626
6-
tags: [easydiffusion, amd, directml]
5+
tags:
6+
- easydiffusion
7+
- amd
8+
- directml
79
---
8-
910
Spent most of the day doing some support work for Easy Diffusion, and experimenting with [torch-directml](https://pypi.org/project/torch-directml/) for AMD support on Windows.
1011

1112
From the initial experiments, torch-directml seems to work properly with Easy Diffusion. I ran it on my NVIDIA card, and another user ran it on their AMD Radeon RX 7700 XT.

content/blog/2025-01-13-1736779606.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
layout: post
32
title: "Post from Jan 13, 2025"
4-
date: 2025-01-13 14:46:46 +0000
3+
date: 2025-01-13T14:46:46
54
slug: 1736779606
6-
tags: [easydiffusion, torchruntime, torch, ml]
5+
tags:
6+
- easydiffusion
7+
- torchruntime
8+
- torch
9+
- ml
710
---
8-
911
Spent the last few days writing [torchruntime](https://github.com/easydiffusion/torchruntime), which will automatically install the correct torch distribution based on the user's OS and graphics card. This package was written by extracting this logic out of Easy Diffusion, and refactoring it into a cleaner implementation (with tests).
1012

1113
It can be installed (on Win/Linux/Mac) using `pip install torchruntime`.

content/blog/2025-01-17-1737134382.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
layout: post
32
title: "Post from Jan 17, 2025"
4-
date: 2025-01-17 17:19:42 +0000
3+
date: 2025-01-17T17:19:42
54
slug: 1737134382
6-
tags: [rocm, pytorch, easydiffusion, torchruntime]
5+
tags:
6+
- rocm
7+
- pytorch
8+
- easydiffusion
9+
- torchruntime
710
---
8-
911
*Continued in [Part 2](https://cmdr2.github.io/notes/2025/01/1737566382/), where I figured out how to include the required libraries in the wheel.*
1012

1113
Spent all of yesterday trying to compile `pytorch` with the compile-time `PYTORCH_ROCM_ARCH=gfx803` environment variable.

0 commit comments

Comments
 (0)