[DTP-Worker] Sprint 8 · buffer L75 · Doc agent Rendu (stub→doc réelle honnête · rendus Flux hors-repo #8 : gen_renders_flux ⭐/executive_hero_flux/flux1-dev-fp8/RunPod t68akvx80wv092/data_room 60_photos_site AGENTS_EXISTING_ASSETS §3 · anti-invention #6 + anti-IA-générique #3 : AUCUN rendu inventé, image uniquement depuis IFC source + projet réel · 3 contacts in-repo VÉRIFIÉS ancrent le rôle : rbac faisabilite-rendu-3d [OTO Faisabilité Rendu 3D · Spécialiste Rendu 3D · 6 vues/projet] + workspace Has Role OTO Construction + chat_otoia roles_allowed · bonus qa acceptance S3 Flux out_of_scope VPS · 0 lien mort · guards verts · reste mobile dernier stub)
This commit is contained in:
@@ -1,17 +1,105 @@
|
||||
# Rendu Agent · Flux + ComfyUI
|
||||
# 🎨 Rendu Agent · rendus Flux depuis IFC/projet réel (score 95+/100)
|
||||
|
||||
**Rôle** : Cet agent produit les **visuels photoréalistes** d'un projet — **6 vues
|
||||
minimum par projet** — par génération **Flux/ComfyUI** pilotée depuis le modèle
|
||||
**IFC** (produit par l'agent BIM) et la description du **projet réel**. Il ne
|
||||
modélise pas la géométrie (agent BIM) et ne la publie pas en 3D (agent
|
||||
IFC/Speckle) : il **rend des images**, toujours **ancrées sur un projet réel**, et
|
||||
**jamais** en IA générique décorrélée (interdit explicite CLAUDE.md · #3 des
|
||||
interdits absolus).
|
||||
|
||||
## Scope
|
||||
Batch renders depuis IFC/description projet, 6 vues par projet minimum
|
||||
Modèle **IFC** + description projet (P01…P09) → **batch de rendus Flux**
|
||||
(dev fp8, RunPod ComfyUI) → **6 vues/projet** minimum → livraison pour la
|
||||
faisabilité (volet Architecture / Paysage-Expérience) et le site public / la
|
||||
console. Refresh automatique quand le modèle ou la description évolue.
|
||||
|
||||
## Principe directeur : exécution VPS/RunPod, jamais dans le repo mandat (#8)
|
||||
La génération Flux tourne sur le **VPS** et l'endpoint **RunPod ComfyUI**
|
||||
(`t68akvx80wv092`, Flux dev fp8) — **pas** dans ce dépôt de mandat, qui reste un
|
||||
dépôt de **planification et de contrats**. Il n'existe donc **aucun rendu diffable
|
||||
commité ici** (pas de `.png` / `.jpg` de sortie Flux dans `05_deliverables_mvp/`),
|
||||
et ce document ne prétend pas le contraire : le prétendre serait une invention
|
||||
(#6, « documenter du code sans vérifier son existence courante » est interdit). Le
|
||||
livrable de l'agent est la **refonte des scripts VPS existants** ci-dessous et leur
|
||||
**orchestration batch**, validée par auto-vérification côté serveur.
|
||||
|
||||
## Points de contact **réellement commités** dans ce dépôt (vérifiés)
|
||||
Contrairement aux images (hors-repo), le rôle de cet agent est **ancré dans trois
|
||||
artefacts in-repo vérifiables** — la preuve que sa place dans la plateforme est
|
||||
contractualisée, pas inventée :
|
||||
|
||||
| Contact in-repo (vérifié) | Ce qu'il fixe |
|
||||
|---|---|
|
||||
| `05_deliverables_mvp/rbac/rbac_50_roles.json` → rôle `faisabilite-rendu-3d` | rôle ERPNext **`OTO Faisabilité Rendu 3D`** (« Spécialiste Rendu 3D » · portail construction · WA SRL · niveau 2 · module `OTOV7 Faisabilité` · perms `File` R/W/create + `Faisabilité` R · description « Génère les rendus **Flux** liés au projet réel — ❌ IA générique interdite — **6 vues/projet** ») |
|
||||
| `05_deliverables_mvp/frontend/portails/out/workspace.json` → `Has Role` | ce rôle est **rattaché au Workspace `OTO Construction`** (accès console) |
|
||||
| `05_deliverables_mvp/frontend/chat_otoia/out/chat_mount.json` → `roles_allowed` (portail construction) | ce rôle fait partie des rôles autorisés à **invoquer le chat OTOIA** (déclenchement des rendus assisté) |
|
||||
|
||||
> Ancrage QA supplémentaire : `05_deliverables_mvp/qa/acceptance/acceptance_spec.json`
|
||||
> row **S3** (P07, roadmap L46) nomme explicitement le pipeline
|
||||
> « Blender→IFC→Speckle→**Flux** (aec.py) » comme critère **`out_of_scope` VPS**
|
||||
> (`bim-cloud.otov7.com`, CLAUDE.md #8) — l'honnêteté du périmètre est déjà gatée QA.
|
||||
>
|
||||
> Ces fichiers existent et sont couverts par la CI (`rbac-tests`,
|
||||
> `frontend-portails-tests`, `chat-otoia-tests`, `qa-acceptance-tests`, tous dans
|
||||
> le `gate`). Le rôle est donc **spécifié en-repo** ; son **exécution** reste
|
||||
> VPS/RunPod (#8).
|
||||
|
||||
## Modules OTOV7 réels refactorés (source : `AGENTS_EXISTING_ASSETS.md §3`)
|
||||
|
||||
| Module VPS (hors-repo) | Fonction | État roadmap |
|
||||
|---|---|---|
|
||||
| `/opt/oto/scripts/gen_renders_flux.py` ⭐ | génération **renders Flux batch** | cœur du refactor Sprint 3 (6 vues/projet auto depuis IFC) |
|
||||
| `/opt/oto/scripts_phase2/executive_hero_flux.py` | **hero renders** exécutifs | intégration console / site public |
|
||||
| `/opt/oto/flux_workspace/models/flux1-dev-fp8.safetensors` | modèle Flux **local** | backend de génération |
|
||||
| **RunPod ComfyUI** `t68akvx80wv092` (Flux dev fp8) | endpoint de rendu | exécution batch (partagé avec BIM · §1) |
|
||||
| `/opt/oto/data_room/*/60_photos_site/` | archives rendus **par projet** | référence / ancrage projet réel |
|
||||
|
||||
> ⚠️ Chemins **VPS**, non vérifiables depuis ce dépôt. Ils sont cités tels
|
||||
> qu'inventoriés dans le fichier maître en-repo `AGENTS_EXISTING_ASSETS.md §3` ;
|
||||
> toute évolution doit **refactorer** ces scripts, jamais les dupliquer (#5).
|
||||
|
||||
## Anti-invention (#6) + anti-IA-générique (#3) — la règle du projet réel
|
||||
Aucun rendu n'est fabriqué « décoratif » : chaque vue dérive du **modèle IFC
|
||||
source** et de la **description du projet réel** (P01…P09), jamais d'un prompt
|
||||
générique déconnecté — c'est l'interdit absolu explicite du mandat (« Rendus AI
|
||||
génériques sans lien avec projet réel »). Le rôle RBAC le grave dans sa propre
|
||||
description (« ❌ IA générique interdite »). Tant que le modèle réel n'a pas été
|
||||
produit, le visuel reste un **placeholder** côté faisabilité (volet Architecture /
|
||||
Paysage-Expérience en `{{…}}` dans
|
||||
`05_deliverables_mvp/faisabilite/generator/genlib/renderer.py`) — jamais un rendu
|
||||
inventé passé pour réel.
|
||||
|
||||
## Non-négociables (voir CLAUDE.md racine pour la liste complète)
|
||||
- Gitea only (jamais GitHub)
|
||||
- ERPNext natif en priorité
|
||||
- Score 4Big 95+/100
|
||||
- Zéro invention chiffres
|
||||
- ERPNext natif en priorité absolue avant tout outil externe
|
||||
- Score 4Big 95+/100 · standards 4 volets obligatoires (les rendus servent
|
||||
Architecture + Paysage-Expérience)
|
||||
- **Zéro invention** · **zéro IA générique** — image uniquement depuis l'IFC + le
|
||||
projet réel (#3, #6)
|
||||
- **VPS/RunPod pour tous projets** — le worker n'écrit jamais sur le serveur (#8)
|
||||
- Vérifier · Investiguer · Valider · Confirmer
|
||||
|
||||
## Livrable attendu semaines 1-8
|
||||
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md` pour deliverables par sprint.
|
||||
## Livrable attendu · roadmap
|
||||
Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md`. Volet Rendu : **Sprint 3**
|
||||
(« Refactor `gen_renders_flux.py` → **6 vues/projet auto depuis IFC** »). Cible de
|
||||
sprint mesurable : **P07 Aqua Terra** — faisabilité 4 volets auto-générée en
|
||||
**< 1h**, ses 6 vues Flux batchées depuis le modèle IFC publié.
|
||||
|
||||
## Coordination inter-agents
|
||||
- **BIM** : produit l'**IFC source** + partage l'endpoint RunPod ComfyUI
|
||||
(`t68akvx80wv092`) ; amont direct de cet agent.
|
||||
- **IFC/Speckle** : maillon parallèle (géométrie 3D → viewer) ; même rôle-famille
|
||||
`faisabilite` / portail construction, même Workspace `OTO Construction`.
|
||||
- **Faisabilité** : consomme les 6 vues pour les volets Architecture /
|
||||
Paysage-Expérience ; le placeholder `renderer.py` reste tant qu'un rendu réel
|
||||
manque.
|
||||
- **Frontend Console / Publiciste** : affichent les hero renders (console + site
|
||||
public `vente.otov7.com`).
|
||||
- **ERPNext Backend** : porteur du rôle RBAC `OTO Faisabilité Rendu 3D` et des
|
||||
permissions `File`/`Faisabilité` (import fixtures VPS).
|
||||
- **QA** : maintient la row d'acceptation `S3` (pipeline Flux = critère VPS
|
||||
`out_of_scope`).
|
||||
|
||||
## Communication inter-agents
|
||||
- Rapports quotidiens dans `05_deliverables_mvp/daily_reports/`
|
||||
@@ -24,6 +112,6 @@ Voir `04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md` pour deliverables par sprint.
|
||||
- Respect brand luxury dark+doré partout
|
||||
|
||||
## Ressources OTOV7 déjà en place (À RÉUTILISER, ne pas dupliquer)
|
||||
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section correspondante à cet agent.
|
||||
Voir le fichier maître : `/opt/oto/claude_code_mandate_dtp/AGENTS_EXISTING_ASSETS.md` section 3 (Rendu Agent).
|
||||
|
||||
**Règle absolue** : refactorer/améliorer les modules existants avant de créer du nouveau code.
|
||||
|
||||
Reference in New Issue
Block a user