Sbloccare la creatività Come l’IA generativa e Amazon SageMaker aiutano le aziende a produrre creatività pubblicitarie per campagne di marketing con AWS

Come l'IA generativa e Amazon SageMaker aiutano le aziende a sbloccare la creatività per campagne di marketing con AWS.

Le agenzie pubblicitarie possono utilizzare l’IA generativa e i modelli di base di testo-immagine per creare materiali pubblicitari e contenuti innovativi. In questo post, dimostriamo come è possibile generare nuove immagini da immagini di base esistenti utilizzando Amazon SageMaker, un servizio completamente gestito per creare, addestrare e distribuire modelli di apprendimento automatico su larga scala. Con questa soluzione, le aziende grandi e piccole possono sviluppare nuovi materiali pubblicitari in modo molto più rapido e a un costo inferiore rispetto al passato. Ciò consente di sviluppare nuovi contenuti pubblicitari personalizzati per la propria attività a basso costo e a un ritmo rapido.

Panoramica della soluzione

Considera il seguente scenario: un’azienda automobilistica globale ha bisogno di nuovi materiali di marketing generati per il loro nuovo modello di auto in uscita e assume un’agenzia creativa nota per fornire soluzioni pubblicitarie per clienti con un forte brand. Il produttore di automobili cerca materiali pubblicitari a basso costo che mostrino il modello in diverse location, colori, prospettive e punti di vista, mantenendo al contempo l’identità del marchio del produttore di automobili. Con la potenza delle tecniche all’avanguardia, l’agenzia creativa può supportare il proprio cliente utilizzando modelli di IA generativa all’interno del proprio ambiente AWS sicuro.

La soluzione è sviluppata con modelli di IA generativa e testo-immagine in Amazon SageMaker. SageMaker è un servizio di machine learning (ML) completamente gestito che semplifica la creazione, l’addestramento e la distribuzione di modelli di ML per qualsiasi caso d’uso con infrastrutture, strumenti e workflow completamente gestiti. Stable Diffusion è un modello di base di testo-immagine di Stability AI che alimenta il processo di generazione dell’immagine. I Diffuser sono modelli preaddestrati che utilizzano Stable Diffusion per generare nuove immagini basate su un’immagine esistente e un prompt. Combinando Stable Diffusion con Diffuser come ControlNet, è possibile prendere contenuti specifici del marchio esistente e sviluppare versioni sorprendenti di esso. I principali vantaggi dello sviluppo della soluzione all’interno di AWS insieme ad Amazon SageMaker sono:

  • Privacy – Archiviare i dati in Amazon Simple Storage Service (Amazon S3) e utilizzare SageMaker per ospitare i modelli consente di aderire alle migliori pratiche di sicurezza all’interno del proprio account AWS senza esporre gli asset pubblicamente.
  • Scalabilità – Il modello Stable Diffusion, quando distribuito come punto di accesso SageMaker, offre scalabilità consentendo di configurare dimensioni delle istanze e numero di istanze. I punti di accesso SageMaker dispongono anche di funzioni di ridimensionamento automatico e sono altamente disponibili.
  • Flessibilità – Nella creazione e distribuzione dei punti di accesso, SageMaker offre la flessibilità di scegliere tipi di istanze GPU. Inoltre, le istanze dietro i punti di accesso SageMaker possono essere cambiate con un minimo sforzo in base alle esigenze aziendali. AWS ha inoltre sviluppato hardware e chip utilizzando AWS Inferentia2 per prestazioni elevate al costo più basso per l’IA generativa.
  • Innovazione rapida – L’IA generativa è un settore in rapida evoluzione con nuovi approcci e modelli che vengono costantemente sviluppati e rilasciati. Amazon SageMaker JumpStart incorpora regolarmente nuovi modelli insieme a modelli di base.
  • Integrazione end-to-end – AWS consente di integrare il processo creativo con qualsiasi servizio AWS e sviluppare un processo end-to-end utilizzando un controllo degli accessi ad alta granularità tramite AWS Identity and Access Management (IAM), la notifica tramite Amazon Simple Notification Service (Amazon SNS) e il post-processing con il servizio di calcolo basato su eventi AWS Lambda.
  • Distribuzione – Quando vengono generate nuove creatività, AWS consente di distribuire i contenuti su canali globali in più regioni utilizzando Amazon CloudFront.

In questo post, utilizziamo il seguente esempio di GitHub, che utilizza Amazon SageMaker Studio con modelli di base (Stable Diffusion), prompt, tecniche di visione artificiale e un punto di accesso SageMaker per generare nuove immagini da immagini esistenti. Il diagramma seguente illustra l’architettura della soluzione.

Il flusso di lavoro contiene i seguenti passaggi:

  1. Archiviamo i contenuti esistenti (immagini, stili di marca, ecc.) in modo sicuro nei bucket S3.
  2. All’interno dei notebook di SageMaker Studio, i dati dell’immagine originale vengono trasformati in immagini utilizzando tecniche di visione artificiale, che preservano la forma del prodotto (il modello di auto), rimuovono il colore e lo sfondo e generano immagini intermedie monocromatiche.
  3. L’immagine intermedia funge da immagine di controllo per Stable Diffusion con ControlNet.
  4. Implementiamo un punto di accesso SageMaker con il modello di base di testo-immagine Stable Diffusion di SageMaker Jumpstart e ControlNet su una dimensione dell’istanza basata su GPU preferita.
  5. I prompt che descrivono nuovi sfondi e colori dell’auto insieme all’immagine monocromatica intermedia vengono utilizzati per invocare il punto di accesso SageMaker, generando nuove immagini.
  6. Le nuove immagini vengono archiviate nei bucket S3 man mano che vengono generate.

