This commit is contained in:
mike
2026-06-20 04:44:35 +02:00
parent f49af6b33a
commit cfb2e45f1f
21 changed files with 4579 additions and 273 deletions

235
architecturev2.svg Normal file
View File

@@ -0,0 +1,235 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1400" height="900">
<style>
.component {
fill: #e3f2fd;
stroke: #1976d2;
stroke-width: 2;
rx: 15;
ry: 15;
filter: url(#shadow);
}
.label {
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
text-anchor: middle;
fill: #1a237e;
}
.sublabel {
font-family: Arial, sans-serif;
font-size: 12px;
text-anchor: middle;
fill: #333;
}
.connection {
stroke: #757575;
stroke-width: 2;
marker-end: url(#arrowhead);
}
.database {
fill: #ffebee;
stroke: #d32f2f;
stroke-width: 2;
rx: 15;
ry: 15;
filter: url(#shadow);
}
.service {
fill: #e8f5e9;
stroke: #388e3c;
stroke-width: 2;
rx: 15;
ry: 15;
filter: url(#shadow);
}
.system {
fill: #fff3e0;
stroke: #ef6c00;
stroke-width: 2;
rx: 15;
ry: 15;
filter: url(#shadow);
}
.title {
font-family: Arial, sans-serif;
font-size: 20px;
font-weight: bold;
text-anchor: middle;
fill: #1a237e;
}
.subtitle {
font-family: Arial, sans-serif;
font-size: 14px;
text-anchor: middle;
fill: #555;
}
.group-title {
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: bold;
text-anchor: start;
fill: #1a237e;
}
</style>
<!-- Drop shadow filter -->
<defs>
<filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
<feDropShadow dx="3" dy="3" stdDeviation="4" flood-color="#000000" flood-opacity="0.3"/>
</filter>
<!-- Arrowhead marker definition -->
<marker id="arrowhead" markerWidth="10" markerHeight="7"
refX="0" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#757575"/>
</marker>
</defs>
<!-- Main system container -->
<rect x="50" y="50" width="1300" height="800" class="system"/>
<text x="700" y="40" class="title">Qwen Image Edit Rapid-AIO v23 System Architecture</text>
<text x="700" y="65" class="subtitle">Complete System Overview with All Components and Interactions</text>
<!-- Group Title: Input/Processing Pipeline -->
<text x="100" y="100" class="group-title">Input/Processing Pipeline</text>
<!-- Stage Directory -->
<rect x="100" y="120" width="200" height="100" class="component"/>
<text x="200" y="140" class="label">Stage Directory</text>
<text x="200" y="160" class="sublabel">/mnt/zim/tour-comfy/stage</text>
<text x="200" y="180" class="sublabel">Input images</text>
<!-- Output Directory -->
<rect x="100" y="250" width="200" height="100" class="component"/>
<text x="200" y="270" class="label">Output Directory</text>
<text x="200" y="290" class="sublabel">/mnt/zim/tour-comfy/output</text>
<text x="200" y="310" class="sublabel">Processed images</text>
<!-- Failed Directory -->
<rect x="100" y="380" width="200" height="100" class="component"/>
<text x="200" y="400" class="label">Failed Directory</text>
<text x="200" y="420" class="sublabel">/mnt/zim/tour-comfy/failed</text>
<text x="200" y="440" class="sublabel">Failed images</text>
<!-- Group Title: System Services -->
<text x="100" y="520" class="group-title">System Services</text>
<!-- System Target -->
<rect x="100" y="540" width="200" height="100" class="component"/>
<text x="200" y="560" class="label">System Target</text>
<text x="200" y="580" class="sublabel">comfyui.target</text>
<text x="200" y="600" class="sublabel">Service orchestration</text>
<!-- Group Title: Backend Components -->
<text x="500" y="100" class="group-title">Backend Components</text>
<!-- ComfyUI Backend Component -->
<rect x="500" y="120" width="250" height="120" class="component"/>
<text x="625" y="140" class="label">ComfyUI Backend</text>
<text x="625" y="160" class="sublabel">Qwen-Rapid-NSFW-v23</text>
<text x="625" y="180" class="sublabel">GGUF Model (21.8GB)</text>
<text x="625" y="200" class="sublabel">ComfyUI Workflow Engine</text>
<!-- GFPGAN Component -->
<rect x="500" y="270" width="250" height="100" class="component"/>
<text x="625" y="290" class="label">GFPGAN Face Restoration</text>
<text x="625" y="310" class="sublabel">gfpgan directory</text>
<text x="625" y="330" class="sublabel">Face swap functionality</text>
<!-- Prompt Management -->
<rect x="500" y="400" width="250" height="100" class="component"/>
<text x="625" y="420" class="label">Prompt Management</text>
<text x="625" y="440" class="sublabel">prompt_pose_book.md</text>
<text x="625" y="460" class="sublabel">Base prompts &amp; pose book</text>
<!-- Configuration Files -->
<rect x="500" y="530" width="250" height="100" class="component"/>
<text x="625" y="550" class="label">Configuration</text>
<text x="625" y="570" class="sublabel">config.json</text>
<text x="625" y="590" class="sublabel">API Settings &amp; Paths</text>
<!-- Group Title: API and Database -->
<text x="1000" y="100" class="group-title">API and Database</text>
<!-- FastAPI Service Component -->
<rect x="1000" y="120" width="250" height="100" class="service"/>
<text x="1125" y="140" class="label">FastAPI Service</text>
<text x="1125" y="160" class="sublabel">edit_api.py</text>
<text x="1125" y="180" class="sublabel">Image Processing API</text>
<!-- PostgreSQL Database -->
<rect x="1000" y="250" width="250" height="100" class="database"/>
<text x="1125" y="270" class="label">PostgreSQL Database</text>
<text x="1125" y="290" class="sublabel">host: 192.168.1.160</text>
<text x="1125" y="310" class="sublabel">port: 5433, dbname: dv</text>
<!-- Group Title: Watcher Service -->
<text x="1000" y="400" class="group-title">Watcher Service</text>
<!-- Folder Watcher Component -->
<rect x="1000" y="420" width="250" height="100" class="service"/>
<text x="1125" y="440" class="label">Folder Watcher</text>
<text x="1125" y="460" class="sublabel">watcher.py</text>
<text x="1125" y="480" class="sublabel">car.html Generator</text>
<!-- Group Title: System Integration -->
<text x="1000" y="550" class="group-title">System Integration</text>
<!-- System Services -->
<rect x="1000" y="570" width="250" height="100" class="component"/>
<text x="1125" y="590" class="label">System Services</text>
<text x="1125" y="610" class="sublabel">comfyui-backend.service</text>
<text x="1125" y="630" class="sublabel">comfyui-api.service</text>
<text x="1125" y="650" class="sublabel">comfyui-watcher.service</text>
<!-- Connections between components -->
<!-- Stage to ComfyUI Backend -->
<line x1="300" y1="170" x2="500" y2="170" class="connection"/>
<text x="400" y="160" class="sublabel">Image Upload</text>
<!-- ComfyUI Backend to Output Directory -->
<line x1="750" y1="180" x2="950" y2="180" class="connection"/>
<text x="850" y="170" class="sublabel">Processing Result</text>
<!-- ComfyUI Backend to Database -->
<line x1="750" y1="300" x2="1000" y2="300" class="connection"/>
<text x="875" y="290" class="sublabel">Database Access</text>
<!-- FastAPI to Database -->
<line x1="1250" y1="170" x2="1250" y2="300" class="connection"/>
<text x="1260" y="235" class="sublabel">Database Access</text>
<!-- Folder Watcher to Output Directory -->
<line x1="1250" y1="470" x2="950" y2="470" class="connection"/>
<text x="1100" y="460" class="sublabel">car.html Generation</text>
<!-- Folder Watcher to Database -->
<line x1="1250" y1="520" x2="1250" y2="350" class="connection"/>
<text x="1260" y="435" class="sublabel">Database Updates</text>
<!-- System Target to Services -->
<line x1="300" y1="590" x2="1000" y2="590" class="connection"/>
<text x="650" y="580" class="sublabel">Service Orchestration</text>
<!-- ComfyUI Backend to Prompt Management -->
<line x1="750" y1="240" x2="750" y2="400" class="connection"/>
<text x="760" y="320" class="sublabel">Prompt Usage</text>
<!-- ComfyUI Backend to GFPGAN -->
<line x1="750" y1="390" x2="750" y2="270" class="connection"/>
<text x="760" y="330" class="sublabel">Face Restoration</text>
<!-- System Target to ComfyUI Backend -->
<line x1="300" y1="590" x2="500" y2="180" class="connection"/>
<text x="400" y="500" class="sublabel">Start Backend</text>
<!-- System Target to FastAPI -->
<line x1="300" y1="590" x2="1000" y2="170" class="connection"/>
<text x="650" y="500" class="sublabel">Start API</text>
<!-- System Target to Watcher -->
<line x1="300" y1="590" x2="1000" y2="470" class="connection"/>
<text x="650" y="500" class="sublabel">Start Watcher</text>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB