save code
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is a FastAPI-based virtual try-on service that integrates with ComfyUI for AI-powered clothing try-on. The service accepts base64-encoded images (model photo, shirt, pants) and returns a generated try-on result.
|
||||
|
||||
## Running the Service
|
||||
|
||||
Start the server:
|
||||
```bash
|
||||
python service2.py
|
||||
```
|
||||
|
||||
The server runs on `http://0.0.0.0:47698` by default.
|
||||
|
||||
## Dependencies
|
||||
|
||||
Required Python packages (install via pip):
|
||||
- fastapi
|
||||
- uvicorn
|
||||
- httpx
|
||||
- pydantic
|
||||
|
||||
## Architecture
|
||||
|
||||
### Request Flow
|
||||
1. Client sends POST to `/try-on` with base64 images (model_image, shirt_image, pants_image)
|
||||
2. Server decodes images and uploads to ComfyUI at `http://127.0.0.1:8188`
|
||||
3. Server modifies workflow JSON (change2_1_ex.json) with uploaded image filenames
|
||||
4. Workflow submitted to ComfyUI queue
|
||||
5. Server polls ComfyUI history endpoint until completion (max 300s timeout)
|
||||
6. Result image downloaded from ComfyUI and returned as base64
|
||||
|
||||
### Key Components
|
||||
|
||||
**service2.py**: Main FastAPI application
|
||||
- `/try-on`: Main endpoint for virtual try-on
|
||||
- `/health`: Health check endpoint
|
||||
- `/`: Serves static frontend (index.html)
|
||||
|
||||
**change2_1_ex.json**: ComfyUI workflow configuration
|
||||
- Node "11": Model image input (LoadImage)
|
||||
- Node "10": Shirt image input (LoadImage)
|
||||
- Node "33": Output image (SaveImage)
|
||||
- Node "31": Text prompt for image editing
|
||||
|
||||
**static/index.html**: Frontend interface for testing
|
||||
|
||||
### ComfyUI Integration
|
||||
|
||||
The service expects ComfyUI to be running at `http://127.0.0.1:8188` with:
|
||||
- FireRed-Image-Edit model loaded
|
||||
- Qwen 2.5 VL CLIP model
|
||||
- Required custom nodes for QwenEditConfigPreparer, QwenEditOutputExtractor
|
||||
|
||||
### Workflow Modification
|
||||
|
||||
When processing requests, the code dynamically updates these workflow nodes:
|
||||
- `workflow["11"]["inputs"]["image"]`: Model photo filename
|
||||
- `workflow["10"]["inputs"]["image"]`: Shirt photo filename
|
||||
- `workflow["31"]["inputs"]["value"]`: Text prompt (currently hardcoded in Chinese)
|
||||
|
||||
## Important Notes
|
||||
|
||||
- Images are uploaded with unique filenames (UUID prefix) to avoid caching issues
|
||||
- The pants_image parameter is currently unused (commented out in code)
|
||||
- Workflow uses 8 sampling steps with euler sampler and beta scheduler
|
||||
- Output resolution is 768x1024 pixels
|
||||
- CORS is enabled for all origins
|
||||
Reference in New Issue
Block a user