crimsonmythos/comics-tools
FLUX workflows — c0sm1c_m1a (Mia) Generation workflows for the FLUX.1-dev LoRA line. SDXL-era workflows remain in workflows/ root (historical). mia-flux-v1-test.json — LoRA smoke test Minimal single-sampler graph, stock nodes only (no custom packs needed). UI-format JSON: drag-drop onto the ComfyUI canvas or Import. Graph: CheckpointLoaderSimple → LoraLoader → CLIPTextEncode (pos) + CLIPTextEncode (neg, inert) + EmptyLatentImage → KSampler → VAEDecode → SaveImage… See the full description on the dataset page: https://huggingface.co/datasets/crimsonmythos/comics-tools.
FLUX workflows — c0sm1c_m1a (Mia)
Generation workflows for the FLUX.1-dev LoRA line. SDXL-era workflows remain in workflows/ root (historical).
mia-flux-v1-test.json — LoRA smoke test
Minimal single-sampler graph, stock nodes only (no custom packs needed). UI-format JSON: drag-drop onto the ComfyUI canvas or Import.
Graph: CheckpointLoaderSimple → LoraLoader → CLIPTextEncode (pos) + CLIPTextEncode (neg, inert) + EmptyLatentImage → KSampler → VAEDecode → SaveImage
Pod setup — vast.ai official ComfyUI template (recommended path)
The official template supports PROVISIONING_SCRIPT (URL run on first boot). One-time setup: host the provisioning script somewhere URL-reachable — easiest: upload provision-comfyui.sh as a raw file into the comics-assets dataset (or a public GitHub gist) and copy its resolve/main/... URL.
Then create your own template (Edit the official ComfyUI template → Save As):
PROVISIONING_SCRIPT= the raw script URLHF_TOKEN= your fine-grained read-only token (comics-assets scope only)
Launch → first boot auto-installs the comics-hf-loader custom pack (embedded in the script, no extra fetch), prefetches both LoRA checkpoints in the background, and the big fp8 base model stays a queue-time download via the workflow's HF File Download nodes (skip-if-present). Drag in mia-flux-v1-qa-all.json, Queue, done. Subsequent boots on the same instance re-run the script harmlessly — everything is skip-if-present and idempotent.
Token hygiene (unchanged): read-only, comics-assets-scoped, env var only — never in widgets (widgets leak into saved JSON + PNG metadata).
Manual fallback (no custom template)
pod-setup.sh does the same by hand. The in-workflow HFFileDownload nodes alone also work without the provisioning script — first Queue would then download the 17 GB base synchronously before rendering (slow but one-click).
Pod setup details (manual path, historical)
- Custom pack — copy
workflows/flux/custom_nodes/comics-hf-loader/intoComfyUI/custom_nodes/(scp it or bake it into your pod template). It has zero pip deps (huggingface_hubships inside ComfyUI). Restart ComfyUI. - HF key — set env var
HF_TOKENon the pod (vast.ai/RunPod deploy env field; persists in a saved template). Use a fine-grained read-only token scoped to thecomics-assetsrepo only. Never paste tokens into node widgets — widget values are saved into workflow JSON and PNG metadata. The public FLUX base file needs no token; only the private LoRA fetch does. - Workflow — drag
mia-flux-v1-qa-all.jsononto the canvas. The twoHF File Downloadnodes fetch base + LoRA at queue time (skipped when already present), theirfilenameoutputs feed the loaders' converted widget inputs, so first Queue = download → load → render all 18.
pod-setup.sh remains as the manual/no-custom-pack fallback.
Using it
Files:
mia-flux-v1-test.json— single-prompt smoke graph (see below)mia-flux-v1-qa-all.json— all 18 test prompts, one branch each, stock nodes only (93 nodes / 129 links, validated). One Queue = all 18; to run only some, select their branch nodes and hit Ctrl+B (bypass) — bypassed nodes gray out and their branch skips. Fixed per-branch seeds (43–60) make results reproducible; outputs land inComfyUI/output/mia_qa/01..18.pod-setup.sh— run once on a fresh pod (at the ComfyUI root); downloads the fp8 base + both LoRA checkpoints from HF directly.
Note: HF downloads are a pod-setup shell script, NOT in-workflow — no stock node fetches models at queue time, and we're keeping this custom-node-free.
Single graph (mia-flux-v1-test.json):
- Workflow loads with prompt 1 (front portrait) from
tmp/mia-flux-v1/test-prompts.md— swap in the other 17 for the full QA ladder. - KSampler: seed 42/randomize, steps 26, cfg/guidance 3.0, euler/simple, denoise 1.0. 1024x1024 (full-body prompts: 896x1152).
- LoRA strength 1.0/1.0 (model/clip). Sweep 0.8 if renders overcook; do NOT set strength_clip to 0 — this LoRA trained the text encoder on purpose.
- Negative prompt is deliberately empty: FLUX.1-dev ignores it. The node stays for graph compatibility.
- The
c0sm1c_m1atrigger is already inside the prompt text — keep it at the front when editing.
Roadmap
- v2+: panel-production workflows (multi-panel batches, speech-bubble-aware inpaint chains), two-character "marrying" graphs (Mia+Mateo — see Mickmumpitz two-character workflows as reference), NSFW-merged-base variant if School B wins.
- Keep every iteration in this folder; bump filename versions, never overwrite.
Pose transfer (added Sept 2026)
mia-flux-pose-transfer.json — upload any reference image, Mia renders in Manara style in EXACTLY that pose (OpenPose skeleton via comfyuicontrolnetaux + FLUX union controlnet; the controlnet is declared in ControlNetLoader.properties.models[] so the vast provisioner downloads it at boot). Strength 0.7, window 0-85%: higher obeys the pose harder but softens style.
To enable BOTH workflows at boot, set (semicolon-delimited, no spaces):
PROVISIONINGCOMFYUIWORKFLOWS=https://huggingface.co/datasets/crimsonmythos/comics-tools/resolve/main/workflows/mia-flux-v1-qa-all.json;https://huggingface.co/datasets/crimsonmythos/comics-tools/resolve/main/workflows/mia-flux-pose-transfer.json
