comfyui: two proven Qwen-Image 2.1 workflows (art + legible text) + payload docs and next-model recommendations
This commit is contained in:
@@ -0,0 +1,121 @@
|
|||||||
|
---
|
||||||
|
type: howto
|
||||||
|
description: "Qwen-Image 2.1 workflows on Dankclaw: two proven txt2img workflows (art + legible text), the API recipe, and which models/LoRAs to add next."
|
||||||
|
tags:
|
||||||
|
- dankclaw
|
||||||
|
- comfyui
|
||||||
|
- qwen-image
|
||||||
|
timestamp: 2026-10-05
|
||||||
|
---
|
||||||
|
|
||||||
|
# ComfyUI Qwen-Image Workflows
|
||||||
|
|
||||||
|
Two ready-to-load text-to-image workflows for the Qwen-Image 2.1 payload
|
||||||
|
already on Dankclaw, both proven end-to-end on 2026-10-05 by POSTing to the
|
||||||
|
live API on port 8188 and verifying the rendered PNG. The repo copies are the
|
||||||
|
source of truth; the host copies under `/home/dank/comfyui-data/workflows/`
|
||||||
|
are for convenience.
|
||||||
|
|
||||||
|
## What is on disk
|
||||||
|
|
||||||
|
| Path (under `/home/dank/comfyui-data/models/`) | Size | Role |
|
||||||
|
|---|---|---|
|
||||||
|
| `diffusion_models/qwen_image_2.1_int8_convrot.safetensors` | 6.8 GB | **The one the workflows use** — int8-convrot quant, ComfyUI-core native |
|
||||||
|
| `diffusion_models/qwen_image_2.1_bf16.safetensors` | 14 GB | Full-precision fallback |
|
||||||
|
| `diffusion_models/qwen-image-2.1-Q8_0.gguf` (+ `-arch`) | 7.1 GB | GGUF alternative (needs ComfyUI-GGUF custom node) |
|
||||||
|
| `text_encoders/qwen3vl_8b_w4a8.safetensors` | 5.9 GB | **The one the workflows use** — 4-bit-weights/8-bit-act Qwen3-VL 8B encoder |
|
||||||
|
| `text_encoders/qwen3vl_8b_int8_convrot.safetensors` | 8.8 GB | Mid quant |
|
||||||
|
| `text_encoders/qwen3vl_8b_bf16.safetensors` | 17 GB | Full precision |
|
||||||
|
| `vae/qwen_image_2.1_vae_bf16.safetensors` | 645 MB | 2.1 VAE (used) |
|
||||||
|
| `vae/qwen_image_vae.safetensors` | 243 MB | Smaller VAE |
|
||||||
|
|
||||||
|
No LoRAs are on disk yet — see [Recommended additions](#recommended-additions).
|
||||||
|
|
||||||
|
## The workflows
|
||||||
|
|
||||||
|
Both are API-format JSON (ComfyUI 0.37 loads them via the UI's **Load** dialog
|
||||||
|
too): `dankclaw/comfyui/workflows/` in the repo,
|
||||||
|
`/home/dank/comfyui-data/workflows/` on the host. Node chain in both:
|
||||||
|
|
||||||
|
```
|
||||||
|
UNETLoader (int8_convrot) ──┐
|
||||||
|
CLIPLoader (qwen_image, w4a8) ─┤ CLIPTextEncode pos/neg
|
||||||
|
VAELoader (2.1 bf16) ────────┤
|
||||||
|
EmptySD3LatentImage ─────────┴─ KSampler ─ VAEDecode ─ SaveImage
|
||||||
|
```
|
||||||
|
|
||||||
|
**Common sampler settings:** `cfg 1.0` (Qwen-Image 2.1 expects CFG-free
|
||||||
|
sampling), `euler` + `simple`, seed fixed in the file.
|
||||||
|
|
||||||
|
| Workflow | File | Shape | Steps | Made for |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Art | `qwen-image-2.1-t2i-art.json` | 1024×1024 | 20 | General illustration/prose prompts |
|
||||||
|
| Legible text | `qwen-image-2.1-t2i-legible-text.json` | 832×1216 | 25 | Posters, captions, any in-image text |
|
||||||
|
|
||||||
|
### Legible-text prompt recipe
|
||||||
|
|
||||||
|
Qwen-Image 2.1 is one of the best open-weight text renderers, but only if the
|
||||||
|
prompt is written for it:
|
||||||
|
|
||||||
|
1. **Quote the exact strings**: `large bold white text reading "SOLIDARITY OF
|
||||||
|
THE SOVIET COMPUTER SYSTEMS"` — quoted text is rendered literally.
|
||||||
|
2. **Describe layout, not vibes**: say *centered / below it / large vs small*,
|
||||||
|
the typeface family (sans-serif), and the color.
|
||||||
|
3. **Say what NOT to draw**: end with `no other words, no watermark`.
|
||||||
|
4. Keep the negative side on `misspelled, warped letters, extra text` (already
|
||||||
|
in the workflow).
|
||||||
|
5. More steps help text: the text workflow uses 25 vs 20.
|
||||||
|
|
||||||
|
Verified render: `SOLIDARITY OF THE SOVIET COMPUTER SYSTEMS` + `DANKCLAW
|
||||||
|
DANKSERVER EST 2026` came back crisp and correctly spelled at 832×1216
|
||||||
|
(`qwen21-text_00001_.png`, 953 KB). One caveat from the same render: a
|
||||||
|
shorter secondary line is where misspellings creep in — proofread the first
|
||||||
|
render before shipping.
|
||||||
|
|
||||||
|
## Driving it from the API
|
||||||
|
|
||||||
|
ComfyUI 0.37 **requires the graph wrapped in a `prompt` key** — a bare
|
||||||
|
`{node-id: node}` body gets `{"error": {"type": "no_prompt"}}` (verified
|
||||||
|
2026-10-05):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -s -X POST http://127.0.0.1:8188/prompt -H 'Content-Type: application/json' \
|
||||||
|
-d "$(python3 -c 'import json;print(json.dumps({"prompt": json.load(open("dankclaw/comfyui/workflows/qwen-image-2.1-t2i-art.json"))}))')"
|
||||||
|
# -> {"prompt_id": "...", ...}
|
||||||
|
curl -s http://127.0.0.1:8188/history/<prompt_id> # status.status_str == "success"
|
||||||
|
```
|
||||||
|
|
||||||
|
Outputs land in `/home/dank/comfyui-data/output/`. The queue is FIFO — the
|
||||||
|
two workflows above ran back-to-back unattended.
|
||||||
|
|
||||||
|
**Note:** the container's UI-saved workflows live in the ephemeral
|
||||||
|
`/opt/ComfyUI/user` layer and do NOT survive an image rebuild — hence the
|
||||||
|
host-side `workflows/` dir and the repo copy.
|
||||||
|
|
||||||
|
## Recommended additions
|
||||||
|
|
||||||
|
Quantized preferred, sized for the 8060S iGPU (GTT-backed; the RTX 3090 is
|
||||||
|
frank-small's). All repos verified 2026-10-05. None are on disk yet.
|
||||||
|
|
||||||
|
| # | What | Repo | Grab | Size | Why |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| 1 | **Lightning 8-step LoRA** (T2I speed) | `lightx2v/Qwen-Image-Lightning` | `qwen_image_lightning_8steps_*.safetensors` (LoRA) | ~1–2 GB | 20 steps → 8 with a `LoraLoader` node; 2–3× faster renders on the iGPU, negligible quality loss |
|
||||||
|
| 2 | **Qwen-Image-Edit-2511 GGUF** (image editing) | `unsloth/Qwen-Image-Edit-2511-GGUF` | Q4_K_M (~13.2 GB) or Q4_0 (~11.9 GB) | ~12–13 GB | Unlocks img2img "edit this photo" workflows — a capability class the fleet has zero of; Q4 keeps it iGPU-friendly |
|
||||||
|
| 3 | **DiffSynth ControlNets** (structure control) | `Comfy-Org/Qwen-Image-DiffSynth-ControlNets` | `split_files/model_patches/` canny + depth | ~2–3 GB each | Pose/edge/depth-guided layouts — pairs with the legible-text workflow for exact poster composition. The `QwenImageDiffsynthControlnet` node is already in the running ComfyUI |
|
||||||
|
| 4 | **Wan 2.2 TI2V-5B GGUF** (first video model) | `QuantStack/Wan2.2-TI2V-5B-GGUF` | Q4/Q5 GGUF (~6–8 GB) | ~6–8 GB | T2V+I2V in one dense 5B model; the gentlest on-ramp into video generation, runs in ComfyUI core (`wan` CLIP type is already in this build's loader enum) |
|
||||||
|
|
||||||
|
Placement: #1 → `models/lora/` (create it), #2 → `models/diffusion_models/`,
|
||||||
|
#3 → `models/controlnet/` (create it), #4 → `models/diffusion_models/`.
|
||||||
|
Fetch with `scripts/download-frank-*.sh` discipline (`-f` + byte-count +
|
||||||
|
sha256 checks) or a plain `hf download` with the token in the environment —
|
||||||
|
never on the command line.
|
||||||
|
|
||||||
|
Skip list: the original `city96/Qwen-Image-gguf` conversions (superseded by
|
||||||
|
the 2.1 files already on disk), and any BF16 of #2/#4 (the iGPU does not need
|
||||||
|
them at GTT capacity, and they double the disk bill).
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [[ComfyUI]] — the service itself (image, unit, GPU access)
|
||||||
|
- [[ComfyUI ROCm and Vulkan]] — the live-verified GPU path
|
||||||
|
- [[Dankclaw Stack]] — the host
|
||||||
@@ -110,5 +110,6 @@ The web UI responds on `/`. ComfyUI also exposes `/system_stats`. On this APU, `
|
|||||||
|
|
||||||
- [[Dankclaw Stack]]
|
- [[Dankclaw Stack]]
|
||||||
- [[ComfyUI ROCm and Vulkan]] — the live-verified GPU path research
|
- [[ComfyUI ROCm and Vulkan]] — the live-verified GPU path research
|
||||||
|
- [[ComfyUI Qwen-Image Workflows]] — the Qwen-Image 2.1 payload, proven workflows, and recommended model/LoRA additions
|
||||||
- [[Lemonade and sd.cpp]] — the ggml-family alternative
|
- [[Lemonade and sd.cpp]] — the ggml-family alternative
|
||||||
- Knowledge base: [[ComfyUI]] (tools)
|
- Knowledge base: [[ComfyUI]] (tools)
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ macOS mini) as quadlets inside its podman machine — not on Dankserver.
|
|||||||
- [[Gluetun]] — the VPN tunnel container
|
- [[Gluetun]] — the VPN tunnel container
|
||||||
- [[Valkey]] — SearXNG cache and limiter store
|
- [[Valkey]] — SearXNG cache and limiter store
|
||||||
- [[ComfyUI]] — node-based AI image generation (ROCm GPU, gfx1151 build)
|
- [[ComfyUI]] — node-based AI image generation (ROCm GPU, gfx1151 build)
|
||||||
|
- [[ComfyUI Qwen-Image Workflows]] — the two proven Qwen-Image 2.1 workflows + what to add next (LoRAs, Edit, ControlNet, Wan video)
|
||||||
- [[OpenWebUI]] — chat UI for local LLMs
|
- [[OpenWebUI]] — chat UI for local LLMs
|
||||||
- [[Hermes]] — the Nous Research agent
|
- [[Hermes]] — the Nous Research agent
|
||||||
- [[Hermes-Dashboard]] — the Hermes web management UI (config, keys, sessions)
|
- [[Hermes-Dashboard]] — the Hermes web management UI (config, keys, sessions)
|
||||||
|
|||||||
Reference in New Issue
Block a user