@sogni-ai/sogni-creative-agent-skill
Version:
Sogni Creative Agent Skill: agent skill and CLI for Sogni AI image, 3D, speech, video, and music generation.
146 lines (125 loc) • 10.5 kB
Markdown
# Image Prompt Authoring Guide
Read this before writing any image prompt, whether you render it or return it
as text, and run `sogni-agent prompt-guide <model> --mode <generate|edit>` for
the model you chose (free and offline): the families below do not share one
prompt shape. Direct CLI mode
runs no model-aware prompt shaper and has no negative-prompt input, so when you
render, the positive prompt you write is all the model reads; state exclusions
positively in it.
When the creator asks for prompt text as the deliverable, a prompt-only request
does not authorize a render. Require both the exact target model/version and
the operation (`generate` or `edit`). If either is missing, ask for it. If the
exact pair is not registered, report that limitation;
never substitute another destination model's prompt contract.
## GPT Image 2.6 GIFs and annotations
Select `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` explicitly. For a GIF,
describe the action and return to the starting pose, then use `--output-format gif`,
`--image-frame-count 9`, and `--image-frame-duration-ms 200`. Nine frames at 200 ms
give a 1.8-second animation. Add original still images with `-c` to animate a
reference character, photo or artwork. GIFs exclude masks, markup, transparent
background and compression settings. Frames must be 2–16; each edge
is a multiple of 16, and width × height × frames must not exceed 8,294,400.
```bash
sogni-agent -m gpt-image-2.6-flare --output-format gif --width 320 --height 320 --image-quality medium --image-complexity high --image-frame-count 9 --image-frame-duration-ms 200 "A monkey lifts a lantern, blinks, and lowers it to its exact starting pose. Locked camera, seamless loop."
```
`--image-complexity low|medium|high` controls planning separately from rendering
quality. For annotation-guided still edits, use `--image-markup-url` with a
separate transparent PNG matching the first `--context` image after orientation.
Describe the requested edit in the prompt. Do not combine an annotation with a mask.
Use a concrete size and quality when comparing prices. GIF quotes reserve an output
budget and settle downward to confirmed provider usage when lower. Limits checked
November 7, 2026 PT; the live API enforces 16 frames despite the guide's higher limit.
## Output contracts by family
| Target family | Native prompt shape | Output envelope |
| --- | --- | --- |
| SD 1.5 | Weighted or comma-separated tags; quality/medium, subject, environment, lighting/camera | `positive_prompt:` plus `negative_prompt:` |
| SDXL | Hybrid natural language plus selective comma-separated style/quality terms; Pony variants start with their score tags | `positive_prompt:` plus `negative_prompt:` |
| FLUX.1 Schnell | One concise natural-language visual description centered on the subject, composition, light, and style; no SD score/tag soup | Prompt text only |
| FLUX 3 Image Klein | A full scene caption in plain sentences: subject, framing, setting, lighting, and style; name reference contributions by attachment order (the first image, the second image); no negative prompt (guidance is fixed at 1) | Prompt text only |
| Chroma 1 / v.46 / Detail | One coherent natural-language visual description; exact visible text in quotes; no SD score/tag soup | Prompt text only |
| Krea 2 / Krea 2 Turbo | Dense, fluent rich caption emphasizing observable composition, palette, light, texture, and atmosphere; no SD weighting syntax | Prompt text only |
| MOSS-Image SFT | Detailed natural-language caption, tags, or a supplied experimental JSON layout; preserve exact visible text and line breaks | Prompt text only; generation only |
| Qwen Image 2512 | Detailed natural-language description with explicit spatial relationships and exact quoted typography | `positive_prompt:` plus `negative_prompt:` |
| Z-Image | Compact instruction-aware natural-language caption | Foundation model: positive plus negative; Turbo: prompt text only |
| GPT Image 2 | Direct natural-language creative direction with explicit layout, hierarchy, and exact quoted copy | Prompt text only |
| Qwen / Krea / GPT edits | A direct delta instruction: what changes, what remains fixed, and the ordered role of each reference | Prompt text only |
The two-field envelope is exact: return two non-empty single lines in this
order and nothing else:
```text
positive_prompt: <model-ready positive prompt>
negative_prompt: <model-native exclusions and relevant failure modes>
```
Prompt-only families return the directly runnable prompt with no label,
Markdown fence, preamble, explanation, or render offer.
<!-- BEGIN GENERATED PROMPT GUIDE: image-models -->
<!-- Generated by npm run sync:prompt-guides from @sogni-ai/sogni-intelligence-client 4.26.0; edit the rules there, not here. -->
## Per-model rules from Sogni's image prompt writer
Before writing an image prompt, print the rules Sogni's own image prompt writer uses for that model and operation (free and offline). They hold the per-family detail behind the table above. An edit-only or generation-only selector has only that operation; pass the `-m` value you will render with.
| Family | Operation | Guide | Command |
| --- | --- | --- | --- |
| `chroma` | generate | Chroma text-to-image | `sogni-agent prompt-guide chroma1-hd --mode generate` |
| `flux1-schnell` | generate | FLUX.1 Schnell text-to-image | `sogni-agent prompt-guide flux1-schnell --mode generate` |
| `sdxl` | generate | Stable Diffusion XL text-to-image | `sogni-agent prompt-guide sdxl --mode generate` |
| `sd15` | generate | Stable Diffusion 1.5 text-to-image | `sogni-agent prompt-guide sd15 --mode generate` |
| `pony` | generate | Pony Diffusion XL text-to-image | `sogni-agent prompt-guide pony --mode generate` |
| `fast` | generate | Fast distilled Stable Diffusion text-to-image | `sogni-agent prompt-guide sdxl-turbo --mode generate` |
| `sd3` | generate | Stable Diffusion 3 text-to-image | `sogni-agent prompt-guide sd3 --mode generate` |
| `krea2` | generate | Krea 2 text-to-image | `sogni-agent prompt-guide krea-2 --mode generate` |
| `krea2` | edit | Krea 2 Identity Edit image editing | `sogni-agent prompt-guide krea2-identity-edit --mode edit` |
| `moss-image` | generate | MOSS-Image text-to-image | `sogni-agent prompt-guide moss-image --mode generate` |
| `flux3-klein` | generate | FLUX 3 Image Klein text-to-image | `sogni-agent prompt-guide flux-3-klein --mode generate` |
| `flux3-klein` | edit | FLUX 3 Image Klein image editing | `sogni-agent prompt-guide flux-3-klein --mode edit` |
| `qwen` | generate | Qwen Image 2512 text-to-image | `sogni-agent prompt-guide qwen-image-2512 --mode generate` |
| `qwen` | edit | Qwen Image Edit 2511 image editing | `sogni-agent prompt-guide qwen --mode edit` |
| `z-image` | generate | Z-Image text-to-image | `sogni-agent prompt-guide z-image --mode generate` |
| `gpt-image` | generate | GPT Image 2 text-to-image | `sogni-agent prompt-guide gpt-image-2 --mode generate` |
| `gpt-image` | edit | GPT Image 2 image editing | `sogni-agent prompt-guide gpt-image-2 --mode edit` |
| `seedream` | generate | Seedream 5.0 Pro Uncensored text-to-image | `sogni-agent prompt-guide seedream-5-pro-uncensored --mode generate` |
| `seedream` | edit | Seedream 5.0 Pro Uncensored image editing | `sogni-agent prompt-guide seedream-5-pro-uncensored --mode edit` |
<!-- END GENERATED PROMPT GUIDE: image-models -->
## Selector and operation discipline
- MOSS-Image SFT uses hosted selector `moss-image` and direct CLI model ID
`moss_image_sft_int8_convrot`. The 8-step preset uses hosted selector
`moss-image-8step` or direct ID `moss_image_sft_dmd8_int8_convrot`, with exactly
8 steps and guidance 1. Both accept compatible Personal LoRAs. MOSS generates
from text and has no uploaded-photo
editing or reference-image input. JSON layouts use centered absolute pixel
boxes in `[y_min,x_min,y_max,x_max]` order, `bbox_format: "yxyx"`, and
`bbox_coord_space: "abs_centralized"`; match the generation canvas to the layout.
- Treat a model selector as an exact capability declaration, not a name to
fuzzy-match into a convenient family. Every selector exposed by
`generate_image` and `edit_image` must resolve in the shared registry.
- A family can have different operation profiles. `gpt-image-2` supports
registered generation and edit contracts. A generation-only selector such
as `flux1-schnell-fp8` or `krea-2-turbo` must not silently accept an edit
request.
- `flux-3-klein` (FLUX 3 Image Klein) is one selector for both operations:
generation with no references, a start image, or edits guided by up to ten
references.
- `qwen` / `qwen-lightning` are edit selectors (Qwen Image Edit, an older
model: only when the user names it) and `qwen-2512` / `qwen-2512-lightning`
are generation selectors.
- Use `krea-identity-edit` or
`dark-beast-krea2-identity-edit` for Krea identity edits. Assign
`context_image_0` as the base and `context_image_1` as the secondary
identity/outfit/pose/style reference when two inputs are requested.
- Preserve the creator's subjects, actions, spatial relationships, exact
visible copy, proper nouns, style, and constraints. Add supporting visual
detail without inventing extra objects, labels, slogans, characters, or
story events.
- For a referenced person or character, distinguish a bounded edit from a
creative transformation. Keep genuinely untargeted content stable for a
bounded edit; express the recognizable individual in the requested medium
for a transformation, including its implied retouching or physical redesign.
Honor explicit locks without imposing a fixed face, texture, accessory,
pose, framing or facial-exposure inventory. Source observations are evidence
to interpret, not immutable requirements. Write task-specific art direction
rather than appending a universal identity or beauty paragraph.
- Model capability selection comes from typed model and operation metadata.
Never infer it from sentence-shape regexes or a list of creative keywords.
Primary references: [FLUX prompting](https://docs.bfl.ai/guides/prompting_unified_basics),
[Krea 2 technical report](https://www.krea.ai/blog/krea-2-technical-report),
[Qwen Image 2512](https://huggingface.co/Qwen/Qwen-Image-2512),
[Qwen Image Edit 2511](https://huggingface.co/Qwen/Qwen-Image-Edit-2511),
[Z-Image Turbo](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo), and
[Stability API](https://platform.stability.ai/docs/api-reference).