31 Commits
Author SHA1 Message Date
Arekejoker 15e107bf90 docs: SKILL.md — VNCCS LoRA row covers routes ③④ and VNCCS_LORA 2026-10-27 00:43:05 +08:00
Jambo Hsu 8e4adf0017 feat: select the VNCCS PoseStudio LoRA with VNCCS_LORA (#12)
Routes ③ and ④ use VNCCS_QI2_PoseStudioV1.1.safetensors as a fixed name.
To use V2, users had to edit two scripts, and git pull then conflicts.

- run_pose_transfer.py and run_vnccs_ui.py read VNCCS_LORA.
- doctor.py checks the same file name.
- The default stays V1.1. Route ③'s --lora flag still takes precedence.
- Document the variable in install/setup.md and CHANGELOG.md.
2026-10-27 00:41:00 +08:00
ArekejokerandClaude Code 5fa2aa12eb docs: add English README and CHANGELOG for v1.1.0
Adds README.en.md (full translation, language switcher on both READMEs)
and a CHANGELOG covering everything since v1.0.0. validate_package.py now
checks both READMEs' embedded images instead of only the Chinese one.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 15:02:48 +08:00
Arekejoker b2690b8dd9 docs: note native Windows support for base scripts (PR #9)
doctor, --list-poses and the media-lock fallback now run natively on
Windows; the full browser/ComfyUI workflow still recommends WSL2.
2026-10-19 12:48:13 +08:00
Dr. Yi Huang ec87554a80 fix: Windows compatibility for doctor output, media lock, and pose index (#9)
doctor.py reconfigures stdout to UTF-8 (cp1252 consoles crash on the ①②③④ route glyphs); media_lock.py gains an atomic O_EXCL lock-file fallback for platforms without fcntl (default path now via tempfile); run_vnccs_ui.py normalises path checks with as_posix() so --list-poses works on Windows, plus UTF-8 stdout/stderr. POSIX behaviour verified unchanged. Contributed by @yi-john-huang.
2026-10-19 12:37:14 +08:00
Arekejoker eca9d7fbf8 docs+ci: add macOS (Apple Silicon) guidance; validate on macOS runner
README gets a dedicated macOS section (memory-based model choice,
community-reported speed numbers, MPS VAE workaround, route support),
explicitly labelled as community data since maintainers have no Mac
hardware. CI now also runs the offline package validation on
macos-latest to prove script-level compatibility.
2026-10-17 12:54:50 +08:00
Arekejoker bc6c6340b7 docs: add a short acknowledgements section 2026-10-16 22:57:47 +08:00
Arekejoker 8d0092141d docs: remove misleading route-③ phrasing in the photo-reference warning 2026-10-16 22:46:50 +08:00
Arekejoker 069039737e feat: Route ③ — scripted pose transfer from a 3D mannequin reference
Fill the route-③ slot with the capability verified 2026-10-16: dual-image
edit using a textureless 3D mannequin render as the pose source (image 1)
and the character as image 2, with the VNCCS PoseStudio LoRA @1.0 and the
'replace the pose of <image 2> with the pose of <image 1>' prompt
(25 steps / cfg 1 / euler+simple). Stable across seeds; without the LoRA
the mannequin is ignored. Photos/illustrations as pose references remain
unusable (composite or redraw the reference person) — retested twice.

New scripts/run_pose_transfer.py (end-to-end tested); README/setup/SKILL
updated: four routes listed, route ③ requires only the base models +
VNCCS LoRA and no browser; mannequin renders come from route ④ captures.
2026-10-16 22:41:16 +08:00
Arekejoker 160b2c088b docs: adopt Apache-2.0 license for original code and docs
Add the standard Apache License 2.0 (Copyright 2026 Arekejoker) covering
the repository's original scripts, workflows, prompts and documentation.
Third-party materials (author sample images, community pose library,
models/LoRAs) stay with their original authors and are excluded via an
explicit carve-out in the README. validate_package.py now requires the
LICENSE file to exist; SKILL.md declares the license in its frontmatter.
2026-10-16 10:52:16 +08:00
Arekejoker 94118fbc56 docs: add hardware requirements section (issue #5)
Summarize minimum/recommended specs for running the int8 base
package locally: 12GB VRAM + 32GB RAM minimum, 24GB VRAM recommended,
GGUF guidance for 8GB cards. Numbers from our DGX Spark measurements
plus the model file sizes; link it from install/setup.md.
2026-10-15 20:13:23 +08:00
Arekejoker 8f3242ff64 chore: rename placeholder pose '1'; validate README image files are non-empty
The curated pose shipped as '1' with no tags; rename it to a
descriptive name (Laying Back on Elbows) and add browse tags. Also
extend validate_package.py to reject empty README-referenced images,
matching the existing non-empty check for pose previews.
2026-10-15 16:25:06 +08:00
Arekejoker b97063e0d1 fix: replace 5 empty pose previews; fail validation on empty preview files
The five previews (Crawling rear, Feet Apart, Fetal rear, Fighting
Straight Punch, Squatting Leaning Back) were 0-byte files shipped in
the initial import. Regenerated in the library's art style (anime,
same character) and resized to the standard 768px-long-side webp.
validate_package.py now also rejects empty preview files.
2026-10-15 13:22:36 +08:00
Arekejoker 5937302581 docs: cursor further right on cover; add route-④ demo GIF to README top 2026-10-14 17:03:54 +08:00
Arekejoker a1c2af52b3 docs: move cover cursor further right; cache-bust with ?v=2
Cursor tip now sits in the open space right of the CTA text instead of
hugging the text end. README img gets ?v=2 so GitHub's camo refetches the
updated GIF without another rename. validate_package now strips query
strings before checking README image paths.
2026-10-14 16:48:13 +08:00
Arekejoker c1171d242b docs: bust camo cache via new cover filename; drop unused static cover
GitHub's camo CDN cached the old chevron GIF under the same URL, so the
cursor animation never appeared in the rendered README. Renaming the file
forces a fresh fetch. The static PNG cover is no longer referenced.
2026-10-14 16:37:06 +08:00
Arekejoker 535fc8f34c docs: replace chevrons with mouse-cursor click animation on cover card
Cursor tip aims at the CTA text; two staggered ripple rings expand on each
click cycle, cursor dips while pressed. More intuitive than chevrons.
2026-10-14 16:29:24 +08:00
Arekejoker 01e99aa8b4 docs: full-width animated cover card with stronger click cue
- animated GIF (16f, 120ms): pulsing yellow CTA text + bouncing chevrons
- width=100% so the card spans the README column
- bold 'click the card' line under the image inside summary
2026-10-14 16:07:23 +08:00
Arekejoker 7dade7d703 docs: wrap cover in <picture> so clicks toggle the details (GitHub auto-links bare imgs) 2026-10-14 15:48:36 +08:00
Arekejoker e5f56595d8 docs: fold author samples behind an explicit click-to-expand cover card
Previous attempt used a plain-text summary which readers missed; the new
summary is a purpose-drawn 18+ warning card (no author pixels) that reads
as a click target at a glance. Expanded content unchanged (three originals,
files untouched).
2026-10-14 15:38:01 +08:00
Arekejoker d8716227fb feat: scripts/doctor.py — read-only environment self-check
Every check only inspects package files or GETs the local ComfyUI API;
independent guards degrade failures to WARN/SKIP with a fix hint (setup.md
section) instead of crashing. Exit non-zero only on FAIL (missing package
files, unreachable ComfyUI). Verified: 11/11 OK on the production box, and
graceful SKIPs with an unreachable ComfyUI from a different cwd, plus --json
output. Referenced from README quick start, setup.md checklist and SKILL.md.
2026-10-14 12:00:14 +08:00
Arekejoker 36235023bb chore: drop dead code, polish docs (usage, --list-poses hint, setup wording) 2026-10-14 09:50:32 +08:00
Arekejoker b8cac5695f feat: bundled browser fallback, COMFY-based defaults, route 4 scene prompt
- scripts/browser_fallback.py: standalone CDP adapter used when the OpenClaw
  browser client is absent (reuse COMFY_BROWSER_CDP or launch a throwaway
  headless Chromium); wired into run_vnccs_ui.py and make_custom_pose.py
- run_vnccs_ui.py: VNCCS_POSELIB/COMFYUI_INPUT/COMFYUI_OUTPUT default from
  $COMFY (or ~/ComfyUI); --prompt injects the scene prompt into
  pose.prompt/pose_prompts/export.user_prompt before the graph loads
- docs updated (setup.md, SKILL.md, README.md)
2026-10-14 08:41:13 +08:00
Jambo Hsu e91e6188f4 Add make_custom_pose.py for custom poses from library poses (#4)
Loads a library pose into the PoseStudio editor, applies bone rotations, and saves through the editor's own saveToLibrary(), so the result matches the Save dialog (pose JSON + preview under local_user_poses/poses/<category>/).

loadFromLibrary() needs the /vnccs/pose_library/list entry; passing the pose file content fails silently because it has no name.
2026-10-14 08:25:52 +08:00
Jambo Hsu d08eaaec14 docs: fix broken setup steps for edit LoRA, VNCCS and pose library (#2)
- Edit LoRA moved to RunningHubAI/rh-qwen-image-2.1-aio-nsfw-lora under a new file name.
- VNCCS LoRA is at the repository root, not under LoRAs/.
- Pose library refresh is now POST /vnccs/pose_library/repositories/refresh, and /list returns {"poses": [...]}.
- Document the 3 VNCCS node dependencies missing from a standard ComfyUI env.
- Note --no-sandbox for Chromium on AppArmor-restricted Ubuntu.
2026-10-14 08:22:05 +08:00
Jambo Hsu 5d715ca982 Fix result naming for full pose keys (#1)
The output loop labelled any file whose name contained "pose" as the doll image. Full pose keys such as local_user_poses/... contain "pose", so the result was saved as doll_<pose>.png. find_new_outputs only returns files with the result prefix, so save every match as result_<pose>.png.
2026-10-14 08:22:01 +08:00
Arekejoker 4ca900d5e0 Revert "docs: fold author sample images behind click-to-expand"
This reverts commit d33b074c0d.
2026-10-13 16:45:13 +08:00
Arekejoker d33b074c0d docs: fold author sample images behind click-to-expand 2026-10-13 16:40:44 +08:00
Arekejoker aea02f3ad4 ci: use current GitHub Actions runtimes 2026-10-13 12:30:56 +08:00
Arekejoker 3e10b99bed docs: improve setup guide and add CI validation 2026-10-13 12:29:29 +08:00
Arekejoker ecfb320052 qwen21-nsfw-pose skill: Qwen-Image 2.1 NSFW/pose pipeline (author recipes, route scripts, prompts, 136-pose VNCCS library) 2026-10-13 11:09:40 +08:00