Deployare ControlNet su endpoint SageMaker

Per deployare il modello sugli endpoint di SageMaker, dobbiamo creare un file compresso per ciascun artefatto del modello di ogni singola tecnica, insieme ai pesi di Stable Diffusion, lo script di inferenza e il file di configurazione di NVIDIA Triton.

Nel codice seguente, scarichiamo i pesi del modello per le diverse tecniche di ControlNet e Stable Diffusion 1.5 nella directory locale come file tar.gz:

if ids =="runwayml/stable-diffusion-v1-5":
    snapshot_download(ids, local_dir=str(model_tar_dir), local_dir_use_symlinks=False,ignore_patterns=unwanted_files_sd)

elif ids =="lllyasviel/sd-controlnet-canny":
    snapshot_download(ids, local_dir=str(model_tar_dir), local_dir_use_symlinks=False)  

Per creare il pipeline del modello, definiamo uno script inference.py che gli endpoint in tempo reale di SageMaker utilizzeranno per caricare e ospitare i file tar.gz di Stable Diffusion e ControlNet. Il seguente è un frammento di codice tratto da inference.py che mostra come i modelli vengono caricati e come viene chiamata la tecnica di Canny:

controlnet = ControlNetModel.from_pretrained(
        f"{model_dir}/{control_net}",
        torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32)

pipe = StableDiffusionControlNetPipeline.from_pretrained(
        f"{model_dir}/sd-v1-5",
        controlnet=controlnet,
        torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32)

# Definisci la funzione della tecnica per Canny
image = cv2.Canny(image, soglia_bassa, soglia_alta)

Deployiamo l’endpoint di SageMaker con la dimensione dell’istanza richiesta (tipo di GPU) dall’URI del modello:

huggingface_model = HuggingFaceModel(
        model_data=model_s3_uri,  # percorso del tuo modello SageMaker addestrato
        role=role, # ruolo IAM con le autorizzazioni per creare un endpoint
        py_version="py39", # versione di Python della DLC
        image_uri=image_uri,
)

# Deploya il modello come endpoint di SageMaker
predictor = huggingface_model.deploy(
        initial_instance_count=1,
        instance_type="ml.p3.2xlarge",
)

Generare nuove immagini

Ora che l’endpoint è deployato sugli endpoint di SageMaker, possiamo passare le nostre indicazioni e l’immagine originale che vogliamo utilizzare come punto di riferimento.

Per definire l’indicazione, creiamo un’indicazione positiva, p_p, di ciò che stiamo cercando nella nuova immagine, e l’indicazione negativa, n_p, di ciò che deve essere evitato:

p_p="auto di colore arancione metallico, auto completa, foto a colori, all'aperto in un paesaggio piacevole, realistica, di alta qualità"

n_p="ritagliata, fuori dal fotogramma, qualità peggiore, bassa qualità, artefatti JPEG, brutta, sfocata, anatomia sbagliata, proporzioni sbagliate"

Infine, invochiamo il nostro endpoint con l’indicazione e l’immagine di origine per generare la nuova immagine:

request={"prompt":p_p, 
        "negative_prompt":n_p, 
        "image_uri":'s3://<bucker>/sportscar.jpeg', #contenuto esistente
        "scale": 0.5,
        "steps":20, 
        "low_threshold":100, 
        "high_threshold":200, 
        "seed": 123, 
        "output":"output"}
response=predictor.predict(request)

Diverse tecniche di ControlNet

In questa sezione, confrontiamo le diverse tecniche di ControlNet e il loro effetto sull’immagine risultante. Utilizziamo l’immagine originale seguente per generare nuovo contenuto utilizzando Stable Diffusion con Control-net in Amazon SageMaker.

La seguente tabella mostra come l’output della tecnica determina su cosa concentrarsi dall’immagine originale.

Nome Tecnica Tipo Tecnica Output Tecnica Indicazione Stable Diffusion con ControlNet
canny Un’immagine monocromatica con bordi bianchi su sfondo nero. auto di colore arancione metallico, auto completa, foto a colori, all’aperto in un paesaggio piacevole, realistica, di alta qualità
depth Un’immagine in scala di grigi con il nero che rappresenta le aree profonde e il bianco che rappresenta le aree basse. auto di colore rosso metallico, auto completa, foto a colori, all’aperto in un paesaggio piacevole sulla spiaggia, realistica, di alta qualità
hed Un’immagine monocromatica con bordi morbidi bianchi su sfondo nero. auto di colore bianco metallico, auto completa, foto a colori, in una città, di notte, realistica, di alta qualità
scribble Un’immagine disegnata a mano in monocromia con contorni bianchi su sfondo nero. <img src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2023/

Pulizia

Dopo aver generato nuove creatività pubblicitarie con l’IA generativa, pulisci tutte le risorse che non verranno utilizzate. Elimina i dati da Amazon S3 e interrompi qualsiasi istanza di notebook di SageMaker Studio per evitare ulteriori addebiti. Se hai utilizzato SageMaker JumpStart per distribuire Stable Diffusion come endpoint in tempo reale di SageMaker, elimina l’endpoint tramite la console di SageMaker o SageMaker Studio.

Conclusione

In questo post, abbiamo utilizzato modelli di base su SageMaker per creare nuove immagini di contenuto a partire da immagini esistenti memorizzate in Amazon S3. Con queste tecniche, le agenzie di marketing, pubblicità e altre agenzie creative possono utilizzare strumenti di IA generativa per migliorare il processo di creazione di annunci. Per approfondire la soluzione e il codice mostrato in questa demo, visita il repository GitHub.

Inoltre, consulta Amazon Bedrock per casi d’uso su IA generativa, modelli di base e modelli di testo-immagine.