mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
feat(image_gen): upgrade Recraft V3 → V4 Pro, Nano Banana → Pro (#11406)
* feat(image_gen): upgrade Recraft V3 → V4 Pro, Nano Banana → Pro
Upstream asked for these two upgrades ASAP — the old entries show
stale models when newer, higher-quality versions are available on FAL.
Recraft V3 → Recraft V4 Pro
ID: fal-ai/recraft-v3 → fal-ai/recraft/v4/pro/text-to-image
Price: $0.04/image → $0.25/image (6x — V4 Pro is premium tier)
Schema: V4 dropped the required `style` enum entirely; defaults
handle taste now. Added `colors` and `background_color`
to supports for brand-palette control. `seed` is not
supported by V4 per the API docs.
Nano Banana → Nano Banana Pro
ID: fal-ai/nano-banana → fal-ai/nano-banana-pro
Price: $0.08/image → $0.15/image (1K); $0.30 at 4K
Schema: Aspect ratio family unchanged. Added `resolution`
(1K/2K/4K, default 1K for billing predictability),
`enable_web_search` (real-time info grounding, +$0.015),
and `limit_generations` (force exactly 1 image).
Architecture: Gemini 2.5 Flash → Gemini 3 Pro Image. Quality
and reasoning depth improved; slower (~6s → ~8s).
Migration: users who had the old IDs in `image_gen.model` will
fall through the existing 'unknown model → default' warning path
in `_resolve_fal_model()` and get the Klein 9B default on the next
run. Re-run `hermes tools` → Image Generation to pick the new
version. No silent cost-upgrade aliasing — the 2-6x price jump
on these tiers warrants explicit user re-selection.
Portal note: both new model IDs need to be allowlisted on the
Nous fal-queue-gateway alongside the previous 7 additions, or
users on Nous Subscription will see the 'managed gateway rejected
model' error we added previously (which is clear and
self-remediating, just noisy).
* docs: wrap '<1s' in backticks to unblock MDX compilation
Docusaurus's MDX parser treats unquoted '<' as the start of JSX, and
'<1s' fails because '1' isn't a valid tag-name start character. This
was broken on main since PR #11265 (never noticed because
docs-site-checks was failing on OTHER issues at the time and we
admin-merged through it).
Wrapping in backticks also gives the cell monospace styling which
reads more cleanly alongside the inline-code model ID in the same row.
The other '<1s' occurrence (line 52) is inside a fenced code block
and is already safe — code fences bypass MDX parsing.
This commit is contained in:
parent
70768665a4
commit
220fa7db90
5 changed files with 40 additions and 30 deletions
|
|
@ -134,11 +134,11 @@ FAL_MODELS: Dict[str, Dict[str, Any]] = {
|
|||
},
|
||||
"upscale": False,
|
||||
},
|
||||
"fal-ai/nano-banana": {
|
||||
"display": "Nano Banana (Gemini 2.5 Flash Image)",
|
||||
"speed": "~6s",
|
||||
"strengths": "Gemini 2.5, consistency",
|
||||
"price": "$0.08/image",
|
||||
"fal-ai/nano-banana-pro": {
|
||||
"display": "Nano Banana Pro (Gemini 3 Pro Image)",
|
||||
"speed": "~8s",
|
||||
"strengths": "Gemini 3 Pro, reasoning depth, text rendering",
|
||||
"price": "$0.15/image (1K)",
|
||||
"size_style": "aspect_ratio",
|
||||
"sizes": {
|
||||
"landscape": "16:9",
|
||||
|
|
@ -149,10 +149,14 @@ FAL_MODELS: Dict[str, Dict[str, Any]] = {
|
|||
"num_images": 1,
|
||||
"output_format": "png",
|
||||
"safety_tolerance": "5",
|
||||
# "1K" is the cheapest tier; 4K doubles the per-image cost.
|
||||
# Users on Nous Subscription should stay at 1K for predictable billing.
|
||||
"resolution": "1K",
|
||||
},
|
||||
"supports": {
|
||||
"prompt", "aspect_ratio", "num_images", "output_format",
|
||||
"safety_tolerance", "seed", "sync_mode",
|
||||
"safety_tolerance", "seed", "sync_mode", "resolution",
|
||||
"enable_web_search", "limit_generations",
|
||||
},
|
||||
"upscale": False,
|
||||
},
|
||||
|
|
@ -202,11 +206,11 @@ FAL_MODELS: Dict[str, Dict[str, Any]] = {
|
|||
},
|
||||
"upscale": False,
|
||||
},
|
||||
"fal-ai/recraft-v3": {
|
||||
"display": "Recraft V3",
|
||||
"fal-ai/recraft/v4/pro/text-to-image": {
|
||||
"display": "Recraft V4 Pro",
|
||||
"speed": "~8s",
|
||||
"strengths": "Vector, brand styles",
|
||||
"price": "$0.04/image",
|
||||
"strengths": "Design, brand systems, production-ready",
|
||||
"price": "$0.25/image",
|
||||
"size_style": "image_size_preset",
|
||||
"sizes": {
|
||||
"landscape": "landscape_16_9",
|
||||
|
|
@ -214,10 +218,12 @@ FAL_MODELS: Dict[str, Dict[str, Any]] = {
|
|||
"portrait": "portrait_16_9",
|
||||
},
|
||||
"defaults": {
|
||||
"style": "realistic_image",
|
||||
# V4 Pro dropped V3's required `style` enum — defaults handle taste now.
|
||||
"enable_safety_checker": False,
|
||||
},
|
||||
"supports": {
|
||||
"prompt", "image_size", "style",
|
||||
"prompt", "image_size", "enable_safety_checker",
|
||||
"colors", "background_color",
|
||||
},
|
||||
"upscale": False,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue