A Node.js CLI for generating AI images with Replicate and saving them to disk.
- Easy to install and use.
- Supports any model on Replicate that has a
prompt
input. Default is Flux Schnell. - Saves all the files to disk for you.
- Includes prediction id and a slug of the prompt in the filename.
- Lets you specify an exact prompt, or specify a subject and roll the dice with random promptmaker prompts.
- Lets you pass arbitrary flags to the model as inputs.
- Automatically adds MediaProvenance metadata to the downloaded image files so you have a record of the model, input, output, etc.
npm i -g aimg
Then grab a Replicate API token and set it in your environment:
export REPLICATE_API_TOKEN="r8_..."
All that is required is a prompt:
aimg "cute cat"
This will generate three images of a cute cat and save them to the current directory.
If your prompt is long, you can put it in a file:
aimg "$(cat prompt.md)"
The default model is Flux Schnell, but you can specify any model with the --model
option.
aimg "cute cat" --model bytedance/sdxl-lightning-4step
This will work for any model on Replicate that takes a prompt
as input and outputs a list of URLs.
Examples:
black-forest-labs/flux-dev
bytedance/sdxl-lightning-4step
stability-ai/stable-diffusion-3
zeke/ziki-flux
β works for Flux fine-tunes too!- more...
The latest version of the model is used unless you specify a version in the format {owner}/{name}:{version}
:
aimg "cute cat" --model zeke/ziki-flux:dadc276a9062240e68f110ca06521752f334777a94f031feb0ae78ae3edca58e
If you want more images, use the --count
option:
aimg "cute cat" --count 20
Any extra flags you pass will be passed along to the model as input. For example, if the model takes an output_format
input, you can pass it like this:
aimg "cute cat" --output_format jpg
If you want generate a different semi-random prompt for each image, specify a subject
and it will use promptmaker to generate random prompts:
aimg --subject "a white cat"
If you specify a subject
, then prompt
is ignored.
If you want to save the images to a specific directory, use the --outputdir
option:
aimg "pink cat" --outputdir "pink-cat"
Hee's an example that loads a prompt from a file, generates 100 images with random "pink cat" prompts, and stuffs them in a specific directory:
aimg --subject "pink cat" --count 100 --outputdir "pink-cat"
--count
: Number of images to generate. Defaults to 3--model
: Model to use. Defaults to stability-ai/stable-diffusion-3--subject
: Subject to pass into promptmaker to generate random prompts