Інформація про дані Платона.
Вертикальний пошук і штучний інтелект.

Використовуйте моделі Amazon Titan для створення, редагування та пошуку | Веб-сервіси Amazon

Дата:

Amazon Bedrock надає широкий спектр високоефективних базових моделей від Amazon та інших провідних компаній штучного інтелекту, в тому числі Антропний, AI21, Meta, Cohere та Стабільність ШІ, і охоплює широкий спектр випадків використання, включаючи створення тексту та зображень, пошук, чат, міркування та дії агентів тощо. Новий Генератор зображень Amazon Titan модель дозволяє творцям вмісту швидко створювати високоякісні реалістичні зображення за допомогою простих текстових підказок англійською мовою. Удосконалена модель штучного інтелекту розуміє складні інструкції з кількома об’єктами та повертає зображення студійної якості, придатні для реклама, електронна комерція та розваги. Основні функції включають можливість уточнювати зображення шляхом повторення підказок, автоматичне редагування фону та створення кількох варіацій однієї сцени. Творці також можуть налаштувати модель за допомогою власних даних для виведення зображень бренду в певному стилі. Важливо, що Titan Image Generator має вбудовані засоби захисту, як-от невидимі водяні знаки на всіх створених штучним інтелектом зображеннях, щоб заохотити відповідальне використання та пом’якшити поширення дезінформації. Ця інноваційна технологія дозволяє створювати нестандартні зображення у великих обсягах будь-яка галузь більш доступним і ефективним.

Новий Amazon Titan Multimodal Embeddings Модель допомагає створити точніший пошук і рекомендації завдяки розумінню тексту, зображень або обох. Він перетворює зображення та текст англійською мовою на семантичні вектори, фіксуючи значення та зв’язки у ваших даних. Ви можете комбінувати текст і зображення, як-от описи продуктів і фотографії, щоб ефективніше ідентифікувати товари. Вектори забезпечують швидкий і точний пошук. Titan Multimodal Embeddings є гнучким у векторних розмірах, що забезпечує оптимізацію для потреб продуктивності. Асинхронний API і Служба Amazon OpenSearch конектор дозволяє легко інтегрувати модель у ваші програми нейронного пошуку.

У цій публікації ми розглянемо, як використовувати моделі Titan Image Generator і Titan Multimodal Embeddings через AWS Python SDK.

Генерація та редагування зображень

У цьому розділі ми демонструємо основні шаблони кодування для використання AWS SDK для створення нових зображень і редагування існуючих зображень за допомогою штучного інтелекту. Приклади коду надаються на Python, і JavaScript (Node.js) також доступний у цьому GitHub сховище.

Перш ніж ви зможете писати сценарії, які використовують Amazon Bedrock API, вам потрібно інсталювати відповідну версію AWS SDK у вашому середовищі. Для сценаріїв Python можна використовувати AWS SDK для Python (Boto3). Користувачі Python також можуть захотіти встановити Модуль подушка, що полегшує операції із зображеннями, наприклад завантаження та збереження зображень. Інструкції з налаштування див GitHub сховище.

Крім того, дозвольте доступ до моделей Amazon Titan Image Generator і Titan Multimodal Embeddings. Для отримання додаткової інформації див Доступ до моделі.

Допоміжні функції

Наступна функція налаштовує клієнт середовища виконання Amazon Bedrock Boto3 і генерує зображення, приймаючи корисні дані різних конфігурацій (про які ми обговоримо далі в цій публікації):

import boto3
import json, base64, io
from random import randint
from PIL import Image

bedrock_runtime_client = boto3.client("bedrock-runtime")


def titan_image(
    payload: dict,
    num_image: int = 2,
    cfg: float = 10.0,
    seed: int = None,
    modelId: str = "amazon.titan-image-generator-v1",
) -> list:
    #   ImageGenerationConfig Options:
    #   - numberOfImages: Number of images to be generated
    #   - quality: Quality of generated images, can be standard or premium
    #   - height: Height of output image(s)
    #   - width: Width of output image(s)
    #   - cfgScale: Scale for classifier-free guidance
    #   - seed: The seed to use for reproducibility
    seed = seed if seed is not None else randint(0, 214783647)
    body = json.dumps(
        {
            **payload,
            "imageGenerationConfig": {
                "numberOfImages": num_image,  # Range: 1 to 5
                "quality": "premium",  # Options: standard/premium
                "height": 1024,  # Supported height list above
                "width": 1024,  # Supported width list above
                "cfgScale": cfg,  # Range: 1.0 (exclusive) to 10.0
                "seed": seed,  # Range: 0 to 214783647
            },
        }
    )

    response = bedrock_runtime_client.invoke_model(
        body=body,
        modelId=modelId,
        accept="application/json",
        contentType="application/json",
    )

    response_body = json.loads(response.get("body").read())
    images = [
        Image.open(io.BytesIO(base64.b64decode(base64_image)))
        for base64_image in response_body.get("images")
    ]
    return images
        

