R Shiny Application/Package to create and manage images using ChatGPT.
This application provides a simple web interface using Shiny to dynamically create images using OpenAI's ChatGPT models.
chatgpt-image-creation-using-r-shiny.mp4
- Requires an OpenAI API Key (create an account and get API Key at https://chat.openai.com)
- Requires the following packages:
- shiny (>= 1.7.4)
- golem (>= 0.3.5)
- shinydashboard (>= 0.7.2)
- openai (>= 0.3.0)
- config (>= 0.3.1)
- testthat (>= 3.0.0)
Step 1 - Download the repository
Step 2 - Open the project file chatgptimages.Rproj in RStudio
Step 3 - Open the run_dev.R file in the dev directory (see Section 5 - Directory Structure if you are unable to locate)
Step 4 - Run the run_dev.R file
Your default browser should open with the application
The application has 4 basic screens to navigate - Instructions, Create Image, Image Gallery, and Settings.
The instructions page is the default page that is shown when the application is run. It provides a complte run down of how to use the application.
In order to use this application a user must have an API Key from OpenAI. This can be done by creating an account from the following link: https://chat.openai.com. Once a user has got their API Key it can be added into the app and saved.
Please Note: Depending on how this application is deployed, the API Keys will be kept in persistant storage. That means they will persist until overwritten, even after shutting down the app. If you are deploying this in a production environment please read the Best practices for API packages.
In the text box, type a description of the image you want ChatGPT to create. The generator can create images in 3 different sizes:
- 256x256
- 512x512
- 1024x1024.
This can be selected in the dropdown box.
Then click the Create Image button. In 2-3 seconds the image will appear.
All images that a user creates will be stored in the gallery.
If you are stuck for inspiration try one of these creation prompts:
1. Oil painting mountains and water
2. watercolor landscape
3. Pointillism trees
4. Futuristic cars
5. Mona Lisa laughing
6. An astronaut riding a horse in a photorealistic style
7. Fantasy artwork
8. Family Christmas photo
9. Painting of a kangaroo cartoon style
10. A funny image that makes me laugh
This project follows the golem/R Packages architecture.
chatgptimages
├── DESCRIPTION
├── NAMESPACE
├── LICENSE
├── LICENSE.md
├── chatgptimages.Rproj
├── .Renviron
├── R
│ ├── app_config.R
│ ├── app_server.R
│ ├── app_ui.R
│ ├── fct_get_filename.R
│ ├── fct_get_images.R
│ ├── fct_get_url.R
│ ├── fct_set_apikey.R
│ ├── golem_utils_server.R
│ ├── golem_utils_ui.R
│ ├── mod_create_image.R
│ ├── mod_input_apikey.R
│ ├── mod_show_gallery.R
│ ├── mod_show_instructions.R
│ └── run_app.R
├── tests
│ ├── testthat
│ │ ├── test-golem_utils_server.R
│ │ ├── test-golem_utils_ui.R
│ │ ├── test-golem-recommended.R
│ │ ├── test-mod_create_image.R
│ │ ├── test-mod_input_apikey.R
│ │ ├── test-mod_show_gallery.R
│ │ └── test-mod_show_instructions
│ ├── spelling.R
│ ├── app_configtestthat.R
├── dev
│ ├── 01_start.R
│ ├── 02_dev.R
│ ├── 03_deploy.R
│ └── run_dev.R
├── inst
│ ├── app
│ │ └── www
│ │ └── favicon.ico
│ ├── golem-config.yml
│ └── WORDLIST
└── man
└── run_app.Rd
Your OpenAI APIKEY key/s should be kept secure and private at all times.
Please follow the best practices guide for API security from OpenAI
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety