Skip to content

arkcle83/lora-dataset-generator

Repository files navigation

LoRA Dataset Generator

Application web complète pour générer automatiquement des captions pour vos datasets d'images destinés à l'entraînement de LoRA (Flux/Qwen).

Fonctionnalités

  • Import d'images : Drag & drop ou sélection de fichiers PNG/JPG
  • Génération automatique : Captions générées via LLM Studio (Gemma/LLaVA/Ministral)
  • 3 types de datasets :
    • Style : Description artistique, couleurs, éclairage, ambiance
    • Object : Description d'objets, matériaux, contexte
    • Character : Description de personnages, vêtements, poses
  • Édition manuelle : Modification inline de chaque caption
  • Export ZIP : Téléchargement automatique de tous les fichiers .txt

Prérequis

  • Node.js : Version 18 ou supérieure
  • LLM Studio : Serveur local tournant sur http://localhost:1234
    • Modèle vision requis (Gemma, LLaVA, ou Ministral)
    • API compatible OpenAI activée

Installation

  1. Cloner ou télécharger le projet
cd Dataset_lora
  1. Installer les dépendances

Option 1 : Installation automatique (recommandée)

npm install
npm run setup

Option 2 : Installation manuelle

# Installer concurrently pour le script dev
npm install

# Installer dépendances backend
cd server
npm install
cd ..

# Installer dépendances frontend
cd client
npm install
cd ..

Démarrage

Windows - Démarrage Facile

Double-cliquez sur start.bat dans le dossier du projet.

Ce script :

  • Vérifie que Node.js est installé
  • Installe automatiquement les dépendances si manquantes
  • Lance le backend et le frontend

Ligne de commande

npm run dev

Cette commande lance :

  • Backend sur http://localhost:3001
  • Frontend sur http://localhost:5173

Ouvrez votre navigateur à l'adresse : http://localhost:5173

Lancer uniquement le backend

npm run server

Lancer uniquement le frontend

npm run client

Utilisation

  1. Vérifier la connexion LLM Studio

    • Le panneau de configuration affiche le statut de connexion
    • Assurez-vous que LLM Studio tourne sur localhost:1234
  2. Configurer les paramètres

    • Trigger Word : Mot qui débutera chaque caption (ex: "fluxArt", "myStyle")
    • Type de Dataset : Choisir entre Style, Object ou Character
  3. Importer des images

    • Glissez-déposez vos images PNG/JPG
    • Ou cliquez sur la zone pour sélectionner des fichiers
    • Maximum 10MB par image
  4. Générer les captions

    • Cliquez sur "Générer toutes les captions"
    • Le traitement est séquentiel (une image à la fois)
    • La barre de progression affiche l'avancement
  5. Éditer les captions (optionnel)

    • Cliquez dans le champ texte sous chaque image
    • Modifiez la caption à votre convenance
    • Les changements sont sauvegardés automatiquement
  6. Exporter le dataset

    • Cliquez sur "Exporter X caption(s)"
    • Un fichier ZIP sera téléchargé automatiquement
    • Contient un fichier .txt par image avec le même nom

Structure du Dataset exporté

dataset_2024-01-15T14-30-00.zip
├── image001.txt  (contient: "fluxArt: a vibrant digital art...")
├── image002.txt  (contient: "fluxArt: an oil painting of...")
└── image003.txt  (contient: "fluxArt: a photorealistic render...")

Chaque fichier .txt :

  • Porte le même nom que l'image correspondante
  • Est encodé en UTF-8
  • Contient uniquement la caption (max ~100 mots)
  • Commence par le trigger word configuré

Configuration LLM Studio

Assurez-vous que votre LLM Studio est configuré ainsi :

  1. API activée sur le port 1234
  2. Modèle vision chargé (Gemma, LLaVA, ou Ministral)
  3. Endpoint : http://localhost:1234/v1/chat/completions

Exemple de configuration LLM Studio :

{
  "model": "llava-v1.6-mistral-7b",
  "host": "0.0.0.0",
  "port": 1234,
  "api_type": "openai"
}

Gestion des erreurs

  • Timeout : Le système réessaye automatiquement 1 fois
  • LLM Studio déconnecté : Vérifiez que le serveur tourne
  • Format d'image invalide : Seuls PNG et JPG sont acceptés
  • Fichier trop volumineux : Maximum 10MB par image

Conseils d'utilisation

  • Batch optimal : 30-50 images par session
  • Temps de génération : ~5-15 secondes par image selon le modèle
  • Trigger word : Utilisez un mot unique et descriptif (ex: "fluxArt", "myStyle2024")
  • Type de dataset : Choisissez selon votre cas d'usage :
    • Style : Pour capturer l'esthétique artistique
    • Object : Pour des objets ou scènes spécifiques
    • Character : Pour des personnages ou portraits

Architecture technique

Backend (Node.js + Express)

  • Port : 3001
  • API REST pour génération de captions
  • Interface avec LLM Studio via axios
  • Génération de ZIP avec archiver

Frontend (React + Vite + Tailwind)

  • Port : 5173
  • Interface inspirée de Gradio (dark theme)
  • Gestion d'état avec hooks React
  • Upload/traitement côté client (pas d'upload serveur)

Dépannage

"LLM Studio non disponible"

# Vérifier que LLM Studio tourne
curl http://localhost:1234/v1/models

"Cannot find module"

# Réinstaller les dépendances
rm -rf node_modules server/node_modules client/node_modules
npm install

Port déjà utilisé

# Modifier le port dans server/index.js ou client/vite.config.js

Licence

MIT

Support

Pour toute question ou problème, créez une issue sur le dépôt GitHub.

About

Full-stack web app for generating LoRA training datasets with automatic caption generation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors