Skip to content

coltenthefirst/image-to-roblox

Repository files navigation

asset

Images To Roblox Parts

~ Made with Lua, Python, Flask, and Vercel! ~

asset

Images To Roblox Parts (Model-3 Released)


asset

If you use Model-2. Please read this: fix

Introduction

This repository contains the backend source code for the Image To Parts Roblox Game. This tool allows users to convert image URLs into parts within Roblox. Users are free to use the files provided in this repository for their own purposes.

How It Works

Here’s a overview of the process:

  1. Input an image URL and select a quality setting (such as mid, high, low, extra low).
  2. The image URL and selected quality are sent to Vercel.
  3. Vercel downloads the image and runs a Python script based on your selection.
  4. A Lua script is generated and sent back to Roblox, where it is processed into parts that resemble the pixels of your image.

Cloning Vercel and Github

Make sure you make a github account and go to https://vercel.com and make a vercel account by connecting your github account to vercel.

Click This:

Deploy with Vercel

Set "FLASK_APP" as "server.py"
Set "FLASK_ENV" as "development"
Once its deployed. Go to the settings tab of your vercel project, click on General and click on Project Settings.

Overwrite the Build Command as "flask run --host=0.0.0.0 --port=5000"

Overwrite the Install Command as "pip install -r requirements.txt"

You can go back to the Project page and click on the thumbnail preview that says "Not Found", don't worry, this is normal. Once you are on the site, click on the spacing where the url ends and type "/send_image". It should look like "https://your-vercel-project-name.vercel.app/send_image".
Model-2 and below: Go to your copyed Roblox game and open serverscriptservice and open the script "ImageRequestHandler". After that, replace the line "local url = "https://image-to-roblox.vercel.app/send_image"" as your url, like "local url = "https://your-vercel-project-name.vercel.app/send_image"".
Model-3 and higher: Go to your copyed Roblox game and open serverscriptservice and open the module script "ServerlessWebsites". After that, replace the line "Urls.Image = "https://image-to-roblox.vercel.app/send_image"" as your url, like "Urls.Image = "https://your-vercel-project-name.vercel.app/send_image"". You can also replace "Urls.Gif = "https://image-to-roblox.vercel.app/send_gif"" as "Urls.Gif = "https://your-vercel-project-name.vercel.app/send_gif"" (model-3 is unreleased)

Now you're done! You can visit your github profile and you can find the cloned repo, you can edit this repo and do whatever you want with it.

To-Do List

~ EXPECT THESE TO CHANGE!!! ~

Current Tasks (IN ORDER) - Model-3 Planned

  • Placeholder (Other) - Unknown

Completed Tasks

  • Release (Github/Model-1)
  • Frame By Frame Animation Player (Model-2)
  • Faster Image Gen Speed (Model-2)
  • Enhanced image data privacy (Github)
  • Improved support for black and white images and single-color images (Github)
  • Add a frame-by-frame animation player (Model-2)
  • Add a delete button for parts (Model-2)
  • Fix Error 500 (Github/Model-2)
  • Resolve issue with the first pixel not generating (Model-2)
  • Updated README.md (Github) - released
  • Automatic Frame By Frame Animation Player (Github/Model-3)
  • Making A Logo (Github)
  • Color Filters (Model-3)
  • More Customizable Image Options (Model-3)
  • Fix The Frame By Frame Animation Player Bug
  • Fix Other Bugs (Github/Model-3)
  • Updated README.md #2 (Github)
  • Boring Website (Other)

Completed Tasks Since Model-3 Released

  • Placeholder (Other) - Unknown

Videos

Info Video
Model-1 Release: Model-1 YouTube Link
Model-2 Release: Model-2 YouTube Link
Vercel Setup Tutorial: Vercel Setup Tutorial YouTube Link

Game Link

Name Link
Create Your Dreams: Create Your Dreams Roblox Link

You can download the place files here:

Model / Update Download
Update 1/Model-1: Google Drive Link
Update 2/Model-2: Google Drive Link
Update 3/Model-3: Google Drive Link

Uploading Custom Images

For obtaining direct image urls, I recommended to use Postimages.org to obtain a direct link. Other services can be used as long as they provide a direct link.

Tested Image Services

✅ Recommended (Works)

Free, No Account Needed

Free, But Limited Functionality

❌ Not Recommended (Does Not Work)

Reported Outages

Big Server Outage #1 - Server Outage Details

Date and Time:

  • Dec 13th, 4:16 PM CST
    (Same day Model-3 launched)

Incident Summary:

  • The /send_image endpoint was attacked by over 6,200 botted requests in a coordinated DDoS attack.
  • The sudden influx overwhelmed the servers, causing them to crash.

Timeline of Events:

  1. 4:16 PM CST:
    • Attack began with 6.2k botted requests.
  2. 4:18 PM CST:
    • The outage was noticed, and rate-limiting measures were deployed.
  3. 4:18 - 4:40 PM CST:
    • Rate limiting applied to all incoming requests as a mitigation measure.
    • This temporarily disrupted legitimate user traffic.
  4. 4:40 PM CST:
    • Servers were stabilized, and normal operations resumed.

Others will be reported.

FAQ

Q: Does this have a NSFW filter? (All Models and Github)

A: No, this does NOT have a nsfw filter.

-

Q: What happened to the NSFW filter version? (Other)

A: The NSFW filter wasn't very good at detecting NSFW images or NSFW words in images. It was very buggy and was very messy to take care of. The apis also stopped working. Sorry for shutting it down but I couldn't keep working on it anymore. You can always make a fanmade NSFW Filter. Maybe if this project gets known more, then I will make another NSFW filter. Thank you.

-

Q: Do my uploaded images get logged? (All Models and Github)

A: Uploaded images are temporary logged, they cannot be downloaded, viewed, or anything, unless its in Roblox.

-

Q: Will I get banned for using exploit images? (Other)

A: I said before that you won't be banned, but you can be banned. Please be careful when using this in your games.

-

Q: Why is the send gif function split into different files? (Github)

A: Since this whole project is free, I can't edit the timeout time. So I spit the send gif function into different files, so it wouldn't timeout when uploading the frames.

-

Q: Why is the animation player not working? (Model-2)

A: Please read this: fix

-

Q: Why is the animation player not working? (Model-3)

A: Sometimes the api key can get rate limited and for it to work again, you would have to wait a hour. Or you can make another api key, delete the old one, and use the new one. I don't have a fix for this yet but, I could make it send to another image hoster, or I could make a script that checks if the api key works or not, and if it doesn't than what it would do is use another api key. I will fix this in Model-3.5.

-

Q: How can I help on this project? (Other)

A: You can star this project or, dm me on discord if you want to help another way: "unknowingly_exists"

-

License

This project is licensed under the MIT License. You are free to use, modify, and distribute the files in this repository, as long as you include the original license. For more details, see the LICENSE file.

Contributing

Contributions are welcome. If you have suggestions or improvements, please open an issue or submit a pull request.