
FLUX.1 is a state-of-the-art suite of image generation models
Follow the steps below to download and run the NVIDIA NIM inference microservice for this model on your infrastructure of choice.
To access FLUX.1-dev model read and accept FLUX.1-dev, FLUX.1-Canny-dev, FLUX.1-Depth-dev and FLUX.1-dev-onnx License Agreements and Acceptable Use Policy.
Create a new Hugging Face token with Read access to contents of all public gated repos you can access permission.
Export your personal credentials as environment variables:
export NGC_API_KEY=<PASTE_API_KEY_HERE>
export HF_TOKEN=<PASTE_HUGGING_FACE_TOKEN_HERE>
Login to NVIDIA NGC so that you can pull the NIM container:
echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin
Pull and run the NIM with the command below.
# Create the cache directory on the host machine.
export LOCAL_NIM_CACHE=~/.cache/nim
mkdir -p "$LOCAL_NIM_CACHE"
chmod 777 $LOCAL_NIM_CACHE
docker run -it --rm --name=nim-server \
--runtime=nvidia --gpus='"device=0"' \
-e NGC_API_KEY=$NGC_API_KEY \
-e HF_TOKEN=$HF_TOKEN \
-p 8000:8000 \
-v "$LOCAL_NIM_CACHE:/opt/nim/.cache/" \
nvcr.io/nim/black-forest-labs/flux.1-dev:latest
You can specify the desired variant of FLUX by adding -e NIM_MODEL_VARIANT=<you variant>. Available variants are base, canny, depth and their combinations, such as base+depth.
When you run the preceding command, the container downloads the model, initializes a NIM inference pipeline, and performs a pipeline warm up.
A pipeline warm up typically requires up to three minutes. The warm up is complete when the container logs show Pipeline warmup: start/done.
invoke_url="http://localhost:8000/v1/infer"
output_image_path="result.jpg"
response=$(curl -X POST $invoke_url \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A simple coffee shop interior",
"mode": "base",
"seed": 0,
"steps": 50
}')
response_body=$(echo "$response" | awk '/{/,EOF-1')
echo $response_body | jq .artifacts[0].base64 | tr -d '"' | base64 --decode > $output_image_path
For more details on getting started with this NIM including configuring using parameters, visit the Visual GenAI NIM docs.