feat(apionly): seedream provider#9054
Conversation
Add BytePlus Seedream as external image generation provider with four models (seedream-4.5, seedream-4.0, seedream-3.0-t2i) including debug dump support and batch generation. Hide irrelevant canvas settings for external models by using ExternalModelCapabilities as the source of truth for UI rendering. Scheduler, LoRA, CFG Scale, and all Advanced settings (VAE, CLIP Skip, Seamless, etc.) are now hidden for external models. Steps, Guidance, and Seed controls are only shown when the model declares support via its capability flags. Adds supports_steps capability field and gates the graph builder accordingly.
…pi_keys.yaml Add 'external', 'external_image_generator', and 'external_api' to Zod enum schemas (zBaseModelType, zModelType, zModelFormat) to match the generated OpenAPI types. Remove redundant union workarounds from component prop types and Record definitions. Fix type errors in ModelEdit (react-hook-form Control invariance), parsing.tsx (model identifier narrowing), buildExternalGraph (edge typing), and ModelSettings import/export buttons. Move external_gemini_base_url and external_openai_base_url into api_keys.yaml alongside the API keys so all external provider config lives in one dedicated file, separate from invokeai.yaml.
Add combined resolution preset selector for external models that maps aspect ratio + image size to fixed dimensions. Gemini 3 Pro and 3.1 Flash now send imageConfig (aspectRatio + imageSize) via generationConfig instead of text-based aspect ratio hints used by Gemini 2.5 Flash. Backend: ExternalResolutionPreset model, resolution_presets capability field, image_size on ExternalGenerationRequest, and Gemini provider imageConfig logic. Frontend: ExternalSettingsAccordion with combo resolution select, dimension slider disabling for fixed-size models, and panel schema constraint wiring for Steps/Guidance/Seed controls.
- Remove negative_prompt, steps, guidance, reference_image_weights, reference_image_modes from external model nodes (unused by any provider) - Remove supports_negative_prompt, supports_steps, supports_guidance from ExternalModelCapabilities - Add provider_options dict to ExternalGenerationRequest for provider-specific parameters - Add OpenAI-specific fields: quality, background, input_fidelity - Add Gemini-specific fields: temperature, thinking_level - Add new OpenAI starter models: GPT Image 1.5, GPT Image 1 Mini, DALL-E 3, DALL-E 2 - Fix OpenAI provider to use output_format (GPT Image) vs response_format (DALL-E) and send model ID in requests - Add fixed aspect ratio sizes for OpenAI models (bucketing) - Add ExternalProviderRateLimitError with retry logic for 429 responses - Add provider-specific UI components in ExternalSettingsAccordion - Simplify ParamSteps/ParamGuidance by removing dead external overrides - Update all backend and frontend tests
|
Functional testing only so far. Here's what I noticed. Seedream 3.0 T2I modelI can't get this one to run at all. All attempts give me Seedream 4.0 model
Seedream 4.5 modeltext2img is working. However, I have the same issues with reference images, init image and inpaint mask as with the 4.0 model. Seedream 5.0 liteI can't get this model to work. I'm getting the "does not exist or you do not have access to it" error message. Location of Seedream API keyI notice that the Seedream API key is being stored in |
|
@Pfannkuchensack I'm afraid there are now a lot of conflicts resulting from (I think) the earlier merge of #8884 . |
❌ This model is still giving me the same error and it is not showing up on the byteplus Online Inference page. So perhaps support for it has been discontinued?
✅ Image editing is now working.
❌ Issue is still present.
✅ Img2img is now working
✅ Inpaint mask now disabled, which is fine
✅ No more timeout errors; both init image and reference images are working
✅ System correctly reports that
❌ I can't get this model to work. I'm getting the "does not exist or you do not have access to it" error message. Changing the
Still stored in |
…adata recall and node fields - Load external_seedream_api_key/base_url from api_keys.yaml like the other providers - Update Seedream 5.0 Lite ID to seedream-5-0-lite-260128 and add Seedream 5.0 (seedream-5-0-260128) - Remove deprecated Seedream 3.0 T2I (replaced by Seedream 4.0 per BytePlus) - Add metadata recall handlers for watermark and optimize_prompt so Remix restores them - Hide non-functional mode and mask_image fields on the Seedream node (Seedream API has no inpaint and infers mode from inputs); bump node to 1.1.0
|
As noted in #9055 , there's an inconsistency in where the api key is stored. In Alibaba cloud, it is stored in |
lstein
left a comment
There was a problem hiding this comment.
See above for comments on models that cannot be found and location of api key.
…ensack/InvokeAI into feat/seedream-provider
|
Thanks for addressing the previous issues. Unfortunately a new one has popped up. In linear mode, when using any of the Seedream models, if I set the number of images to >1 I only get one image back. Looking at the payload sent to the provider, I don't see the In contrast, if I use the seedream node in the workflow editor, I do see the parameter set and get the expected number of images back. |
|
the api can max do 15 images, so if you want to set 20 invokes it cant really do batches. and there is no option to do more as one image per invoke right now.(?) |
Linear UI dropped the iterations count when the graph builder returned no seed node (external API models without seed support like Seedream), so iterations > 1 produced only one image. Use batch.runs to repeat the graph in that case.
…ensack/InvokeAI into feat/seedream-provider
Summary
Adds BytePlus Seedream as an external image generation provider on top of the external-models base (PR #8884). Introduces four Seedream starter models (5.0 Lite, 4.5, 4.0, 3.0 T2I) with capability-driven settings visibility, reference-image support, and provider-specific UI options (watermark toggle, prompt optimization).
What:
invokeai/app/services/external_generation/providers/seedream.pySeedreamProviderOptions.tsx— watermark & prompt-optimization togglesWhy:
Seedream offers high-quality multi-reference generation at 2K/4K, which fills a gap in the current external-provider lineup.
How:
Follows the external-provider pattern established in PR #8884. Capabilities on each
StarterModeldrive which settings panels render, so no UI-side branching is needed beyond the Seedream-only options.Related Issues / Discussions
QA Instructions
api_keys.yaml.SEEDREAM_ASPECT_RATIOS.Merge Plan
Rebase/merge after #8884 lands. No DB migrations. Config-default changes are additive.
Checklist
What's Newcopy (if doing a release after this PR)