प्लेटो डेटा इंटेलिजेंस।
लंबवत खोज और एआई।

छवि निर्माण, संपादन और खोज के लिए अमेज़ॅन टाइटन मॉडल का उपयोग करें अमेज़न वेब सेवाएँ

दिनांक:

अमेज़ॅन बेडरॉक अमेज़ॅन और अन्य प्रमुख एआई कंपनियों सहित उच्च प्रदर्शन वाले फाउंडेशन मॉडल की एक विस्तृत श्रृंखला प्रदान करता है anthropic, AI21, मेटा, जुटना, तथा स्थिरता एआई, और उपयोग के मामलों की एक विस्तृत श्रृंखला को कवर करता है, जिसमें पाठ और छवि निर्माण, खोज, चैट, तर्क और अभिनय एजेंट और बहुत कुछ शामिल हैं। नई अमेज़ॅन टाइटन इमेज जेनरेटर मॉडल सामग्री निर्माताओं को सरल अंग्रेजी पाठ संकेतों का उपयोग करके जल्दी से उच्च-गुणवत्ता, यथार्थवादी छवियां उत्पन्न करने की अनुमति देता है। उन्नत एआई मॉडल कई वस्तुओं के साथ जटिल निर्देशों को समझता है और उपयुक्त स्टूडियो-गुणवत्ता वाली छवियां लौटाता है विज्ञापन, ईकॉमर्स, और मनोरंजन. मुख्य विशेषताओं में संकेतों पर पुनरावृत्ति, स्वचालित पृष्ठभूमि संपादन और एक ही दृश्य के कई रूप उत्पन्न करके छवियों को परिष्कृत करने की क्षमता शामिल है। निर्माता एक विशिष्ट शैली में ऑन-ब्रांड छवियों को आउटपुट करने के लिए अपने स्वयं के डेटा के साथ मॉडल को अनुकूलित भी कर सकते हैं। महत्वपूर्ण बात यह है कि टाइटन इमेज जेनरेटर में प्रोत्साहित करने के लिए सभी एआई-जनरेटेड छवियों पर अदृश्य वॉटरमार्क जैसे अंतर्निहित सुरक्षा उपाय हैं। जिम्मेदार उपयोग और दुष्प्रचार के प्रसार को कम करें। यह नवोन्मेषी तकनीक बड़ी मात्रा में कस्टम छवियां तैयार करती है कोई भी उद्योग अधिक सुलभ और कुशल.

नई अमेज़ॅन टाइटन मल्टीमॉडल एंबेडिंग मॉडल पाठ, छवियों या दोनों को समझकर अधिक सटीक खोज और अनुशंसाएँ बनाने में मदद करता है। यह छवियों और अंग्रेजी पाठ को सिमेंटिक वैक्टर में परिवर्तित करता है, आपके डेटा में अर्थ और संबंधों को कैप्चर करता है। आप आइटम को अधिक प्रभावी ढंग से पहचानने के लिए उत्पाद विवरण और फ़ोटो जैसे टेक्स्ट और छवियों को जोड़ सकते हैं। वेक्टर त्वरित, सटीक खोज अनुभव प्रदान करते हैं। टाइटन मल्टीमॉडल एंबेडिंग वेक्टर आयामों में लचीली है, जो प्रदर्शन आवश्यकताओं के लिए अनुकूलन को सक्षम बनाती है। एक अतुल्यकालिक एपीआई और अमेज़न ओपन सर्च सर्विस कनेक्टर मॉडल को आपके तंत्रिका खोज अनुप्रयोगों में एकीकृत करना आसान बनाता है।

इस पोस्ट में, हम AWS Python SDK के माध्यम से टाइटन इमेज जेनरेटर और टाइटन मल्टीमॉडल एंबेडिंग मॉडल का उपयोग करने के तरीके के बारे में जानेंगे।

छवि निर्माण और संपादन

इस अनुभाग में, हम नई छवियां बनाने और मौजूदा छवियों पर एआई-संचालित संपादन करने के लिए एडब्ल्यूएस एसडीके का उपयोग करने के लिए बुनियादी कोडिंग पैटर्न प्रदर्शित करते हैं। Python में कोड उदाहरण दिए गए हैं और इसमें JavaScript (Node.js) भी उपलब्ध है गिटहब भंडार.

