Personalizzazione dello stile

La personalizzazione dello stile di Imagen 3 ti aiuta a generare nuove immagini da prompt di testo e immagini di riferimento che fornisci. Le immagini di riferimento guidano la generazione di nuove immagini.

Casi d'uso

Imagen 3 Customization offre prompt in stile libero, che possono dare l'impressione di poter fare più di quanto è addestrato a fare. Le sezioni seguenti descrivono i casi d'uso previsti per Imagen 3 Customization e esempi non esaustivi di casi d'uso non previsti.

Ti consigliamo di utilizzare la personalizzazione di Imagen 3 per i casi d'uso previsti, in quanto abbiamo addestrato il modello su questi casi d'uso e ci aspettiamo buoni risultati. Al contrario, anche se puoi spingere il modello a fare cose al di fuori dei casi d'uso previsti, non ci aspettiamo buoni risultati.

Casi d'uso previsti

Di seguito sono riportati i casi d'uso pensati per la personalizzazione dello stile di Imagen 3 Customization:

  • Genera un'immagine dall'input di testo che segue lo stile specifico fornito da un'immagine di riferimento.
  • Alterare una foto di una persona.
  • Modificare una foto di una persona e preservarne l'espressione facciale.

Esempi di casi d'uso non previsti

Di seguito è riportato un elenco non esaustivo di casi d'uso per cui la personalizzazione di Imagen 3 non è addestrata e produce risultati scadenti per:

  • Genera un'immagine dal testo e utilizzando un'immagine di riferimento, con l'intento di avere un certo livello di controllo della composizione generata dall'immagine di riferimento.

  • Genera un'immagine di una persona a partire da un'immagine di riferimento che ritrae una persona con una particolare espressione facciale.

  • Posiziona due persone in una scena diversa, preserva le loro identità e specifica lo stile dell'immagine di output (ad esempio un dipinto a olio) utilizzando un'immagine di riferimento.

  • Stilizza la foto di un animale domestico e trasformala in un disegno, preservando o specificando la composizione dell'immagine.

  • Inserisci un prodotto, ad esempio un biscotto o un divano, in diverse scene con diverse angolazioni del prodotto e seguendo uno stile di immagine specifico (ad esempio fotorealistico con colori, stili di illuminazione o animazioni specifici).

Esempio di personalizzazione dello stile

Di seguito è riportato un esempio di caso per la personalizzazione dello stile di personalizzazione di Imagen 3:

Input di esempio Esempio di output
  1. Immagine di riferimento1:
    Input di esempio per la personalizzazione dell'animale di servizio
  2. Prompt di testo:
    Genera un'immagine in mosaic style [1] basata su
    la seguente didascalia: lo skyline di New York City

Esempio di output per la personalizzazione dell'animale di servizio

1 Immagine di input di riferimento generata utilizzando la generazione di immagini di Imagen 3 dal prompt: un semplice mosaico.

Visualizzare la scheda del modello Imagen per la modifica e la personalizzazione

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configura l'autenticazione per il tuo ambiente.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

    Personalizzazione dello stile

    Quando utilizzi la personalizzazione di Imagen 3, puoi fornire immagini di riferimento dei tipi di stile. Lo stile che scegli influisce sul modo in cui formuli la richiesta di generazione.

    Il prompt che utilizzi con la personalizzazione di Imagen 3 potrebbe influire sulla qualità delle immagini generate. Le sezioni seguenti descrivono i modelli e gli esempi di prompt consigliati per inviare richieste di personalizzazione.

    Caso d'uso Immagini di riferimento Modello di prompt Esempio
    Stile oggetto Immagine del soggetto (1-4) Genera un'immagine in STYLE_DESCRIPTION [1] in base alla seguente didascalia: IMAGE_DESCRIPTION. Genera un'immagine in neon sign style [1] in base alla seguente didascalia: a sign saying have a great day.
    Stilizzazione dell'immagine di una persona senza input della mesh del volto Immagine del soggetto (1-4) Crea un'immagine di SUBJECT_DESCRIPTION [1] che corrisponda alla descrizione: un ritratto di SUBJECT_DESCRIPTION [1] ${PROMPT} Crea un'immagine di a woman with short hair[1] che corrisponda alla descrizione: un ritratto di a woman with short hair[1] in stile cartone animato 3D con sfondo sfocato. Un personaggio carino e adorabile, faccia sorridente, che guarda la fotocamera, tonalità pastello, alta qualità, 4K, capolavoro, dettagli super, texture della pelle, mappatura delle texture, ombre morbide, illuminazione morbida e realistica, colori vivaci
    Stilizzazione dell'immagine di una persona con input della mesh del volto Immagine del soggetto (1-3)

    Immagine di controllo Facemesh (1)
    Crea un'immagine di SUBJECT_DESCRIPTION [1] nella posa di CONTROL_IMAGE [2] in modo che corrisponda alla descrizione: un ritratto di SUBJECT_DESCRIPTION [1] ${PROMPT} Crea un'immagine di a woman with short hair [1] nella posa di control image [2] in linea con la descrizione: un ritratto di a woman with short hair [1] in stile cartone animato 3D con sfondo sfocato. Un personaggio carino e adorabile, con una faccina sorridente. Vedi la fotocamera, tonalità pastello, alta qualità, 4K, capolavoro, super dettagli, texture della pelle, mappatura della texture, ombre morbide, illuminazione morbida e realistica, colori vivaci

    REST

    Per ulteriori informazioni sulle richieste del modello imagen-3.0-capability-001, consulta il riferimento API del modello imagen-3.0-capability-001.

    Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

    • PROJECT_ID: il tuo Google Cloud ID progetto.
    • LOCATION: la regione del progetto. Ad esempio, us-central1, europe-west2 o asia-northeast3. Per un elenco delle regioni disponibili, consulta Località dell'AI generativa su Vertex AI.
    • TEXT_PROMPT: Il prompt di testo guida le immagini che il modello genera. Per utilizzare la personalizzazione di Imagen 3, includi l'referenceId dell'immagine o delle immagini di riferimento che fornisci nel formato [$referenceId]. Ad esempio:
      • Il seguente prompt di testo è per una richiesta che ha una singola immagine di riferimento con "referenceId": 1 e una descrizione facoltativa di "styleDescription": "glowing style": Genera un'immagine in glowing style [1] in base alla seguente didascalia: una chiesa in montagna.
    • "referenceId": L'ID dell'immagine di riferimento o l'ID di una serie di immagini di riferimento che corrispondono allo stesso soggetto o stile. In questo esempio, la singola immagine di riferimento ha un referenceId di (1).
    • BASE64_REFERENCE_IMAGE: Un'immagine di riferimento per guidare la generazione di immagini. L'immagine deve essere specificata come stringa di byte con codifica base64.
    • STYLE_DESCRIPTION: (Facoltativo) Una descrizione testuale dell'immagine di riferimento che puoi utilizzare nel campo prompt. Ad esempio:
            "prompt": "Generate an image in glowing style [1] based on the following
              caption: A church in the mountain.",
            [...],
            "styleImageConfig": {
              "styleDescription": "glowing style"
            }
          
    • IMAGE_COUNT: Il numero di immagini generate. Valori interi accettati: 1-4. Il valore predefinito è 4.

    Metodo HTTP e URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict

    Corpo JSON della richiesta:

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT",
          "referenceImages": [
            {
              "referenceType": "REFERENCE_TYPE_STYLE",
              "referenceId": 1,
              "referenceImage": {
                "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
              },
              "styleImageConfig": {
                "styleDescription": "STYLE_DESCRIPTION"
              }
            }
          ]
        }
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT
      }
    }
    

    Per inviare la richiesta, scegli una di queste opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, ed esegui questo comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
    La seguente risposta di esempio è per una richiesta con "sampleCount": 2. La risposta restituisce due oggetti di previsione, con i byte dell'immagine generata codificati in base64.
    {
      "predictions": [
        {
          "bytesBase64Encoded": "BASE64_IMG_BYTES",
          "mimeType": "image/png"
        },
        {
          "mimeType": "image/png",
          "bytesBase64Encoded": "BASE64_IMG_BYTES"
        }
      ]
    }
    

    Python

    from google import genai
    from google.genai.types import (
        EditImageConfig,
        Image,
        StyleReferenceConfig,
        StyleReferenceImage,
    )
    
    client = genai.Client()
    
    # TODO(developer): Update and un-comment below line
    # output_gcs_uri = "gs://your-bucket/your-prefix"
    
    # Create a style reference image of a neon sign stored in Google Cloud Storage
    # using https://storage.googleapis.com/cloud-samples-data/generative-ai/image/neon.png
    style_reference_image = StyleReferenceImage(
        reference_id=1,
        reference_image=Image(gcs_uri="gs://cloud-samples-data/generative-ai/image/neon.png"),
        config=StyleReferenceConfig(style_description="neon sign"),
    )
    
    image = client.models.edit_image(
        model="imagen-3.0-capability-001",
        prompt="generate an image of a neon sign [1] with the words: have a great day",
        reference_images=[style_reference_image],
        config=EditImageConfig(
            edit_mode="EDIT_MODE_DEFAULT",
            number_of_images=1,
            safety_filter_level="BLOCK_MEDIUM_AND_ABOVE",
            person_generation="ALLOW_ADULT",
            output_gcs_uri=output_gcs_uri,
        ),
    )
    
    # Example response:
    # gs://your-bucket/your-prefix
    print(image.generated_images[0].image.gcs_uri)

    Utilizzo del prodotto

    Per visualizzare gli standard di utilizzo e le limitazioni dei contenuti associati a Imagen su Vertex AI, consulta le linee guida sull'utilizzo.

    Versioni modello

    Esistono più modelli di generazione di immagini che puoi utilizzare. Per saperne di più, consulta la sezione Modelli Imagen.

    Passaggi successivi

    Leggi gli articoli su Imagen e altri prodotti di AI generativa su Vertex AI: