name: retro-diffusion description: "Use Retro Diffusion for pixel-art image generation, img2img edits, spritesheets, and animation experiments such as platformer walk cycles, turnarounds, and action sheets from reference images." metadata: short-description: "Retro Diffusion image and animation workflows."
Retro Diffusion
Use this skill when the user wants to generate pixel-art images or animation sheets through Retro Diffusion, especially when the task involves reference-image-driven character work like side-view platformer walks, turnarounds, or action cycles.
Philosophy: Match The Style To The Asset Contract
Retro Diffusion does not expose a provider-agnostic model marketplace like fal. The important control is the prompt_style, and each style implies a specific asset contract:
- some styles are general image models
- some are spritesheet-oriented
- some are fixed-size animation generators
- some require an input frame and work best only from neutral poses
The right way to use Retro Diffusion is:
- choose the style that matches the asset shape you want
- respect the style's size contract
- pass a clean RGB reference when using
input_image - treat cost checks and output capture as first-class workflow steps
Before generating, ask:
- Are we making a single image, a spritesheet, or an animation?
- Is this a freeform prompt, a reference-driven edit, or a starting-frame animation?
- Does the selected
prompt_styleimpose a fixed frame size? - Do we want a GIF preview, a PNG spritesheet, or both?
Core principles:
- Style first, prompt second: in Retro Diffusion,
prompt_styleis the mode selector, not just a flavor tweak. - Respect size contracts:
animation__four_angle_walkingis a48x48workflow,animation__8_dir_rotationis80x80, and advanced animations should match the starting frame size. - Reference cleanliness matters:
input_imageshould be RGB with no transparency, and the prompt should describe the reference rather than assume the API will infer everything. - Capture the sheet, not just the preview: for sprite work, prefer
return_spritesheet: trueso downstream analysis stays deterministic. - Prompt shorter than you think: for advanced animations, keep prompts extremely terse. The service expands action text internally, and long prompts can fail server-side even when your raw prompt looks reasonable.
- Treat completion as artifact-based, not CLI-message-based: a run can succeed even if the local wrapper times out, drops the final response, or never prints a clean completion message.
What This Skill Provides
- A portable Retro Diffusion harness bundled with the skill for:
- text-to-image
- img2img-style runs via
input_image - multi-reference runs via
reference_images - fixed-style animation and spritesheet generation
- A generic inference runner that:
- sends requests to
POST https://api.retrodiffusion.ai/v1/inferences - supports cost-only checks via
check_cost: true - writes normalized run manifests and decoded outputs
- sends requests to
- A batch runner for repeatable experiment configs
- Model/style presets for commonly useful Retro Diffusion modes:
rd-pro-platformerrd-pro-editrd-pro-spritesheetrd-fast-character-turnaroundrd-plus-character-turnaroundanimation-four-angle-walkinganimation-8-dir-rotationanimation-walking-and-idlerd-advanced-animation-walkingrd-advanced-animation-idlerd-advanced-animation-attack
Working With Retro Diffusion
API Shape
- Endpoint:
POST https://api.retrodiffusion.ai/v1/inferences - Auth header:
X-RD-Token: YOUR_API_KEY
Outputs can include:
base64_imagesoutput_urlsbalance_costremaining_balance
Important operational rule:
- do not assume a run failed just because the terminal process returned no final success line
- Retro Diffusion runs can complete while the local caller reports an indeterminate state
- before retrying, check the intended output folder for:
- new image artifacts
- run metadata JSON
- file modification times newer than the run start
- only classify a run as failed after artifact verification, not from missing stdout alone
Animations normally come back as transparent GIFs. Add return_spritesheet: true when you want a PNG sheet instead.
Reference And Animation Guidance
For input_image:
- convert to RGB first
- remove transparency
- do not include the
data:image/png;base64,prefix - mention what the reference is in the prompt
- prefer an explicit prepared RGB reference image over silent RGBA-to-black conversion
For side-view platformer walks:
- prefer
rd_advanced_animation__walkingfirst when you already have a neutral starting frame - keep
widthandheightequal to that starting frame - use
frames_durationdeliberately instead of taking the default - ask for in-place locomotion if you want extractable frames instead of a traveling character
- if a large anchor behaves inconsistently, prepare a compact square reference first and retry
- successful advanced-walking runs returned transparent spritesheet PNGs rather than GIFs when
return_spritesheet: truewas set
For multi-direction walking presets:
animation__four_angle_walkingandanimation__walking_and_idleare48x48workflows- they are useful for broad exploration, but not as clean for direct comparison against an existing
64x64anchor
For eight-direction turnaround experiments:
- try
animation__8_dir_rotationfirst when you want a one-shot directional sheet - remember it is fixed at
80x80 - treat it as the first experiment, not guaranteed directional truth
- if
animation__8_dir_rotationreturns server errors or weak directions, fall back immediately to a stagedrd_pro__editworkflow - a dependable staged fallback is:
- cardinals first from the isometric anchor
- diagonals second using the same anchor plus the cardinal sheet as
reference_images
Prompting Guidance
Prompt like animation direction, not concept art copy:
- who the character is
- facing direction
- intended motion
- what must remain stable
- what should not happen
Good Retro Diffusion prompt components for character animation:
- identity: compact adventurer, same costume colors, same silhouette and proportions
- facing: side-facing, profile view, facing right
- motion: walk cycle in place, readable step rhythm, alternating arm swing
- stability: keep silhouette and costume consistent frame to frame
- exclusions: no camera movement, no perspective rotation, no extra props, no background
For advanced animation prompts in particular:
- prefer one or two short sentences
- avoid long descriptive prose
- avoid repeating identity details more than necessary
- keep the full prompt comfortably below
300characters when possible
Important live-use nuance:
- "shorter" is not the same as "better"
- once you have a run that preserves character identity well, do not aggressively simplify the prompt unless you know which clauses are safe to remove
- keep the non-negotiable guardrails that lock the output:
- facing / camera orientation such as
side-facing - identity preservation such as
same costume and silhouette - action disambiguation such as
bow-butt melee attack - cleanup constraints such as
no background clutter
- facing / camera orientation such as
- removing those guardrails can cause Retro Diffusion to drift into a different move family entirely, even when the starting frame and references are correct
Scripts
scripts/retro_inference_run.py- one Retro Diffusion run
- image, edit, or animation/spritesheet
- supports cost-only mode
scripts/retro_experiment_matrix.py- run a JSON-defined experiment batch
- useful for cross-comparing Retro Diffusion styles on the same source sprite
scripts/prepare_reference_image.py- prepare explicit RGB reference inputs from local PNGs
- flatten transparency to a chosen matte
- optionally resize to a target square with nearest-neighbor scaling
Portable Workflow
Keep project-specific artifacts in the user's working project, not inside the skill directory.
Good default layout:
- checked-in experiment contracts under a path such as
experiments/retro-diffusion/configs/ - generated outputs under a project-owned
outputs/,artifacts/, or asset-staging directory - human-readable prompts, notes, and learnings next to the experiment docs if the project uses them
The important rule is:
- the skill provides scripts, references, and presets
- the user's project decides where prompts, configs, manifests, and generated images live
Run Verification Workflow
When a Retro Diffusion run appears to stall, timeout, or return an ambiguous result:
- Record the intended output directory before starting the run.
- Launch the run once.
- If the wrapper does not report clean completion, inspect the output directory before doing anything else.
- Check for:
- expected output filenames
- non-empty PNG / GIF artifacts
- run JSON or response JSON written by the harness
- timestamps newer than the invocation time
- If artifacts exist, treat the run as completed and assess quality from the returned sheet.
- Only retry when:
- no new artifacts were produced, or
- the returned artifact is explicitly corrupt / incomplete for the task.
Practical rule:
- ambiguous transport state is not the same as model failure
- verify files first, retry second
Anti-Patterns To Avoid
❌ Anti-pattern: comparing incompatible animation styles as if they were the same task
Why bad: a fixed 48x48 four-angle walker and a reference-driven advanced walking sheet are not equivalent outputs.
Better: compare them as different Retro Diffusion strategies, not as the same contract.
❌ Anti-pattern: feeding transparent RGBA sprites directly into input_image
Why bad: the docs say input_image should be RGB with no transparency.
Better: convert the input to RGB first and keep the subject on a clean flat background.
❌ Anti-pattern: asking for “walk animation” without saying whether you want a GIF or spritesheet
Why bad: you may get a preview format that is harder to analyze downstream.
Better: request return_spritesheet: true when the goal is extraction or frame comparison.
❌ Anti-pattern: using verbose prompts with advanced animation modes
Why bad: the backend may internally expand the action text and hit a hidden 500-character validation limit.
Better: keep advanced-animation prompts minimal and literal.
❌ Anti-pattern: over-simplifying a prompt after a good run Why bad: deleting "extra words" often deletes the exact identity and motion constraints that were keeping the model on-style. Better: shorten carefully, but preserve the clauses that lock facing, silhouette, action type, and background behavior.
❌ Anti-pattern: retrying immediately because the wrapper did not print a clean success message Why bad: Retro Diffusion may already have produced the output sheet, and an unnecessary retry wastes time, money, and confuses source-of-truth selection. Better: inspect the target output directory and run artifacts first, then decide whether a second run is actually needed.
❌ Anti-pattern: assuming the reference image alone will preserve style
Why bad: animation__any_animation can still drift into the wrong move family or add inconsistent effects if the prompt stops reinforcing orientation and action semantics.
Better: pair the starting frame and references with a compact but explicit prompt that preserves orientation, identity, and action read.
❌ Anti-pattern: assuming a larger isometric anchor will work better Why bad: larger references can be less stable than compact prepared anchors, especially in advanced animation modes. Better: downscale the approved anchor to a compact square first, then try advanced walking.
❌ Anti-pattern: trusting animation__8_dir_rotation as the canonical turnaround path
Why bad: it can fail server-side or produce weak directional separation even at the documented 80x80 size.
Better: keep it as a cheap first probe only, and rely on staged rd_pro__edit when you need a dependable turnaround workflow.
❌ Anti-pattern: ignoring the built-in frame-size contracts Why bad: some styles silently clamp or ignore your requested size. Better: choose the style because its size/output format fits the task.
❌ Anti-pattern: treating Retro Diffusion as a general-purpose video model Why bad: this API is about pixel-art image and animation sheet generation, not free-camera video. Better: use it for sprite-native outputs and compare those against video-derived workflows later.
Variation Guidance
IMPORTANT: Do not converge on one Retro Diffusion mode for every sprite task.
- vary between
RD_PRO,RD_FAST, and advanced animation styles based on the asset contract - vary
frames_durationdeliberately for short attack vs longer walk tests - vary whether a run returns GIF preview or spritesheet based on the downstream need
- do not assume the best prompt for platformer walking is also the best prompt for turnarounds or idles
References
- API and style notes:
references/api-and-styles.md - Animation strategy notes:
references/animation-workflows.md - Presets:
assets/model-presets.json - Prompt starters:
assets/prompt-profiles/
Remember
Retro Diffusion is strongest when you meet it on its own terms:
- pick the correct built-in style
- feed it a clean reference
- ask for the exact sprite artifact you need
- keep advanced-animation prompts brutally short
- prefer staged
RD Pro Editfor dependable isometric turnaround work - and track the result like an experiment, not a one-off prompt