इससे पहले कि आप अमेज़ॅन बेडरॉक एपीआई का उपयोग करने वाली स्क्रिप्ट लिख सकें, आपको अपने वातावरण में एडब्ल्यूएस एसडीके का उचित संस्करण स्थापित करना होगा। पायथन स्क्रिप्ट के लिए, आप इसका उपयोग कर सकते हैं अजगर के लिए AWS SDK (Boto3). पायथन उपयोगकर्ता भी इसे इंस्टॉल करना चाह सकते हैं तकिया मॉड्यूल, जो छवियों को लोड करने और सहेजने जैसे छवि संचालन की सुविधा प्रदान करता है। सेटअप निर्देशों के लिए, देखें गिटहब भंडार.

इसके अतिरिक्त, अमेज़ॅन टाइटन इमेज जेनरेटर और टाइटन मल्टीमॉडल एंबेडिंग मॉडल तक पहुंच सक्षम करें। अधिक जानकारी के लिए देखें मॉडल पहुंच.

सहायक कार्य

निम्नलिखित फ़ंक्शन अमेज़ॅन बेडरॉक बोटो3 रनटाइम क्लाइंट को सेट करता है और विभिन्न कॉन्फ़िगरेशन के पेलोड लेकर छवियां उत्पन्न करता है (जिसके बारे में हम इस पोस्ट में बाद में चर्चा करेंगे):

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 टाइटन इमेज जेनरेटर मॉडल को लागू करने के लिए क्लाइंट।
  3. प्रतिक्रिया को पार्स करें और डिकोड करें।
  4. परिणामी छवियों को डिस्क पर सहेजें।

टेक्स्ट-टू-इमेज

टाइटन इमेज जेनरेटर मॉडल के लिए एक विशिष्ट छवि निर्माण स्क्रिप्ट निम्नलिखित है:

# 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 कुत्ते सड़क पर घूम रहे हैं

किसी मौजूदा छवि को संपादित करें

टाइटन इमेज जेनरेटर मॉडल आपको मौजूदा छवि के भीतर तत्वों या क्षेत्रों को जोड़ने, हटाने या बदलने की अनुमति देता है। आप निम्नलिखित में से कोई एक प्रदान करके निर्दिष्ट करते हैं कि किस क्षेत्र को प्रभावित करना है:

  • मुखौटा छवि - एक मुखौटा छवि एक द्विआधारी छवि है जिसमें 0-मान पिक्सेल उस क्षेत्र का प्रतिनिधित्व करते हैं जिसे आप प्रभावित करना चाहते हैं और 255-मान पिक्सेल उस क्षेत्र का प्रतिनिधित्व करते हैं जो अपरिवर्तित रहना चाहिए।
  • मास्क प्रॉम्प्ट - मास्क प्रॉम्प्ट उन तत्वों का एक प्राकृतिक भाषा पाठ विवरण है जिसे आप प्रभावित करना चाहते हैं, जो इन-हाउस टेक्स्ट-टू-सेगमेंटेशन मॉडल का उपयोग करता है।

अधिक जानकारी के लिए, देखें शीघ्र इंजीनियरिंग दिशानिर्देश.

किसी छवि पर संपादन लागू करने वाली स्क्रिप्ट इस कार्यान्वयन पैटर्न का पालन करती हैं:

  1. संपादित की जाने वाली छवि को डिस्क से लोड करें.
  2. छवि को बेस64-एन्कोडेड स्ट्रिंग में बदलें।
  3. निम्नलिखित विधियों में से किसी एक के माध्यम से मास्क को कॉन्फ़िगर करें:
    1. डिस्क से एक मास्क छवि लोड करें, इसे बेस64 के रूप में एन्कोड करें और इसे इस रूप में सेट करें maskImage पैरामीटर।
    2. ठीक maskText प्रभावित करने वाले तत्वों के पाठ विवरण के लिए पैरामीटर।
  4. निम्नलिखित विकल्पों में से किसी एक का उपयोग करके उत्पन्न की जाने वाली नई सामग्री निर्दिष्ट करें:
    1. किसी तत्व को जोड़ने या बदलने के लिए, सेट करें text नई सामग्री के विवरण के लिए पैरामीटर.
    2. किसी तत्व को हटाने के लिए, इसे छोड़ें text पैरामीटर पूरी तरह से.
  5. उपयोग BedrockRuntime टाइटन इमेज जेनरेटर मॉडल को लागू करने के लिए क्लाइंट।
  6. प्रतिक्रिया को पार्स करें और डिकोड करें।
  7. परिणामी छवियों को डिस्क पर सहेजें।

ऑब्जेक्ट एडिटिंग: मास्क इमेज के साथ इनपेंटिंग

टाइटन इमेज जेनरेटर मॉडल का उपयोग करने के लिए निम्नलिखित एक विशिष्ट छवि संपादन स्क्रिप्ट है 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 कुत्ते सड़क पर घूम रहे हैं एक कुत्ता सड़क पर चल रहा है

पृष्ठभूमि संपादन: आउटपेंटिंग

जब आप किसी छवि की पृष्ठभूमि बदलना चाहते हैं तो आउटपेंटिंग उपयोगी होती है। आप ज़ूम-आउट प्रभाव के लिए किसी छवि की सीमाएँ भी बढ़ा सकते हैं। निम्नलिखित उदाहरण स्क्रिप्ट में, हम उपयोग करते हैं maskPrompt यह निर्दिष्ट करने के लिए कि कौन सी वस्तु रखनी है; आप भी उपयोग कर सकते हैं maskImage। पैरामीटर outPaintingMode निर्दिष्ट करता है कि मास्क के अंदर पिक्सेल के संशोधन की अनुमति दी जाए या नहीं। यदि के रूप में सेट किया गया है DEFAULT, मास्क के अंदर के पिक्सेल को संशोधित करने की अनुमति है ताकि पुनर्निर्मित छवि समग्र रूप से सुसंगत रहे। यह विकल्प अनुशंसित है यदि maskImage बशर्ते ऑब्जेक्ट को पिक्सेल-स्तरीय परिशुद्धता के साथ प्रस्तुत नहीं किया गया है। यदि के रूप में सेट किया गया है PRECISE, मास्क के अंदर पिक्सेल के संशोधन को रोका जाता है। यदि का उपयोग कर रहे हों तो इस विकल्प की अनुशंसा की जाती है 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 जो ऑब्जेक्ट को पिक्सेल-स्तरीय परिशुद्धता के साथ रेखांकित नहीं करता है, वे इस प्रकार हैं।

इस अनुभाग में आपको उन ऑपरेशनों का अवलोकन दिया गया है जो आप टाइटन इमेज जेनरेटर मॉडल के साथ कर सकते हैं। विशेष रूप से, ये स्क्रिप्ट टेक्स्ट-टू-इमेज, छवि भिन्नता, इनपेंटिंग और आउटपेंटिंग कार्यों को प्रदर्शित करती हैं। आपको उन कार्य प्रकारों के लिए पैरामीटर विवरण का संदर्भ देकर अपने स्वयं के अनुप्रयोगों के लिए पैटर्न को अनुकूलित करने में सक्षम होना चाहिए अमेज़ॅन टाइटन इमेज जेनरेटर दस्तावेज़ीकरण.

मल्टीमॉडल एम्बेडिंग और खोज

आप छवि खोज और समानता-आधारित अनुशंसा जैसे एंटरप्राइज़ कार्यों के लिए अमेज़ॅन टाइटन मल्टीमॉडल एंबेडिंग मॉडल का उपयोग कर सकते हैं, और इसमें अंतर्निहित शमन है जो खोज परिणामों में पूर्वाग्रह को कम करने में मदद करता है। विभिन्न आवश्यकताओं के लिए सर्वोत्तम विलंबता/सटीकता ट्रेड-ऑफ के लिए कई एम्बेडिंग आयाम आकार हैं, और डेटा सुरक्षा और गोपनीयता को बनाए रखते हुए सभी को आपके अपने डेटा के अनुकूल बनाने के लिए एक सरल एपीआई के साथ अनुकूलित किया जा सकता है। अमेज़ॅन टाइटन मल्टीमॉडल एंबेडिंग को वास्तविक समय या एसिंक्रोनस बैच ट्रांसफ़ॉर्म खोज और अनुशंसा अनुप्रयोगों के लिए सरल एपीआई के रूप में प्रदान किया जाता है, और इसे विभिन्न वेक्टर डेटाबेस से जोड़ा जा सकता है, जिसमें शामिल हैं अमेज़न ओपन सर्च सर्विस.

सहायक कार्य

निम्नलिखित फ़ंक्शन एक छवि और वैकल्पिक रूप से टेक्स्ट को मल्टीमॉडल एम्बेडिंग में परिवर्तित करता है:

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())

निम्न फ़ंक्शन क्वेरी मल्टीमॉडल एंबेडिंग को देखते हुए शीर्ष समान मल्टीमॉडल एंबेडिंग लौटाता है। ध्यान दें कि व्यवहार में, आप प्रबंधित वेक्टर डेटाबेस का उपयोग कर सकते हैं, जैसे ओपनसर्च सेवा। निम्नलिखित उदाहरण चित्रण प्रयोजनों के लिए है:

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]

सिंथेटिक डेटासेट

चित्रण प्रयोजनों के लिए, हम उपयोग करते हैं अमेज़ॅन बेडरॉक में एंथ्रोपिक का क्लाउड 2.1 मॉडल निम्नलिखित प्रॉम्प्ट का उपयोग करके, बेतरतीब ढंग से सात अलग-अलग उत्पाद उत्पन्न करने के लिए, प्रत्येक तीन वेरिएंट के साथ:

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. फिर हम प्रत्येक आइटम के लिए उत्पाद छवियां बनाने के लिए टाइटन इमेज जेनरेटर मॉडल का उपयोग करते हैं:

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))

निम्नलिखित कुछ खोज परिणाम हैं.

निष्कर्ष

पोस्ट अमेज़ॅन टाइटन इमेज जेनरेटर और अमेज़ॅन टाइटन मल्टीमॉडल एंबेडिंग मॉडल पेश करता है। टाइटन इमेज जेनरेटर आपको टेक्स्ट प्रॉम्प्ट से कस्टम, उच्च गुणवत्ता वाली छवियां बनाने में सक्षम बनाता है। मुख्य विशेषताओं में संकेतों पर पुनरावृत्ति, स्वचालित पृष्ठभूमि संपादन और डेटा अनुकूलन शामिल हैं। इसमें जिम्मेदार उपयोग को प्रोत्साहित करने के लिए अदृश्य वॉटरमार्क जैसे सुरक्षा उपाय हैं। टाइटन मल्टीमॉडल एंबेडिंग सटीक खोज और अनुशंसाओं को सशक्त बनाने के लिए टेक्स्ट, छवियों या दोनों को सिमेंटिक वैक्टर में परिवर्तित करता है। फिर हमने इन सेवाओं का उपयोग करने के लिए पायथन कोड नमूने प्रदान किए, और टेक्स्ट प्रॉम्प्ट से छवियां उत्पन्न करने और उन छवियों पर पुनरावृत्ति का प्रदर्शन किया; मास्क छवियों या मास्क टेक्स्ट द्वारा निर्दिष्ट तत्वों को जोड़कर, हटाकर या प्रतिस्थापित करके मौजूदा छवियों को संपादित करना; पाठ, छवियों या दोनों से मल्टीमॉडल एम्बेडिंग बनाना; और किसी क्वेरी के लिए समान मल्टीमॉडल एम्बेडिंग की खोज करना। हमने टाइटन मल्टीमॉडल एंबेडिंग का उपयोग करके अनुक्रमित और खोजे गए सिंथेटिक ई-कॉमर्स डेटासेट का उपयोग करके भी प्रदर्शन किया। इस पोस्ट का उद्देश्य डेवलपर्स को अपने अनुप्रयोगों में इन नई एआई सेवाओं का उपयोग शुरू करने में सक्षम बनाना है। कोड पैटर्न कस्टम कार्यान्वयन के लिए टेम्पलेट के रूप में काम कर सकते हैं।

