Kitta Audio Docs
Kitta CLI

Images and video

Generate images and video, run lip sync and dubbing, and recover media jobs.

Kitta CLI uses the same public media APIs as other server integrations. These operations consume account API quota. Use only prompts and source media that you are authorized to process.

Discover models

kitta models list --api-url https://fishaudio.org --media-type image
kitta models list --api-url https://fishaudio.org --media-type video

The catalog is the authority for available models and capabilities. Website visibility does not guarantee that a model is enabled for API use.

Upload local media

kitta files upload --api-url https://fishaudio.org --file ./recording.wav --type audio
kitta files upload --api-url https://fishaudio.org --file ./reference.png --type image
kitta files upload --api-url https://fishaudio.org --file ./source.mp4 --type video

The response URL can be passed to transcription, image edit, lip-sync or dubbing commands. Uploads are not automatically retried. A failed upload should be inspected before submitting it again.

Generate and download

kitta image generate --api-url https://fishaudio.org --prompt "A paper-cut city at sunrise" \
  --idempotency-key image-001 --wait --output city.png

kitta video generate --api-url https://fishaudio.org --prompt "A slow camera move through the city" \
  --idempotency-key video-001 --wait --output city.mp4

Reference-based video input uses one JSON object per --references value:

kitta video generate --api-url https://fishaudio.org --prompt "Camera pushes in" \
  --references '{"role":"start_frame","url":"https://example.com/start.png"}' \
  --idempotency-key video-reference-001

Lip sync and dubbing

kitta video lip-sync generate --api-url https://fishaudio.org --video-url VIDEO_URL --audio-url AUDIO_URL
kitta video dubbing generate --api-url https://fishaudio.org --video-url VIDEO_URL --text "Welcome" \
  --reference-id VOICE_ID --idempotency-key dubbing-001 --wait --output dubbed.mp4

Lip sync does not currently promise idempotent creation and is not automatically retried. Video dubbing has a server-backed idempotency key. Keep every returned task ID.

Resume without creating another job

kitta image jobs get --api-url https://fishaudio.org --job JOB_ID
kitta image jobs wait --api-url https://fishaudio.org --job JOB_ID --output recovered.png
kitta video jobs wait --api-url https://fishaudio.org --job JOB_ID --output recovered.mp4
kitta video lip-sync jobs wait --api-url https://fishaudio.org --job JOB_ID --output recovered.mp4
kitta video dubbing jobs wait --api-url https://fishaudio.org --job JOB_ID --output recovered.mp4

Waiting polls the existing job. Ctrl+C only stops the local wait. Output files are never overwritten. Upload first when a command requires a remote media URL.