Створення зображень із тексту

Сценарії, які генерують нове зображення з текстового підказки, дотримуються такого шаблону реалізації:

  1. Налаштуйте текстову підказку та необов’язкову негативну текстову підказку.
  2. Використовувати BedrockRuntime клієнт для виклику моделі Titan Image Generator.
  3. Розберіть і розшифруйте відповідь.
  4. Збережіть отримані зображення на диск.

Перетворення тексту в зображення

Нижче наведено типовий сценарій створення зображення для моделі Titan Image Generator:

# Text Variation
# textToImageParams Options:
#   text: prompt to guide the model on how to generate variations
#   negativeText: prompts to guide the model on what you don't want in image
images = titan_image(
    {
        "taskType": "TEXT_IMAGE",
        "textToImageParams": {
            "text": "two dogs walking down an urban street, facing the camera",  # Required
            "negativeText": "cars",  # Optional
        },
    }
)

Це створить зображення, подібні до наведених нижче.

Зображення відповіді 1 Зображення відповіді 2
2 собаки гуляють по вулиці 2 собаки гуляють по вулиці

Варіанти зображень

Варіація зображення надає спосіб генерувати тонкі варіанти існуючого зображення. Наведений нижче фрагмент коду використовує одне із зображень, згенерованих у попередньому прикладі, для створення варіантів зображень:

# Import an input image like this (only PNG/JPEG supported):
with open("<YOUR_IMAGE_FILE_PATH>", "rb") as image_file:
    input_image = base64.b64encode(image_file.read()).decode("utf8")

# Image Variation
# ImageVariationParams Options:
#   text: prompt to guide the model on how to generate variations
#   negativeText: prompts to guide the model on what you don't want in image
#   images: base64 string representation of the input image, only 1 is supported
images = titan_image(
    {
        "taskType": "IMAGE_VARIATION",
        "imageVariationParams": {
            "text": "two dogs walking down an urban street, facing the camera",  # Required
            "images": [input_image],  # One image is required
            "negativeText": "cars",  # Optional
        },
    },
)

Це створить зображення, подібні до наведених нижче.

Вихідне зображення Зображення відповіді 1 Зображення відповіді 2
2 собаки гуляють по вулиці

Редагувати наявне зображення

Модель Titan Image Generator дозволяє додавати, видаляти або замінювати елементи чи області в межах наявного зображення. Ви вказуєте, на яку область потрібно вплинути, надаючи одне з наведеного нижче:

  • Зображення маски – Зображення маски – це двійкове зображення, у якому пікселі із значенням 0 представляють область, на яку потрібно вплинути, а пікселі із значенням 255 представляють область, яка має залишатися незмінною.
  • Підказка маски – Підказка маски – це текстовий опис природною мовою елементів, на які потрібно вплинути, який використовує внутрішню модель сегментації тексту.

Для отримання додаткової інформації зверніться до Швидкі інженерні вказівки.

Сценарії, які застосовують редагування до зображення, дотримуються цього шаблону реалізації:

  1. Завантажте з диска зображення для редагування.
  2. Перетворіть зображення на рядок у кодуванні base64.
  3. Налаштуйте маску одним із таких способів:
    1. Завантажте зображення маски з диска, закодувавши його як base64 і встановивши як maskImage параметр.
    2. Встановіть maskText параметр до текстового опису елементів, на які потрібно впливати.
  4. Укажіть новий вміст, який буде створено, використовуючи один із наведених нижче параметрів:
    1. Щоб додати або замінити елемент, установіть text параметр для опису нового вмісту.
    2. Щоб видалити елемент, опустіть text параметр повністю.
  5. Використовувати BedrockRuntime клієнт для виклику моделі Titan Image Generator.
  6. Розберіть і розшифруйте відповідь.
  7. Збережіть отримані зображення на диск.

Редагування об'єкта: малювання за допомогою зображення маски