सभी कोड पर उपलब्ध है गिटहब भंडार. अधिक जानकारी के लिए, देखें अमेज़न बेडरॉक यूजर गाइड.


लेखक के बारे में

रोहित मित्तल मल्टी-मॉडल फाउंडेशन मॉडल बनाने वाले अमेज़ॅन एआई में एक प्रधान उत्पाद प्रबंधक हैं। उन्होंने हाल ही में अमेज़ॅन बेडरॉक सेवा के हिस्से के रूप में अमेज़ॅन टाइटन इमेज जेनरेटर मॉडल के लॉन्च का नेतृत्व किया। एआई/एमएल, एनएलपी और सर्च में अनुभवी, वह ऐसे उत्पाद बनाने में रुचि रखते हैं जो नवीन प्रौद्योगिकी के साथ ग्राहकों की समस्याओं का समाधान करते हैं।

डॉ. अश्विन स्वामीनाथन वह एक कंप्यूटर विज़न और मशीन लर्निंग शोधकर्ता, इंजीनियर और प्रबंधक हैं, जिनके पास 12+ वर्षों का उद्योग अनुभव और 5+ वर्षों का शैक्षणिक अनुसंधान अनुभव है। मजबूत बुनियादी सिद्धांत और शीघ्रता से ज्ञान प्राप्त करने तथा नए और उभरते क्षेत्रों में योगदान करने की सिद्ध क्षमता।

डॉ. युशेंग झी अमेज़न एजीआई में प्रिंसिपल एप्लाइड साइंटिस्ट हैं। उनका काम मल्टी-मॉडल फाउंडेशन मॉडल बनाने पर केंद्रित है। एजीआई में शामिल होने से पहले, वह एडब्ल्यूएस में अमेज़ॅन टाइटन इमेज जेनरेटर और अमेज़ॅन टेक्सट्रैक्ट क्वेरीज़ जैसे विभिन्न मल्टी-मोडल एआई विकास का नेतृत्व कर रहे थे।

डॉ हाओ यांग अमेज़न में प्रिंसिपल एप्लाइड साइंटिस्ट हैं। उनकी मुख्य शोध रुचि वस्तु का पता लगाना और सीमित टिप्पणियों के साथ सीखना है। काम के बाहर, हाओ को फ़िल्में देखना, फ़ोटोग्राफ़ी और बाहरी गतिविधियाँ पसंद हैं।

डॉ. डेविड मोडोलो अमेज़ॅन एजीआई में एप्लाइड साइंस मैनेजर हैं, जो बड़े मल्टीमॉडल फाउंडेशनल मॉडल के निर्माण पर काम कर रहे हैं। अमेज़ॅन एजीआई में शामिल होने से पहले, वह एडब्ल्यूएस एआई लैब्स (अमेज़ॅन बेडरॉक और अमेज़ॅन रिकॉग्निशन) में 7 साल तक मैनेजर/लीड थे। काम के अलावा, वह यात्रा करना और किसी भी प्रकार का खेल, विशेषकर फुटबॉल खेलना पसंद करता है।

डॉ. बाइचुआन सन, वर्तमान में एडब्ल्यूएस में सीनियर एआई/एमएल सॉल्यूशंस आर्किटेक्ट के रूप में कार्यरत हैं, जो जेनरेटिव एआई पर ध्यान केंद्रित करते हैं और व्यावहारिक, क्लाउड-आधारित व्यावसायिक समाधान प्रदान करने के लिए डेटा साइंस और मशीन लर्निंग में अपने ज्ञान को लागू करते हैं। प्रबंधन परामर्श और एआई समाधान वास्तुकला में अनुभव के साथ, वह रोबोटिक्स कंप्यूटर विज़न, समय श्रृंखला पूर्वानुमान और भविष्य कहनेवाला रखरखाव सहित कई जटिल चुनौतियों का समाधान करते हैं। उनका काम परियोजना प्रबंधन, सॉफ्टवेयर अनुसंधान एवं विकास और अकादमिक गतिविधियों की ठोस पृष्ठभूमि पर आधारित है। काम के अलावा, डॉ. सन यात्रा करने और परिवार और दोस्तों के साथ समय बिताने में संतुलन का आनंद लेते हैं।

