Skip to main content
Version: User Guides (Cloud)

Image Data

The Zilliz Cloud web UI provides a simplified and intuitive way of creating, running, and managing Pipelines while the RESTful API offers more flexibility and customization compared to the Web UI.

This guide walks you through the necessary steps to create image pipelines, conduct a reverse image search on your embedded image data, and delete the pipeline if it is no longer needed.

Prerequisites and limitations​

  • Ensure you have created a cluster deployed in us-west1 on Google Cloud Platform (GCP).

  • In one project, you can only create up to 100 pipelines of the same type. For more information, refer to Zilliz Cloud Limits.

Ingest image data​

To ingest any data, you need to first create an ingestion pipeline and then run it.

Create image ingestion pipeline​

  1. Navigate to your project.

  2. Click on Pipelines from the navigation panel. Then switch to the Overview tab and click Pipelines. To create a pipeline, click + Pipeline.

    create-pipeline

  3. Choose the type of pipeline to create. Click on + Pipeline button in the Ingestion Pipeline column.

    choose-pipeline

  4. Configure the Ingestion pipeline you wish to create.

    Parameters

    Description

    Target Cluster

    The cluster where a new collection will be automatically created with this Ingestion pipeline. Currently, this can only be a cluster deployed on GCP us-west1.

    Collection Name

    The name of the auto-created collection.

    Pipeline Name

    Name of the new Ingestion pipeline. It should only contain lowercase letters, numbers, and underscores.

    Description (Optional)

    The description of the new Ingestion pipeline.

    configure-ingestion-pipeline

  5. Add an INDEX function to the Ingestion pipeline by clicking + Function. For each Ingestion pipeline, you can add exactly one INDEX function.

    1. Enter function name.

    2. Select INDEX_IMAGE as the function type. An INDEX_IMAGE function can generate vector embeddings for the images in the provided URLs.

    3. Choose the embedding model used to generate vector embeddings. Currently, there are 2 available models: zilliz/vit-base-patch16-224 and zilliz/clip-vit-base-patch32. The following chart briefly introduces each embedding model.

      Embedding Model

      Description

      zilliz/vit-base-patch16-224

      The Vision Transformer (ViT) is a transformer encoder model (BERT-like) open-sourced by Google. The model is pretrained on a large collection of images to embed the semantic of image content to a vector space. The model is hosted on Zilliz Cloud to provide the best latency.

      zilliz/clip-vit-base-patch32

      A multi-modal model released by OpenAI. This vision model and its pairing text model are capable of embedding images and texts into the same vector space, enabling semantic search between visual and textual information. The model is hosted on Zilliz Cloud to provide the best latency.

      add-index-image-function

    4. Click Add to save your function.

  6. (Optional) Continue to add another PRESERVE function if you need to preserve the metadata for your texts. A PRESERVE function adds additional scalar fields to the collection along with data ingestion.

    πŸ“˜Notes

    For each Ingestion pipeline, you can add up to 50 PRESERVE functions.

    1. Click + Function.

    2. Enter function name.

    3. Configure the input field name and type. Supported input field types include Bool, Int8, Int16, Int32, Int64, Float, Double, and VarChar.

      πŸ“˜Notes
      • Currently, the output field name must be identical to the input field name. The input field name defines the field name used when running the Ingestion pipeline. The output field name defines the field name in the vector collection schema where the preserved value is kept.

      • For VarChar fields, the value should be a string with a maximum length of 4,000 alphanumeric characters.

      • When storing date-time in scalar fields, it is recommended to use the Int16 data type for year data, and Int32 for timestamps.

    add-preserve-function

    1. Click Add to save your function.
  7. Click Create Ingestion Pipeline.

  8. Continue creating a Search pipeline and a Deletion pipeline that is auto-configured to be compatible with the just-created Ingestion pipeline.

    auto-create-image-search-and-delete-pipelines

Run image ingestion pipeline​

  1. Click the "β–ΆοΈŽ" button next to your Ingestion pipeline. Alternatively, you can also click on the Playground tab.

    run-pipeline

  2. Input the query image ID and URL in the image_id and image_url fields. If you have added a PRESERVE function, enter the value in the defined preserved field as well. Click Run.

  3. Check the results.

  4. Input other texts to run again.

Search image data​

To search any data, you need to first create a search pipeline and then run it. Unlike Ingestion and Deletion pipelines, when creating a Search pipeline, the cluster and collection are defined at the function level instead of the pipeline level. This is because Zilliz Cloud allows you to search from multiple collections at a time.

There are two ways to search image data: conduct a reverse image search or search image by text.

Create image search pipeline​

  1. Navigate to your project.

  2. Click on Pipelines from the navigation panel. Then switch to the Overview tab and click Pipelines. To create a pipeline, click + Pipeline.

  3. Choose the type of pipeline to create. Click on + Pipeline button in the Search Pipeline column.

    create-search-pipeline

  4. Configure the Search pipeline you wish to create.

    Parameters

    Description

    Pipeline Name

    The name of the new Search pipeline. It should only contain lowercase letters, numbers, and underscores only.

    Description (Optional)

    The description of the new Search pipeline.

    configure-search-pipeline

  5. Add a function to the Search pipeline by clicking + Function. You can add exactly one function.

    1. Enter function name.

    2. Choose Target Cluster and Target collection. The Target Cluster must be a cluster deployed in us-west1 on Google Cloud Platform (GCP). and the Target Collection must be created by an Ingestion pipeline, otherwise the Search pipeline will not be compatible.

    3. Select SEARCH_IMAGE_BY_IMAGE as the Function Type. A SEARCH_IMAGE_BY_IMAGE function can convert the query image to a vector embedding and retrieve topK most similar images.

      add-search-image-function

    4. Click Add to save your function.

  6. Click Create Search Pipeline.

Run image search pipeline​

  1. Click the "β–ΆοΈŽ" button next to your Search pipeline. Alternatively, you can also click on the Playground tab.

    run-pipeline

  2. Input the query image URL. Click Run.

  3. Check the results.

  4. Enter a new query image URL to rerun the pipeline.

Search image by text​

Create image search pipeline​

  1. Navigate to your project.

  2. Click on Pipelines from the navigation panel. Then switch to the Overview tab and click Pipelines. To create a pipeline, click + Pipeline.

  3. Choose the type of pipeline to create. Click on + Pipeline button in the Search Pipeline column.

    create-search-pipeline

  4. Configure the Search pipeline you wish to create.

    Parameters

    Description

    Pipeline Name

    The name of the new Search pipeline. It should only contain lowercase letters, numbers, and underscores only.

    Description (Optional)

    The description of the new Search pipeline.

    configure-search-pipeline

  5. Add a function to the Search pipeline by clicking + Function. You can add exactly one function.

    1. Enter function name.

    2. Choose Target Cluster and Target collection. The Target Cluster must be a cluster deployed in us-west1 on Google Cloud Platform (GCP). and the Target Collection must be created by an Ingestion pipeline, otherwise the Search pipeline will not be compatible.

      πŸ“˜Notes

      The SEARCHIMAGEBY_TEXT function is only available when there is a compatible image ingestion pipeline using the multimodal image model service zilliz/clip-vit-base-patch32.

    3. Select SEARCH_IMAGE_BY_TEXT as the Function Type. A SEARCH_IMAGE_BY_TEXT function can convert the query text to a vector embedding and retrieve topK most similar images.

      If you choose the SEARCH_IMAGE_BY_TEXT function, the multimodal text embedding service zilliz/clip-vit-base-patch32-multilingual-v1 will be used by default to match the corresponding ingestion pipeline and target collection.

      add-search-image-by-text-function

    4. Click Add to save your function.

  6. Click Create Search Pipeline.

Run image search pipeline​

  1. Click the "β–ΆοΈŽ" button next to your Search pipeline. Alternatively, you can also click on the Playground tab.

    run-pipeline

  2. Input the query text. Click Run.

  3. Check the results.

  4. Enter a new query text to rerun the pipeline.

Delete image data​

To delete any data, you need to first create a deletion pipeline and then run it.

πŸ“˜Notes

You must create an Ingestion pipeline first. Upon successful creation of an Ingestion pipeline, you can create a Search pipeline and a Deletion pipeline to work with your newly created Ingestion pipeline.

Create image deletion pipeline​

  1. Navigate to your project.

  2. Click on Pipelines from the navigation panel. Then switch to the Overview tab and click Pipelines. To create a pipeline, click + Pipeline.

  3. Choose the type of pipeline to create. Click on + Pipeline button in the Deletion Pipeline column.

    create-deletion-pipeline

  4. Configure the Deletion pipeline you wish to create.

    Parameters

    Description

    Pipeline Name

    The name of the new Deletion pipeline. It should only contain lowercase letters, numbers, and underscores.

    Description (Optional)

    The description of the new Deletion pipeline.

    configure-deletion-pipeline

  5. Add a function to the Deletion pipeline by clicking + Function. You can add exactly one function.

    1. Enter function name.

    2. Select either PURGE_IMAGE_INDEX or PURGE_BY_EXPRESSION as the Function Type. A PURGE_IMAGE_INDEX function can delete all images with the specified image_id while a PURGE_BY_EXPRESSION function can delete all text entities matching the specified filter expression.

    3. Click Add to save your function.

  6. Click Create Deletion Pipeline.

Run image deletion pipeline​

  1. Click the "β–ΆοΈŽ" button next to your Deletion pipeline. Alternatively, you can also click on the Playground tab.

    run-pipeline

  2. Input the filter expression. Click Run.

  3. Check the results.

Manage pipeline​

The following are relevant operations that manages the created pipelines in the aforementioned steps.

View pipeline​

Click Pipelines on the left navigation. Choose the Pipelines tab. You will see all the available pipelines.

view-pipelines-on-web-ui

Click on a specific pipeline to view its detailed information including its basic information, total usage, functions, and related connectors.

view-pipeline-details

πŸ“˜Notes

The total usage data could delay by a few hours due to technical limitation.

You can also check the pipeline activities on the web UI.

view-pipelines-activities-on-web-ui

Delete pipeline​

If you no longer need a pipeline, you can drop it. Note that dropping a pipeline will not remove the auto-created collection where it ingested data.

🚧Warning
  • Dropped pipelines cannot be recovered. Please be cautious with the action.

  • Dropping a data-ingestion pipeline does not affect the collection created along with the pipeline. Your data is safe.

To drop a pipeline on the web UI, click the ... button under the Actions column. Then click Drop.

delete-pipeline