Нижче наведено типовий сценарій редагування зображень для моделі Titan Image Generator maskImage. Ми беремо одне зі згенерованих раніше зображень і створюємо зображення маски, де пікселі зі значенням 0 відображаються як чорні, а пікселі зі значеннями 255 – як білі. Ми також замінюємо одну із собак на зображенні котом за допомогою текстової підказки.

with open("<YOUR_MASK_IMAGE_FILE_PATH>", "rb") as image_file:
    mask_image = base64.b64encode(image_file.read()).decode("utf8")

# Import an input image like this (only PNG/JPEG supported):
with open("<YOUR_ORIGINAL_IMAGE_FILE_PATH>", "rb") as image_file:
    input_image = base64.b64encode(image_file.read()).decode("utf8")

# Inpainting
# inPaintingParams Options:
#   text: prompt to guide inpainting
#   negativeText: prompts to guide the model on what you don't want in image
#   image: base64 string representation of the input image
#   maskImage: base64 string representation of the input mask image
#   maskPrompt: prompt used for auto editing to generate mask

images = titan_image(
    {
        "taskType": "INPAINTING",
        "inPaintingParams": {
            "text": "a cat",  # Optional
            "negativeText": "bad quality, low res",  # Optional
            "image": input_image,  # Required
            "maskImage": mask_image,
        },
    },
    num_image=3,
)

Це створить зображення, подібні до наведених нижче.

Вихідне зображення Зображення маски Відредаговане зображення
2 собаки гуляють по вулиці кіт і пес гуляють на вулиці

Видалення об’єкта: малювання за допомогою підказки маски

В іншому прикладі ми використовуємо maskPrompt щоб указати об’єкт на зображенні, взятому з попередніх кроків, для редагування. Якщо пропустити текстову підказку, об’єкт буде видалено:

# Import an input image like this (only PNG/JPEG supported):
with open("<YOUR_IMAGE_FILE_PATH>", "rb") as image_file:
    input_image = base64.b64encode(image_file.read()).decode("utf8")

images = titan_image(
    {
        "taskType": "INPAINTING",
        "inPaintingParams": {
            "negativeText": "bad quality, low res",  # Optional
            "image": input_image,  # Required
            "maskPrompt": "white dog",  # One of "maskImage" or "maskPrompt" is required
        },
    },
)

Це створить зображення, подібні до наведених нижче.

Вихідне зображення Зображення відповіді
2 собаки гуляють по вулиці одна собака гуляє по вулиці

Редагування фону: Outpainting

Зафарбовування корисно, коли потрібно замінити фон зображення. Ви також можете розширити межі зображення для ефекту зменшення масштабу. У наступному прикладі сценарію ми використовуємо maskPrompt вказати, який об'єкт залишити; ви також можете використовувати maskImage. Параметр outPaintingMode вказує, чи дозволяти модифікацію пікселів усередині маски. Якщо встановлено як DEFAULT, пікселі всередині маски можна змінювати, щоб реконструйоване зображення було узгодженим загалом. Цей варіант рекомендується, якщо maskImage наданий не представляє об’єкт із точністю до піксельного рівня. Якщо встановлено як PRECISE, модифікація пікселів усередині маски запобігає. Цей параметр рекомендується, якщо використовується a maskPrompt або maskImage який представляє об’єкт із точністю до піксельного рівня.

# Import an input image like this (only PNG/JPEG supported):
with open("<YOUR_IMAGE_FILE_PATH>", "rb") as image_file:
    input_image = base64.b64encode(image_file.read()).decode("utf8")

# OutPaintingParams Options:
#   text: prompt to guide outpainting
#   negativeText: prompts to guide the model on what you don't want in image
#   image: base64 string representation of the input image
#   maskImage: base64 string representation of the input mask image
#   maskPrompt: prompt used for auto editing to generate mask
#   outPaintingMode: DEFAULT | PRECISE
images = titan_image(
    {
        "taskType": "OUTPAINTING",
        "outPaintingParams": {
            "text": "forest",  # Required
            "image": input_image,  # Required
            "maskPrompt": "dogs",  # One of "maskImage" or "maskPrompt" is required
            "outPaintingMode": "PRECISE",  # One of "PRECISE" or "DEFAULT"
        },
    },
    num_image=3,
)

Це створить зображення, подібні до наведених нижче.

Вихідне зображення текст Зображення відповіді
2 собаки гуляють по вулиці "Пляжний" одна собака гуляє на пляжі
2 собаки гуляють по вулиці «ліс»