डॉ. काई झू वर्तमान में AWS में क्लाउड सपोर्ट इंजीनियर के रूप में काम करता है, जो ग्राहकों को AI/ML से संबंधित सेवाओं जैसे सेजमेकर, बेडरॉक आदि में समस्याओं में मदद करता है। वह एक सेजमेकर विषय वस्तु विशेषज्ञ हैं। डेटा विज्ञान और डेटा इंजीनियरिंग में अनुभवी, वह जेनरेटिव एआई संचालित परियोजनाओं के निर्माण में रुचि रखते हैं।

क्रिस शुल्त्स विश्व स्तरीय डिजाइन के साथ उभरती प्रौद्योगिकियों को जोड़कर आकर्षक उपयोगकर्ता अनुभवों को जीवंत बनाने में 25 साल से अधिक का समय लगा है। वरिष्ठ उत्पाद प्रबंधक के रूप में अपनी भूमिका में, क्रिस मीडिया और मनोरंजन, गेमिंग और स्थानिक कंप्यूटिंग को सशक्त बनाने के लिए AWS सेवाओं को डिजाइन और निर्माण करने में मदद करता है।


परिशिष्ट

निम्नलिखित अनुभागों में, हम टाइटन इमेज जेनरेटर मॉडल की क्षमताओं को उजागर करने के लिए टेक्स्ट सम्मिलन, हाथ और प्रतिबिंब जैसे चुनौतीपूर्ण नमूना उपयोग के मामलों को प्रदर्शित करते हैं। हम पहले के उदाहरणों में उत्पादित नमूना आउटपुट छवियां भी शामिल करते हैं।

टेक्स्ट

टाइटन इमेज जेनरेटर मॉडल छवियों में पठनीय पाठ डालने जैसे जटिल वर्कफ़्लो में उत्कृष्टता प्राप्त करता है। यह उदाहरण एक छवि के भीतर एक सुसंगत शैली में अपरकेस और लोअरकेस अक्षरों को स्पष्ट रूप से प्रस्तुत करने की टाइटन की क्षमता को प्रदर्शित करता है।

बेसबॉल कैप पहने एक कॉर्गी जिस पर लिखा है "जेनाई" "जनरेटिव एआई" टेक्स्ट वाली टीशर्ट पहने हुए एक खुश लड़का अंगूठा ऊपर उठा रहा है

हाथ

टाइटन इमेज जेनरेटर मॉडल में विस्तृत एआई छवियां उत्पन्न करने की क्षमता भी है। छवि दृश्य विवरण के साथ यथार्थवादी हाथों और उंगलियों को दिखाती है, जो कि अधिक बुनियादी एआई छवि पीढ़ी से परे है जिसमें ऐसी विशिष्टता का अभाव हो सकता है। निम्नलिखित उदाहरणों में, मुद्रा और शरीर रचना के सटीक चित्रण पर ध्यान दें।

ऊपर से देखा गया एक व्यक्ति का हाथ कॉफ़ी मग पकड़े हुए एक व्यक्ति के हाथों को ध्यान से देखें

आईना

टाइटन इमेज जेनरेटर मॉडल द्वारा उत्पन्न छवियां वस्तुओं को स्थानिक रूप से व्यवस्थित करती हैं और दर्पण प्रभावों को सटीक रूप से प्रतिबिंबित करती हैं, जैसा कि निम्नलिखित उदाहरणों में दिखाया गया है।

एक प्यारी रोएँदार सफेद बिल्ली अपने पिछले पैरों पर खड़ी है, उत्सुकता से एक अलंकृत सुनहरे दर्पण में झाँक रही है। प्रतिबिंब में बिल्ली स्वयं को देखती है पानी पर प्रतिबिंब के साथ सुंदर आकाश झील

सिंथेटिक उत्पाद छवियाँ

टाइटन मल्टीमॉडल एंबेडिंग मॉडल के लिए इस पोस्ट में पहले तैयार की गई उत्पाद छवियां निम्नलिखित हैं।

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी

हमारे साथ चैट करें

नमस्ते! मैं आपकी कैसे मदद कर सकता हूँ?