Skip to content

feat(media): Add multimedia editing services and CLI#79

Open
dkrevitt wants to merge 3 commits intomainfrom
claude/explore-multimedia-editing-m9ZYC
Open

feat(media): Add multimedia editing services and CLI#79
dkrevitt wants to merge 3 commits intomainfrom
claude/explore-multimedia-editing-m9ZYC

Conversation

@dkrevitt
Copy link
Collaborator

This commit adds comprehensive multimedia generation and editing
capabilities to Kurt, supporting both AI-powered generation and
traditional media processing.

New services (src/kurt/services/):

  • AIGenerationService: Unified interface to image/video AI APIs
    • fal.ai: Fast inference, Flux models
    • Leonardo.ai: Nano Banana, Phoenix models
    • Replicate: Large model library
    • Runway: Gen-3/Gen-4 video generation
  • MediaEditService: FFmpeg/ImageMagick wrapper for editing
    • Image: resize, crop, rotate, filters, composite
    • Video: trim, resize, extract audio, add audio, thumbnails
    • Format conversion for all media types

New CLI commands (kurt media):

  • kurt media generate image: AI image generation
  • kurt media generate video: AI video generation
  • kurt media edit resize/crop/rotate/filter/trim/thumbnail
  • kurt media convert: Format conversion
  • kurt media info: Get media file information
  • kurt media providers: Show configured AI providers

API endpoints for web UI:

  • POST /api/media/generate/image
  • POST /api/media/generate/video
  • POST /api/media/edit
  • GET /api/media/info
  • GET /api/media/providers

Also fixes .gitignore to not ignore src/kurt/workflows/ directory.

This commit adds comprehensive multimedia generation and editing
capabilities to Kurt, supporting both AI-powered generation and
traditional media processing.

New services (src/kurt/services/):
- AIGenerationService: Unified interface to image/video AI APIs
  - fal.ai: Fast inference, Flux models
  - Leonardo.ai: Nano Banana, Phoenix models
  - Replicate: Large model library
  - Runway: Gen-3/Gen-4 video generation
- MediaEditService: FFmpeg/ImageMagick wrapper for editing
  - Image: resize, crop, rotate, filters, composite
  - Video: trim, resize, extract audio, add audio, thumbnails
  - Format conversion for all media types

New CLI commands (kurt media):
- kurt media generate image: AI image generation
- kurt media generate video: AI video generation
- kurt media edit resize/crop/rotate/filter/trim/thumbnail
- kurt media convert: Format conversion
- kurt media info: Get media file information
- kurt media providers: Show configured AI providers

API endpoints for web UI:
- POST /api/media/generate/image
- POST /api/media/generate/video
- POST /api/media/edit
- GET /api/media/info
- GET /api/media/providers

Also fixes .gitignore to not ignore src/kurt/workflows/ directory.
- Add ImageEditor component using Konva canvas
  - Shape tools: rectangle, circle, text
  - Transform/drag support for shapes
  - Color picker for fill/stroke
  - AI generation dialog
  - Export to PNG/JPEG functionality

- Add VideoEditor component with custom player
  - Play/pause, seek, volume controls
  - Playback speed selection
  - Trim markers on timeline
  - Keyboard shortcuts (space, arrows, i/o, m)
  - AI video generation dialog

- Add panel wrappers for dockview integration
- Add dependencies: konva, react-konva, @remotion/player
- Add ~530 lines of CSS for editor styling
High Priority Features:
- Add raw file API endpoint for serving binary files (GET/PUT)
- Add media file routing in FileTree (auto-opens in correct editor)
- Add openImageEditor/openVideoEditor functions to App.jsx
- Add save functionality to ImageEditorPanel (exports to _edited file)

Image Editor Enhancements:
- Undo/redo support with history (Ctrl+Z, Ctrl+Shift+Z)
- Brush tool for freehand drawing
- Image filters panel (brightness, contrast, saturation, blur, etc.)
- Keyboard shortcuts for undo/redo

Video Editor Enhancements:
- Frame-by-frame navigation (,/. keys or Shift+Arrow)
- Jump to start/end (Home/End keys)
- Loop mode toggle (L key)
- Volume control with up/down arrows
- Text overlay system with timing controls
- Add Text button in edit toolbar

UI Improvements:
- Context menu options for "Open in Image/Video Editor"
- Filter panel with sliders for all adjustments
- Brush size control in toolbar
- Text overlay display on video player
- Disabled state styling for tool buttons
@boringdata
Copy link
Owner

@dkrevitt is it ready to merge ?

@dkrevitt
Copy link
Collaborator Author

dkrevitt commented Jan 19, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants