BlenderAlchemy: Trasformare il Graphic Design con Modelli Vision-Language
Un nuovo sistema semplifica le attività di design 3D in Blender usando modelli AI avanzati.
― 15 leggere min
Indice
- Panoramica di BlenderAlchemy
- Struttura del Sistema
- Contributi dell'Articolo
- Lavori Correlati
- Strumenti Specifici per il Design dei Materiali
- LLM come Risolutori di Problemi Generali
- Modelli Vision-Language
- Rappresentazione dello Stato Visivo di Blender
- Raffinamento Iterativo di Programmi Visivi Individuali
- Revisione delle Ipotesi
- Modifiche di Regolazione e Salto
- Immaginazione Visiva
- Modifica di Materiale Procedurale
- Modifica di Materiali Basata sul Testo
- Modifica di Materiali Basata sull'Immagine
- Esperimenti di Ablazione sulla Modifica dei Materiali
- Materiali di BlenderAlchemy nelle Scene
- Conclusioni e Lavori Futuri
- Fonte originale
- Link di riferimento
La grafica è super importante per tanti settori, come film e giochi. Per creare scene accattivanti, i designer passano spesso tantissimo tempo in software tipo Blender. A volte devono ripetere azioni, come collegare i nodi dei materiali, un sacco di volte. Obiettivi di design diversi possono richiedere passi molto diversi, il che rende difficile automatizzare il processo. Questo articolo presenta un sistema che usa modelli Vision-Language (VLM), come GPT-4V, per aiutare a trovare le giuste azioni di design per soddisfare le intenzioni dell'utente. Abbiamo costruito un generatore di modifiche basato sulla visione e un valutatore di stato che lavorano insieme per trovare i passi giusti per raggiungere il risultato desiderato.
Il nostro sistema utilizza immagini di riferimento "immaginate" da modelli di generazione di immagini per assistere nel processo. Questo fornisce un riferimento visivo per descrizioni linguistiche vaghe. Mostriamo che il nostro sistema può creare compiti di modifica semplici ma ripetitivi in Blender, come regolare materiali da istruzioni testuali o immagini di riferimento, e cambiare configurazioni di illuminazione per visuali di prodotto in scene complesse.
Panoramica di BlenderAlchemy
BlenderAlchemy inizia con un progetto Blender esistente e un'intenzione dell'utente espressa in testo o immagini. Modifica lo stato di Blender per soddisfare quell'intenzione raffinando iterativamente un programma Python di Blender, che viene poi eseguito per produrre il risultato finale. Il nostro sistema utilizza anche la generazione di testo in immagine per creare un obiettivo visivo da una descrizione testuale, aiutando a perfezionare il programma.
Per produrre grafica di alta qualità come quella vista in film o giochi, gli artisti 3D devono lavorare per molte ore in software come Blender per scegliere i materiali giusti, posizionare oggetti e impostare l'illuminazione. Gli artisti devono visualizzare mentalmente l'obiettivo finale, provare diverse impostazioni e controllare se le loro modifiche li avvicinano al risultato desiderato.
Automatizzare questi processi convertendo descrizioni linguistiche o visive in modifiche può aiutare milioni di designer 3D e beneficiare molti settori che si basano sul design 3D. Il design grafico è difficile perché anche piccoli compiti comportano molte azioni diverse. Ad esempio, creare un ambiente di gioco implica passare attraverso modellazione, design dei materiali, pittura delle texture, illuminazione e composizione della scena.
Molti sforzi passati si sono concentrati su compiti specifici, come la creazione di materiali. Questi metodi spesso avevano buoni risultati ma faticavano a agire su un obiettivo di design più ampio. Un approccio diverso è usare modelli di linguaggio di grandi dimensioni (LLM) per capire le intenzioni degli utenti e suggerire azioni, sia collegando strumenti specifici esistenti sia prevedendo modifiche passo dopo passo.
Mentre gli LLM sono bravi a capire le intenzioni e suggerire sequenze per soddisfarle, applicarli al design grafico presenta delle sfide. Questo principalmente perché il linguaggio da solo non cattura i risultati visivi delle azioni effettuate in software come Blender. Un'alternativa promettente è utilizzare modelli vision-language (VLM), come LLaVA, GPT-4V, Gemini e DallE-3, che eccellono nel comprendere i dettagli visivi e generare immagini.
Crediamo che questi VLM possano gestire vari compiti di design nell'ambiente Blender, come modificare materiali e progettare configurazioni di illuminazione. Questo lavoro presenta un sistema proof-of-concept che utilizza il modello di base visiva GPT-4V per generare e modificare programmi che cambiano l'area di lavoro di Blender in base all'intento dell'utente.
Struttura del Sistema
Inizialmente, impostiamo uno spazio di lavoro di Blender con uno stato di partenza. Questo stato è rappresentato come un breve programma Python e un file Blender di base. Gli utenti forniscono quindi descrizioni testuali o immagini di riferimento per comunicare il loro risultato desiderato. Il compito del sistema è modificare il programma in modo che, una volta eseguito, l'output finale soddisfi le aspettative dell'utente.
Il processo di modifica iterativa coinvolge il generatore di modifiche e il valutatore di stato in ogni ciclo, esplorando e selezionando diverse modifiche al programma. Il generatore crea varie varianti del programma, e il valutatore confronta queste per scegliere quale soddisfa meglio l'intento dell'utente. Ogni giro di raffinamento si concentra sul programma più promettente della iterazione precedente.
Usare direttamente i VLM in questa situazione di modifica può portare a fallimenti perché potrebbero non comprendere appieno gli effetti visivi delle modifiche a Blender. Per affrontare questo problema, proponiamo un metodo che combina un generatore di modifiche consapevole della visione con un valutatore di stato visivo. Questo approccio consente un processo di prova ed errore guidato, limitato da un budget computazionale.
Durante ogni iterazione, il generatore di programmi visivi suggerisce diverse modifiche. Queste modifiche vengono applicate ed eseguite in Blender, producendo immagini renderizzate. Il valutatore analizza queste immagini e seleziona le migliori attraverso il confronto a coppie in base a come soddisfano l'intento dell'utente espresso nel testo e nell'immagine di riferimento.
Se un'iterazione non produce un buon candidato, torniamo al miglior candidato del passaggio precedente. Questo impedisce che la ricerca si allontani quando ci sono opzioni scadenti. Per aiutare il generatore e il valutatore a comprendere meglio l'intento dell'utente, utilizziamo un passaggio di "immaginazione visiva" utilizzando modelli di generazione di testo in immagine per creare immagini di riferimento che guidano il processo.
Dimostriamo che il nostro metodo può svolgere compiti di design in Blender, diretti dall'intento dell'utente espresso attraverso testo e immagini. Validiamo specificamente il nostro sistema su compiti di design di materiali e illuminazione, due aree in cui gli artisti investono tempo considerevole, che va da 20 ore a diversi giorni lavorativi per modello.
Contributi dell'Articolo
In sintesi, l'articolo introduce BlenderAlchemy, un sistema in grado di modificare programmi visivi basati su input dell'utente in forma testuale o immagine. I componenti chiave che permettono al sistema di funzionare includono:
- Un valutatore di stato visivo.
- Un generatore di modifiche visive.
- Un algoritmo di ricerca con un meccanismo di revisione delle modifiche.
- Un modulo di immaginazione visiva per aiutare la ricerca.
Forniamo prove che dimostrano che BlenderAlchemy supera i lavori precedenti nella modifica procedurale dei materiali guidata dal testo e dimostra applicabilità ad altri compiti di design, comprese le configurazioni di illuminazione.
Lavori Correlati
Strumenti Specifici per il Design dei Materiali
È stata condotta molta ricerca sull'uso di metodi basati sull'apprendimento per generare materiali. Lavori precedenti hanno utilizzato modelli di diffusione 2D per creare mappe di texture, sia senza addestramento che attraverso il fine-tuning. Sebbene questi metodi mostrino promesse nel generare e modificare texture utilizzando il linguaggio naturale per modelli 3D, spesso non affrontano le proprietà fisiche dei materiali in modo che possano essere rialimentati.
Alcuni metodi prevedono le proprietà delle superfici dei materiali utilizzando tecniche di apprendimento, ma le rappresentazioni basate su immagini possono rendere difficile modificare i risultati all'interno dei flussi di lavoro di design 3D esistenti. I ricercatori hanno esplorato la combinazione di approcci basati sull'apprendimento con rappresentazioni simboliche dei materiali. Questi sforzi comportano la creazione di rappresentazioni di grafi di materiali procedurali utilizzati nel design 3D, consentendo la retropropagazione delle modifiche per produrre immagini che corrispondano agli obiettivi.
Tuttavia, nessun lavoro precedente ha dimostrato la capacità di modificare grafi di materiali procedurali utilizzando l'intento dell'utente comunicato attraverso il linguaggio, che è il nostro focus. Sebbene i metodi citati eccellano nel design dei materiali, mancano di generalizzabilità in altri compiti di design 3D. BlenderAlchemy mira a creare un sistema che gestisca vari compiti di design basati sugli intenti degli utenti, richiedendo l'integrazione di approcci diversi.
LLM come Risolutori di Problemi Generali
I modelli di linguaggio di grandi dimensioni (LLM) come GPT-4, Llama e Mistral hanno mostrato capacità straordinarie in numerosi contesti di problemi, inclusi robotica e sintesi di programmi. Altri studi indicano che migliorare tali modelli con un processo esterno può risolvere nuovi problemi che necessitano di affinamento iterativo.
Tuttavia, applicare LLM a problemi visivi rimane limitato a causa della loro mancanza di comprensione visiva. Un potenziale rimedio è riassumere lo stato visivo utilizzando rappresentazioni testuali o simboliche, ma questo spesso fallisce nel design grafico 3D. Ad esempio, cambiare un grafo di materiali di Blender per un materiale desiderato richiede molti tentativi e deve comprendere accuratamente come le azioni di design possano influire sull'output visivo.
Lavori recenti che coinvolgono LLM, in particolare all'interno di Blender (come BlenderGPT), non hanno incorporato informazioni visive per guidare i loro output, risultando in risultati insoddisfacenti. BlenderAlchemy prende in prestito concetti dalla ricerca esistente sugli LLM e affronta questo problema integrando la percezione visiva nel sistema.
Modelli Vision-Language
I moderni modelli vision-language, come LLaVA, GPT-4V e Gemini, hanno mostrato impressionanti abilità di comprensione delle informazioni visive e di come si relazionano al linguaggio. Questa capacità ha reso possibili numerosi compiti di visione artificiale, come la comprensione delle scene e il riconoscimento degli oggetti, da svolgere con facilità.
Alcuni lavori suggeriscono che questi modelli possono anche sostituire i valutatori umani in molti compiti, fungendo da strumenti per pianificare e dirigere i processi. BlenderAlchemy è tra i primi a applicare i VLM per affrontare compiti di design grafico 3D-una applicazione unica e impegnativa ancora non esplorata a fondo.
Rappresentazione dello Stato Visivo di Blender
Nel nostro ambiente di design di Blender iniziale, lo stato può essere diviso in uno stato di Blender "base" e un insieme di programmi che agiscono su di esso. Questa configurazione aiuta a creare l'ambiente iniziale utilizzando una funzione per passare da uno stato all'altro in base a specifiche azioni del programma.
In questo contesto, l'esecutore di codice Python all'interno di Blender esegue i programmi in sequenza. Ogni programma riguarda una singola parte del flusso di lavoro di design 3D, come gestire il materiale per una mesh o gestire la configurazione di illuminazione per l'intera scena. Possiamo decomporre lo stato di Blender attraverso tecniche come il "traspiler di nodi," che converte le entità di Blender in righe di codice Python che ricreano un grafo di nodi.
Sebbene sia possibile racchiudere tutte le modifiche in un unico programma, questo è spesso limitante perché la lunghezza dell'output del VLM può non essere sufficiente per il codice necessario, o il VLM ha una bassa percentuale di successo a causa dell'enorme spazio di ricerca del programma. I futuri VLM potrebbero ridurre questa preoccupazione, ma suddividere i programmi in base ai compiti potrebbe comunque essere vantaggioso, consentendo interrogazioni parallele di VLM specializzati.
Raffinamento Iterativo di Programmi Visivi Individuali
Quando ci concentriamo su compiti come la modifica dei materiali per un singolo oggetto, l'obiettivo è trovare una versione modificata di un programma che produca un risultato visivo più in linea con l'intento dell'utente. Il nostro sistema presuppone che l'intento dell'utente venga comunicato attraverso lingue o immagini di riferimento, sfruttando la comprensione visiva degli ultimi VLM.
Per trovare una buona modifica al programma, proponiamo un processo di raffinamento iterativo che utilizza un valutatore di stato visivo per selezionare tra le ipotesi di un generatore di modifiche. Un "agente" per un compito specifico, come il design di materiali procedurali, può essere completamente caratterizzato da questo approccio.
Seguendo ricerche precedenti, introduciamo un valutatore di stato visivo che determina quale dei due stati visivi soddisfa meglio l'intento dell'utente. Questo valutatore sceglie ricorsivamente il candidato di stato visivo più adatto, facendo più interrogazioni durante il processo.
Invece di un approccio semplice in cui un singolo VLM modifica il codice, un metodo multi-ipotesi e multi-step funziona meglio. Estendendo idee esistenti al dominio visivo, il nostro sistema genera diverse varianti del programma basate sullo stato attuale e sull'intento dell'utente, mentre vincola le uscite per garantire che seguano determinate famiglie di programmi.
Nelle sezioni successive, delineiamo le decisioni di design del sistema che migliorano la stabilità della procedura e migliorano la comprensione visiva dei VLM.
Revisione delle Ipotesi
Per garantire la stabilità del processo di modifica, incorporiamo lo stato visivo del programma che viene modificato a ogni passo come candidato nel processo di selezione. Questo consente al sistema di tornare a un programma precedente se l'iterazione attuale fallisce, aiutando a mantenere l'allineamento con l'intento dell'utente.
Modifiche di Regolazione e Salto
Alcuni programmi visivi mostrano che piccole modifiche ai valori possono influenzare significativamente l'output, molto simile a cambiamenti strutturali. A differenza dei compiti basati su specifiche input-output, la modifica visiva richiede prove ed errori per trovare i migliori risultati.
Data una modifica visiva, l'output può differire notevolmente attraverso lievi aggiustamenti ai parametri, che definiamo "modifiche di regolazione". Queste possono portare a differenze visive sostanziali e trasformare un programma insoddisfacente in uno che si allinea meglio con l'intento dell'utente.
Modifiche più significative, o "modifiche di salto", potrebbero essere necessarie per compiti specifici. Ad esempio, cambiare un materiale liscio in uno ruvido potrebbe richiedere l'aggiunta di nodi pertinenti al programma. Le nostre osservazioni empiriche suggeriscono che le modifiche ottimali spesso combinano sia modifiche di regolazione che di salto. Quindi, il processo iterativo alterna tra l'esplorazione del quartiere del programma e la considerazione dell'intero spazio del programma.
Immaginazione Visiva
Quando un utente comunica il proprio intento solo attraverso il testo, potrebbe essere difficile per il VLM effettuare modifiche con successo. Le osservazioni hanno dimostrato che descrizioni linguistiche vaghe per scene 3D possono essere difficili da tradurre in modifiche attuabili.
Come soluzione, proponiamo di integrare la comprensione del VLM con immagini generate da modelli che convertono il testo in immagini. Questi riferimenti visivi guidano il processo di modifica e aiutano a chiarire l'intento dell'utente attraverso rappresentazioni più concrete.
Modifica di Materiale Procedurale
Modificare i materiali procedurali è una sfida per motivi simili a molti altri compiti visivi. Piccole modifiche al programma possono portare a cambiamenti visivi significativi, rendendo il processo di modifica instabile. Inoltre, le istruzioni linguistiche riguardo alle modifiche spesso mancano di dettagli specifici che aiuterebbero a effettuare cambiamenti precisi.
Abbiamo esaminato due diversi tipi di compiti di modifica: (1) convertire un materiale iniziale (come legno sintetico) in diversi materiali basati su descrizioni testuali e (2) modificare vari materiali iniziali per assomigliare a un materiale target basato su un'immagine.
Modifica di Materiali Basata sul Testo
Una promettente applicazione del nostro sistema è la modifica di materiali procedurali esistenti utilizzando descrizioni in linguaggio naturale. Questa capacità non è stata dimostrata prima con metodi neurosimbolici. Abbiamo testato il nostro sistema chiedendogli di alterare un materiale di legno usando diversi suggerimenti testuali che descrivono materiali target che non sono legno.
Il nostro approccio consiste in un generatore di modifiche che produce più ipotesi per ogni iterazione, alternando tra modifiche di regolazione e di salto. Ad esempio, la figura illustra la trasformazione di un materiale di legno in "granito marmorizzato". Ogni colonna mostra le ipotesi generate, con le scelte fatte dal valutatore evidenziate.
Abbiamo confrontato il nostro sistema con BlenderGPT, l'ultimo agente AI open-source per Blender che utilizza anche GPT-4. Abbiamo fornito lo stesso prompt di materiale target e un codice di partenza per riferimento.
Qualitativamente, BlenderGPT ha prodotto modifiche molto più semplici, portando a output di qualità inferiore che non si allineavano bene con l'intento dell'utente. Ad esempio, quando gli abbiamo chiesto di creare un "camouflage digitale", il nostro sistema ha raggiunto angoli più netti come richiesto, mentre BlenderGPT ha prodotto colori senza la nitidezza desiderata.
La tabella confronta i punteggi di somiglianza media tra i nostri output e le descrizioni target. Anche una versione del nostro sistema senza componenti visivi ha performato meglio di BlenderGPT. Incorporando informazioni visive nel valutatore, e non solo nel generatore, abbiamo visto ulteriori miglioramenti.
Modifica di Materiali Basata sull'Immagine
Nei compiti in cui viene fornita un'immagine di un materiale desiderato, l'obiettivo è adattare il codice del materiale di partenza per includere caratteristiche visive trovate nell'immagine target. Questo è simile al trasferimento di stile nei materiali procedurali.
In questo metodo, il generatore di modifiche prima elenca le evidenti differenze visive tra il materiale corrente e l'immagine target, poi identifica quali parti del codice potrebbero influenzare queste differenze. Traducendo osservazioni visive a basso livello in descrizioni testuali, il sistema guida il processo di modifica per creare variazioni che assomigliano al materiale target.
Esperimenti di Ablazione sulla Modifica dei Materiali
Abbiamo condotto studi di ablazione per esplorare il valore dei generatori di modifiche visive e dei valutatori di stato. I nostri risultati mostrano che rimuovere la percezione visiva da uno o entrambi i componenti porta a notevoli cali nelle performance.
Abbiamo anche variato le dimensioni del sistema per valutare l'equilibrio tra esplorazione e sfruttamento nel processo di modifica. Uno spazio di ricerca troppo ampio ha portato a modifiche poco significative, mentre uno troppo ristretto si è concentrato su candidati subottimali.
Nelle analisi del nostro articolo principale, abbiamo osservato che la capacità di revocare ipotesi ha aiutato a garantire stabilità, specialmente quando le modifiche erano drastiche al punto da influenzare negativamente i risultati. Le nostre indagini sulle modifiche di regolazione rispetto alle modifiche di salto hanno rivelato che ciascuna ha i suoi meriti, ma l'approccio combinato produce i migliori risultati.
Materiali di BlenderAlchemy nelle Scene
In questa sezione, mostriamo i materiali generati da BlenderAlchemy e la loro applicazione a modelli 3D. Iniziamo con descrizioni linguistiche concise e le arricchiamo in descrizioni dettagliate per l'aspetto del materiale.
Applichiamo i materiali generati a diversi oggetti, utilizzando asset scaricati da fonti internet. Ad esempio, il materiale "Alluminio Spazzolato" è mostrato su una carrozzeria di auto, mentre il materiale "Schizzo di Vernice" crea una finitura vibrante su un altro veicolo. I materiali "Superficie del Sole" e "Ghiaccio" migliorano le immagini per le scarpe, mentre i materiali "Acciaio di Damasco" e "Metallo Arrugginito" presentati su katane aggiungono un carattere distintivo all'aspetto.
Conclusioni e Lavori Futuri
Questo lavoro introduce BlenderAlchemy, un sistema che modifica design 3D in Blender utilizzando modelli vision-language per affinare iterativamente i programmi basati sull'intento dell'utente. Incorporando informazioni visive nel processo, il nostro sistema può esplorare e scremare meglio le possibilità all'interno dello spazio del programma.
Abbiamo mostrato risultati promettenti nelle configurazioni di illuminazione e nella modifica dei materiali, e i lavori futuri dovrebbero concentrarsi sull'estensione del sistema ad altre aree del design grafico, come l'animazione dei personaggi e la modellazione 3D. Inoltre, il sistema potrebbe beneficiare dell'integrazione di una robusta libreria di strumenti e tecniche su misura per flussi di lavoro specifici.
Sebbene l'implementazione attuale metta in evidenza il potenziale del raffinamento iterativo, riconosciamo la necessità di ulteriori sviluppi per migliorare le capacità di BlenderAlchemy e ampliare le sue applicazioni nell'industria creativa.
Titolo: BlenderAlchemy: Editing 3D Graphics with Vision-Language Models
Estratto: Graphics design is important for various applications, including movie production and game design. To create a high-quality scene, designers usually need to spend hours in software like Blender, in which they might need to interleave and repeat operations, such as connecting material nodes, hundreds of times. Moreover, slightly different design goals may require completely different sequences, making automation difficult. In this paper, we propose a system that leverages Vision-Language Models (VLMs), like GPT-4V, to intelligently search the design action space to arrive at an answer that can satisfy a user's intent. Specifically, we design a vision-based edit generator and state evaluator to work together to find the correct sequence of actions to achieve the goal. Inspired by the role of visual imagination in the human design process, we supplement the visual reasoning capabilities of VLMs with "imagined" reference images from image-generation models, providing visual grounding of abstract language descriptions. In this paper, we provide empirical evidence suggesting our system can produce simple but tedious Blender editing sequences for tasks such as editing procedural materials and geometry from text and/or reference images, as well as adjusting lighting configurations for product renderings in complex scenes.
Autori: Ian Huang, Guandao Yang, Leonidas Guibas
Ultimo aggiornamento: 2024-08-02 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2404.17672
Fonte PDF: https://arxiv.org/pdf/2404.17672
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.