File size: 7,776 Bytes
32c5da4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
# πŸ—οΈ PixelForge Architektur mit HuggingFace Spaces

## Übersicht

PixelForge wird als **Orchestrator** fungieren, der externe AI-Services via REST API orchestriert. Die Heavy-Lifting (GPU-intensive Image Generation) lΓ€uft auf HuggingFace Spaces.

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            PixelForge Frontend (React/Vite)             β”‚
β”‚                   http://127.0.0.1:5173                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
                     β”‚ HTTP Requests
                     ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          PixelForge Backend (FastAPI)                   β”‚
β”‚           http://127.0.0.1:8008                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Provider Factory & Job Manager                 β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚
     β”œβ”€ Lokale Provider (CPU):
     β”‚  β”œβ”€ dummy: Dummy bilder
     β”‚  β”œβ”€ localai: LocalAI Engine
     β”‚  └─ diffusion: Stable Diffusion (lokal)
     β”‚
     └─ Remote Provider (API/GPU):
        β”œβ”€ zimageturbo: Cloud API (Colab/RunPod) [ÜBERGANGSLΓ–SUNG]
        β”œβ”€ huggingface: HuggingFace Space API [ZUKÜNFTIG]
        β”‚  β”œβ”€ Heartsync/Adult Space (erwachsene Inhalte)
        β”‚  β”œβ”€ weitere HF Spaces...
        β”‚  └─ Authentifizierung via HF API Token
        β”‚
        └─ a1111: AUTOMATIC1111 API (lokal falls vorhanden)
```

---

## Phase 1: Aktuelle State (Übergangslâsung)

**Colab + Z-Image Turbo** als schneller Remote-Provider:
- βœ… Funktioniert sofort
- ⚠️ Session-basiert (max 12 Stunden)
- ⚠️ Colab kann jeden Moment beenden
- βœ… Kostenlos

**Implementation**: `zimageturbo_provider.py` (HTTP API Wrapper)

### Zu tun jetzt:
1. Frontend testen (Modellauswahl wurde gefixt)
2. Colab Notebook hochladen & API URL setzen
3. Z-Image Turbo Provider testen

---

## Phase 2: HuggingFace Space Integration (ZukΓΌnftig)

**Adult_repo** bleibt als eigenstΓ€ndige Einheit auf HuggingFace Spaces:

```bash
# Adult_repo lΓ€uft auf:
https://huggingface.co/spaces/Heartsync/Adult
# β†’ Hat eigene GPU/Inference Engine
# β†’ VerfΓΌgbar 24/7 (solange Space online)
```

### Architektur:

1. **Adult_repo auf HF Space** (remote)
   - Gradio Interface (aber nicht fΓΌr PixelForge relevant)
   - Inference Endpoint fΓΌr API-Calls
   - Nutzt Z-Image Turbo Model intern

2. **HuggingFace Space API Provider** (neu in PixelForge)
   ```python
   # Backend Provider
   class HuggingFaceSpaceProvider(IImageProvider):
       def __init__(self, space_name: str, token: str):
           self.space_name = "Heartsync/Adult"  # oder andere Spaces
           self.api_token = os.getenv("HF_API_TOKEN")
           
       def generate(self, request: ProviderRequest) -> ProviderResult:
           # POST zu HF Inference API
           # https://api-inference.huggingface.co/models/{space}
           ...
   ```

3. **PixelForge kennt mehrere Spaces**:
   - `heartsync/adult` β†’ Erwachsene Inhalte
   - `heartsync/anime` β†’ Anime-Style
   - `custom/space` β†’ Beliebige andere Spaces

---

## Vergleich: Colab vs HuggingFace Space

| Aspekt | Colab | HF Space | Lokal |
|--------|-------|----------|-------|
| **Setup** | Jupyter Notebook | Einmal deployen | Python Virtual Env |
| **Kosten** | Kostenlos | Kostenlos (mit Limits) | Nur Hardware |
| **Persistenz** | 12h max | 24/7 (solange online) | 24/7 |
| **GPU** | T4/A100 (kostenlos) | Space-spezifisch | Deine Hardware |
| **API-Zugriff** | ΓΌber Ngrok-Tunnel | HF Inference API | localhost:PORT |
| **Startzeit** | ~2 min (Kernel) | instant | instant |
| **Geeignet fΓΌr** | Schnelle Tests | Production | Development |

---

## Implementierungs-Roadmap

### βœ… Heute (Phase 1)
- [x] Frontend Model-Picker repariert
- [x] Colab Notebook erstellt
- [x] zimageturbo_provider.py βœ“
- [ ] Testen mit Colab

### πŸ“… SpΓ€ter (Phase 2)
- [ ] HuggingFaceSpaceProvider erstellen
- [ ] HF API Token Authentication
- [ ] Adult_repo auf HF Space deployen
- [ ] Provider registrieren & testen
- [ ] Colab durch HF Space ersetzen

### 🎯 Langfristig (Phase 3)
- [ ] Multi-Space Support (verschiedene Spaces wΓ€hlen)
- [ ] Space Health Monitoring
- [ ] Fallback-Strategie (wenn Space down ist)
- [ ] Queue Management fΓΌr lange Jobs

---

## HuggingFace API Details (fΓΌr spΓ€ter)

### Space Deployment (Adult_repo)
```bash
# HF CLI installieren
pip install huggingface-hub