Крім того, ефекти різних значень для outPaintingMode, При maskImage які не окреслюють контури об’єкта з точністю на рівні пікселя, є такими.

У цьому розділі наведено огляд операцій, які можна виконувати з моделлю Titan Image Generator. Зокрема, ці сценарії демонструють завдання з перетворення тексту в зображення, варіації зображення, зафарбовування та зафарбовування. Ви повинні мати можливість адаптувати шаблони для своїх власних програм, посилаючись на деталі параметрів для тих типів завдань, які описано в Документація Amazon Titan Image Generator.

Мультимодальне вбудовування та пошук

Ви можете використовувати модель Amazon Titan Multimodal Embeddings для таких корпоративних завдань, як пошук зображень і рекомендації на основі схожості, і вона має вбудовану систему пом’якшення, яка допомагає зменшити упередженість у результатах пошуку. Існує кілька розмірів розмірів вбудовування для найкращого компромісу між затримкою та точністю для різних потреб, і всі вони можуть бути налаштовані за допомогою простого API для адаптації до ваших власних даних, зберігаючи безпеку та конфіденційність даних. Amazon Titan Multimodal Embeddings надається як прості API для програм пошуку та рекомендацій у режимі реального часу або асинхронного пакетного перетворення та може підключатися до різних векторних баз даних, у тому числі Служба Amazon OpenSearch.

Допоміжні функції

Наступна функція перетворює зображення та необов’язково текст у мультимодальні вбудовування:

def titan_multimodal_embedding(
    image_path: str = None,  # maximum 2048 x 2048 pixels
    description: str = None,  # English only and max input tokens 128
    dimension: int = 1024,  # 1,024 (default), 384, 256
    model_id: str = "amazon.titan-embed-image-v1",
):
    payload_body = {}
    embedding_config: dict = {"embeddingConfig": {"outputEmbeddingLength": dimension}}

    # You can specify either text or image or both
    if image_path:
        # Maximum image size supported is 2048 x 2048 pixels
        with open(image_path, "rb") as image_file:
            payload_body["inputImage"] = base64.b64encode(image_file.read()).decode(
                "utf8"
            )
    if description:
        payload_body["inputText"] = description

    assert payload_body, "please provide either an image and/or a text description"
    print("n".join(payload_body.keys()))

    response = bedrock_runtime_client.invoke_model(
        body=json.dumps({**payload_body, **embedding_config}),
        modelId=model_id,
        accept="application/json",
        contentType="application/json",
    )

    return json.loads(response.get("body").read())

Наступна функція повертає найпоширеніші схожі мультимодальні вбудовування за запитом multimodal embaddings. Зауважте, що на практиці ви можете використовувати керовану векторну базу даних, таку як OpenSearch Service. Наступний приклад наведено для ілюстрації:

from scipy.spatial.distance import cdist
import numpy as np

def search(query_emb: np.array, indexes: np.array, top_k: int = 1):
    dist = cdist(query_emb, indexes, metric="cosine")
    return dist.argsort(axis=-1)[0, :top_k], np.sort(dist, axis=-1)[:top_k]

Синтетичний набір даних

Для ілюстрації ми використовуємо Модель Claude 2.1 від Anthropic в Amazon Bedrock щоб випадковим чином створити сім різних продуктів, кожен із трьома варіантами, використовуючи наступну підказку:

Generate a list of 7 items description for an online e-commerce shop, each comes with 3 variants of color or type. All with separate full sentence description.

Нижче наведено список отриманих результатів:

1. T-shirt
- A red cotton t-shirt with a crew neck and short sleeves.
- A blue cotton t-shirt with a v-neck and short sleeves.
- A black polyester t-shirt with a scoop neck and cap sleeves.

2. Jeans
- Classic blue relaxed fit denim jeans with a mid-rise waist.
- Black skinny fit denim jeans with a high-rise waist and ripped details at the knees.
- Stonewash straight leg denim jeans with a standard waist and front pockets.

3. Sneakers
- White leather low-top sneakers with an almond toe cap and thick rubber outsole.
- Gray mesh high-top sneakers with neon green laces and a padded ankle collar.
- Tan suede mid-top sneakers with a round toe and ivory rubber cupsole.

4. Backpack
- A purple nylon backpack with padded shoulder straps, front zipper pocket and laptop sleeve.
- A gray canvas backpack with brown leather trims, side water bottle pockets and drawstring top closure.
- A black leather backpack with multiple interior pockets, top carry handle and adjustable padded straps.

