Les défauts d'image des abonnés changent : Krea 2 Medium Turbo, avec FAL juste derrière


Vous avez un abonnement payant, vous demandez un jour une illustration à Hermes, et le résultat est correct — mais vous ne trouvez nulle part dans les réglages quel modèle l’a dessinée. La raison est simple : vous n’avez jamais ouvert la voie d’images dans hermes tools, l’image vient donc du défaut de premier lancement, et ce défaut était autrefois le FLUX 2 Klein 9B de FAL.

Il y avait une seconde contrariété, plus discrète, à côté. Vous avez fourni une image de référence et demandé au modèle de dessiner quelque chose dans ce style. À la place, il a exécuté une passe de vision sur l’image et écrit une longue description de style dans le prompt — parce que le schéma lui disait que vous vouliez éditer cette image. Krea 2 n’édite rien ; il copie le rendu.

Un changement fusionné dans cette fenêtre corrige les deux.

Le défaut n’est écrit que sous une condition très étroite

La nouvelle règle en une phrase : un compte payant passe par défaut à Krea 2 Medium Turbo, mais uniquement lorsque la section image n’a jamais été configurée, ne contient aucun modèle stocké et que le compte a réellement droit à Krea.

Chaque qualificatif mérite sa place :

  • « Jamais configurée » : si vous avez un jour choisi un modèle dans hermes tools, rien n’est écrasé. C’est la propriété la plus importante ici — il ne s’agit pas de « changer un défaut », mais de « donner un meilleur point de départ à ceux qui n’ont jamais choisi ».
  • « Compte payant » : le pool gratuit n’a pas droit à Krea, il conserve donc le défaut FAL. On ne refile pas aux utilisateurs gratuits un modèle qu’ils ne peuvent pas utiliser.
  • « Droit à Krea » : la vérification d’éligibilité et l’écriture relèvent de la même règle (_krea_image_default), et l’application du défaut de gateway au premier lancement utilise cette même règle, il n’y a donc pas une seconde copie de la logique à diverger.

Du côté du plugin Krea, krea-2-medium-turbo est désormais une entrée de cette forme (plugins/image_gen/krea/__init__.py) :

"krea-2-medium-turbo": { path: "medium-turbo", price: "$0.015 (text) / $0.0175 (style refs)", upscale: false }

En clair : environ 0,015 $ par génération en texte seul, environ 0,0175 $ avec des références de style, et aucune passe d’upscale implicite.

Une image de référence copie un rendu ; elle n’édite pas une image

C’est la moitié du changement à l’effet le plus direct sur la qualité. Le schéma d’image_generate décrivait autrefois image_url comme une image source à éditer, et les images de référence comme guidant cette édition. Lisez cette formulation et Krea 2 faisait la chose raisonnable : un appel de vision sur l’image, puis une longue description de style écrite dans le prompt.

Désormais, un provider peut déclarer, dans ses capabilities :

def capabilities(self) -> dict:
    return { ..., "source_image_role": "style" }

Une fois déclaré comme style, la formulation du schéma change : le rendu de l’image est copié, non édité ; prompt demande le sujet et la scène, et les références ne fournissent que le rendu. Tous les autres backends rendent exactement le schéma qu’ils rendaient auparavant — le basculement est strictement par backend.

La différence pratique est immédiatement visible. Donnez-lui une référence aquarelle et vous obteniez auparavant un paragraphe de « aquarelle, mouillé sur mouillé, grain de papier … » injecté dans votre prompt. Désormais, le modèle peint simplement dans le rendu de l’image que vous avez fournie.

Quand cela retombe sur FAL — et quand cela ne doit pas

Le fallback n’est pas « Krea ne va pas bien, on relance tout ». Il a une règle d’admission volontairement étroite, et l’exigence centrale est que la requête n’ait prouvablement créé aucune tâche :

Éligible :

  • La connexion n’a jamais été établie (échec DNS ou connexion refusée) — aucun serveur n’a jamais accepté la requête.
  • Le gateway a répondu 429, qu’il documente comme « aucune tâche n’a été créée ».

Jamais éligible :

  • Une connexion coupée après l’envoi, un timeout, un 5xx, tout autre 4xx, un JSON illisible, et tout ce qui survient après l’existence d’un id de tâche — dans ces cas, la tâche peut exister et a déjà été autorisée à la facturation, donc relancer paierait deux fois.
  • Les requêtes qui transportent des images sources ne retombent jamais, car FAL les routerait vers un endpoint d’édition aux sémantiques différentes.

Pour distinguer « jamais connecté » de « coupé après l’envoi », les échecs de connexion sont désormais rapportés comme unreachable (dans plugins/image_gen/_common.py), séparément d’une coupure après envoi.

Après un fallback, le résultat raconte ce qui s’est passé

Une relance n’est jamais silencieuse. Le résultat de l’outil transporte :

Champ Signification
provider / model qui l’a réellement exécuté
fallback_from de quel modèle (généralement celui de Krea) il provient
fallback_reason pourquoi la relance a été déclenchée
note une explication en une ligne ; si FAL a aussi échoué, la note dit que le fallback a échoué lui aussi

Deux détails à connaître :

  • Un upscale que vous avez demandé à Krea reste sur la relance, où il désigne le Clarity Upscaler de FAL, et la note le précise.
  • Sur une installation qui n’a jamais utilisé FAL, le premier fallback installe la fonctionnalité FAL optionnelle de Hermes — avec un prompt dans un terminal et silencieusement sinon, exactement comme tout premier usage de FAL.

Désactiver le fallback

image_gen:
  krea:
    fallback_to_fal: false   # do not rerun a failed Krea submit on FAL

La clé signifie « activé par défaut, désactivé seulement quand explicitement mis à false » (fallback_to_fal_enabled()). Si une facturation prévisible vous importe plus que « sortir une image quand même », la désactiver est un choix raisonnable.

Vérifier ce que vous exécutez réellement

# voir le choix actuel de la voie d'images
hermes tools

# ce que la config stocke pour la génération d'images
hermes config get image_gen

# générer une fois et lire les champs provider / model du résultat
hermes chat -q "generate an image of a mountain lake at dusk"

Si hermes tools affiche un modèle que vous avez choisi vous-même, ce changement ne le touche pas. Si vous voyez krea-2-medium-turbo (payant) ou le défaut FAL (pool gratuit), vous êtes sur le nouveau défaut.

Pour la sélection de backend et le routage dans la voie d’images, voir le guide du routage image et vision ; pour maîtriser le contexte de vision, voir le guide du budget de vision.