Custom Brick Set From Your Favorite Photo, Personalized Minifigure, Perfect Memory Gift For Valentine's Day, LEGO Sets

$49.95
$69.95
-$20.00
people are viewing this right now
  • Turn into a Brickset
  • Easy QR Instructions
  • Cherish Your Memories
How many characters? (Include pets if there are any):  Single
Quantity

How to Order Your Brick Set

Please select the number of figures you would like to include in your photo. lf you select 2 figures, but there are 3 in the picture, we will only produce 2.

  1. Pick Your Set: Choose your Brick-single figure or up to six.
  2. Upload Your Photo: Select a clear, high-quality image (front view, full body works best).
  3. Add to Cart: Done? Just check out, and we'll handle the rest!

For the best results, use a photo where the full body is visible so we can capture every detail perfectly!

Can l Add My Pets?

Yes, absolutely! You can include your pets in the customized design.
When selecting the number of figures, make sure to count all the people and pets you want to include.

💥Please note that if the pet you need customized is a large pet like a horse, it will cost an additional $7.99.

Example:

lf you want to add 2 people +1 cat, select the option for "Three".

We can't wait to create a unique set featuring all your loved ones, whether they walk on two legs or four!🐾❤️

Shipping & Refund Policy

Production Time

We take 1-2 days to create your custom design and another 4-5 days to produce your Brick Set, for a total of 5-7 days.

Shipping Time

5-8 days worldwide.

After placing your order, you have 24 hours to request a refund before production starts. Once production begins, refunds are not available.

Before And After

New arrival: Customized Brick Sets

📷All you have to do is just one simple click to upload a photo of your precious moment, and we'll turn it into a unique and dedicated brick set, designed only for you. Let's try this awesome way to save the special moment!

New arrival: Customized Brick Sets

📷All you have to do is just one simple click to upload a photo of your precious moment, and we'll turn it into a unique and dedicated brick set, designed only for you. Let's try this awesome way to save the special moment!

How It Works

1. Upload the Photo

Share your special moment with us by choosing a photo that means a lot to you and upload it.

2. Here Comes the Artwork!

Our professional design team will turn the photo into unique dedicated brick sets, realizing details in the photo.

3. Explore the Assebling Journey

Once you receive the package, scan the QR code on the package to get the tutorial. Then it's time to start your assebling journey! Enjoy your special moment!

To Whom lt Would be a Perfect Gift?

Customer Reviews
Here are what our customers say.
Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.