{"id":13456116,"url":"https://github.com/longd3/mj-remit","last_synced_at":"2025-03-24T09:31:26.289Z","repository":{"id":188690086,"uuid":"608502304","full_name":"longd3/mj-remit","owner":"longd3","description":"a Discord bot that allows anyone on a server to interact with Midjourney Bot","archived":false,"fork":false,"pushed_at":"2023-03-11T08:02:26.000Z","size":15,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-28T23:33:50.349Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/longd3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-03-02T06:30:34.000Z","updated_at":"2023-05-25T01:58:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d0df1e85-c9b6-4d9b-a4e1-2d5046771a5e","html_url":"https://github.com/longd3/mj-remit","commit_stats":null,"previous_names":["longd3/mj-remit"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longd3%2Fmj-remit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longd3%2Fmj-remit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longd3%2Fmj-remit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longd3%2Fmj-remit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longd3","download_url":"https://codeload.github.com/longd3/mj-remit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245243286,"owners_count":20583601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T08:01:16.408Z","updated_at":"2025-03-24T09:31:25.991Z","avatar_url":"https://github.com/longd3.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"### MISSION\na Discord bot that serves as\n- proxy commander: forward imagine, upscale, variate, and reroll interactions to a [paid Midjourney account](https://docs.midjourney.com/docs/plans)\n- reactive listener: collect output messages from Midjourney Bot then process accordingly (interpret/persist/broadcast)\n\n### GETTING STARTED\n- Make a Discord bot, so called **mjr-bot**, [get its token and install it into your Discord server](https://www.writebots.com/discord-bot-token/) of choice\n- Grab [the Discord user token](https://linuxhint.com/get-discord-token/) of the Discord account that is [on a paid subscription to Midjourney](https://docs.midjourney.com/docs/plans)\n- Clone .env-without-consul.example into your own .env and fill in correct values\n  ```bash\n  cp .env-without-consul.example .env\n  vi .env\n  ```\n- Install requirements (preferably within a virtualenv of python 3.11)\n  ```bash\n  pip3 install -r requirements.txt \n  ```\n- Run the main program \n  ```bash\n  python3 main.py\n  ```\n- In a Discord channel where the **mjr-bot** is invited to, invoke command \n\n   ```/lucky_imagine: a hippo is skating on an ice field, ultra realistic```\n  \n### CONTAINERIZATION\n- Build docker image\n  ```bash\n  docker build -t mj-remit:latest -f Dockerfile .\n  ```\n- Run within a container\n  ```bash\n  docker run -d -ti --name mj-remit-prod --restart=always --env-file=.env --network=\"host\" mj-remit:latest\n  ```\n\n### DEVOPS NOTES\n- I use [consul](https://www.consul.io/) as the secret keeper here (check the example) but apparently you can run with your .env so please ignore the consul-example.json and .env-with-consul.example if not applicable\n- More work needs to be done to handle the queue limits stated in Midjourney Standard/Pro plan https://docs.midjourney.com/docs/plans\n- Feel free to make your own docker-compose.yml to incorporate all dependent services like mongodb and rabbitmq to simplify the deployment to production\n\n### DEFAULT SETTINGS\n- `BROADCAST_AND_PERSIST_ENABLED = False` means results are not persisted to db / published to msg queue. If you change this value to `True`, be sure to configure your mongodb \u0026 rabbitmq correctly.\n- `USE_MESSAGED_CHANNEL = True` means mjr bot will post the results into which ever guild-channel it was talked to, so in case of private channels, be sure it's invited \u0026 granted permissions to\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongd3%2Fmj-remit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flongd3%2Fmj-remit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongd3%2Fmj-remit/lists"}