# Image Upload Personalization

Including an image is a common way to personalize a product. The following steps provide a walk-through of setting up a canvas to accommodate an image uploaded via a configuration attribute.

1.) Navigate to Assets, create a new Texture<br>

<figure><img src="/files/nC6hS01SgMMhpTIjsnnd" alt=""><figcaption></figcaption></figure>

2.) From the properties panel, include a '[Canvas Composite](/platform-documentation/project-data/operators/image-operators/canvas-composite.md)' Operator<br>

<figure><img src="/files/JcgVMwYecRbov9Peab59" alt=""><figcaption></figcaption></figure>

3.) From the properties panel, include a '[BlackWhite](/platform-documentation/project-data/operators/image-operators/blackwhite.md)' Operator<br>

<figure><img src="/files/9HE5E0QQnTwxNOayq5EP" alt=""><figcaption></figcaption></figure>

4.) Navigate to Logic Mode, create a Texture Asset Attribute. (It will be named "Logo" for the purposes of this example)<br>

<figure><img src="/files/gFEVHTPUoq8SSEt05tgw" alt=""><figcaption></figcaption></figure>

5.) Create a Rule and name it<br>

<figure><img src="/files/4ihKeiXGZrnUtnehIeUt" alt=""><figcaption></figcaption></figure>

6.) Create a set property Action<br>

<figure><img src="/files/AwcFpLqkymR27lGD63ed" alt="" width="563"><figcaption></figcaption></figure>

7.) Set the sourceImage property of the Canvas Composite Operator as the target<br>

<figure><img src="/files/7HppXEVA7vnrCwQwArb5" alt=""><figcaption></figcaption></figure>

8.) Set the toggle to 'Attribute' and ensure the Logo Attribute is selected<br>

<figure><img src="/files/mwgztsVAXZevvsF8olJA" alt=""><figcaption></figcaption></figure>

9.) On the relevant Material Asset, create a Texture Asset Attribute, using the same name as above.<br>

<figure><img src="/files/gFEVHTPUoq8SSEt05tgw" alt=""><figcaption></figcaption></figure>

10.) Ensure the Logo Texture is assigned to a slot on the Material (Base Image is used in this example)<br>

<figure><img src="/files/49j5m1nzEjwbRSAMEQhe" alt="" width="563"><figcaption></figcaption></figure>

11.) On the relevant Model, create a Texture Asset Attribute, using the same name as above<br>

<figure><img src="/files/gFEVHTPUoq8SSEt05tgw" alt=""><figcaption></figcaption></figure>

12.) Ensure the relevant Material is referenced on the appropriate mesh node<br>

<figure><img src="/files/3IyQk4k7IlJibNtthzwn" alt=""><figcaption></figcaption></figure>

13.) Create the Catalog Item and include an Image Upload Attribute<br>

<figure><img src="/files/HmbueDhTKJIfafyxXFku" alt=""><figcaption></figcaption></figure>

14.) Associate the appropriate Model with the Catalog Item<br>

<figure><img src="/files/pHFVnJHtqprRysSabfLn" alt="" width="500"><figcaption></figcaption></figure>

15.) Test


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://community.threekit.com/learn/workflows/image-upload-personalization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