5. Smartwatch
- A silver stainless steel smartwatch with heart rate monitor, GPS tracker and sleep analysis.
- A space gray aluminum smartwatch with step counter, phone notifications and calendar syncing.
- A rose gold smartwatch with activity tracking, music controls and customizable watch faces.

6. Coffee maker
- A 12-cup programmable coffee maker in brushed steel with removable water tank and keep warm plate.
- A compact 5-cup single serve coffee maker in matt black with travel mug auto-dispensing feature.
- A retro style stovetop percolator coffee pot in speckled enamel with stay-cool handle and glass knob lid.

7. Yoga mat
- A teal 4mm thick yoga mat made of natural tree rubber with moisture-wicking microfiber top.
- A purple 6mm thick yoga mat made of eco-friendly TPE material with integrated carrying strap.
- A patterned 5mm thick yoga mat made of PVC-free material with towel cover included.

Призначте наведену вище відповідь змінній response_cat. Потім ми використовуємо модель Titan Image Generator, щоб створити зображення продукту для кожного товару:

import re

def extract_text(input_string):
    pattern = r"- (.*?)($|n)"
    matches = re.findall(pattern, input_string)
    extracted_texts = [match[0] for match in matches]
    return extracted_texts

product_description = extract_text(response_cat)

titles = []
for prompt in product_description:
    images = titan_image(
        {
            "taskType": "TEXT_IMAGE",
            "textToImageParams": {
                "text": prompt,  # Required
            },
        },
        num_image=1,
    )
    title = "_".join(prompt.split()[:4]).lower()
    titles.append(title)
    images[0].save(f"{title}.png", format="png")

Усі створені зображення можна знайти в додатку в кінці цієї публікації.

Мультимодальне індексування набору даних

Використовуйте такий код для мультимодального індексування набору даних:

multimodal_embeddings = []
for image_filename, description in zip(titles, product_description):
    embedding = titan_multimodal_embedding(f"{image_filename}.png", dimension=1024)["embedding"]
    multimodal_embeddings.append(embedding)

Мультимодальний пошук

Використовуйте наступний код для мультимодального пошуку:

query_prompt = "<YOUR_QUERY_TEXT>"
query_embedding = titan_multimodal_embedding(description=query_prompt, dimension=1024)["embedding"]
# If searching via Image
# query_image_filename = "<YOUR_QUERY_IMAGE>"
# query_emb = titan_multimodal_embedding(image_path=query_image_filename, dimension=1024)["embedding"]
idx_returned, dist = search(np.array(query_embedding)[None], np.array(multimodal_embeddings))

Нижче наведено деякі результати пошуку.

Висновок

У публікації представлені моделі Amazon Titan Image Generator і Amazon Titan Multimodal Embeddings. Titan Image Generator дає змогу створювати власні високоякісні зображення з текстових підказок. Основні функції включають ітерацію підказок, автоматичне фонове редагування та налаштування даних. Він має такі засоби захисту, як невидимі водяні знаки, які заохочують до відповідального використання. Titan Multimodal Embeddings перетворює текст, зображення або те й інше в семантичні вектори для забезпечення точного пошуку та рекомендацій. Потім ми надали зразки коду Python для використання цих служб і продемонстрували створення зображень із текстових підказок і ітерацію цих зображень; редагування існуючих зображень шляхом додавання, видалення або заміни елементів, визначених масковими зображеннями або масковим текстом; створення мультимодальних вставок із тексту, зображень або обох; і пошук подібних мультимодальних вбудовувань у запит. Ми також продемонстрували використання синтетичного набору даних електронної комерції, індексованого та здійсненого за допомогою Titan Multimodal Embeddings. Мета цієї публікації — дати розробникам змогу почати використовувати ці нові служби ШІ у своїх програмах. Шаблони коду можуть служити шаблонами для власних реалізацій.

Весь код доступний на GitHub сховище. Для отримання додаткової інформації зверніться до Посібник користувача Amazon Bedrock.


Про авторів

Рохіт Міттал є головним менеджером із продуктів Amazon AI, створюючи мультимодальні базові моделі. Нещодавно він очолив запуск моделі Amazon Titan Image Generator у рамках сервісу Amazon Bedrock. Маючи досвід роботи зі штучним інтелектом/ML, NLP і пошуком, він зацікавлений у створенні продуктів, які вирішують проблеми клієнтів за допомогою інноваційних технологій.

