Skip to content

Add Pro Mode web interface, SaveViewportSU, and FaceRenderLoraSU commands#2

Merged
bluemoonfoundry merged 5 commits intomainfrom
feature/pro-mode-web-interface
Feb 21, 2026
Merged

Add Pro Mode web interface, SaveViewportSU, and FaceRenderLoraSU commands#2
bluemoonfoundry merged 5 commits intomainfrom
feature/pro-mode-web-interface

Conversation

@bluemoonfoundry
Copy link
Owner

Summary

  • Add Vangard Pro Mode: professional FastAPI-based web interface for DAZ Studio automation
  • Add save-viewport command (SaveViewportSU) to capture active viewport frames to image files, with optional camera, format, and frame range control
  • Add face-render-lora command (FaceRenderLoraSU) to render orbital camera angles around a figure's face for LoRA training dataset generation
  • Refactor DazCopilotUtils.dsa argument parsing to use getArguments()[0] instead of App.scriptArgs
  • Register both new commands in config.yaml and regenerate config_reference.md
  • Add 15 unit tests covering the two new commands and verify config consistency via integration tests

Test plan

  • pytest tests/commands/test_save_viewport_su.py — 7 tests pass
  • pytest tests/commands/test_face_render_lora_su.py — 8 tests pass
  • pytest tests/integration/ — 8 config consistency tests pass
  • Manual: run vangard-cli save-viewport -f C:/output/frame against a live DAZ Studio scene
  • Manual: run vangard-cli face-render-lora against a scene with a figure to verify orbital renders

🤖 Generated with Claude Code

sidcarton1587 and others added 5 commits February 19, 2026 18:03
…mation

Implement a complete professional web-based interface as an alternative to CLI
mode, designed for users who prefer visual, form-based interactions over
command-line tools.

Features:
- Modern, colorful dark theme with indigo/purple accents
- Visual command browser with search functionality
- Dynamic form generation from config.yaml
- Type-aware input fields (text, number, checkbox, array)
- Real-time command execution with output display
- Theme toggle (dark/light mode)
- Toast notifications for success/error feedback
- Responsive layout for desktop and tablet

Backend:
- vangard/pro.py: FastAPI server extending existing server infrastructure
- Serves static HTML/CSS/JS files
- Exposes all commands via REST API
- Auto-generates OpenAPI schema

Frontend:
- vangard/static/index.html: Modern SPA interface (5.6 KB)
- vangard/static/css/styles.css: Professional styling (15.1 KB)
- vangard/static/js/app.js: Vanilla JavaScript app logic (15.5 KB)
- Zero framework dependencies for simplicity

UI Features:
- Glassmorphism effects and smooth animations
- Command icons (emoji-based) with descriptions
- Help tooltips on all parameters
- Syntax-highlighted output panel
- Loading overlays during execution

Parameter Display Fix:
- Fixed JavaScript to resolve OpenAPI $ref references
- Commands now correctly display all parameters
- Handle anyOf pattern for optional nullable fields

UIClass Feature (Optional Enhancement):
- Support for special UI widgets via uiclass field in config.yaml
- pick-file: File browser widget with browse button
- pick-folder: Folder browser widget with browse button
- Extensible system for future widget types

Package Updates:
- setup.py: Add vangard-pro console script and static files
- pyproject.toml: Add vangard-pro entry point
- MANIFEST.in: Include static files in distribution
- vangard/main.py: Add 'pro' mode option

Documentation:
- PRO_MODE.md: User guide with quick start and features
- PRO_IMPLEMENTATION_SUMMARY.md: Technical overview and testing
- PRO_VISUAL_REFERENCE.md: Visual mockups and design system
- UICLASS_GUIDE.md: Guide for using special UI widgets
- PARAMETER_FIX_SUMMARY.md: Details on parameter extraction fix

Access Points:
- Pro Interface: http://127.0.0.1:8000/ui
- API Docs: http://127.0.0.1:8000/docs
- Health Check: http://127.0.0.1:8000/

Launch: vangard-pro (or: vangard pro)

Design Philosophy:
- Professional and colorful (not just functional)
- Zero breaking changes to existing modes
- Coexists with CLI, Interactive, GUI, and Server modes
- Leverages existing command infrastructure
- Configuration-driven (uses config.yaml)

Testing:
- All endpoints verified (20 commands available)
- Static assets loading correctly
- Parameter extraction working
- UI responsive and styled correctly

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SaveViewportSU Python command class and DSA script
- Register save-viewport command in config.yaml with args: save-file,
  view-camera, image-format, frame-start, frame-end
- Regenerate config_reference.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace App.scriptArgs JSON parsing in DazCopilotUtils.dsa with
  getArguments()[0] for cleaner argument retrieval
- Fix trailing space in getScriptFileName() call in CreateGroupNodeSU.dsa

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add FaceRenderLoraSU Python command class and DSA script
- Register face-render-lora command in config.yaml with args:
  output-dir, file-prefix, wid, height, camera-distance,
  face-y-offset, node-label, test-mode
- Regenerate config_reference.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bluemoonfoundry bluemoonfoundry merged commit a448db9 into main Feb 21, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants