Midjourney sells a trained image model and the GPUs that serve it quickly; the website around it is the easy part. An agent can wire open FLUX weights into a prompt box and a local gallery over a weekend, and the images are good, but they will not carry Midjourney's look, its personalisation and reference tools, or its speed unless you own a big graphics card. Build the studio below for privacy and volume, not as a lookalike. If you only make a few pictures a month, a $10 Basic plan is cheaper than the hardware.
Before you buildMidjourney has no free plan. To see what open models do before building anything, install ComfyUI or Draw Things first.
Build me a local text-to-image studio to replace Midjourney for everyday image generation. Requirements: - Python 3.11 with FastAPI and a single-page front end in vanilla JS (no build step). `python app.py` serves http://127.0.0.1:7870 and must not bind to any other interface. - Model: FLUX.1 [schnell] (Apache-2.0) through Hugging Face `diffusers` FluxPipeline, 4 steps, guidance 0. Put HF_TOKEN in .env; the weights download once into ./models/ and are reused offline after that. - Device: use CUDA (bfloat16 with enable_model_cpu_offload) or Apple MPS, chosen automatically. If neither exists, stop with a clear message instead of running on the CPU. - Generate page: prompt box, aspect presets (1:1, 3:2, 2:3, 16:9, 9:16, each mapped to a size that is a multiple of 16 near one megapixel), a seed field with a random option, and 1-4 images per request that render one after another with live progress. - A single worker with a queue: a second request waits and shows its position. - Storage: sqlite3 in ./data/gallery.db (prompt, seed, size, model id, seconds taken, file path) with an FTS5 index on prompts. PNGs go to ./data/images/YYYY-MM/ with the settings written into PNG metadata. - Gallery page: infinite-scroll grid, prompt search, favourite, delete (moves the file to ./data/trash/), and "reuse settings" to refill the generate form. - Test: the same prompt, seed and size give the same PNG on the same machine. - Single user. No accounts, no telemetry, local-first; the only outbound call is the first model download. - Out of scope: other models, LoRAs, upscaling, image-to-image, video, sharing, and any attempt to copy Midjourney's look. - README: GPU or memory needs, disk use, the measured seconds per 1024x1024 image on this machine, and an honest note that results will not look like Midjourney's.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Midjourney.
Add batch runs to the image studio in this folder. Requirements: - A Batch page that takes a text file with one prompt per line, a number of seeds per prompt (1-8) and one size preset. - Run the jobs through the existing queue, show progress as done/total, and let me cancel the rest. - Save every image to the gallery with a batch id; add a batch filter and a contact-sheet view. - If a job fails, log the error, skip it and continue. - Update the README.
Add image-to-image to the image studio in this folder. Requirements: - On the Generate page, accept an uploaded or dropped image and a strength slider (0.2-0.95). - Use diffusers FluxImg2ImgPipeline with the same FLUX.1 schnell weights; resize the input to the chosen preset with letterboxing, not stretching. - Store the source image next to the result and show both in the gallery detail view. - Same queue, same metadata; add strength to the stored settings. - Update the README.
Add LoRA support to the image studio in this folder. Requirements: - Scan ./loras/ for .safetensors files and list them on the Generate page, each with a weight slider (0-1.5) and a trigger-word field saved beside it in a JSON sidecar. - Load and unload them per request with diffusers load_lora_weights, never leaving a previous request's LoRA active. - Store the LoRA names and weights in the gallery record and in the PNG metadata. - Show a warning if a LoRA file is incompatible with FLUX.1 schnell instead of crashing. - Update the README with where to put LoRAs and a reminder to read each one's licence.
Subscribers get a polished, consistent look from short prompts, plus tools to steer it, on someone else's GPUs. Comparison write-ups keep reaching the same point: open models have closed much of the gap, but you trade a subscription for setup time, model downloads and prompt tuning.
Estimate · Free on a GPU you own, apart from electricity. Renting one by the hour adds up: Basic costs $10 for about 3.3 hours of Fast time, so heavy use favours owned hardware and light use favours the subscription. The build session is token usage on your agent plan.
Checked 2026-10-14 against Midjourney's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Basic | $10 | $8 | 3.3 hours of Fast GPU time a month (200 minutes), no Relax mode, 3 concurrent Fast image jobs, SD video only. |
| Standard | $30 | $24 | 15 hours of Fast time, unlimited image generations in Relax mode, SD and HD video, 3 concurrent jobs. |
| Pro | $60 | $48 | 30 hours of Fast time, unlimited Relax images and SD video, Stealth Mode, 12 concurrent Fast image jobs. |
| Mega | $120 | $96 | 60 hours of Fast time, unlimited Relax images and SD video, Stealth Mode, 12 concurrent Fast image jobs and 12 Fast videos. |
None. The help center says there is no free trial on the website or in Discord; only the niji journey mobile app has a limited one.
Not really. Subscribers get a polished, consistent look from short prompts, plus tools to steer it, on someone else's GPUs. Comparison write-ups keep reaching the same point: open models have closed much of the gap, but you trade a subscription for setup time, model downloads and prompt tuning. The prompt on this page builds the closest honest substitute.
About $10 a month on the Basic plan, $120 a year (checked 2026-10-14).
The house look: open models need prompt wording, checkpoints or LoRAs to get near it, and results still differ; Personalization profiles, moodboards and style references that steer every image; Fast renders without owning a large GPU; The Editor (remix, vary region) and image-to-video animation; The Explore feed and the rest of the community around the service. If any of those matter to you, keep paying.
Yes: ComfyUI (open source), InvokeAI (open source), SwarmUI (open source).