부정 프롬프트를 사용하여 콘텐츠 생략

Colab에서 Imagen 사용해 보기

이 페이지에서는 Vertex AI 기반 Imagen 생성 이미지에서 콘텐츠를 생략하는 방법을 설명합니다.

부정 프롬프트는 생성된 이미지에서 생략할 항목에 대한 설명입니다. 예를 들어 '사람이 없는 야간 도시 거리'라는 프롬프트를 생각해 봅시다. 이 모델은 '사람'을 생략 대상이 아니라 포함 대상 지시문으로 해석할 수 있습니다. 더 나은 결과를 생성하려면 '사람' 네거티브 프롬프트와 함께 '야간 도시 거리' 프롬프트를 사용하면 됩니다.

Imagen은 네거티브 프롬프트 유무에 관계없이 이러한 이미지를 생성합니다.

텍스트 프롬프트만

  • 텍스트 프롬프트: '피자'

샘플 피자 이미지 3개

텍스트 프롬프트 및 네거티브 프롬프트

  • 텍스트 프롬프트: '피자'
  • 네거티브 프롬프트: 'pepperoni'

페퍼로니가 없는 샘플 피자 이미지 3개

다음 모델은 부정 프롬프트를 지원합니다.

  • imagen-3.0-capability-001
  • imagen-3.0-fast-generate-001
  • imagen-3.0-generate-001

부정 프롬프트 사용

생성된 이미지에서 콘텐츠를 생략하려면 다음을 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 Vertex AI > Media Studio 페이지로 이동합니다.

    Media Studio로 이동

  2. Imagen을 클릭합니다. Imagen Media Studio 이미지 생성 페이지가 표시됩니다.

  3. 설정 패널에서 다음 옵션을 조정합니다.

    • 모델: 사용 가능한 옵션 중에서 모델을 선택합니다.

      사용 가능한 모델에 대한 자세한 내용은 Imagen 모델을 참조하세요.

    • 결과 수: 슬라이더를 조정하거나 1~4 사이의 값을 입력합니다.

    • 부정 프롬프트 상자에 이미지에 생성하지 않으려는 항목을 설명하는 프롬프트를 입력합니다.

  4. 프롬프트 작성 상자에 생성할 이미지를 설명하는 텍스트 프롬프트를 입력합니다. 예를 들면 아침 물 위에 떠 있는 작은 배 수채화 이미지입니다.

    효과적인 프롬프트를 작성하는 방법에 대한 자세한 내용은 프롬프트 및 이미지 속성 가이드를 참조하세요.

  5. 생성을 클릭합니다.

REST

네거티브 프롬프트는 JSON 요청 본문의 parameters 객체에 있는 선택적 필드입니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • MODEL_VERSION: 사용할 Imagen 모델 버전입니다. 사용 가능한 모델에 대한 자세한 내용은 Imagen 모델을 참조하세요.

  • LOCATION: 프로젝트의 리전입니다. 예를 들면 us-central1, europe-west2, asia-northeast3입니다. 사용 가능한 리전 목록은 Vertex AI의 생성형 AI 위치를 참조하세요.
  • TEXT_PROMPT: 모델이 생성하는 이미지를 안내하는 텍스트 프롬프트. 이 필드는 생성 및 수정 모두에서 필요합니다.
  • IMAGE_COUNT: 생성된 이미지의 수입니다. 허용되는 정수 값은 1~8(imagegeneration@002), 1~4(기타 모든 모델 버전)입니다. 기본값: 4.
  • 추가 선택적 파라미터

    사용 사례에 따라 다음 선택적 변수를 사용하세요. "parameters": {} 객체에 다음 파라미터 중 일부 또는 전부를 추가합니다. 이 목록에는 일반적인 선택적 파라미터가 나와 있으며 모든 파라미터가 포함되어 있지는 않습니다. 선택적 파라미터에 관한 자세한 내용은 Imagen API 참조: 이미지 생성을 참조하세요.

    "parameters": {
      "sampleCount": IMAGE_COUNT,
      "addWatermark": ADD_WATERMARK,
      "aspectRatio": "ASPECT_RATIO",
      "enhancePrompt": ENABLE_PROMPT_REWRITING,
      "includeRaiReason": INCLUDE_RAI_REASON,
      "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
      "outputOptions": {
        "mimeType": "MIME_TYPE",
        "compressionQuality": COMPRESSION_QUALITY
      },
      "personGeneration": "PERSON_SETTING",
      "safetySetting": "SAFETY_SETTING",
      "seed": SEED_NUMBER,
      "storageUri": "OUTPUT_STORAGE_URI"
    }
    
    • ADD_WATERMARK: 불리언입니다. (선택사항) 생성된 이미지에 워터마크를 사용 설정할지 여부입니다. 필드가 true로 설정되었을 때 생성되는 모든 이미지에는 워터마크가 추가된 이미지를 확인하는 데 사용할 수 있는 디지털 SynthID가 포함됩니다. 이 필드를 생략하면 기본값 true가 사용됩니다. 이 기능을 중지하려면 값을 false로 설정해야 합니다. 이 필드를 false로 설정한 경우에만 seed 필드를 사용하여 결정론적 출력을 얻을 수 있습니다.
    • ASPECT_RATIO: 문자열입니다. (선택사항) 가로세로 비율을 제어하는 생성 모드 파라미터입니다. 지원되는 비율 값과 사용 목적은 다음과 같습니다.
      • 1:1(기본값, 정사각형)
      • 3:4(광고, 소셜 미디어)
      • 4:3(TV, 사진)
      • 16:9(가로)
      • 9:16(세로)
    • ENABLE_PROMPT_REWRITING: 불리언입니다. (선택사항) LLM 기반 프롬프트 수정 기능을 사용하여 원래 프롬프트의 의도를 더 잘 반영하는 고품질 이미지를 제공하는 파라미터입니다. 이 기능을 사용 중지하면 이미지 품질과 프롬프트 준수가 영향을 받을 수 있습니다. 기본값: true.
    • INCLUDE_RAI_REASON: 불리언입니다. (선택사항) 차단된 입력이나 출력이 있는 응답에서 책임감 있는 AI 필터링된 이유 코드를 사용 설정할지 여부입니다. 기본값은 true입니다.
    • INCLUDE_SAFETY_ATTRIBUTES: 불리언입니다. (선택사항) 필터링되지 않은 입력 및 출력에 대한 응답에서 안전 속성 목록에 대해 반올림된 책임감 있는 AI 점수를 사용 설정할지 여부입니다. 안전 속성 카테고리에는 "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict" 등이 있습니다. 기본값은 false입니다.
    • MIME_TYPE: 문자열입니다. (선택사항) 이미지 콘텐츠의 MIME 유형입니다. 사용 가능한 값은 다음과 같습니다.
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: 정수입니다. (선택사항) JPEG 출력 파일에만 적용됩니다. JPEG 파일 형식으로 생성된 이미지에 대해 모델이 보존하는 세부 수준입니다. 값은 0~100이며 숫자가 클수록 압축이 더 높습니다. 기본값은 75입니다.
    • PERSON_SETTING: 문자열입니다. (선택사항) 모델에서 허용하는 사람 유형이나 얼굴 생성 유형을 제어하는 안전 설정입니다. 사용 가능한 값은 다음과 같습니다.
      • allow_adult(기본값): 유명인 생성을 제외하고 성인만 생성합니다. 어떤 설정에서도 유명인은 생성되지 않습니다.
      • dont_allow: 생성된 이미지에 사람이나 얼굴이 포함되지 않습니다.
    • SAFETY_SETTING: 문자열입니다. (선택사항) 생성된 이미지의 안전 필터 기준점을 제어하는 설정입니다. 사용 가능한 값은 다음과 같습니다.
      • block_low_and_above: 가장 높은 안전 기준점으로, 필터링되어 생성된 이미지 수가 가장 많습니다. 이전 값은 block_most입니다.
      • block_medium_and_above(기본값): 잠재적으로 유해하고 안전한 콘텐츠에 대한 필터링의 균형을 맞추는 중간 안전 기준점입니다. 이전 값은 block_some입니다.
      • block_only_high: 안전 필터로 인해 차단된 요청 수를 줄이는 안전 기준점입니다. 이 설정으로 인해 Imagen에서 불쾌감을 주는 콘텐츠를 많이 생성할 수 있습니다. 이전 값은 block_few입니다.
    • SEED_NUMBER: 정수입니다. (선택사항) 출력 이미지를 결정론적으로 만들기 위해 제공하는 음수가 아닌 정수입니다. 동일한 시드 번호를 제공하면 항상 같은 출력 이미지가 생성됩니다. 사용 중인 모델이 디지털 워터마킹을 지원하는 경우 이 필드를 사용하려면 "addWatermark": false를 설정해야 합니다. 허용되는 정수 값은 1~2147483647입니다.
    • OUTPUT_STORAGE_URI: 문자열입니다. (선택사항) 출력 이미지를 저장할 Cloud Storage 버킷입니다. 제공되지 않으면 base64로 인코딩된 이미지 바이트가 응답으로 반환됩니다. 샘플 값은 gs://image-bucket/output/입니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

JSON 요청 본문:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

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/MODEL_VERSION:predict"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$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/MODEL_VERSION:predict" | Select-Object -Expand Content
다음은 "sampleCount": 2 요청에 대한 샘플 응답입니다. 응답은 생성된 이미지 바이트를 base64로 인코딩한 예측 객체 2개를 반환합니다.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

프롬프트를 개선할 수 있는 모델을 사용하는 경우 생성에 사용된 개선된 프롬프트가 포함된 추가 prompt 필드가 응답에 포함됩니다.

{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}

  1. 다음을 바꿉니다.

    • NEGATIVE_PROMPT: 이미지를 생성하는 데 도움이 되는 네거티브 프롬프트입니다. 예를 들면 '동물'(동물 제거), '흐림'(이미지 선명화), '텍스트'(텍스트 제거) 또는 '자르기'(잘린 이미지 제거) 등입니다.
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    

다음 단계