Prompts: Guiding AI generation with text
How positive and negative prompts steer the generation process, with architecture-specific behavior and practical techniques.
Introduction
Prompts are the primary interface between you and the model. The positivePrompt parameter defines what you want to see, while the optional negativePrompt defines what you want to avoid. Together, they steer the generation process at every step.
Behind the scenes, prompts are processed by a text encoder that converts natural language into numerical representations called embeddings. These embeddings capture semantic meaning, conceptual relationships, and stylistic cues, guiding the model toward (or away from) specific visual concepts during generation.
Positive prompts
The positivePrompt is the only required text parameter. It describes the content, style, composition, and mood you want the model to produce.
An astronaut floating inside a giant hourglass
An astronaut floating inside a giant hourglass in space, surrounded by stars and glowing dust, with galaxies swirling faintly above and golden sand below. Dreamy, surreal, cinematic
A few things affect how your prompt is interpreted:
- Term position matters. Most models give more weight to terms that appear earlier in the prompt. Lead with your subject and key attributes, then add style and atmosphere terms after.
- Specificity drives quality. Vague prompts ("a nice picture") give the model too much freedom. Concrete nouns, adjectives, and spatial relationships ("a red car parked under a cherry blossom tree at sunset") produce more predictable results.
- Style and medium terms work. Terms like "oil painting", "cinematic lighting", "8k", "watercolor", or "low-poly 3D" effectively shift the aesthetic because models have learned strong associations between these terms and their visual representations.
Negative prompts
The negativePrompt parameter specifies what the model should steer away from. It works through the same embedding process as the positive prompt but exerts an opposing influence during generation.
Negative prompts are effective for:
- Removing common artifacts: "blurry, distorted, deformed hands, extra fingers, watermark"
- Excluding unwanted styles: "cartoon, anime, sketch, painting" when you want photorealism
- Avoiding specific elements: "text, logo, frame, border" for clean outputs
[
{
"taskType": "imageInference",
"model": "civitai:101055@128078",
"positivePrompt": "A professional headshot of a woman in a modern office",
"negativePrompt": "blurry, distorted, extra fingers, watermark, text",
"width": 1024,
"height": 1024,
"steps": 30
}
]Not all models support negative prompts. Guidance-distilled models like FLUX use a single-pass inference process that embeds guidance directly into the model weights. Without a separate unconditional prediction to contrast against, the negative prompt has nothing to work against. When using these models, the negativePrompt parameter is accepted by the API but will have no effect on the output. Check the model's architecture to confirm support.
Prompt weighting
By default, every term in your prompt has equal influence. The promptWeighting parameter enables fine-grained control over how strongly individual terms affect the output, letting you boost or suppress specific concepts beyond what term position alone can achieve.
Two syntaxes are available:
Compel syntax
Set promptWeighting to "compel" to use the following notation:
Weighting: increase or decrease attention on specific terms:
-
small+ dog, pixar style: boost "small" -
small dog, (pixar style)-: reduce "pixar style" -
small+++ dog: stronger boost with multiple symbols -
(small+ dog)++: nested weighting -
small dog, (pixar)1.2 style: explicit weight multiplier
Blend: merge multiple conditioning prompts:
-
("small dog", "robot").blend(1, 0.8): blend two concepts with different weights
Conjunction: pass multiple clauses separately to the model:
-
("small dog", "pixar style").and(): each clause processed independently
Compel prompt weighting adds approximately 0.2 seconds to inference time and incurs additional costs.
sdEmbeds syntax
Set promptWeighting to "sdEmbeds" to use parentheses and brackets:
-
(small) dog, pixar style: boost "small" -
small dog, [pixar style]: reduce "pixar style" -
(small:2.5) dog: explicit multiplier -
(small dog:1.5), pixar style: weight a multi-word phrase
Prompt weighting gives finer control than term position alone, letting you precisely balance competing concepts within a single prompt.
The __BLANK__ keyword
When using IP Adapters or FLUX Redux for image variation, you may want the model to focus entirely on the visual reference without any text guidance. Use __BLANK__ as your positivePrompt for this purpose:
[
{
"taskType": "imageInference",
"model": "runware:101@1",
"positivePrompt": "__BLANK__",
"ipAdapters": [{
"guideImage": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"model": "runware:105@1"
}],
"width": 1024,
"height": 1024
}
]This tells the model to rely exclusively on the visual information from the reference image, creating variations without text influence.
Tips
- Front-load the important stuff. Put your subject and key attributes at the beginning of the prompt. Style and atmosphere terms can come later.
- Be specific, not verbose. "A red 1967 Mustang on a coastal road at golden hour" outperforms "A really beautiful amazing car driving on a nice road with great lighting." Concrete beats adjective stacking.
- Use negative prompts for quality control. A standard negative prompt like "blurry, distorted, low quality, watermark" acts as a quality floor across any positive prompt you write. Keep a reusable one for your projects.
- Check architecture support before relying on negative prompts. If your model uses guidance distillation (like FLUX), negative prompts won't have any effect. Focus your effort on the positive prompt instead.
- Iterate on terms, not sentences. When a prompt doesn't produce what you want, swap individual terms rather than rewriting everything. Change "sunset" to "golden hour" or "cinematic" to "dramatic" to isolate what's driving the output.