en un clic
image-blast-sfx
// Generate and post-process a clean sound effect, object impact, or ambient loop.
// Generate and post-process a clean sound effect, object impact, or ambient loop.
Create, inspect, and manage an IMAGE-BLAST project envelope under worlds/<slug>. Use before other image-blast skills (image-blast-uncover, image-blast-world, image-blast-3d, etc.) or whenever the user asks about active project state.
Main image analysis skill, object generation, plate decisionmaking, and initial scene description. Use this skill when user wants to create objects and necessary for main image analysis.
Generate the 3D static environment of a world from a source or plate image.
Generate one specified atomic 3D object. Use when the user names exactly one object instance to make, or provides one image plus the object name/description.
Generate one clean plate/source cleanup image for an IMAGE-BLASTER world. Use after confirmed objects exist, when removing foreground objects or other specified content from a source image.
Generate one image edit from explicit input images and a prompt. Use for source cleanup, clean plates, object removal, or other FAL-backed image edits.
| name | image-blast-sfx |
| description | Generate and post-process a clean sound effect, object impact, or ambient loop. |
Generate an SFX for project $0.
$0 is missing, ask for the world slug.ls -a before reading generated state.worlds/$0/output/sfx/, use --loop --count 2 --kind world-ambience --prefix ambient-loop --duration-seconds 10.worlds/$0/output/<object-id>/sfx/, use --count 4 --kind object-impact --prefix impact-<object-id> --duration-seconds 1. Do not use --loop.worlds/$0/output/sfx/ unless an object is clearly specified, use --kind arbitrary.impact one-shot, short-decay, <object material description from object.json> hitting a hard surface.ambient environment, loop of <description of only ambient qualities of scene from image.json>.ffprobe/ffmpeg, trims leading/trailing silence or low noise, normalizes loudness, and stores audio_analysis in the hidden request JSON. Loop output is left as raw provider audio so the seamless boundary is preserved.node .claude/scripts/project/project-state.mjs --world "$0"
Run:
node .claude/scripts/sfx/fal-elevenlabs-sfx.mjs \
--prompt "<sound prompt>" \
--output-dir "<target output dir>" \
--prefix "<safe prefix>" \
--count "<1-4>" \
--kind "<world-ambience|object-impact|arbitrary>" \
--duration-seconds "<optional 0.5-22>" \
--loop "<for world ambience or explicit loop requests>" \
--postprocess true
Add --loop only for world ambience or explicit looping requests. Avoid music or voices unless explicitly requested.
If request metadata records provider URLs but local audio files are missing, fill them from the matching hidden request JSON:
node .claude/scripts/project/ensure-local-assets.mjs --from "<request-json-path>"
Final response: report generated audio files, loop status, request metadata, prompt used, and the trimming/quality notes from audio_analysis.