Files
tensors/TODO.md
T
Adam Ladachowski c8c93596c8 Phase 2: CLI Commands (tsr comfy)
Add ComfyUI CLI subcommand group with:
- `tsr comfy status` - System stats (GPU, RAM, PyTorch, queue)
- `tsr comfy queue` - Show queue status (running/pending)
- `tsr comfy queue --clear` - Clear the queue
- `tsr comfy models` - List available checkpoints, LoRAs, VAE, etc.
- `tsr comfy history [ID]` - View generation history
- `tsr comfy generate` - Text-to-image with full parameter control
  - prompt, negative, model, width, height, steps, cfg, seed
  - sampler, scheduler selection
  - optional --output to save locally
- `tsr comfy run workflow.json` - Run arbitrary API-format workflows

All commands support --json output and --url for custom server.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-16 16:07:49 +01:00

85 lines
3.3 KiB
Markdown

# TODO: ComfyUI CLI & API Integration
## Phase 1: Core Client (`tensors/comfyui.py`)
- [x] Step 1.1: Create ComfyUI client module with basic query functions
- `get_system_stats()` - System stats (GPU, RAM)
- `get_queue_status()` - Queue status
- `get_loaded_models()` - List loaded checkpoints/loras
- `get_history()` - View history
- Also: `clear_queue()`, `get_object_info()`, `get_image()`
- [x] Step 1.2: Add workflow execution with WebSocket progress tracking
- `queue_prompt()` - Queue a workflow
- `run_workflow()` - Run workflow with progress callback (uses polling)
- [x] Step 1.3: Add simple text-to-image generation
- `generate_image()` - Text-to-image with embedded workflow template
- Include SDXL/Flux-compatible default workflow (DEFAULT_WORKFLOW_TEMPLATE)
## Phase 2: CLI Commands (`tensors/cli.py`)
- [x] Step 2.1: Add `comfy` subcommand group with status commands
- `tsr comfy status` - System stats (GPU, RAM, queue)
- `tsr comfy queue` - Queue status
- `tsr comfy queue --clear` - Clear queue
- `tsr comfy models` - List loaded models
- `tsr comfy history [PROMPT_ID]` - View history
- [x] Step 2.2: Add generation commands
- `tsr comfy generate "prompt"` - Simple text-to-image with full options
- `tsr comfy run workflow.json` - Run arbitrary workflow
- Rich progress output via console
## Phase 3: Server API Routes (`tensors/server/comfyui_api_routes.py`)
- [ ] Step 3.1: Create new router with query endpoints
- `GET /api/comfyui/status` - System stats
- `GET /api/comfyui/queue` - Queue status
- `DELETE /api/comfyui/queue` - Clear queue
- `GET /api/comfyui/models` - List loaded models
- `GET /api/comfyui/history` - List history
- `GET /api/comfyui/history/{prompt_id}` - Get specific result
- [ ] Step 3.2: Add generation endpoints
- `POST /api/comfyui/generate` - Text-to-image generation
- `POST /api/comfyui/workflow` - Run arbitrary workflow
- [ ] Step 3.3: Register router in server/__init__.py
## Phase 4: Configuration (`tensors/config.py`)
- [ ] Step 4.1: Add ComfyUI config functions
- `get_comfyui_url()` - Get ComfyUI backend URL
- `get_comfyui_defaults()` - Get default generation settings
- Environment variable: `COMFYUI_URL`
- Config section: `[comfyui]`
---
## Architecture Reference
```
tensors/
├── comfyui.py # Core client (NEW) - shared by CLI and server
├── cli.py # Add `tsr comfy` subcommands
└── server/
├── comfyui_routes.py # Existing proxy (unchanged)
└── comfyui_api_routes.py # New programmatic API routes (NEW)
```
## CLI Commands
```
tsr comfy status # System stats (GPU, RAM, queue)
tsr comfy queue # Current queue status
tsr comfy queue --clear # Clear queue
tsr comfy models # List loaded checkpoints/loras
tsr comfy history [PROMPT_ID] # View history or specific result
tsr comfy generate "prompt" # Simple text-to-image
tsr comfy run workflow.json # Run arbitrary workflow
```
## Generate Options
```
tsr comfy generate "a cat" \
-n "blurry, bad" \ # negative prompt
-m "flux1-dev-fp8.safetensors" \ # model
-W 1024 -H 1024 \ # dimensions
--steps 20 --cfg 7.0 \ # sampling
--seed 42 \ # reproducibility
-o ./output.png # output path
```