{"id":13600213,"url":"https://github.com/igolaizola/bulkai","last_synced_at":"2025-04-12T23:40:47.490Z","repository":{"id":93057792,"uuid":"600873881","full_name":"igolaizola/bulkai","owner":"igolaizola","description":"AI image generation in bulk automatically","archived":false,"fork":false,"pushed_at":"2025-03-13T20:46:47.000Z","size":8321,"stargazers_count":213,"open_issues_count":23,"forks_count":43,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-12T23:40:02.427Z","etag":null,"topics":["automation","bluewillow","bulk","golang","midjourney"],"latest_commit_sha":null,"homepage":"","language":"Go","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/igolaizola.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"igolaizola","custom":["https://ko-fi.com/igolaizola","https://buymeacoffee.com/igolaizola","https://paypal.me/igolaizola"]}},"created_at":"2023-02-12T21:02:22.000Z","updated_at":"2025-04-10T11:24:05.000Z","dependencies_parsed_at":"2023-03-14T15:45:31.023Z","dependency_job_id":"fba5211f-4a8f-4893-a239-580f17b54700","html_url":"https://github.com/igolaizola/bulkai","commit_stats":{"total_commits":70,"total_committers":3,"mean_commits":"23.333333333333332","dds":0.08571428571428574,"last_synced_commit":"1f213fecab12e736e38d2434cc52caab5dc54ff7"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igolaizola%2Fbulkai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igolaizola%2Fbulkai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igolaizola%2Fbulkai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igolaizola%2Fbulkai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igolaizola","download_url":"https://codeload.github.com/igolaizola/bulkai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647254,"owners_count":21139081,"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":["automation","bluewillow","bulk","golang","midjourney"],"created_at":"2024-08-01T18:00:32.279Z","updated_at":"2025-04-12T23:40:47.456Z","avatar_url":"https://github.com/igolaizola.png","language":"Go","funding_links":["https://github.com/sponsors/igolaizola","https://ko-fi.com/igolaizola","https://buymeacoffee.com/igolaizola","https://paypal.me/igolaizola","https://www.paypal.me/igolaizola"],"categories":["Go"],"sub_categories":[],"readme":"# bulkai 🤖🎨\n\n**bulkai** is a tool to generate AI images in bulk\n\n\u003e 📢 Connect with us! Join our Telegram group for support and collaboration: [t.me/igohub](https://t.me/igohub)\n\n\u003e [!TIP]\n\u003e\n\u003e ## 🌟 Looking for a No-Code Solution?\n\u003e\n\u003e **[Midjourney Automation Actor](https://apify.com/igolaizola/midjourney-automation)** - all the power of bulkai with zero setup!\n\u003e\n\u003e - 🎯 No CLI or technical setup required\n\u003e - 🖥️ Simple web interface\n\u003e - 🔄 Automatic image generation \u0026 upscaling\n\u003e - 📊 Concurrent job processing\n\u003e - 📁 Built-in image gallery\n\u003e - ☁️ Cloud-based - run from anywhere\n\u003e\n\u003e Starting at $19/month. Perfect for users who want to skip the technical setup and get straight to generating images.\n\u003e\n\u003e [Get Started with Midjourney Automation →](https://apify.com/igolaizola/midjourney-automation)\n\n## 🚀 Features\n\n**bulkai** works with the following AI image generators:\n\n- Midjourney\n- Bluewillow\n\n**bulkai** automates the following tasks:\n\n- Send prompts to the AI\n- Upscale the generated images\n- Or crop the preview images if upscale is disabled\n- Optionally, generate variations of the generated images\n- Download the generated images\n- Create thumbnails\n- Generate a HTML album page with the generated images\n\n## 📦 Installation\n\nYou can use the golang binary to install **bulkai**:\n\n```bash\ngo install github.com/igolaizola/bulkai/cmd/bulkai@latest\n```\n\nOr you can download the binary from the [releases](https://github.com/igolaizola/bulkai/releases)\n\n## 🕹️ Usage\n\n### 1. Create session (only for the first time)\n\nYou first need to create a session file with the discord credentials and other information retrieved from your browser.\n**bulkai** needs this to:\n\n- Be able to login to Discord\n- Mimic the browser and avoid being detected as a bot\n\nUse the `bulkai create-session` command to create the session file.\nIt will open a chrome window and you will need to login to Discord.\n\n```bash\nbulkai create-session\n```\n\n### 2. Configure settings\n\nYou can configure different settings.\nSee the parameters section to see all available options: [Parameters](#parameters)\n\nUsing a configuration file in YAML format:\n\n```bash\nbulkai generate --config bulkai.yaml\n```\n\nbulkai.yaml\n\n```yaml\nbot: midjourney\nalbum: cute-animals\ndownload: true\nupscale: true\nvariation: false\nthumbnail: true\nsuffix: \" --ar 3:2\"\nprompt:\n  - cute-animals-1.txt\n  - cute-animals-2.txt\n  - cute monkey dancing on a tree\n```\n\n### 2. Launch\n\nUse the `bulkai generate` command to launch the generation.\nImages will be downloaded to the album name in the output directory specified in the configuration file.\nYou will be able to see the progress in the console.\nThis task can take a long time depending on the number of images to generate.\n\n```bash\nbulkai generate\n```\n\nYou can press `Ctrl+C` to stop the generation.\nIf you want to resume the generation, just press launch the command again using the same settings and album name.\nPrompt field will be ignored and the prompts will be loaded from the album.\n\n## 🛠️ Parameters\n\nHere is a list of all the parameters available to run the image generation.\n\n- `bot` (string): Name of the bot to use.\n  Available options are: `midjourney` and `bluewillow`. (required)\n- `download` (bool): Download the generated images. (default: `true`)\n- `upscale` (bool): Upscale the generated images. (default: `true`)\n  If you disable this the generation will be much faster.\n  It will directly use the preview images generated by the AI.\n  In midjourney for example, the preview images are 256x256.\n- `variation` (bool): Generate variations of the generated images. (default: `false`)\n  This will generate 4 extra variations of each prompt.\n  The generation will be much slower.\n- `thumbnail` (bool): Generate thumbnails of the generated images. (default: `true`)\n  This operation is done locally, it will improve the performance of the HTML page.\n- `html` (bool): Generate HTML files to show and link the generated images. (default: `true`)\n- `suffix` (string): Suffix to add to all prompts. (optional)\n- `prefix` (string): Prefix to add to all prompts. (optional)\n- `prompt` (list): List of prompts to use. (required)\n  If you want include prompts from a file, just write the path to the file.\n- `album` (string): Name of the album. (optional, but recommended)\n  If unset a time based name will be used.\n- `output` (string): Path to the output directory. (default: `./output`)\n- `session` (string): Path to the session file. (default: `./session.json`)\n- `channel` (string): ID of the channel to use in the form `guild-id/channel-id`. (optional)\n  You can obtain it from the URL of the channel in discord web.\n  If unset the DM chat with the bot will be used.\n- `proxy` (string): Proxy to use in HTTP calls. (optional)\n- `concurrency` (int): How many prompts can be running at the same time. (optional)\n  If unset the maximum for the bot will be used.\n- `wait` (duration): Time to wait between prompts, for example `5s`. (optional)\n  There is already a rate limit implemented to avoid sending too many requests to discord.\n- `midjourney-cdn` (bool): Use Midjourney CDN for URLs instead of Discord CDN URLs. (default: `false`)\n- `debug` (bool): Enable debug mode. (default: `false`)\n\n## ❓ FAQ\n\n### Do I need to generate a new session every time I want to use use **bulkai**?\n\nNo, you only need to generate a new session if you want to use a different account.\n\n### Do I need to enable relaxed mode?\n\nIt is up to you to use relaxed or fast mode.\nJust keep in mind that if you use fast mode with a lot of prompts, you may consume your quota very quickly.\n\n### I'm getting `couldn't find dm channel for bot` error\n\nYou must manually join the discord server of the bot you want to use.\nThen you have to open a DM chat with the bot.\nAlternatively, you can specify the channel to use in the form `guild/channel`.\nThe bot must be available in the channel you specify.\n\n## ⚠️ Disclaimer\n\nThe automation of User Discord accounts also known as self-bots is a violation of Discord Terms of Service \u0026 Community guidelines and will result in your account(s) being terminated.\n\nThe automation of Midjourney and Bluewillow accounts is also a violation of their Terms of Service and will result in your account(s) being terminated.\n\nRead about Discord, Midjourney and Bluewillow Terms of Service and Community Guidelines\n\n**bulkai** was written as a proof of concept and the code has been released for educational purposes only.\nThe authors are released of any liabilities which your usage may entail.\n\n## 💖 Support\n\nIf you have found my code helpful, please give the repository a star ⭐\n\nAdditionally, if you would like to support my late-night coding efforts and the coffee that keeps me going, I would greatly appreciate a donation.\n\nYou can invite me for a coffee at ko-fi (0% fees):\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/igolaizola)\n\nOr at buymeacoffee:\n\n[![buymeacoffee](https://user-images.githubusercontent.com/11333576/223217083-123c2c53-6ab8-4ea8-a2c8-c6cb5d08e8d2.png)](https://buymeacoffee.com/igolaizola)\n\nDonate to my PayPal:\n\n[paypal.me/igolaizola](https://www.paypal.me/igolaizola)\n\nSponsor me on GitHub:\n\n[github.com/sponsors/igolaizola](https://github.com/sponsors/igolaizola)\n\nOr donate to any of my crypto addresses:\n\n- BTC `bc1qvuyrqwhml65adlu0j6l59mpfeez8ahdmm6t3ge`\n- ETH `0x960a7a9cdba245c106F729170693C0BaE8b2fdeD`\n- USDT (TRC20) `TD35PTZhsvWmR5gB12cVLtJwZtTv1nroDU`\n- USDC (BEP20) / BUSD (BEP20) `0x960a7a9cdba245c106F729170693C0BaE8b2fdeD`\n- Monero `41yc4R9d9iZMePe47VbfameDWASYrVcjoZJhJHFaK7DM3F2F41HmcygCrnLptS4hkiJARCwQcWbkW9k1z1xQtGSCAu3A7V4`\n\nThanks for your support!\n\n## 📚 Resources\n\nSome of the resources I used to create this project:\n\n- [bwmarrin/discordgo](https://github.com/bwmarrin/discordgo) to retrieve events from Discord.\n- [Danny-Dasilva/CycleTLS](https://github.com/Danny-Dasilva/CycleTLS) to mimic the browser and avoid being detected as a bot.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figolaizola%2Fbulkai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figolaizola%2Fbulkai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figolaizola%2Fbulkai/lists"}