Spaces:
No application file
Problema interfaccia gradio
Buonasera
@wbigger
,
Io e
@happycircus
stavamo lavorando in questi giorni ad un modello generativo di AI chiamato Animator2D (https://huggingface.co/Lod34/Animator2D).
In questo space può trovare tutti i file che abbiamo utilizzato durante il progetto.
Durante la programmazione abbiamo riscontrato un problema con la generazione delle immagini attraverso l'interfaccia di gradio.
Il nostro intento non è infastidirla o proporle di risolvere il nostro problema, ma farle prendere visione del progetto così che potremmo parlarne al prossimo incontro in un momento opportuno.
Purtroppo, con la sospensione del corso, non siamo a conoscenza di quando sarà la prossima lezione, perciò abbiamo deciso di scriverle e di metterla a conoscenza del progetto.
Ci faccia sapere se per lei è un problema questo tipo di comunicazione e, se la prossima lezione non si svolgerà come di consueto, speriamo in un suo consiglio in merito al problema.
Saluti,
@Lod34
@happycircus
Perfetto, allora procedo con elencare il problema.
Innanzitutto se guarda l'ultima parte di codice del file training-code.py, dalla riga di codice 169 in poi, viene effettuata una prova dell'esecuzione del modello.
Il risultato non è quello aspettato, ma viene comunque generata l'immagine:
Preciso che per eseguire training-code.py ho utilizzato questo colab https://colab.research.google.com/drive/1L-wLS_O_VClFnctq2at5t4vpZ1zaLhII?usp=sharing, che mi ha permesso di allenare il modello con un tempo relativamente basso (23 minuti).
Quindi constatato che il modello genera delle immagini, manca solo il setup dell'interfaccia.
Il codice dell'interfaccia grado, gradio-interface.py, è stato generato da Claude e il nostro problema è che, inserendo dei dati di prova, non viene generata alcuna immagine, ma si presenta un errore.
(In realtà fino a ieri, perché adesso aprendo nuovamente il progetto mi trovo uno step indietro: mi si presentano problemi nel terminale)
Secondo lei far scrivere il codice all'AI è una valida alternativa o dovremmo scriverlo noi?
Mi faccia sapere se vuole entrare nel dettaglio con noi che le alleghiamo i vari errori che ci si presentano nel corso dello sviluppo.
(Siccome non so se le arriverà la notifica la menziono qua
@wbigger
)
Per capire meglio, mi dovreste dire esattamente da dove siete partiti, cosa avete usato come base e cosa volete ottenere.
In generale, un chatbot ai funziona se gli dai indicazioni precise su chi sei e dettagli su cosa vuoi ottenere. Forse vi conviene partire con lo scrivere voi l'interfaccia e poi eventualmente farvi aiutare passo passo.
Se invece volete provare a farvi aiutare da zero, potreste usare un prompt del tipo:
"Sono uno studente delle scuole superiori, sto imparando ad usare HuggingFace e Gradio. Vorrei creare una semplice interfaccia Gradio che abbia come input: Character description, Number of animation frames, Character action, Viewing direction; come output: Animated sprite in image format. Scrivimi il codice per creare solo l'interfaccia Gradio con il codice più semplice possibile, commentando passo passo opportunamente."
le posso condividere le conversazioni che ho usato per creare il progetto.
Comunque il nostro obiettivo è creare un modello che sia in grado di generare uno sheet di immagini per un’animazione di uno sprite pixel art avendo come input gli stessi del dataset utilizzato. In ogni caso all’inizio della chat condivisa dal link descrivo il nostro obiettivo.
ChatGPT - per la struttura del progetto (quasi mai richiesto del codice, anche se ci sono delle richieste):
https://chatgpt.com/share/67bccaed-edb8-8007-b658-22af2765a51f
Claude - per la generazione di codici (non posso condividere la chat quindi allego il prompt e il risultato):
prompt:
crea un codice python che alleni un modello chiamato "Animator2D" attraverso il dataset su hugging face "pawkanarek/spraix_1024". dopo l'allenamento il modello deve essere in grado, attraverso questi input:
- numero di frame da utilizzare per l'animazione
- descrizione dello sprite
- animazione che compie lo sprite
- direzione in cui guarda lo sprite
dovrà fornire come output una sheet di frame di un animazione di uno sprite.
per farti capire, puoi visualizzarlo comunque online cercando il dataset su huggingface, degli esempi di data nel dataset li puoi osservare dallo screenshot allegato.
risultato (il messaggio qua sotto + il file training-code.py):
I'll help you create a Python script that trains a model for generating 2D sprite animations. Let's build this using modern deep learning frameworks.
I've created a complete implementation of the Animator2D model. Here's a breakdown of the key components:
SpriteDataset: A custom dataset class that loads and processes the pawkanarek/spraix_1024 dataset from HuggingFace. It handles:
- Loading sprite images and their descriptions
- Text tokenization using BERT tokenizer
- Image transformations and normalization
Model Architecture:
- TextEncoder: Uses BERT to encode the sprite descriptions into feature vectors
- SpriteGenerator: A deconvolutional network that generates sprite sheets from encoded text features
- Animator2D: The main model that combines both components
Training Pipeline:
- Includes loss function (MSE)
- Adam optimizer
- Training loop with progress reporting
- Model checkpoint saving
Generation Interface:
- A function to generate new sprite animations given:
- Number of frames
- Sprite description
- Animation action
- Facing direction
- A function to generate new sprite animations given:
To use this code:
- Install required dependencies:
pip install torch transformers datasets Pillow numpy
- Run the training:
model = train_model()
- Generate new sprites:
sprite_sheet = generate_sprite_animation(
model,
num_frames=17,
description="red-haired hobbit in green cape",
action="shoots with slingshot",
direction="East"
)
Would you like me to explain any specific part in more detail or make any modifications to the implementation?
Ora che è in possesso delle conversazioni, visioneremo volentieri una sua risposta, ma in ogni caso riproveremo con lo sviluppo dell’interfaccia sperando in un risultato migliore, la terremo aggiornata.
Oddio ma è una cosa complicatissima 😱
Ci consiglio decisamente di partite da uno space che già fa qualcosa di simile, lo studiate e modificate per adattarlo alle vostre esigenze e nel frattempo imparate come funziona.
I chatbot AI possono aiutarvi a capire un po' meglio quello che già sapete, ma non potete usarli per fare salti grandi rispetto al vostro punto di partenza. In ogni caso nei prompt è bene partire sempre descrivendo chi siete ed il vostro livello di conoscenza, mettendo più vincoli.
Va bene, grazie per la risposta professore. Provvederemo a semplificare il progetto.