Доктор Ашвін Свамінатан є дослідником комп’ютерного бачення та машинного навчання, інженером і менеджером із 12+ роками досвіду роботи в галузі та 5+ років досвіду наукових досліджень. Сильні основи та підтверджена здатність швидко здобувати знання та робити внесок у нові та нові сфери.

Доктор Юйшен Се є головним науковим співробітником Amazon AGI. Його робота зосереджена на створенні мультимодальних моделей основи. До того як приєднатися до AGI, він очолював різні мультимодальні розробки ШІ в AWS, такі як Amazon Titan Image Generator і Amazon Texttract Queries.

Доктор Хао Ян є головним прикладним науковим співробітником Amazon. Його основні наукові інтереси – виявлення об’єктів і навчання з обмеженими анотаціями. Поза роботою Хао любить дивитися фільми, фотографувати та проводити активний відпочинок.

Доктор Давіде Модоло є менеджером прикладної науки в Amazon AGI, працює над створенням великих мультимодальних базових моделей. До того як приєднатися до Amazon AGI, він 7 років був менеджером/керівником у AWS AI Labs (Amazon Bedrock і Amazon Rekognition). Поза роботою він любить подорожувати та займатися будь-яким видом спорту, особливо футболом.

Доктор Байчуань Сун, зараз працює старшим архітектором рішень AI/ML в AWS, зосереджуючись на генеративному штучному інтелекті та застосовуючи свої знання в галузі даних і машинного навчання, щоб надавати практичні хмарні бізнес-рішення. Маючи досвід управлінського консультування та архітектури рішень штучного інтелекту, він вирішує низку складних завдань, зокрема робототехнічне комп’ютерне бачення, прогнозування часових рядів та прогнозне технічне обслуговування тощо. Його робота базується на солідному досвіді управління проектами, дослідженнях і розробці програмного забезпечення та академічній діяльності. Поза роботою доктор Сан насолоджується балансом між подорожами та проведенням часу з родиною та друзями.

Доктор Кай Чжу зараз працює інженером із підтримки хмарних технологій в AWS, допомагаючи клієнтам у вирішенні проблем із сервісами, пов’язаними зі штучним інтелектом/ML, як-от SageMaker, Bedrock тощо. Він є експертом із предметних питань SageMaker. Маючи досвід у галузі науки про дані та інженерії даних, він зацікавлений у створенні генеративних проектів на основі ШІ.

Кріс Шульц понад 25 років втілює в життя захоплюючий досвід користувачів, поєднуючи нові технології з дизайном світового класу. Виконуючи роль старшого менеджера з продуктів, Кріс допомагає розробляти та створювати сервіси AWS для медіа та розваг, ігор і просторових обчислень.


Додаток

У наступних розділах ми демонструємо складні приклади використання, як-от вставка тексту, руки та відображення, щоб підкреслити можливості моделі Titan Image Generator. Ми також включаємо зразки вихідних зображень, створених у попередніх прикладах.

текст

Модель Titan Image Generator відмінно справляється зі складними робочими процесами, такими як вставка читабельного тексту в зображення. Цей приклад демонструє здатність Titan чітко відображати великі та малі літери в узгодженому стилі на зображенні.

коргі в бейсболці з текстом «genai» щасливий хлопчик показує великий палець у футболці з написом «generative AI»

Руки

Модель Titan Image Generator також має можливість створювати детальні зображення AI. На зображенні показані реалістичні руки та пальці з видимими деталями, що виходить за рамки більш простого створення зображень штучного інтелекту, якому може бракувати такої специфічності. У наступних прикладах зверніть увагу на точне зображення пози та анатомії.

рука людини, погляд зверху уважний погляд на руки людини, що тримає чашку кави

Mirror

Зображення, створені моделлю Titan Image Generator, просторово впорядковують об’єкти та точно відображають дзеркальні ефекти, як показано в наступних прикладах.

Милий пухнастий білий кіт стоїть на задніх лапах і з цікавістю вдивляється в ошатне золоте дзеркало. У відображенні кішка бачить себе красиве небо озеро з відображеннями на воді

Зображення синтетичних продуктів

Нижче наведено зображення продуктів, створені раніше в цьому дописі для моделі Titan Multimodal Embeddings.

spot_img

Остання розвідка

spot_img

Зв'яжіться з нами!

Привіт! Чим я можу вам допомогти?