# Private Space erstellen (Adult content)
huggingface-cli repo create --type space Adult_repo --private

# Adult_repo hochladen
git push huggingface main
```

### PixelForge Provider (HTTP API Call)
```python
import requests

# HF Inference API Endpoint
url = "https://api-inference.huggingface.co/models/Heartsync/Adult"

payload = {
    "inputs": "A beautiful sunset over mountains",
}

headers = {
    "Authorization": f"Bearer {HF_API_TOKEN}"
}

response = requests.post(url, json=payload, headers=headers)
image_data = response.content  # PIL Image bytes
```

### Alternative: Space API (wenn Gradio genutzt)
```python
# Falls Adult_repo Gradio API exponiert
from gradio_client import Client

client = Client("https://huggingface.co/spaces/Heartsync/Adult")
result = client.predict(
    prompt="A girl in a school uniform",
    seed=42,
    api_name="/predict"
)
```

---

## Umgebungsvariablen (Phase 2)

```powershell
# HuggingFace Integration
$env:HF_API_TOKEN = "hf_xxxxxxxxxxxxxxxxxxxxx"
$env:HF_SPACE_ADULT = "Heartsync/Adult"
$env:HF_SPACE_DEFAULT = "Heartsync/Adult"
$env:HF_REQUEST_TIMEOUT = "300"  # Sekunden

# Colab (Phase 1 - temporΓ€r)
$env:ZIMAGETURBO_API_URL = "https://abc123.ngrok.io"
$env:ZIMAGETURBO_TIMEOUT = "300"
```

---

## Adult_repo Struktur (vor Ort)

```
d:/VSC Codes/Bild/Adult_repo/
β”œβ”€β”€ app.py                 # Gradio Interface (wird auf HF Space laufen)
β”œβ”€β”€ requirements.txt       # Dependencies
β”œβ”€β”€ README.md
└── .git                   # Git Repo
```

**Wichtig**: Adult_repo ist momentan nicht in PixelForge integriert!
- Es lΓ€uft spΓ€ter als eigenstΓ€ndiger Service auf HF Space
- PixelForge ruft es via HF API auf
- Keine lokale AbhΓ€ngigkeit β†’ Clean Architecture ✨

---

## NΓ€chste Schritte

### Sofort (Phase 1):
```powershell
# 1. Frontend aktualisieren (Done βœ“)
# 2. Browser aktualisieren (F5)
# 3. Modellauswahl testen
# 4. Colab konfigurieren & testen
```

### SpΓ€ter (Phase 2):
```powershell
# 1. Adult_repo zu HF Space pushen
# 2. HF API Token besorgen
# 3. HuggingFaceSpaceProvider schreiben
# 4. In Factory registrieren
# 5. Testen & Colab deaktivieren
```

---

## Fragen fΓΌr Phase 2?

- Welche anderen Spaces mΓΆchtest du anbinden?
- BenΓΆtigst du Content Moderation (Safety Filter)?
- Wie sollen lange Jobs (>5min) gehandhabt werden?
- Fallback-Strategie wenn Space down ist?

---

**Status**: 🟒 Phase 1 bereitet sich vor
**Phase 2 Start**: Nach Colab-Test & HF Space Deployment