En vedette

HomeStaging IA - Génération/Inpaint/Upscale d'image par IA

AI
Pytorch + CUDA 12.8DiffusersTransformersStable DiffusionControlNetOpenCVDockerxFormersGPUPython
HomeStaging IA - Génération/Inpaint/Upscale d'image par IA

KandyAI HomeStaging — Description du projet (FR)

1775922933867-ob7q7h.png

Worker GPU distribue qui orchestre 4+ modeles d'IA en pipeline pour transformer des photographies d'interieur en rendus de home staging realistes. Construit comme le moteur de traitement central d'une plateforme SaaS de design d'interieur assiste par IA.

Orchestration de pipeline multi-modeles

  • Chaine Stable Diffusion 1.5, ControlNet (guide par profondeur), Apple DepthPro et Meta Segment Anything dans un graphe d'execution avec resolution de dependances
  • Les taches declarent leurs prerequis de maniere declarative (carte de profondeur, masques de segmentation) ; le runtime resout et met en cache les assets intermediaires automatiquement — une carte de profondeur generee une seule fois est reutilisee pour tous les jobs suivants sur la meme image source
  • Chaque etape du pipeline peut echouer independamment sans effet de cascade — degradation progressive avec points de controle par etape et logging structure des tracebacks

Generation (synthese d'image guidee par profondeur)

1775925844302-d77qyt.png
  • Genere des scenes d'interieur photorealistes a partir d'une photographie source, en preservant la geometrie de la piece via le conditionnement ControlNet par carte de profondeur
  • 10 styles de design (Scandinave, Minimaliste, Art Deco, Japonais…) x 5 types de pieces, pilotes par un catalogue de prompts structure (250+ paires de prompts positifs/negatifs)
  • Fusion d'adaptateurs LoRA — charge plusieurs modeles Low-Rank Adaptation avec des poids individuels et les fusionne a l'inference pour un controle fin du style
  • Preservation du ratio d'aspect avec redimensionnement intelligent : calcul des dimensions optimales pour un budget de 1M pixels, arrondi aux multiples de 8 pour la compatibilite VAE, gestion du upscaling et du downscaling

Inpainting (modification selective de regions)

1775925978426-q9h7h2.png
  • Pipeline complet : segmentation semantique → extraction de masque → preprocessing couleur → inpainting guide par profondeur → blending
  • Le preprocessing couleur applique desaturation (luma Rec. 601), lift vers le blanc, correction gamma et teinte alpha par preset de materiau (mur, parquet, carrelage) — normalise l'eclairage avant diffusion pour ameliorer la coherence
3homestaging
  • Masquage souple par feathering gaussien avec decroissance controlee par gamma qui elimine les coutures visibles entre les zones inpaintees et l'image originale
  • Extraction de masques depuis les tenseurs de segmentation par classe semantique, permettant la modification ciblee des murs, sols ou plafonds independamment

Architecture et fiabilite

  • Architecture stateless multi-worker avec verrouillage PostgreSQL au niveau ligne — scaling horizontal par ajout d'instances GPU, aucun etat partage entre workers
  • Backoff exponentiel avec jitter sur tous les appels reseau (retries configurables, timeouts connect/read separes, prevention du thundering herd)
  • Unions discriminees Pydantic V2 pour le dispatch type-safe des jobs — la reponse API est parsee vers le bon type de tache a la deserialisation, avec injection automatique du modele et des prompts depuis la configuration
  • Logging contextuel par job via context managers Python — chaque job dispose de son propre fichier de log horodate avec double sortie (fichier + console)
  • Gestion idempotente des modelessnapshot_download HuggingFace avec cache local, verification d'existence avant chaque telechargement, pattern de registre extensible pour ajouter de nouveaux modeles

Containerisation et deploiement

  • Docker avec base NVIDIA CUDA 12.8, isolation venv dans le conteneur, ordre des layers optimise par frequence de modification
  • Gestion de sous-processus cross-platform pour le binaire d'upscale (encodage specifique par plateforme, normalisation des chemins)
  • Notifications Discord par webhook avec images jointes pour le monitoring en temps reel

Stack technique

Python 3PyTorch + CUDA 12.8DiffusersTransformersStable Diffusion 1.5ControlNetLoRADepthProSegment AnythingxformersPydantic V2NumPyOpenCVPillowDocker (NVIDIA CUDA)PostgreSQL