Skip to content

Send images to InvokeAI's image or video generation tab - #424

Merged
lstein merged 2 commits into
masterfrom
lstein/feature/invokeai-image-to-video-tab
Oct 7, 2026
Merged

lstein merged 2 commits into
masterfrom
lstein/feature/invokeai-image-to-video-tab

Conversation

@lstein

@lstein lstein commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Summary

The metadata drawer's InvokeAI section now lets you choose which InvokeAI tab Send Image and Append Image feed:

InvokeAI
[Send Image] [Append Image] as a reference for <image generation | video generation>
[Remix] [Recall]
  • image generation (the default) works exactly as before.
  • video generation uploads the image (or reuses InvokeAI's copy) and places it through InvokeAI's new POST /api/v1/recall/video/{queue_id}/image route (feat(video): place a gallery image in the Video panel from the recall API invoke-ai/InvokeAI#9693). The Video panel's model decides where it lands:
    • Models with reference images (MiniMax H3 Ref2VA): Send replaces the reference images, and Append adds one.
    • Frame models (Wan 2.2 I2V, LTX-2): Send sets the first frame, and Append fills the next empty frame. Further appends are ignored.
  • InvokeAI reports the outcome in a notice in its own window.

Details

  • Gating: /invokeai/capabilities reports a new video_image flag, probed from the backend's /openapi.json. The pulldown is hidden, and Send/Append always go to image generation, until the configured InvokeAI has the route.
  • Append in video mode: Append Image is shown whenever video generation is chosen, even on backends whose image recall lacks append.
  • Persistence: the choice is a server-backed per-device preference (invokeRefTarget in PERSISTED_SETTINGS, invoke_ref_target in UserPreferences). It therefore survives iOS storage purges and is cleared by Reset to Defaults.
  • Where the logic lives: invoke-ref-target.js owns the pulldown. Both drawer renderers (swiper and grid) re-apply it after each re-render.
  • Videos are unaffected: video files never get the pulldown, and /use_ref_image still refuses them.
  • Layout: the row wraps cleanly in a narrow drawer.
  • Docs: docs/user-guide/invokeai-integration.md documents the choice and the per-model placement rules.

Testing

  • Backend: 1306 passed (full suite before the rebase; the touched files were re-run after it). New coverage:
    • use_ref_image with target="video": upload, then the /image route with image_name/append and an empty body; an upstream refusal returns 502; an unknown target returns 422.
    • The video_image capability flag.
    • Formatter rows and pulldown placement.
  • Frontend: 1019 Jest tests pass. New coverage:
    • invoke-ref-target.test.js
    • target selection in invoke-recall.test.js, including a remembered "video" being ignored on an unsupported backend
    • the capability class
  • ruff, eslint and prettier are clean.
  • Manually tested end to end against InvokeAI running feat(video): place a gallery image in the Video panel from the recall API invoke-ai/InvokeAI#9693.

🤖 Generated with Claude Code

lstein and others added 2 commits October 6, 2026 14:56
The drawer's Send / Append Image row gains "as a reference for
<image generation | video generation>". With video chosen, the image is
uploaded and placed through InvokeAI's new
/api/v1/recall/video/{queue_id}/image route. The Video panel's model
decides where it lands: reference images for Ref2VA, first/last frame
for frame models. The pulldown only appears when the backend's OpenAPI
schema has that route (video_image capability). The choice is a
server-backed per-device preference (invokeRefTarget).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lstein
lstein merged commit e628782 into master Oct 7, 2026
11 checks passed
@lstein
lstein deleted the lstein/feature/invokeai-image-to-video-tab branch October 7, 2026 19:50
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.

1 participant