@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.
178 lines (144 loc) • 8.76 kB
Markdown
# Private Mature-Theme Video Reference
Use this reference for lawful adult mature-theme video requests.
## Routing
Prefer `ltx23-22b-10eros-v1.4-fp8mixed_i2v` (`10eros`) for this use case. It
is a fast LTX image-to-video model with generated audio. It accepts a first
frame, a last frame, or both, and requires `--no-filter`.
Use `dr34ml4y-v3` at strength 1 with 10Eros by default. It improves mature-theme
prompt adherence, motion, and physical behavior even when no action token is
needed. Omit it only when the creator requests the base 10Eros model alone or
when comparing/troubleshooting the model and LoRA separately.
The LoRA supports:
- `ltx23-22b-fp8_i2v`
- `ltx23-22b-fp8_i2v_dev`
- `ltx23-22b-10eros-v1.4-fp8mixed_i2v` (preferred)
Sogni installs the LT3X v3 LoRA, not the separately trained WAN release. Do not
use this LoRA ID with WAN models.
## Seedance 2.5 Uncensored
For explicit scenes at film quality, prefer `seedance-2-5-uncensored` over
10Eros: it is a premium loose-reference model that can start from a clothed,
world-consistent frame and go explicit at the story beat you choose. It
requires `--no-filter` for the workflow described here. The author reported
"Sensitive content detected" errors or more restricted results when that
flag was omitted. The prompting notes below describe those reported renders;
results vary with the prompt and references.
The account must also accept the one-time likeness and consent agreement in
a Sogni app before its first render. Follow the
[model requirements](./models.md#seedance-25-uncensored) using the same account
as the CLI/API key. This model requires Premium Spark; price estimates remain
available before accepting the agreement.
Command shape:
```bash
sogni-agent --video -m seedance-2-5-uncensored --no-filter \
--seedance-task-type reference --target-resolution 720 --duration 10 \
-c ./identity-woman.png -c ./identity-man.png \
-c ./ref-vulva.png -c ./ref-penetration-front.png -c ./ref-penetration-rear.png \
-o ./scene.mp4 "<beat-by-beat prompt>"
```
Prompt construction:
1. Pass one identity reference per character, then one reference for EVERY
genital appearance the scene will show — the model will not introduce
genitals that no reference contains. Give each a job in the prompt
("@Image3 is the exact reference for her bare vulva when it is exposed";
"@Image4 is the exact reference for the penetration when it is visible face
to face") and match each reference's pose to where the camera will see it.
2. Write the scene as chronological story beats and bind each explicit beat to
its reference ("he pushes her slip up, exposing her bare vulva exactly as in
@Image3. … the camera low behind them as in @Image5"). This starts the film
clothed and goes explicit at the chosen beat.
3. Direct the camera explicitly — "the camera held close and low on their hips
where he thrusts" — or Seedance frames tastefully above the waist no matter
how explicit the prompt is.
4. If the tail drifts back to a tame shot, put the explicit beat last; the
model weights its closing frames.
When the scene already exists as an explicit still, draw that still with
`dark_beast_krea2_fp8 --no-filter` (identity by written description works; the
identity-edit variant sanitizes explicit prompts) and pass it as the single
reference with "Recreate and animate the exact scene from @Image1".
`--duration` is 4–30 whole seconds and `--target-resolution` is `480`, `720`,
or `1080`. Seedance bills premium per-second rates from Premium Spark, which
no Unlimited plan covers. Use `--estimate-video-cost` with the intended
settings before rendering.
## Specialized prompt vocabulary
The LoRA is one multi-concept adapter. Each token selects an action concept:
| User intent | Token |
|-------------|-------|
| Missionary position | `m15510n4ry` |
| Oral action | `bl0wj0b` |
| Two-person oral action | `d0ubl3_bj` |
| Rear-entry position | `d0gg1e` |
| Partner-on-top position | `c0wg1rl` |
| Reverse partner-on-top position | `r3v3rs3_c0wg1rl` |
Use one matching token for a clip focused on one action. Multiple tokens can be
used for sequential actions, but results may blend the concepts. For more
reliable output, offer to render one action per clip and stitch the clips.
When a single continuous transition is preferred, keep the sequence short,
describe it chronologically, and place each token beside its corresponding
action.
## Prompt construction for 10Eros + DR34ML4Y
Write the prompt solely to produce the result the creator requested. Use one
unbroken, chronological LTX paragraph of 4-8 present-tense sentences. Do not
emit section labels such as `Performance:` or `Dialogue:` into the model
prompt; fold those details into cinematic prose instead.
1. Use the supplied start image exactly as the first frame by passing it through
`--ref`; do not merely mention it in prose. The frame already shows its
composition, so name only the starting pose and placement the motion begins
from, without re-describing the frame or inventing conflicting details.
2. Name the camera move and any change in lighting, environment, or background
motion; leave what the frame already shows.
3. State the action concretely. Include a LoRA token when the requested action
matches one of its trained concepts.
4. Describe what happens step by step in chronological order: who moves, which
body parts move, their direction, changes in position or contact, and the
resulting pose.
5. Direct the performance through observable behavior: posture, breathing,
gaze, facial expression, micro-expressions, small pauses, and emotional
changes that flow naturally from the starting pose.
6. Integrate the audio design with the action: voice delivery, dialogue, foley,
environmental sound, and music only when the creator asks for it.
Be specific and literal. Do not substitute euphemisms or generalizations for
the requested visible action. Fit every action the creator names into the
clip, in order; if they cannot all finish on screen, say so and suggest a
longer clip or one clip per action rather than dropping one. Avoid
contradictory positions, unrelated cuts, generic quality tags, and repeating
the same action in several different ways. Give the motion one logical,
physically continuous evolution. Play the action at the intensity and pace the
creator asked for, natural and cinematic, with realistic weight and physically
coherent motion; add slapstick or comic exaggeration only when asked.
Do not introduce extra characters unless they are clearly visible in the
supplied image or explicitly requested.
When an image is attached and the creator says "one for this image", "make one
for this", or similar, treat the image as the start-frame authority and build
the complete purpose-written prompt from what is visibly present plus the
creator's stated intent. Do not answer with generic prompting advice, and do
not invent a different scene merely to fill out the paragraph.
Write every spoken line verbatim in double quotes and identify who says it and
how. Never imply dialogue with a summary such as "they talk" or "she says
something." Keep dialogue concise enough to fit the clip and coordinate sounds
with the motion that produces them.
For first+last keyframes, describe the exact continuous change that connects
the supplied boundaries rather than reimagining either endpoint. For
last-frame-only generation, describe the preceding motion and composition that
must resolve naturally into the supplied final frame. For a same-frame loop,
describe motion that departs from and settles back into that boundary pose.
Action tokens are optional: attach the LoRA for its broader domain improvement
even when none of its specialized concepts apply. Generate multiple seeds for
difficult poses, transitions, or multi-action clips.
## Frame modes and loops
- First-frame animation: `--ref ./first.png`
- Last-frame-directed animation: `--ref-end ./last.png`
- First-to-last interpolation: use both `--ref ./first.png` and
`--ref-end ./last.png`
- Single-render anchored loop: use the same image as both the first and last
frame, or use deliberately matching boundary frames. Do not add `--looping`
to this form.
- Automatic two-clip loop: use `--looping --ref ./first.png`. The CLI generates
A→B and B→A and joins them; this mode creates its own return endpoint and
therefore does not accept `--ref-end`.
The optional DR34ML4Y LoRA works with each compatible 10Eros frame mode.
Command shape:
```bash
sogni-agent --video --ref ./start.png -m 10eros \
--lora dr34ml4y-v3 --lora-strength 1 --no-filter \
"<purpose-built LTX prompt matching the creator's intended result>"
```