From 5e99faadfecc7cb568b616da788111a922b88ee8 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Fri, 27 Feb 2026 12:31:49 +0900 Subject: [PATCH] 1.41.7 (#9264) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch version increment to 1.41.7 **Base branch:** `main` ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9264-1-41-7-3146d73d36508108a0d1c3e418216cd0) by [Unito](https://www.unito.io) --------- Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com> Co-authored-by: github-actions --- package.json | 2 +- src/locales/ar/main.json | 49 +++++++++- src/locales/ar/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/en/main.json | 5 +- src/locales/en/nodeDefs.json | 166 +++++++++++++++++++++++++++++++- src/locales/es/main.json | 49 +++++++++- src/locales/es/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/fa/main.json | 49 +++++++++- src/locales/fa/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/fr/main.json | 49 +++++++++- src/locales/fr/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/ja/main.json | 49 +++++++++- src/locales/ja/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/ko/main.json | 49 +++++++++- src/locales/ko/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/pt-BR/main.json | 49 +++++++++- src/locales/pt-BR/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/ru/main.json | 49 +++++++++- src/locales/ru/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/tr/main.json | 49 +++++++++- src/locales/tr/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/zh-TW/main.json | 49 +++++++++- src/locales/zh-TW/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ src/locales/zh/main.json | 49 +++++++++- src/locales/zh/nodeDefs.json | 164 +++++++++++++++++++++++++++++++ 25 files changed, 2501 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 7ee266ec73..f44c8f5f7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@comfyorg/comfyui-frontend", - "version": "1.41.6", + "version": "1.41.7", "private": true, "description": "Official front-end implementation of ComfyUI", "homepage": "https://comfy.org", diff --git a/src/locales/ar/main.json b/src/locales/ar/main.json index 12f6159b1a..44d1bc018f 100644 --- a/src/locales/ar/main.json +++ b/src/locales/ar/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "ملفات إدخال أوبن إيه آي", "PHOTOMAKER": "صانع الصور", "PIXVERSE_TEMPLATE": "قالب PixVerse", + "POSE_KEYPOINT": "نقطة مفتاحية للوضعية", "RECRAFT_COLOR": "لون Recraft", "RECRAFT_CONTROLS": "عناصر تحكم Recraft", "RECRAFT_V3_STYLE": "نمط Recraft V3", @@ -958,6 +959,7 @@ "imageUrl": "رابط الصورة", "import": "استيراد", "inProgress": "جارٍ التنفيذ", + "inSubgraph": "في الرسم البياني الفرعي '{name}'", "increment": "زيادة", "info": "معلومات العقدة", "input": "إدخال", @@ -1115,6 +1117,7 @@ "updated": "تم التحديث", "updating": "جارٍ التحديث", "upload": "رفع", + "uploadAlreadyInProgress": "الرفع جارٍ بالفعل", "usageHint": "تلميح الاستخدام", "use": "استخدم", "user": "المستخدم", @@ -1354,8 +1357,13 @@ }, "downloadAll": "تنزيل الكل", "dragAndDropImage": "اسحب وأسقط صورة", + "giveFeedback": "إعطاء ملاحظات", "graphMode": "وضع الرسم البياني", "linearMode": "وضع التطبيق", + "queue": { + "clear": "مسح قائمة الانتظار", + "clickToClear": "انقر لمسح قائمة الانتظار" + }, "rerun": "تشغيل مجدد", "reuseParameters": "إعادة استخدام المعلمات", "runCount": "عدد مرات التشغيل:", @@ -1575,6 +1583,9 @@ "nodePack": "حزمة العقد", "nodePackInfo": "معلومات حزمة العقد", "notAvailable": "غير متوفر", + "packInstall": { + "nodeIdRequired": "معرّف العقدة مطلوب للتثبيت" + }, "packsSelected": "الحزم المحددة", "repository": "المستودع", "restartToApplyChanges": "لـتطبيق التغييرات، يرجى إعادة تشغيل ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "فتح مدير العقد", "quickFixAvailable": "إصلاح سريع متاح", "redHighlight": "أحمر", + "replaceAll": "استبدال الكل", + "replaceAllWarning": "سيتم استبدال جميع العقد المتاحة في هذه المجموعة.", "replaceFailed": "فشل في استبدال العقد", + "replaceNode": "استبدال العقدة", "replaceSelected": "استبدال المحدد ({count})", "replaceWarning": "سيؤدي هذا إلى تعديل سير العمل بشكل دائم. احفظ نسخة أولاً إذا لم تكن متأكدًا.", "replaceable": "قابل للاستبدال", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "تم استبدال {count} نوع/أنواع من العقد", "replacedNode": "تم استبدال العقدة: {nodeType}", "selectAll": "تحديد الكل", - "skipForNow": "تخطي الآن" + "skipForNow": "تخطي الآن", + "swapNodesGuide": "يمكن استبدال العقد التالية تلقائيًا ببدائل متوافقة.", + "swapNodesTitle": "تبديل العقد", + "unknownNode": "غير معروف", + "willBeReplacedBy": "سيتم استبدال هذه العقدة بـ:" }, "nodeTemplates": { "enterName": "أدخل الاسم", @@ -2099,6 +2117,19 @@ }, "title": "جهازك غير مدعوم" }, + "painter": { + "background": "الخلفية", + "brush": "فرشاة", + "clear": "مسح", + "color": "منتقي اللون", + "eraser": "ممحاة", + "hardness": "الصلابة", + "height": "الارتفاع", + "size": "حجم المؤشر", + "tool": "أداة", + "uploadError": "فشل في رفع صورة الرسام: {status} - {statusText}", + "width": "العرض" + }, "progressToast": { "allDownloadsCompleted": "اكتملت جميع التنزيلات", "downloadingModel": "جاري تنزيل النموذج...", @@ -2219,6 +2250,22 @@ "inputsNone": "لا توجد مدخلات", "inputsNoneTooltip": "العقدة ليس لديها مدخلات", "locateNode": "تحديد موقع العقدة على اللوحة", + "missingNodePacks": { + "applyChanges": "تطبيق التغييرات", + "cloudMessage": "يتطلب سير العمل هذا عقدًا مخصصة غير متوفرة بعد على Comfy Cloud.", + "collapse": "طي", + "expand": "توسيع", + "installAll": "تثبيت الكل", + "installNodePack": "تثبيت حزمة العقد", + "installed": "تم التثبيت", + "installing": "جارٍ التثبيت...", + "ossMessage": "يستخدم سير العمل هذا عقدًا مخصصة لم تقم بتثبيتها بعد.", + "searchInManager": "البحث في مدير العقد", + "title": "حزم العقد المفقودة", + "unknownPack": "حزمة غير معروفة", + "unsupportedTitle": "حزم العقد غير المدعومة", + "viewInManager": "عرض في المدير" + }, "mute": "كتم", "noErrors": "لا توجد أخطاء", "noSelection": "حدد عقدة لعرض خصائصها ومعلوماتها.", diff --git a/src/locales/ar/nodeDefs.json b/src/locales/ar/nodeDefs.json index d60b14fccf..70f5ba9236 100644 --- a/src/locales/ar/nodeDefs.json +++ b/src/locales/ar/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "قص وتغيير حجم المناطق من دفعة الصور المدخلة بناءً على مربعات التحديد المقدمة.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "مربعات التحديد" + }, + "image": { + "name": "الصورة" + }, + "output_height": { + "name": "ارتفاع الناتج", + "tooltip": "الارتفاع الذي يتم تغيير حجم كل قص إليه." + }, + "output_width": { + "name": "عرض الناتج", + "tooltip": "العرض الذي يتم تغيير حجم كل قص إليه." + }, + "padding": { + "name": "هامش إضافي", + "tooltip": "هامش إضافي بالبكسل يُضاف على كل جانب من مربع التحديد قبل القص." + } + }, + "outputs": { + "0": { + "tooltip": "جميع القصاصات مكدسة في دفعة صور واحدة." + } + } + }, "CropMask": { "display_name": "قص القناع", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "إنشاء أو تعديل الصور بشكل متزامن عبر Google Vertex API.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "إذا تم تعيينها إلى 'auto'، سيتم مطابقة نسبة العرض إلى الارتفاع لصورتك المدخلة؛ إذا لم يتم توفير صورة، يتم عادةً إنشاء صورة مربعة بنسبة 16:9." + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "ملف (ملفات) اختيارية لاستخدامها كسياق للنموذج. يقبل المدخلات من عقدة Gemini Generate Content Input Files." + }, + "images": { + "name": "images", + "tooltip": "صورة (صور) مرجعية اختيارية. لإضافة عدة صور، استخدم عقدة Batch Images (حتى ١٤ صورة)." + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "وصف نصي للصورة المراد إنشاؤها أو التعديلات المطلوب تطبيقها. أدرج أي قيود أو أنماط أو تفاصيل يجب على النموذج اتباعها." + }, + "resolution": { + "name": "resolution", + "tooltip": "دقة الإخراج المستهدفة. بالنسبة لـ 2K/4K يتم استخدام أداة التكبير الأصلية لـ Gemini." + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "عند تثبيت قيمة seed على رقم محدد، يحاول النموذج تقديم نفس الاستجابة للطلبات المتكررة قدر الإمكان. لا يمكن ضمان نتائج حتمية. كما أن تغيير النموذج أو إعدادات المعلمات مثل درجة العشوائية قد يؤدي إلى اختلاف النتائج حتى مع نفس قيمة seed. بشكل افتراضي، يتم استخدام قيمة seed عشوائية." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "تعليمات أساسية تحدد سلوك الذكاء الاصطناعي." + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "إنشاء استجابات نصية باستخدام نموذج الذكاء الاصطناعي Gemini من Google. يمكنك تقديم أنواع متعددة من المدخلات (نص، صور، صوت، فيديو) كسياق لإنشاء استجابات أكثر صلة ومعنى.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "رسم الجسم" + }, + "draw_face": { + "name": "رسم الوجه" + }, + "draw_feet": { + "name": "رسم القدمين" + }, + "draw_hands": { + "name": "رسم اليدين" + }, + "face_point_size": { + "name": "حجم نقطة الوجه" + }, + "keypoints": { + "name": "النقاط الرئيسية" + }, + "score_threshold": { + "name": "عتبة الدرجات" + }, + "stick_width": { + "name": "عرض الخط" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "إجبار الشكل المربع", + "tooltip": "توسيع المحور الأقصر لمربع التحديد بحيث تكون منطقة القص دائماً مربعة." + }, + "keypoints": { + "name": "النقاط الرئيسية" + }, + "scale": { + "name": "المقياس", + "tooltip": "معامل ضرب لمساحة مربع التحديد حول كل وجه مكتشف." + } + }, + "outputs": { + "0": { + "name": "مربعات التحديد", + "tooltip": "مربعات تحديد الوجه لكل إطار، متوافقة مع مدخل مربعات التحديد في SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "استخراج النقاط الرئيسية للوضعية من الصور باستخدام نموذج SDPose: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "حجم الدفعة" + }, + "bboxes": { + "name": "مربعات التحديد", + "tooltip": "مربعات التحديد الاختيارية للحصول على كشف أدق. مطلوبة لاكتشاف عدة أشخاص." + }, + "image": { + "name": "الصورة" + }, + "model": { + "name": "النموذج" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "النقاط الرئيسية", + "tooltip": "النقاط الرئيسية بتنسيق OpenPose (عرض اللوحة، ارتفاع اللوحة، الأشخاص)" + } + } + }, "SDTurboScheduler": { "display_name": "جدول SD Turbo", "inputs": { diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 1af245a216..cc7f72b0f9 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -1703,6 +1703,7 @@ "OPENAI_INPUT_FILES": "OPENAI_INPUT_FILES", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "PIXVERSE_TEMPLATE", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "RECRAFT_COLOR", "RECRAFT_CONTROLS": "RECRAFT_CONTROLS", "RECRAFT_V3_STYLE": "RECRAFT_V3_STYLE", @@ -3035,11 +3036,11 @@ "promptAddInputs": "Click on node parameters to add them here as inputs", "noInputs": "No inputs added yet", "inputsDesc": "Users will interact and adjust these to generate their outputs.", - "inputsExample": "Examples: \u201cLoad image\u201d, \u201cText prompt\u201d, \u201cSteps\u201d", + "inputsExample": "Examples: “Load image”, “Text prompt”, “Steps”", "promptAddOutputs": "Click on output nodes to add them here. These will be the generated results.", "noOutputs": "No output nodes added yet", "outputsDesc": "Connect at least one output node so users can see results after running.", - "outputsExample": "Examples: \u201cSave Image\u201d or \u201cSave Video\u201d" + "outputsExample": "Examples: “Save Image” or “Save Video”" }, "queue": { "clickToClear": "Click to clear queue", diff --git a/src/locales/en/nodeDefs.json b/src/locales/en/nodeDefs.json index 76f1c1bdd2..1cd4c0f3aa 100644 --- a/src/locales/en/nodeDefs.json +++ b/src/locales/en/nodeDefs.json @@ -673,7 +673,7 @@ } }, "ByteDanceSeedreamNode": { - "display_name": "ByteDance Seedream 5.0", + "display_name": "ByteDance Seedream 4.5 & 5.0", "description": "Unified text-to-image generation and precise single-sentence editing at up to 4K resolution.", "inputs": { "model": { @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "display_name": "CropByBBoxes", + "description": "Crop and resize regions from the input image batch based on provided bounding boxes.", + "inputs": { + "image": { + "name": "image" + }, + "bboxes": { + "name": "bboxes" + }, + "output_width": { + "name": "output_width", + "tooltip": "Width each crop is resized to." + }, + "output_height": { + "name": "output_height", + "tooltip": "Height each crop is resized to." + }, + "padding": { + "name": "padding", + "tooltip": "Extra padding in pixels added on each side of the bbox before cropping." + } + }, + "outputs": { + "0": { + "tooltip": "All crops stacked into a single image batch." + } + } + }, "CropMask": { "display_name": "CropMask", "inputs": { @@ -3601,6 +3630,57 @@ } } }, + "GeminiNanoBanana2": { + "display_name": "Nano Banana 2", + "description": "Generate or edit images synchronously via Google Vertex API.", + "inputs": { + "prompt": { + "name": "prompt", + "tooltip": "Text prompt describing the image to generate or the edits to apply. Include any constraints, styles, or details the model should follow." + }, + "model": { + "name": "model" + }, + "seed": { + "name": "seed", + "tooltip": "When the seed is fixed to a specific value, the model makes a best effort to provide the same response for repeated requests. Deterministic output isn't guaranteed. Also, changing the model or parameter settings, such as the temperature, can cause variations in the response even when you use the same seed value. By default, a random seed value is used." + }, + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "If set to 'auto', matches your input image's aspect ratio; if no image is provided, a 16:9 square is usually generated." + }, + "resolution": { + "name": "resolution", + "tooltip": "Target output resolution. For 2K/4K the native Gemini upscaler is used." + }, + "response_modalities": { + "name": "response_modalities" + }, + "thinking_level": { + "name": "thinking_level" + }, + "images": { + "name": "images", + "tooltip": "Optional reference image(s). To include multiple images, use the Batch Images node (up to 14)." + }, + "files": { + "name": "files", + "tooltip": "Optional file(s) to use as context for the model. Accepts inputs from the Gemini Generate Content Input Files node." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "Foundational instructions that dictate an AI's behavior." + }, + "control_after_generate": { + "name": "control after generate" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "display_name": "Google Gemini", "description": "Generate text responses with Google's Gemini AI model. You can provide multiple types of inputs (text, images, audio, video) as context for generating more relevant and meaningful responses.", @@ -13690,6 +13770,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "keypoints": { + "name": "keypoints" + }, + "draw_body": { + "name": "draw_body" + }, + "draw_hands": { + "name": "draw_hands" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "stick_width": { + "name": "stick_width" + }, + "face_point_size": { + "name": "face_point_size" + }, + "score_threshold": { + "name": "score_threshold" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "Multiplier for the bounding box area around each detected face." + }, + "force_square": { + "name": "force_square", + "tooltip": "Expand the shorter bbox axis so the crop region is always square." + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "Face bounding boxes per frame, compatible with SDPoseKeypointExtractor bboxes input." + } + } + }, + "SDPoseKeypointExtractor": { + "display_name": "SDPoseKeypointExtractor", + "description": "Extract pose keypoints from images using the SDPose model: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "inputs": { + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + }, + "image": { + "name": "image" + }, + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "Optional bounding boxes for more accurate detections. Required for multi-person detection." + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "Keypoints in OpenPose frame format (canvas_width, canvas_height, people)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboScheduler", "inputs": { diff --git a/src/locales/es/main.json b/src/locales/es/main.json index f8f270da3e..aad77e0b27 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "ARCHIVOS_ENTRADA_OPENAI", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "PLANTILLA PIXVERSE", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "COLOR RECRAFT", "RECRAFT_CONTROLS": "CONTROLES RECRAFT", "RECRAFT_V3_STYLE": "ESTILO RECRAFT V3", @@ -958,6 +959,7 @@ "imageUrl": "URL de la imagen", "import": "Importar", "inProgress": "En progreso", + "inSubgraph": "en subgrafo '{name}'", "increment": "Incrementar", "info": "Información del Nodo", "input": "Entrada", @@ -1115,6 +1117,7 @@ "updated": "Actualizado", "updating": "Actualizando", "upload": "Subir", + "uploadAlreadyInProgress": "La carga ya está en curso", "usageHint": "Sugerencia de uso", "use": "Usar", "user": "Usuario", @@ -1354,8 +1357,13 @@ }, "downloadAll": "Descargar todo", "dragAndDropImage": "Arrastra y suelta una imagen", + "giveFeedback": "Enviar comentarios", "graphMode": "Modo gráfico", "linearMode": "Modo App", + "queue": { + "clear": "Limpiar cola", + "clickToClear": "Haz clic para limpiar la cola" + }, "rerun": "Volver a ejecutar", "reuseParameters": "Reutilizar parámetros", "runCount": "Número de ejecuciones:", @@ -1575,6 +1583,9 @@ "nodePack": "Paquete de Nodos", "nodePackInfo": "Información del paquete de nodos", "notAvailable": "No Disponible", + "packInstall": { + "nodeIdRequired": "Se requiere el ID del nodo para la instalación" + }, "packsSelected": "Paquetes Seleccionados", "repository": "Repositorio", "restartToApplyChanges": "Para aplicar los cambios, por favor reinicia ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "Abrir Administrador de Nodos", "quickFixAvailable": "Solución rápida disponible", "redHighlight": "rojo", + "replaceAll": "Reemplazar todo", + "replaceAllWarning": "Reemplaza todos los nodos disponibles en este grupo.", "replaceFailed": "Error al reemplazar nodos", + "replaceNode": "Reemplazar nodo", "replaceSelected": "Reemplazar seleccionados ({count})", "replaceWarning": "Esto modificará permanentemente el flujo de trabajo. Guarda una copia primero si no estás seguro.", "replaceable": "Reemplazable", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "Reemplazados {count} tipo(s) de nodo", "replacedNode": "Nodo reemplazado: {nodeType}", "selectAll": "Seleccionar todo", - "skipForNow": "Omitir por ahora" + "skipForNow": "Omitir por ahora", + "swapNodesGuide": "Los siguientes nodos pueden ser reemplazados automáticamente por alternativas compatibles.", + "swapNodesTitle": "Intercambiar nodos", + "unknownNode": "Desconocido", + "willBeReplacedBy": "Este nodo será reemplazado por:" }, "nodeTemplates": { "enterName": "Introduzca el nombre", @@ -2099,6 +2117,19 @@ }, "title": "Tu dispositivo no es compatible" }, + "painter": { + "background": "Fondo", + "brush": "Pincel", + "clear": "Limpiar", + "color": "Selector de color", + "eraser": "Borrador", + "hardness": "Dureza", + "height": "Alto", + "size": "Tamaño del cursor", + "tool": "Herramienta", + "uploadError": "Error al cargar la imagen del pintor: {status} - {statusText}", + "width": "Ancho" + }, "progressToast": { "allDownloadsCompleted": "Todas las descargas completadas", "downloadingModel": "Descargando modelo...", @@ -2219,6 +2250,22 @@ "inputsNone": "SIN ENTRADAS", "inputsNoneTooltip": "El nodo no tiene entradas", "locateNode": "Localizar nodo en el lienzo", + "missingNodePacks": { + "applyChanges": "Aplicar cambios", + "cloudMessage": "Este flujo de trabajo requiere nodos personalizados que aún no están disponibles en Comfy Cloud.", + "collapse": "Colapsar", + "expand": "Expandir", + "installAll": "Instalar todo", + "installNodePack": "Instalar paquete de nodos", + "installed": "Instalado", + "installing": "Instalando...", + "ossMessage": "Este flujo de trabajo utiliza nodos personalizados que aún no has instalado.", + "searchInManager": "Buscar en el Gestor de Nodos", + "title": "Paquetes de nodos faltantes", + "unknownPack": "Paquete desconocido", + "unsupportedTitle": "Paquetes de nodos no compatibles", + "viewInManager": "Ver en el Gestor" + }, "mute": "Silenciar", "noErrors": "Sin errores", "noSelection": "Selecciona un nodo para ver sus propiedades e información.", diff --git a/src/locales/es/nodeDefs.json b/src/locales/es/nodeDefs.json index e090c1b6cc..f393080628 100644 --- a/src/locales/es/nodeDefs.json +++ b/src/locales/es/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "Recorta y redimensiona regiones del lote de imágenes de entrada según las cajas delimitadoras proporcionadas.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "cajas delimitadoras" + }, + "image": { + "name": "imagen" + }, + "output_height": { + "name": "alto de salida", + "tooltip": "Alto al que se redimensiona cada recorte." + }, + "output_width": { + "name": "ancho de salida", + "tooltip": "Ancho al que se redimensiona cada recorte." + }, + "padding": { + "name": "relleno", + "tooltip": "Relleno extra en píxeles añadido a cada lado de la caja antes de recortar." + } + }, + "outputs": { + "0": { + "tooltip": "Todos los recortes apilados en un solo lote de imágenes." + } + } + }, "CropMask": { "display_name": "CropMask", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Genera o edita imágenes de forma síncrona a través de la API de Google Vertex.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "Si se establece en 'auto', coincide con la relación de aspecto de tu imagen de entrada; si no se proporciona imagen, normalmente se genera un cuadrado 16:9." + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "Archivo(s) opcional(es) para usar como contexto para el modelo. Acepta entradas del nodo Gemini Generate Content Input Files." + }, + "images": { + "name": "images", + "tooltip": "Imagen(es) de referencia opcional(es). Para incluir varias imágenes, utiliza el nodo Batch Images (hasta 14)." + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "Texto descriptivo de la imagen a generar o de las ediciones a aplicar. Incluye cualquier restricción, estilo o detalle que el modelo deba seguir." + }, + "resolution": { + "name": "resolution", + "tooltip": "Resolución de salida objetivo. Para 2K/4K se utiliza el escalador nativo de Gemini." + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "Cuando la semilla se fija a un valor específico, el modelo intenta proporcionar la misma respuesta en solicitudes repetidas. No se garantiza una salida determinista. Además, cambiar el modelo o los parámetros, como la temperatura, puede causar variaciones en la respuesta incluso usando la misma semilla. Por defecto, se utiliza un valor de semilla aleatorio." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "Instrucciones fundamentales que dictan el comportamiento de la IA." + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Genera respuestas de texto con el modelo de IA Gemini de Google. Puede proporcionar múltiples tipos de entradas (texto, imágenes, audio, video) como contexto para generar respuestas más relevantes y significativas.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "dibujar cuerpo" + }, + "draw_face": { + "name": "dibujar rostro" + }, + "draw_feet": { + "name": "dibujar pies" + }, + "draw_hands": { + "name": "dibujar manos" + }, + "face_point_size": { + "name": "tamaño de punto facial" + }, + "keypoints": { + "name": "puntos clave" + }, + "score_threshold": { + "name": "umbral de puntuación" + }, + "stick_width": { + "name": "ancho de línea" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "forzar cuadrado", + "tooltip": "Expande el eje más corto de la caja para que la región recortada sea siempre cuadrada." + }, + "keypoints": { + "name": "puntos clave" + }, + "scale": { + "name": "escala", + "tooltip": "Multiplicador para el área de la caja delimitadora alrededor de cada rostro detectado." + } + }, + "outputs": { + "0": { + "name": "cajas delimitadoras", + "tooltip": "Cajas delimitadoras de rostro por fotograma, compatibles con la entrada de cajas delimitadoras de SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "Extrae puntos clave de pose de imágenes usando el modelo SDPose: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "tamaño de lote" + }, + "bboxes": { + "name": "cajas delimitadoras", + "tooltip": "Cajas delimitadoras opcionales para detecciones más precisas. Requerido para la detección de múltiples personas." + }, + "image": { + "name": "imagen" + }, + "model": { + "name": "modelo" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "puntos clave", + "tooltip": "Puntos clave en formato de marco OpenPose (ancho_lienzo, alto_lienzo, personas)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboScheduler", "inputs": { diff --git a/src/locales/fa/main.json b/src/locales/fa/main.json index 7d87c7db62..6a362773b6 100644 --- a/src/locales/fa/main.json +++ b/src/locales/fa/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "فایل‌های ورودی OpenAI", "PHOTOMAKER": "photomaker", "PIXVERSE_TEMPLATE": "قالب Pixverse", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "رنگ Recraft", "RECRAFT_CONTROLS": "کنترل‌های Recraft", "RECRAFT_V3_STYLE": "سبک Recraft V3", @@ -958,6 +959,7 @@ "imageUrl": "آدرس تصویر", "import": "وارد کردن", "inProgress": "در حال انجام", + "inSubgraph": "در زیرگراف «{name}»", "increment": "افزایش", "info": "اطلاعات node", "input": "ورودی", @@ -1115,6 +1117,7 @@ "updated": "به‌روزرسانی شد", "updating": "در حال به‌روزرسانی {id}", "upload": "بارگذاری", + "uploadAlreadyInProgress": "بارگذاری در حال انجام است", "usageHint": "راهنمای استفاده", "use": "استفاده", "user": "کاربر", @@ -1354,8 +1357,13 @@ }, "downloadAll": "دانلود همه", "dragAndDropImage": "تصویر را بکشید و رها کنید", + "giveFeedback": "ارسال بازخورد", "graphMode": "حالت گراف", "linearMode": "حالت برنامه", + "queue": { + "clear": "پاک‌سازی صف", + "clickToClear": "برای پاک‌سازی صف کلیک کنید" + }, "rerun": "اجرای مجدد", "reuseParameters": "استفاده مجدد از پارامترها", "runCount": "تعداد اجرا: ", @@ -1575,6 +1583,9 @@ "nodePack": "بسته نود", "nodePackInfo": "اطلاعات Node Pack", "notAvailable": "در دسترس نیست", + "packInstall": { + "nodeIdRequired": "شناسه node برای نصب الزامی است" + }, "packsSelected": "بسته انتخاب شد", "repository": "مخزن", "restartToApplyChanges": "برای اعمال تغییرات، لطفاً ComfyUI را مجدداً راه‌اندازی کنید", @@ -2072,7 +2083,10 @@ "openNodeManager": "باز کردن Node Manager", "quickFixAvailable": "رفع سریع در دسترس است", "redHighlight": "قرمز", + "replaceAll": "جایگزینی همه", + "replaceAllWarning": "همه گره‌های موجود در این گروه جایگزین خواهند شد.", "replaceFailed": "جایگزینی نودها ناموفق بود", + "replaceNode": "جایگزینی گره", "replaceSelected": "جایگزینی انتخاب‌شده‌ها ({count})", "replaceWarning": "این کار workflow را به طور دائمی تغییر می‌دهد. اگر مطمئن نیستید، ابتدا یک نسخه ذخیره کنید.", "replaceable": "قابل جایگزینی", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "{count} نوع نود جایگزین شد", "replacedNode": "نود جایگزین شد: {nodeType}", "selectAll": "انتخاب همه", - "skipForNow": "فعلاً رد شود" + "skipForNow": "فعلاً رد شود", + "swapNodesGuide": "گره‌های زیر می‌توانند به‌صورت خودکار با گزینه‌های سازگار جایگزین شوند.", + "swapNodesTitle": "جایگزینی گره‌ها", + "unknownNode": "ناشناخته", + "willBeReplacedBy": "این گره جایگزین خواهد شد با:" }, "nodeTemplates": { "enterName": "نام را وارد کنید", @@ -2099,6 +2117,19 @@ }, "title": "دستگاه شما پشتیبانی نمی‌شود" }, + "painter": { + "background": "پس‌زمینه", + "brush": "براش", + "clear": "پاک‌سازی", + "color": "انتخاب رنگ", + "eraser": "پاک‌کن", + "hardness": "سختی", + "height": "ارتفاع", + "size": "اندازه نشانگر", + "tool": "ابزار", + "uploadError": "بارگذاری تصویر painter ناموفق بود: {status} - {statusText}", + "width": "عرض" + }, "progressToast": { "allDownloadsCompleted": "همه دانلودها تکمیل شدند", "downloadingModel": "در حال دانلود مدل...", @@ -2219,6 +2250,22 @@ "inputsNone": "بدون ورودی", "inputsNoneTooltip": "این نود ورودی ندارد", "locateNode": "یافتن node در canvas", + "missingNodePacks": { + "applyChanges": "اعمال تغییرات", + "cloudMessage": "این workflow به nodeهای سفارشی نیاز دارد که هنوز در Comfy Cloud موجود نیستند.", + "collapse": "جمع کردن", + "expand": "باز کردن", + "installAll": "نصب همه", + "installNodePack": "نصب پک node", + "installed": "نصب شد", + "installing": "در حال نصب...", + "ossMessage": "این workflow از nodeهای سفارشی استفاده می‌کند که هنوز نصب نکرده‌اید.", + "searchInManager": "جستجو در Node Manager", + "title": "پک‌های node مفقود", + "unknownPack": "پک ناشناخته", + "unsupportedTitle": "پک‌های node پشتیبانی‌نشده", + "viewInManager": "مشاهده در Manager" + }, "mute": "بی‌صدا", "noErrors": "بدون خطا", "noSelection": "یک نود را انتخاب کنید تا ویژگی‌ها و اطلاعات آن نمایش داده شود.", diff --git a/src/locales/fa/nodeDefs.json b/src/locales/fa/nodeDefs.json index 08a9c6d60c..d3feaa431d 100644 --- a/src/locales/fa/nodeDefs.json +++ b/src/locales/fa/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "برش و تغییر اندازه نواحی از دسته تصویر ورودی بر اساس جعبه‌های مرزی ارائه‌شده.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "جعبه‌های مرزی" + }, + "image": { + "name": "تصویر" + }, + "output_height": { + "name": "ارتفاع خروجی", + "tooltip": "ارتفاعی که هر برش به آن تغییر اندازه داده می‌شود." + }, + "output_width": { + "name": "عرض خروجی", + "tooltip": "عرضی که هر برش به آن تغییر اندازه داده می‌شود." + }, + "padding": { + "name": "حاشیه", + "tooltip": "حاشیه اضافی (بر حسب پیکسل) که به هر طرف جعبه مرزی قبل از برش اضافه می‌شود." + } + }, + "outputs": { + "0": { + "tooltip": "تمام برش‌ها به صورت یک دسته تصویر واحد جمع‌آوری شده‌اند." + } + } + }, "CropMask": { "display_name": "برش Mask", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "تولید یا ویرایش تصاویر به صورت همزمان از طریق Google Vertex API.", + "display_name": "Nano Banana ۲", + "inputs": { + "aspect_ratio": { + "name": "نسبت تصویر", + "tooltip": "اگر روی 'auto' تنظیم شود، با نسبت تصویر ورودی شما مطابقت دارد؛ اگر تصویری ارائه نشود، معمولاً یک مربع با نسبت ۱۶:۹ تولید می‌شود." + }, + "control_after_generate": { + "name": "کنترل پس از تولید" + }, + "files": { + "name": "فایل‌ها", + "tooltip": "فایل(های) اختیاری برای استفاده به عنوان زمینه برای مدل. ورودی‌ها را از node Gemini Generate Content Input Files می‌پذیرد." + }, + "images": { + "name": "تصاویر", + "tooltip": "تصویر(های) مرجع اختیاری. برای افزودن چند تصویر، از node Batch Images استفاده کنید (تا ۱۴ تصویر)." + }, + "model": { + "name": "مدل" + }, + "prompt": { + "name": "پرامپت", + "tooltip": "توضیح متنی درباره تصویری که باید تولید شود یا ویرایش‌هایی که باید اعمال گردد. هرگونه محدودیت، سبک یا جزئیاتی که مدل باید رعایت کند را وارد کنید." + }, + "resolution": { + "name": "وضوح تصویر", + "tooltip": "وضوح خروجی هدف. برای ۲K/۴K از upscaler بومی Gemini استفاده می‌شود." + }, + "response_modalities": { + "name": "حالت‌های پاسخ" + }, + "seed": { + "name": "seed", + "tooltip": "زمانی که مقدار seed ثابت باشد، مدل تلاش می‌کند تا پاسخ مشابهی برای درخواست‌های تکراری ارائه دهد. خروجی قطعی تضمین نمی‌شود. همچنین، تغییر مدل یا تنظیمات پارامترها مانند دما (temperature) می‌تواند باعث تغییر در پاسخ حتی با همان مقدار seed شود. به طور پیش‌فرض، مقدار seed به صورت تصادفی انتخاب می‌شود." + }, + "system_prompt": { + "name": "پرامپت سیستمی", + "tooltip": "دستورالعمل‌های پایه‌ای که رفتار هوش مصنوعی را تعیین می‌کند." + }, + "thinking_level": { + "name": "سطح تفکر" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "تولید پاسخ متنی با مدل هوش مصنوعی Gemini گوگل. می‌توانید انواع مختلفی از ورودی‌ها (متن، تصویر، صوت، ویدئو) را به عنوان زمینه برای تولید پاسخ‌های مرتبط‌تر و معنادارتر ارائه دهید.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "ترسیم بدن" + }, + "draw_face": { + "name": "ترسیم صورت" + }, + "draw_feet": { + "name": "ترسیم پاها" + }, + "draw_hands": { + "name": "ترسیم دست‌ها" + }, + "face_point_size": { + "name": "اندازه نقطه صورت" + }, + "keypoints": { + "name": "نقاط کلیدی" + }, + "score_threshold": { + "name": "آستانه امتیاز" + }, + "stick_width": { + "name": "ضخامت خط" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "اجبار به مربع بودن", + "tooltip": "محور کوتاه‌تر جعبه مرزی را گسترش می‌دهد تا ناحیه برش همیشه مربع باشد." + }, + "keypoints": { + "name": "نقاط کلیدی" + }, + "scale": { + "name": "مقیاس", + "tooltip": "ضریب بزرگنمایی برای ناحیه جعبه مرزی اطراف هر صورت شناسایی‌شده." + } + }, + "outputs": { + "0": { + "name": "جعبه‌های مرزی", + "tooltip": "جعبه‌های مرزی صورت برای هر فریم، سازگار با ورودی bboxes در SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "استخراج نقاط کلیدی ژست از تصاویر با استفاده از مدل SDPose: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "اندازه دسته" + }, + "bboxes": { + "name": "جعبه‌های مرزی", + "tooltip": "جعبه‌های مرزی اختیاری برای تشخیص دقیق‌تر. برای تشخیص چند نفره الزامی است." + }, + "image": { + "name": "تصویر" + }, + "model": { + "name": "مدل" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "نقاط کلیدی", + "tooltip": "نقاط کلیدی در قالب قاب OpenPose (عرض بوم، ارتفاع بوم، افراد)" + } + } + }, "SDTurboScheduler": { "display_name": "زمان‌بندی SDTurbo", "inputs": { diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 009fb43e79..b9ea9ef74b 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "FICHIERS_ENTRÉE_OPENAI", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "Modèle Pixverse", + "POSE_KEYPOINT": "POINT CLÉ DE POSE", "RECRAFT_COLOR": "Couleur Recraft", "RECRAFT_CONTROLS": "Contrôles Recraft", "RECRAFT_V3_STYLE": "Style Recraft V3", @@ -958,6 +959,7 @@ "imageUrl": "URL de l'image", "import": "Importer", "inProgress": "En cours", + "inSubgraph": "dans le sous-graphe « {name} »", "increment": "Augmenter", "info": "Informations du nœud", "input": "Entrée", @@ -1115,6 +1117,7 @@ "updated": "Mis à jour", "updating": "Mise à jour", "upload": "Téléverser", + "uploadAlreadyInProgress": "Téléversement déjà en cours", "usageHint": "Conseil d'utilisation", "use": "Utiliser", "user": "Utilisateur", @@ -1354,8 +1357,13 @@ }, "downloadAll": "Tout télécharger", "dragAndDropImage": "Glissez-déposez une image", + "giveFeedback": "Donner un avis", "graphMode": "Mode graphique", "linearMode": "Mode App", + "queue": { + "clear": "Vider la file d'attente", + "clickToClear": "Cliquez pour vider la file d'attente" + }, "rerun": "Relancer", "reuseParameters": "Réutiliser les paramètres", "runCount": "Nombre d’exécutions :", @@ -1575,6 +1583,9 @@ "nodePack": "Pack de Nœuds", "nodePackInfo": "Informations sur le pack de nœuds", "notAvailable": "Non disponible", + "packInstall": { + "nodeIdRequired": "L'identifiant du nœud est requis pour l'installation" + }, "packsSelected": "Packs sélectionnés", "repository": "Référentiel", "restartToApplyChanges": "Pour appliquer les modifications, veuillez redémarrer ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "Ouvrir le Gestionnaire de nœuds", "quickFixAvailable": "Correction rapide disponible", "redHighlight": "rouge", + "replaceAll": "Tout remplacer", + "replaceAllWarning": "Remplace tous les nœuds disponibles dans ce groupe.", "replaceFailed": "Échec du remplacement des nœuds", + "replaceNode": "Remplacer le nœud", "replaceSelected": "Remplacer la sélection ({count})", "replaceWarning": "Cela modifiera définitivement le workflow. Sauvegardez une copie si vous n’êtes pas sûr.", "replaceable": "Remplaçable", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "{count} type(s) de nœud remplacé(s)", "replacedNode": "Nœud remplacé : {nodeType}", "selectAll": "Tout sélectionner", - "skipForNow": "Ignorer pour l’instant" + "skipForNow": "Ignorer pour l’instant", + "swapNodesGuide": "Les nœuds suivants peuvent être automatiquement remplacés par des alternatives compatibles.", + "swapNodesTitle": "Échanger les nœuds", + "unknownNode": "Inconnu", + "willBeReplacedBy": "Ce nœud sera remplacé par :" }, "nodeTemplates": { "enterName": "Entrez le nom", @@ -2099,6 +2117,19 @@ }, "title": "Votre appareil n'est pas pris en charge" }, + "painter": { + "background": "Arrière-plan", + "brush": "Pinceau", + "clear": "Effacer", + "color": "Sélecteur de couleur", + "eraser": "Gomme", + "hardness": "Dureté", + "height": "Hauteur", + "size": "Taille du curseur", + "tool": "Outil", + "uploadError": "Échec du téléversement de l'image du peintre : {status} - {statusText}", + "width": "Largeur" + }, "progressToast": { "allDownloadsCompleted": "Tous les téléchargements sont terminés", "downloadingModel": "Téléchargement du modèle...", @@ -2219,6 +2250,22 @@ "inputsNone": "AUCUNE ENTRÉE", "inputsNoneTooltip": "Le nœud n’a pas d’entrées", "locateNode": "Localiser le nœud sur le canevas", + "missingNodePacks": { + "applyChanges": "Appliquer les modifications", + "cloudMessage": "Ce workflow nécessite des nœuds personnalisés qui ne sont pas encore disponibles sur Comfy Cloud.", + "collapse": "Réduire", + "expand": "Développer", + "installAll": "Tout installer", + "installNodePack": "Installer le pack de nœuds", + "installed": "Installé", + "installing": "Installation en cours...", + "ossMessage": "Ce workflow utilise des nœuds personnalisés que vous n'avez pas encore installés.", + "searchInManager": "Rechercher dans le gestionnaire de nœuds", + "title": "Packs de nœuds manquants", + "unknownPack": "Pack inconnu", + "unsupportedTitle": "Packs de nœuds non pris en charge", + "viewInManager": "Voir dans le gestionnaire" + }, "mute": "Muet", "noErrors": "Aucune erreur", "noSelection": "Sélectionnez un nœud pour voir ses propriétés et informations.", diff --git a/src/locales/fr/nodeDefs.json b/src/locales/fr/nodeDefs.json index d1dae03893..d42fa4de19 100644 --- a/src/locales/fr/nodeDefs.json +++ b/src/locales/fr/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "Rogner et redimensionner des régions du lot d’images d’entrée selon les boîtes englobantes fournies.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "bboxes" + }, + "image": { + "name": "image" + }, + "output_height": { + "name": "output_height", + "tooltip": "Hauteur à laquelle chaque découpe est redimensionnée." + }, + "output_width": { + "name": "output_width", + "tooltip": "Largeur à laquelle chaque découpe est redimensionnée." + }, + "padding": { + "name": "padding", + "tooltip": "Marge supplémentaire en pixels ajoutée de chaque côté de la boîte avant le rognage." + } + }, + "outputs": { + "0": { + "tooltip": "Toutes les découpes empilées dans un seul lot d’images." + } + } + }, "CropMask": { "display_name": "CropMask", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Générez ou modifiez des images de manière synchrone via l’API Google Vertex.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "rapport d’aspect", + "tooltip": "Si défini sur « auto », correspond au rapport d’aspect de votre image d’entrée ; si aucune image n’est fournie, un carré 16:9 est généralement généré." + }, + "control_after_generate": { + "name": "contrôle après génération" + }, + "files": { + "name": "fichiers", + "tooltip": "Fichier(s) optionnel(s) à utiliser comme contexte pour le modèle. Accepte les entrées du nœud Gemini Generate Content Input Files." + }, + "images": { + "name": "images", + "tooltip": "Image(s) de référence optionnelle(s). Pour inclure plusieurs images, utilisez le nœud Batch Images (jusqu’à 14)." + }, + "model": { + "name": "modèle" + }, + "prompt": { + "name": "prompt", + "tooltip": "Invite textuelle décrivant l’image à générer ou les modifications à appliquer. Incluez toutes contraintes, styles ou détails que le modèle doit respecter." + }, + "resolution": { + "name": "résolution", + "tooltip": "Résolution de sortie cible. Pour le 2K/4K, l’upscaler natif Gemini est utilisé." + }, + "response_modalities": { + "name": "modalités de réponse" + }, + "seed": { + "name": "graine", + "tooltip": "Lorsque la graine est fixée à une valeur spécifique, le modèle s’efforce de fournir la même réponse pour des requêtes répétées. Un résultat déterministe n’est pas garanti. De plus, changer le modèle ou les paramètres, comme la température, peut entraîner des variations de la réponse même avec la même valeur de graine. Par défaut, une graine aléatoire est utilisée." + }, + "system_prompt": { + "name": "invite système", + "tooltip": "Instructions fondamentales qui dictent le comportement de l’IA." + }, + "thinking_level": { + "name": "niveau de réflexion" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Génère des réponses textuelles avec le modèle d'IA Gemini de Google. Vous pouvez fournir plusieurs types d'entrées (texte, images, audio, vidéo) comme contexte pour générer des réponses plus pertinentes et significatives.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "draw_body" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "draw_hands": { + "name": "draw_hands" + }, + "face_point_size": { + "name": "face_point_size" + }, + "keypoints": { + "name": "keypoints" + }, + "score_threshold": { + "name": "score_threshold" + }, + "stick_width": { + "name": "stick_width" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "force_square", + "tooltip": "Agrandir l’axe le plus court de la boîte pour que la région découpée soit toujours carrée." + }, + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "Multiplicateur pour la zone de la boîte englobante autour de chaque visage détecté." + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "Boîtes englobantes des visages par image, compatibles avec l’entrée bboxes de SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "Extraire les points clés de pose à partir d’images en utilisant le modèle SDPose : https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "Boîtes englobantes optionnelles pour des détections plus précises. Requis pour la détection multi-personnes." + }, + "image": { + "name": "image" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "Points clés au format OpenPose (canvas_width, canvas_height, people)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboScheduler", "inputs": { diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index 382a70dcc7..367f5ea665 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "OpenAI入力ファイル", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "Pixverseテンプレート", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "Recraftカラー", "RECRAFT_CONTROLS": "Recraftコントロール", "RECRAFT_V3_STYLE": "Recraft V3スタイル", @@ -958,6 +959,7 @@ "imageUrl": "画像URL", "import": "インポート", "inProgress": "進行中", + "inSubgraph": "サブグラフ「{name}」内", "increment": "増加", "info": "ノード情報", "input": "入力", @@ -1115,6 +1117,7 @@ "updated": "更新済み", "updating": "更新中", "upload": "アップロード", + "uploadAlreadyInProgress": "アップロードはすでに進行中です", "usageHint": "使用ヒント", "use": "使用", "user": "ユーザー", @@ -1354,8 +1357,13 @@ }, "downloadAll": "すべてダウンロード", "dragAndDropImage": "画像をドラッグ&ドロップ", + "giveFeedback": "フィードバックを送る", "graphMode": "グラフモード", "linearMode": "アプリモード", + "queue": { + "clear": "キューをクリア", + "clickToClear": "クリックしてキューをクリア" + }, "rerun": "再実行", "reuseParameters": "パラメータを再利用", "runCount": "実行回数:", @@ -1575,6 +1583,9 @@ "nodePack": "ノードパック", "nodePackInfo": "ノードパック情報", "notAvailable": "利用不可", + "packInstall": { + "nodeIdRequired": "インストールにはノードIDが必要です" + }, "packsSelected": "選択したパック", "repository": "リポジトリ", "restartToApplyChanges": "変更を適用するには、ComfyUIを再起動してください", @@ -2072,7 +2083,10 @@ "openNodeManager": "Node Managerを開く", "quickFixAvailable": "クイック修正可能", "redHighlight": "赤", + "replaceAll": "すべて置き換える", + "replaceAllWarning": "このグループ内の利用可能なすべてのノードを置き換えます。", "replaceFailed": "ノードの置き換えに失敗しました", + "replaceNode": "ノードを置き換える", "replaceSelected": "選択したものを置き換え ({count})", "replaceWarning": "この操作はワークフローを永久に変更します。心配な場合は、先にコピーを保存してください。", "replaceable": "置き換え可能", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "{count} 種類のノードを置き換えました", "replacedNode": "置き換えたノード: {nodeType}", "selectAll": "すべて選択", - "skipForNow": "今はスキップ" + "skipForNow": "今はスキップ", + "swapNodesGuide": "以下のノードは互換性のある代替品に自動的に置き換えることができます。", + "swapNodesTitle": "ノードの入れ替え", + "unknownNode": "不明", + "willBeReplacedBy": "このノードは次で置き換えられます:" }, "nodeTemplates": { "enterName": "名前を入力", @@ -2099,6 +2117,19 @@ }, "title": "お使いのデバイスはサポートされていません" }, + "painter": { + "background": "背景", + "brush": "ブラシ", + "clear": "クリア", + "color": "カラーピッカー", + "eraser": "消しゴム", + "hardness": "硬さ", + "height": "高さ", + "size": "カーソルサイズ", + "tool": "ツール", + "uploadError": "ペインター画像のアップロードに失敗しました: {status} - {statusText}", + "width": "幅" + }, "progressToast": { "allDownloadsCompleted": "すべてのダウンロードが完了しました", "downloadingModel": "モデルをダウンロード中...", @@ -2219,6 +2250,22 @@ "inputsNone": "入力なし", "inputsNoneTooltip": "このノードには入力がありません", "locateNode": "キャンバス上でノードを探す", + "missingNodePacks": { + "applyChanges": "変更を適用", + "cloudMessage": "このワークフローにはComfy Cloudでまだ利用できないカスタムノードが必要です。", + "collapse": "折りたたむ", + "expand": "展開", + "installAll": "すべてインストール", + "installNodePack": "ノードパックをインストール", + "installed": "インストール済み", + "installing": "インストール中...", + "ossMessage": "このワークフローにはまだインストールしていないカスタムノードが使われています。", + "searchInManager": "ノードマネージャーで検索", + "title": "不足しているノードパック", + "unknownPack": "不明なパック", + "unsupportedTitle": "サポートされていないノードパック", + "viewInManager": "マネージャーで表示" + }, "mute": "ミュート", "noErrors": "エラーなし", "noSelection": "ノードを選択すると、そのプロパティと情報が表示されます。", diff --git a/src/locales/ja/nodeDefs.json b/src/locales/ja/nodeDefs.json index e46f6b358b..d93b36197f 100644 --- a/src/locales/ja/nodeDefs.json +++ b/src/locales/ja/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "指定されたバウンディングボックスに基づいて、入力画像バッチから領域を切り抜きリサイズします。", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "バウンディングボックス" + }, + "image": { + "name": "画像" + }, + "output_height": { + "name": "出力高さ", + "tooltip": "各切り抜き画像がリサイズされる高さ。" + }, + "output_width": { + "name": "出力幅", + "tooltip": "各切り抜き画像がリサイズされる幅。" + }, + "padding": { + "name": "パディング", + "tooltip": "切り抜き前にバウンディングボックスの各辺に追加される余白(ピクセル単位)。" + } + }, + "outputs": { + "0": { + "tooltip": "すべての切り抜き画像が1つの画像バッチとしてまとめられます。" + } + } + }, "CropMask": { "display_name": "マスクをトリミング", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Google Vertex API を使って画像を同期的に生成または編集します。", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "アスペクト比", + "tooltip": "「auto」に設定すると入力画像のアスペクト比に合わせます。画像が指定されていない場合は通常16:9の正方形が生成されます。" + }, + "control_after_generate": { + "name": "生成後のコントロール" + }, + "files": { + "name": "ファイル", + "tooltip": "モデルのコンテキストとして使用する任意のファイル。Gemini Generate Content Input Filesノードからの入力を受け付けます。" + }, + "images": { + "name": "画像", + "tooltip": "任意の参照画像。複数画像を含める場合はBatch Imagesノードを使用してください(最大14枚まで)。" + }, + "model": { + "name": "モデル" + }, + "prompt": { + "name": "プロンプト", + "tooltip": "生成する画像や適用する編集内容を説明するテキストプロンプトです。モデルが従うべき制約、スタイル、詳細なども含めてください。" + }, + "resolution": { + "name": "解像度", + "tooltip": "出力画像の目標解像度です。2K/4Kの場合はGeminiのネイティブアップスケーラーが使用されます。" + }, + "response_modalities": { + "name": "レスポンスモダリティ" + }, + "seed": { + "name": "シード", + "tooltip": "シード値を特定の値に固定すると、モデルは繰り返しリクエストに対して同じ応答を返すよう最善を尽くしますが、完全な決定論的出力は保証されません。また、モデルやパラメータ設定(例:temperature)を変更すると、同じシード値でも応答が変化する場合があります。デフォルトではランダムなシード値が使用されます。" + }, + "system_prompt": { + "name": "システムプロンプト", + "tooltip": "AIの挙動を決定する基本的な指示です。" + }, + "thinking_level": { + "name": "思考レベル" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "GoogleのGemini AIモデルでテキスト応答を生成します。テキスト、画像、音声、動画など複数の種類の入力をコンテキストとして提供し、より関連性の高い意味のある応答を生成できます。", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "ボディを描画" + }, + "draw_face": { + "name": "顔を描画" + }, + "draw_feet": { + "name": "足を描画" + }, + "draw_hands": { + "name": "手を描画" + }, + "face_point_size": { + "name": "顔ポイントサイズ" + }, + "keypoints": { + "name": "キーポイント" + }, + "score_threshold": { + "name": "スコア閾値" + }, + "stick_width": { + "name": "スティック幅" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "正方形に強制", + "tooltip": "短い辺を拡張して、切り抜き領域が常に正方形になるようにします。" + }, + "keypoints": { + "name": "キーポイント" + }, + "scale": { + "name": "スケール", + "tooltip": "各検出された顔のバウンディングボックス領域の倍率。" + } + }, + "outputs": { + "0": { + "name": "バウンディングボックス", + "tooltip": "各フレームごとの顔バウンディングボックス。SDPoseKeypointExtractorのbboxes入力と互換性があります。" + } + } + }, + "SDPoseKeypointExtractor": { + "description": "SDPoseモデル(https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints)を使用して画像からポーズキーポイントを抽出します。", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "バッチサイズ" + }, + "bboxes": { + "name": "バウンディングボックス", + "tooltip": "より正確な検出のためのオプションのバウンディングボックス。複数人検出時は必須です。" + }, + "image": { + "name": "画像" + }, + "model": { + "name": "モデル" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "キーポイント", + "tooltip": "OpenPoseフレーム形式(canvas_width, canvas_height, people)のキーポイント" + } + } + }, "SDTurboScheduler": { "display_name": "SDターボスケジューラー", "inputs": { diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 20d752b931..12a7121e8b 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "OpenAI 입력 파일", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "Pixverse 템플릿", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "Recraft 색상", "RECRAFT_CONTROLS": "Recraft 컨트롤", "RECRAFT_V3_STYLE": "Recraft V3 스타일", @@ -958,6 +959,7 @@ "imageUrl": "이미지 URL", "import": "가져오기", "inProgress": "진행 중", + "inSubgraph": "서브그래프 '{name}'에 있음", "increment": "증가", "info": "노드 정보", "input": "입력", @@ -1115,6 +1117,7 @@ "updated": "업데이트 됨", "updating": "업데이트 중", "upload": "업로드", + "uploadAlreadyInProgress": "업로드가 이미 진행 중입니다", "usageHint": "사용 힌트", "use": "사용", "user": "사용자", @@ -1354,8 +1357,13 @@ }, "downloadAll": "모두 다운로드", "dragAndDropImage": "이미지를 드래그 앤 드롭하세요", + "giveFeedback": "피드백 보내기", "graphMode": "그래프 모드", "linearMode": "앱 모드", + "queue": { + "clear": "대기열 비우기", + "clickToClear": "클릭하여 대기열 비우기" + }, "rerun": "다시 실행", "reuseParameters": "파라미터 재사용", "runCount": "실행 횟수:", @@ -1575,6 +1583,9 @@ "nodePack": "노드 팩", "nodePackInfo": "노드 팩 정보", "notAvailable": "사용 불가", + "packInstall": { + "nodeIdRequired": "설치를 위해 노드 ID가 필요합니다" + }, "packsSelected": "선택한 노드 팩", "repository": "저장소", "restartToApplyChanges": "변경 사항을 적용하려면 ComfyUI를 재시작해 주세요", @@ -2072,7 +2083,10 @@ "openNodeManager": "Node Manager 열기", "quickFixAvailable": "빠른 수정 가능", "redHighlight": "빨간색", + "replaceAll": "모두 교체", + "replaceAllWarning": "이 그룹의 사용 가능한 모든 노드를 교체합니다.", "replaceFailed": "노드 교체 실패", + "replaceNode": "노드 교체", "replaceSelected": "선택한 항목 교체 ({count})", "replaceWarning": "이 작업은 워크플로를 영구적으로 수정합니다. 확실하지 않으면 먼저 복사본을 저장하세요.", "replaceable": "교체 가능", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "{count}개 노드 유형 교체됨", "replacedNode": "교체된 노드: {nodeType}", "selectAll": "전체 선택", - "skipForNow": "일단 건너뛰기" + "skipForNow": "일단 건너뛰기", + "swapNodesGuide": "다음 노드는 호환 가능한 대체 노드로 자동 교체할 수 있습니다.", + "swapNodesTitle": "노드 교체", + "unknownNode": "알 수 없음", + "willBeReplacedBy": "이 노드는 다음으로 교체됩니다:" }, "nodeTemplates": { "enterName": "이름 입력", @@ -2099,6 +2117,19 @@ }, "title": "이 장치는 지원되지 않습니다." }, + "painter": { + "background": "배경", + "brush": "브러시", + "clear": "지우기", + "color": "색상 선택기", + "eraser": "지우개", + "hardness": "경도", + "height": "높이", + "size": "커서 크기", + "tool": "도구", + "uploadError": "페인터 이미지를 업로드하지 못했습니다: {status} - {statusText}", + "width": "너비" + }, "progressToast": { "allDownloadsCompleted": "모든 다운로드가 완료되었습니다", "downloadingModel": "모델 다운로드 중...", @@ -2219,6 +2250,22 @@ "inputsNone": "입력 없음", "inputsNoneTooltip": "노드에 입력이 없습니다", "locateNode": "캔버스에서 노드 찾기", + "missingNodePacks": { + "applyChanges": "변경 사항 적용", + "cloudMessage": "이 워크플로우에는 Comfy Cloud에서 아직 사용할 수 없는 커스텀 노드가 필요합니다.", + "collapse": "접기", + "expand": "펼치기", + "installAll": "모두 설치", + "installNodePack": "노드 팩 설치", + "installed": "설치됨", + "installing": "설치 중...", + "ossMessage": "이 워크플로우에는 아직 설치하지 않은 커스텀 노드를 사용합니다.", + "searchInManager": "노드 매니저에서 검색", + "title": "누락된 노드 팩", + "unknownPack": "알 수 없는 팩", + "unsupportedTitle": "지원되지 않는 노드 팩", + "viewInManager": "매니저에서 보기" + }, "mute": "음소거", "noErrors": "오류 없음", "noSelection": "노드를 선택하면 속성과 정보를 볼 수 있습니다.", diff --git a/src/locales/ko/nodeDefs.json b/src/locales/ko/nodeDefs.json index a956a4584e..4631c98317 100644 --- a/src/locales/ko/nodeDefs.json +++ b/src/locales/ko/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "제공된 바운딩 박스를 기반으로 입력 이미지 배치에서 영역을 자르고 크기를 조정합니다.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "bboxes" + }, + "image": { + "name": "image" + }, + "output_height": { + "name": "output_height", + "tooltip": "각 잘라낸 이미지의 높이로 크기가 조정됩니다." + }, + "output_width": { + "name": "output_width", + "tooltip": "각 잘라낸 이미지의 너비로 크기가 조정됩니다." + }, + "padding": { + "name": "padding", + "tooltip": "자르기 전에 바운딩 박스의 각 면에 추가되는 픽셀 단위의 여백입니다." + } + }, + "outputs": { + "0": { + "tooltip": "모든 잘라낸 이미지가 하나의 이미지 배치로 쌓입니다." + } + } + }, "CropMask": { "display_name": "마스크 자르기", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Google Vertex API를 통해 이미지를 동기적으로 생성하거나 편집합니다.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "종횡비", + "tooltip": "'auto'로 설정하면 입력 이미지의 종횡비와 일치합니다. 이미지가 제공되지 않으면 일반적으로 16:9 정사각형이 생성됩니다." + }, + "control_after_generate": { + "name": "생성 후 제어" + }, + "files": { + "name": "파일", + "tooltip": "모델의 컨텍스트로 사용할 선택적 파일(들)입니다. Gemini Generate Content Input Files 노드에서 입력을 받을 수 있습니다." + }, + "images": { + "name": "이미지", + "tooltip": "선택적 참조 이미지(들)입니다. 여러 이미지를 포함하려면 Batch Images 노드를 사용하세요(최대 14개)." + }, + "model": { + "name": "모델" + }, + "prompt": { + "name": "프롬프트", + "tooltip": "생성할 이미지 또는 적용할 편집을 설명하는 텍스트 프롬프트입니다. 모델이 따라야 할 제약 조건, 스타일 또는 세부 정보를 포함하세요." + }, + "resolution": { + "name": "해상도", + "tooltip": "목표 출력 해상도입니다. 2K/4K의 경우 Gemini 기본 업스케일러가 사용됩니다." + }, + "response_modalities": { + "name": "응답 모달리티" + }, + "seed": { + "name": "시드", + "tooltip": "시드를 특정 값으로 고정하면, 모델은 반복 요청에 대해 동일한 응답을 제공하려고 최선을 다합니다. 결정적 결과는 보장되지 않습니다. 또한, 모델이나 파라미터 설정(예: temperature)을 변경하면 동일한 시드 값을 사용해도 응답이 달라질 수 있습니다. 기본적으로 무작위 시드 값이 사용됩니다." + }, + "system_prompt": { + "name": "시스템 프롬프트", + "tooltip": "AI의 동작을 지시하는 기본 지침입니다." + }, + "thinking_level": { + "name": "사고 수준" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Google의 Gemini AI 모델로 텍스트 응답을 생성합니다. 더 관련성 있고 의미 있는 응답을 생성하기 위해 컨텍스트로 여러 유형의 입력(텍스트, 이미지, 오디오, 비디오)을 제공할 수 있습니다.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "draw_body" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "draw_hands": { + "name": "draw_hands" + }, + "face_point_size": { + "name": "face_point_size" + }, + "keypoints": { + "name": "keypoints" + }, + "score_threshold": { + "name": "score_threshold" + }, + "stick_width": { + "name": "stick_width" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "force_square", + "tooltip": "자르기 영역이 항상 정사각형이 되도록 더 짧은 바운딩 박스 축을 확장합니다." + }, + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "각 감지된 얼굴 주위의 바운딩 박스 영역에 곱해지는 배수입니다." + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "프레임별 얼굴 바운딩 박스이며, SDPoseKeypointExtractor의 bboxes 입력과 호환됩니다." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "SDPose 모델을 사용하여 이미지에서 포즈 키포인트를 추출합니다: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "더 정확한 감지를 위한 선택적 바운딩 박스입니다. 다중 인물 감지 시 필수입니다." + }, + "image": { + "name": "image" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "OpenPose 프레임 형식의 키포인트 (canvas_width, canvas_height, people)" + } + } + }, "SDTurboScheduler": { "display_name": "SD-Turbo 스케줄러", "inputs": { diff --git a/src/locales/pt-BR/main.json b/src/locales/pt-BR/main.json index 6d4f6d1749..4f019565ca 100644 --- a/src/locales/pt-BR/main.json +++ b/src/locales/pt-BR/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "ARQUIVOS DE ENTRADA OPENAI", "PHOTOMAKER": "photomaker", "PIXVERSE_TEMPLATE": "MODELO PIXVERSE", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "COR RECRAFT", "RECRAFT_CONTROLS": "CONTROLES RECRAFT", "RECRAFT_V3_STYLE": "ESTILO RECRAFT V3", @@ -958,6 +959,7 @@ "imageUrl": "URL da imagem", "import": "Importar", "inProgress": "Em andamento", + "inSubgraph": "no subgrafo '{name}'", "increment": "Aumentar", "info": "Informações do nó", "input": "Entrada", @@ -1115,6 +1117,7 @@ "updated": "Atualizado", "updating": "Atualizando {id}", "upload": "Enviar", + "uploadAlreadyInProgress": "O upload já está em andamento", "usageHint": "Dica de uso", "use": "Usar", "user": "Usuário", @@ -1354,8 +1357,13 @@ }, "downloadAll": "Baixar tudo", "dragAndDropImage": "Arraste e solte uma imagem", + "giveFeedback": "Enviar feedback", "graphMode": "Modo Gráfico", "linearMode": "Modo App", + "queue": { + "clear": "Limpar fila", + "clickToClear": "Clique para limpar a fila" + }, "rerun": "Executar novamente", "reuseParameters": "Reutilizar parâmetros", "runCount": "Número de execuções:", @@ -1575,6 +1583,9 @@ "nodePack": "Node Pack", "nodePackInfo": "Informações do Pacote de Nós", "notAvailable": "Não Disponível", + "packInstall": { + "nodeIdRequired": "ID do nó é obrigatório para instalação" + }, "packsSelected": "pacotes selecionados", "repository": "Repositório", "restartToApplyChanges": "Para aplicar as alterações, reinicie o ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "Abrir Gerenciador de Nós", "quickFixAvailable": "Correção Rápida Disponível", "redHighlight": "vermelho", + "replaceAll": "Substituir Todos", + "replaceAllWarning": "Substitui todos os nós disponíveis neste grupo.", "replaceFailed": "Falha ao substituir nós", + "replaceNode": "Substituir Nó", "replaceSelected": "Substituir Selecionados ({count})", "replaceWarning": "Isso modificará permanentemente o fluxo de trabalho. Salve uma cópia antes se não tiver certeza.", "replaceable": "Substituível", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "Substituídos {count} tipo(s) de nó", "replacedNode": "Nó substituído: {nodeType}", "selectAll": "Selecionar Tudo", - "skipForNow": "Pular por enquanto" + "skipForNow": "Pular por enquanto", + "swapNodesGuide": "Os seguintes nós podem ser automaticamente substituídos por alternativas compatíveis.", + "swapNodesTitle": "Trocar Nós", + "unknownNode": "Desconhecido", + "willBeReplacedBy": "Este nó será substituído por:" }, "nodeTemplates": { "enterName": "Digite o nome", @@ -2099,6 +2117,19 @@ }, "title": "Seu dispositivo não é suportado" }, + "painter": { + "background": "Fundo", + "brush": "Pincel", + "clear": "Limpar", + "color": "Seletor de cor", + "eraser": "Borracha", + "hardness": "Dureza", + "height": "Altura", + "size": "Tamanho do cursor", + "tool": "Ferramenta", + "uploadError": "Falha ao enviar imagem do painter: {status} - {statusText}", + "width": "Largura" + }, "progressToast": { "allDownloadsCompleted": "Todos os downloads concluídos", "downloadingModel": "Baixando modelo...", @@ -2219,6 +2250,22 @@ "inputsNone": "SEM ENTRADAS", "inputsNoneTooltip": "O nó não possui entradas", "locateNode": "Localizar nó no canvas", + "missingNodePacks": { + "applyChanges": "Aplicar alterações", + "cloudMessage": "Este fluxo de trabalho requer nós personalizados que ainda não estão disponíveis no Comfy Cloud.", + "collapse": "Recolher", + "expand": "Expandir", + "installAll": "Instalar todos", + "installNodePack": "Instalar pacote de nós", + "installed": "Instalado", + "installing": "Instalando...", + "ossMessage": "Este fluxo de trabalho usa nós personalizados que você ainda não instalou.", + "searchInManager": "Buscar no Gerenciador de Nós", + "title": "Pacotes de nós ausentes", + "unknownPack": "Pacote desconhecido", + "unsupportedTitle": "Pacotes de nós não suportados", + "viewInManager": "Ver no Gerenciador" + }, "mute": "Silenciar", "noErrors": "Sem erros", "noSelection": "Selecione um nó para ver suas propriedades e informações.", diff --git a/src/locales/pt-BR/nodeDefs.json b/src/locales/pt-BR/nodeDefs.json index 6f3607e411..5616cd5bfa 100644 --- a/src/locales/pt-BR/nodeDefs.json +++ b/src/locales/pt-BR/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "Recorta e redimensiona regiões do lote de imagens de entrada com base nas caixas delimitadoras fornecidas.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "caixas delimitadoras" + }, + "image": { + "name": "imagem" + }, + "output_height": { + "name": "altura_de_saida", + "tooltip": "Altura para a qual cada recorte será redimensionado." + }, + "output_width": { + "name": "largura_de_saida", + "tooltip": "Largura para a qual cada recorte será redimensionado." + }, + "padding": { + "name": "preenchimento", + "tooltip": "Preenchimento extra em pixels adicionado em cada lado da caixa antes do recorte." + } + }, + "outputs": { + "0": { + "tooltip": "Todos os recortes empilhados em um único lote de imagens." + } + } + }, "CropMask": { "display_name": "Cortar Máscara", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Gere ou edite imagens de forma síncrona via Google Vertex API.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "Se definido como 'auto', corresponde à proporção da imagem de entrada; se nenhuma imagem for fornecida, normalmente é gerado um quadrado 16:9." + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "Arquivo(s) opcional(is) para usar como contexto para o modelo. Aceita entradas do nó Gemini Generate Content Input Files." + }, + "images": { + "name": "images", + "tooltip": "Imagem(ns) de referência opcional(is). Para incluir várias imagens, use o nó Batch Images (até 14)." + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "Prompt de texto descrevendo a imagem a ser gerada ou as edições a serem aplicadas. Inclua quaisquer restrições, estilos ou detalhes que o modelo deve seguir." + }, + "resolution": { + "name": "resolution", + "tooltip": "Resolução de saída desejada. Para 2K/4K, o upscaler nativo do Gemini é utilizado." + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "Quando a seed é fixada em um valor específico, o modelo faz o melhor esforço para fornecer a mesma resposta em solicitações repetidas. A saída determinística não é garantida. Além disso, alterar o modelo ou configurações de parâmetros, como a temperatura, pode causar variações na resposta mesmo usando o mesmo valor de seed. Por padrão, um valor de seed aleatório é usado." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "Instruções fundamentais que ditam o comportamento da IA." + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Gere respostas em texto com o modelo Gemini AI do Google. Você pode fornecer múltiplos tipos de entrada (texto, imagens, áudio, vídeo) como contexto para gerar respostas mais relevantes e significativas.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "desenhar_corpo" + }, + "draw_face": { + "name": "desenhar_rosto" + }, + "draw_feet": { + "name": "desenhar_pés" + }, + "draw_hands": { + "name": "desenhar_mãos" + }, + "face_point_size": { + "name": "tamanho_do_ponto_do_rosto" + }, + "keypoints": { + "name": "pontos-chave" + }, + "score_threshold": { + "name": "limite_de_pontuação" + }, + "stick_width": { + "name": "largura_da_linha" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "forçar_quadrado", + "tooltip": "Expande o eixo menor da caixa para que a região recortada seja sempre quadrada." + }, + "keypoints": { + "name": "pontos-chave" + }, + "scale": { + "name": "escala", + "tooltip": "Multiplicador para a área da caixa delimitadora ao redor de cada rosto detectado." + } + }, + "outputs": { + "0": { + "name": "caixas_delimitadoras", + "tooltip": "Caixas delimitadoras de rosto por quadro, compatíveis com a entrada de caixas do SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "Extrai pontos-chave de pose das imagens usando o modelo SDPose: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "tamanho_do_lote" + }, + "bboxes": { + "name": "caixas_delimitadoras", + "tooltip": "Caixas delimitadoras opcionais para detecções mais precisas. Necessário para detecção de múltiplas pessoas." + }, + "image": { + "name": "imagem" + }, + "model": { + "name": "modelo" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "pontos-chave", + "tooltip": "Pontos-chave no formato de quadro OpenPose (canvas_width, canvas_height, pessoas)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboScheduler", "inputs": { diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index f25ca38ae0..da82f4cc96 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "ВХОДНЫЕ_ФАЙЛЫ_OPENAI", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "ШАБЛОН_PIXVERSE", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "RECRAFT_ЦВЕТ", "RECRAFT_CONTROLS": "RECRAFT_УПРАВЛЕНИЯ", "RECRAFT_V3_STYLE": "RECRAFT_V3_СТИЛЬ", @@ -958,6 +959,7 @@ "imageUrl": "URL изображения", "import": "Импорт", "inProgress": "В процессе", + "inSubgraph": "в подграфе «{name}»", "increment": "Увеличить", "info": "Информация о ноде", "input": "Вход", @@ -1115,6 +1117,7 @@ "updated": "Обновлено", "updating": "Обновление", "upload": "Загрузить", + "uploadAlreadyInProgress": "Загрузка уже выполняется", "usageHint": "Подсказка по использованию", "use": "Использовать", "user": "Пользователь", @@ -1354,8 +1357,13 @@ }, "downloadAll": "Скачать всё", "dragAndDropImage": "Перетащите изображение", + "giveFeedback": "Оставить отзыв", "graphMode": "Графовый режим", "linearMode": "Режим приложения", + "queue": { + "clear": "Очистить очередь", + "clickToClear": "Нажмите, чтобы очистить очередь" + }, "rerun": "Перезапустить", "reuseParameters": "Повторно использовать параметры", "runCount": "Количество запусков:", @@ -1575,6 +1583,9 @@ "nodePack": "Пакет Узлов", "nodePackInfo": "Информация о пакете узлов", "notAvailable": "Недоступно", + "packInstall": { + "nodeIdRequired": "Для установки требуется идентификатор узла" + }, "packsSelected": "Выбрано пакетов", "repository": "Репозиторий", "restartToApplyChanges": "Чтобы применить изменения, пожалуйста, перезапустите ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "Открыть Менеджер узлов", "quickFixAvailable": "Доступно быстрое исправление", "redHighlight": "красным", + "replaceAll": "Заменить все", + "replaceAllWarning": "Заменяет все доступные узлы в этой группе.", "replaceFailed": "Не удалось заменить узлы", + "replaceNode": "Заменить узел", "replaceSelected": "Заменить выбранные ({count})", "replaceWarning": "Это действие навсегда изменит рабочий процесс. Сохраните копию, если не уверены.", "replaceable": "Можно заменить", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "Заменено {count} типов(а) узлов", "replacedNode": "Заменённый узел: {nodeType}", "selectAll": "Выбрать все", - "skipForNow": "Пропустить сейчас" + "skipForNow": "Пропустить сейчас", + "swapNodesGuide": "Следующие узлы могут быть автоматически заменены совместимыми альтернативами.", + "swapNodesTitle": "Заменить узлы", + "unknownNode": "Неизвестно", + "willBeReplacedBy": "Этот узел будет заменён на:" }, "nodeTemplates": { "enterName": "Введите название", @@ -2099,6 +2117,19 @@ }, "title": "Ваше устройство не поддерживается" }, + "painter": { + "background": "Фон", + "brush": "Кисть", + "clear": "Очистить", + "color": "Палитра цветов", + "eraser": "Ластик", + "hardness": "Жёсткость", + "height": "Высота", + "size": "Размер курсора", + "tool": "Инструмент", + "uploadError": "Не удалось загрузить изображение: {status} - {statusText}", + "width": "Ширина" + }, "progressToast": { "allDownloadsCompleted": "Все загрузки завершены", "downloadingModel": "Загрузка модели...", @@ -2219,6 +2250,22 @@ "inputsNone": "НЕТ ВХОДОВ", "inputsNoneTooltip": "Узел не имеет входов", "locateNode": "Найти узел на холсте", + "missingNodePacks": { + "applyChanges": "Применить изменения", + "cloudMessage": "Для этого рабочего процесса требуются пользовательские узлы, которые ещё недоступны в Comfy Cloud.", + "collapse": "Свернуть", + "expand": "Развернуть", + "installAll": "Установить все", + "installNodePack": "Установить пакет узлов", + "installed": "Установлено", + "installing": "Установка...", + "ossMessage": "В этом рабочем процессе используются пользовательские узлы, которые вы ещё не установили.", + "searchInManager": "Поиск в менеджере узлов", + "title": "Отсутствующие пакеты узлов", + "unknownPack": "Неизвестный пакет", + "unsupportedTitle": "Неподдерживаемые пакеты узлов", + "viewInManager": "Просмотреть в менеджере" + }, "mute": "Отключить", "noErrors": "Ошибок нет", "noSelection": "Выберите узел, чтобы увидеть его свойства и информацию.", diff --git a/src/locales/ru/nodeDefs.json b/src/locales/ru/nodeDefs.json index 859026afe1..0cfb7d2e0b 100644 --- a/src/locales/ru/nodeDefs.json +++ b/src/locales/ru/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "Обрезать и изменить размер областей из входного пакета изображений на основе предоставленных ограничивающих рамок.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "bboxes" + }, + "image": { + "name": "image" + }, + "output_height": { + "name": "output_height", + "tooltip": "Высота, до которой изменяется каждый обрезанный фрагмент." + }, + "output_width": { + "name": "output_width", + "tooltip": "Ширина, до которой изменяется каждый обрезанный фрагмент." + }, + "padding": { + "name": "padding", + "tooltip": "Дополнительный отступ в пикселях, добавляемый с каждой стороны ограничивающей рамки перед обрезкой." + } + }, + "outputs": { + "0": { + "tooltip": "Все обрезанные фрагменты объединены в один пакет изображений." + } + } + }, "CropMask": { "display_name": "Обрезать маску", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Генерируйте или редактируйте изображения синхронно через Google Vertex API.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "Если установлено значение 'auto', используется соотношение сторон вашего входного изображения; если изображение не предоставлено, обычно генерируется квадрат 16:9." + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "Необязательные файлы для использования в качестве контекста для модели. Принимает входные данные из узла Gemini Generate Content Input Files." + }, + "images": { + "name": "images", + "tooltip": "Необязательное изображение(я) для ссылки. Чтобы добавить несколько изображений, используйте узел Batch Images (до 14)." + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "Текстовый запрос, описывающий изображение для генерации или редактирования. Укажите любые ограничения, стили или детали, которым должна следовать модель." + }, + "resolution": { + "name": "resolution", + "tooltip": "Целевое разрешение вывода. Для 2K/4K используется собственный Gemini upscaler." + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "Когда seed фиксирован на определённом значении, модель старается выдавать одинаковый результат при повторных запросах. Детерминированный результат не гарантируется. Также изменение модели или параметров, например, температуры, может привести к различиям в ответе даже при одинаковом seed. По умолчанию используется случайное значение seed." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "Базовые инструкции, определяющие поведение ИИ." + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Генерируйте текстовые ответы с помощью модели ИИ Google Gemini. Вы можете предоставить несколько типов входных данных (текст, изображения, аудио, видео) в качестве контекста для генерации более релевантных и осмысленных ответов.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "draw_body" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "draw_hands": { + "name": "draw_hands" + }, + "face_point_size": { + "name": "face_point_size" + }, + "keypoints": { + "name": "keypoints" + }, + "score_threshold": { + "name": "score_threshold" + }, + "stick_width": { + "name": "stick_width" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "force_square", + "tooltip": "Увеличить меньшую сторону рамки, чтобы область обрезки всегда была квадратной." + }, + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "Множитель для области ограничивающей рамки вокруг каждого обнаруженного лица." + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "Ограничивающие рамки лиц для каждого кадра, совместимы с входом bboxes SDPoseKeypointExtractor." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "Извлекает ключевые точки позы из изображений с помощью модели SDPose: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "Необязательные ограничивающие рамки для более точного обнаружения. Требуется для обнаружения нескольких людей." + }, + "image": { + "name": "image" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "Ключевые точки в формате OpenPose (canvas_width, canvas_height, people)" + } + } + }, "SDTurboScheduler": { "display_name": "Scheduler SDTurbo", "inputs": { diff --git a/src/locales/tr/main.json b/src/locales/tr/main.json index 0e37045e8d..7aa2408e2f 100644 --- a/src/locales/tr/main.json +++ b/src/locales/tr/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "OPENAI_GİRİŞ_DOSYALARI", "PHOTOMAKER": "PHOTOMAKER", "PIXVERSE_TEMPLATE": "PIXVERSE_ŞABLONU", + "POSE_KEYPOINT": "POZ ANAHTAR NOKTASI", "RECRAFT_COLOR": "RECRAFT_RENK", "RECRAFT_CONTROLS": "RECRAFT_KONTROLLERİ", "RECRAFT_V3_STYLE": "RECRAFT_V3_STİLİ", @@ -958,6 +959,7 @@ "imageUrl": "Görsel URL'si", "import": "İçe Aktar", "inProgress": "Devam ediyor", + "inSubgraph": "'{name}' alt grafında", "increment": "Arttır", "info": "Düğüm Bilgisi", "input": "Girdi", @@ -1115,6 +1117,7 @@ "updated": "Güncellendi", "updating": "{id} güncelleniyor", "upload": "Yükle", + "uploadAlreadyInProgress": "Yükleme zaten devam ediyor", "usageHint": "Kullanım ipucu", "use": "Kullan", "user": "Kullanıcı", @@ -1354,8 +1357,13 @@ }, "downloadAll": "Tümünü İndir", "dragAndDropImage": "Bir görseli sürükleyip bırakın", + "giveFeedback": "Geri bildirim ver", "graphMode": "Grafik Modu", "linearMode": "Uygulama Modu", + "queue": { + "clear": "Kuyruğu temizle", + "clickToClear": "Kuyruğu temizlemek için tıklayın" + }, "rerun": "Tekrar Çalıştır", "reuseParameters": "Parametreleri Yeniden Kullan", "runCount": "Çalıştırma sayısı:", @@ -1575,6 +1583,9 @@ "nodePack": "Düğüm Paketi", "nodePackInfo": "Düğüm Paketi Bilgisi", "notAvailable": "Mevcut Değil", + "packInstall": { + "nodeIdRequired": "Kurulum için Düğüm Kimliği gereklidir" + }, "packsSelected": "paket seçildi", "repository": "Depo", "restartToApplyChanges": "Değişiklikleri uygulamak için lütfen ComfyUI'yi yeniden başlatın", @@ -2072,7 +2083,10 @@ "openNodeManager": "Node Manager'ı Aç", "quickFixAvailable": "Hızlı Düzeltme Mevcut", "redHighlight": "kırmızı", + "replaceAll": "Hepsini Değiştir", + "replaceAllWarning": "Bu gruptaki mevcut tüm düğümleri değiştirir.", "replaceFailed": "Düğümler değiştirilemedi", + "replaceNode": "Düğümü Değiştir", "replaceSelected": "Seçilenleri Değiştir ({count})", "replaceWarning": "Bu işlem iş akışını kalıcı olarak değiştirecek. Emin değilseniz önce bir kopyasını kaydedin.", "replaceable": "Değiştirilebilir", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "{count} düğüm türü değiştirildi", "replacedNode": "Değiştirilen düğüm: {nodeType}", "selectAll": "Tümünü Seç", - "skipForNow": "Şimdilik Atla" + "skipForNow": "Şimdilik Atla", + "swapNodesGuide": "Aşağıdaki düğümler, uyumlu alternatiflerle otomatik olarak değiştirilebilir.", + "swapNodesTitle": "Düğümleri Değiştir", + "unknownNode": "Bilinmeyen", + "willBeReplacedBy": "Bu düğüm şununla değiştirilecek:" }, "nodeTemplates": { "enterName": "İsim girin", @@ -2099,6 +2117,19 @@ }, "title": "Cihazınız desteklenmiyor" }, + "painter": { + "background": "Arka Plan", + "brush": "Fırça", + "clear": "Temizle", + "color": "Renk Seçici", + "eraser": "Silgi", + "hardness": "Sertlik", + "height": "Yükseklik", + "size": "İmleç Boyutu", + "tool": "Araç", + "uploadError": "Ressam görseli yüklenemedi: {status} - {statusText}", + "width": "Genişlik" + }, "progressToast": { "allDownloadsCompleted": "Tüm indirmeler tamamlandı", "downloadingModel": "Model indiriliyor...", @@ -2219,6 +2250,22 @@ "inputsNone": "GİRİŞ YOK", "inputsNoneTooltip": "Düğümün girişi yok", "locateNode": "Düğümü tuvalde bul", + "missingNodePacks": { + "applyChanges": "Değişiklikleri Uygula", + "cloudMessage": "Bu iş akışı, Comfy Cloud'da henüz mevcut olmayan özel düğümler gerektiriyor.", + "collapse": "Daralt", + "expand": "Genişlet", + "installAll": "Tümünü Yükle", + "installNodePack": "Düğüm paketini yükle", + "installed": "Yüklendi", + "installing": "Yükleniyor...", + "ossMessage": "Bu iş akışı, henüz yüklemediğiniz özel düğümler kullanıyor.", + "searchInManager": "Düğüm Yöneticisinde Ara", + "title": "Eksik Düğüm Paketleri", + "unknownPack": "Bilinmeyen paket", + "unsupportedTitle": "Desteklenmeyen Düğüm Paketleri", + "viewInManager": "Yöneticide Görüntüle" + }, "mute": "Sessiz", "noErrors": "Hata yok", "noSelection": "Bir düğüm seçerek özelliklerini ve bilgisini görebilirsiniz.", diff --git a/src/locales/tr/nodeDefs.json b/src/locales/tr/nodeDefs.json index 5e4c7b0880..92849939c0 100644 --- a/src/locales/tr/nodeDefs.json +++ b/src/locales/tr/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "Sağlanan sınırlayıcı kutulara göre giriş görüntü grubundan bölgeleri kırp ve yeniden boyutlandır.", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "sınırlayıcı_kutular" + }, + "image": { + "name": "görüntü" + }, + "output_height": { + "name": "çıktı_yüksekliği", + "tooltip": "Her kırpmanın yeniden boyutlandırılacağı yükseklik." + }, + "output_width": { + "name": "çıktı_genişliği", + "tooltip": "Her kırpmanın yeniden boyutlandırılacağı genişlik." + }, + "padding": { + "name": "dolgu", + "tooltip": "Kırpmadan önce sınırlayıcı kutunun her bir kenarına piksel cinsinden eklenen ekstra dolgu." + } + }, + "outputs": { + "0": { + "tooltip": "Tüm kırpmalar tek bir görüntü grubunda birleştirilir." + } + } + }, "CropMask": { "display_name": "Maskeyi Kırp", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "Google Vertex API üzerinden senkron olarak görseller oluşturun veya düzenleyin.", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "'auto' olarak ayarlanırsa, giriş görselinizin en-boy oranı kullanılır; görsel yoksa genellikle 16:9 kare oluşturulur." + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "Model için bağlam olarak kullanılacak isteğe bağlı dosya(lar). Gemini Generate Content Input Files düğümünden gelen girdileri kabul eder." + }, + "images": { + "name": "images", + "tooltip": "İsteğe bağlı referans görsel(ler)i. Birden fazla görsel eklemek için Batch Images düğümünü kullanın (en fazla 14)." + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "Oluşturulacak görseli veya uygulanacak düzenlemeleri tanımlayan metin istemi. Modelin uyması gereken kısıtlamalar, stiller veya detayları ekleyin." + }, + "resolution": { + "name": "resolution", + "tooltip": "Hedef çıktı çözünürlüğü. 2K/4K için yerel Gemini yükselticisi kullanılır." + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "Seed belirli bir değere sabitlendiğinde, model tekrarlanan isteklerde aynı yanıtı vermeye çalışır. Deterministik çıktı garanti edilmez. Ayrıca, model veya parametre ayarlarını (ör. sıcaklık) değiştirmek, aynı seed değeriyle bile yanıtın farklı olmasına neden olabilir. Varsayılan olarak rastgele bir seed değeri kullanılır." + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "Bir yapay zekanın davranışını belirleyen temel talimatlar." + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "Google'ın Gemini AI modeli ile metin yanıtları oluşturun. Daha alakalı ve anlamlı yanıtlar oluşturmak için bağlam olarak birden fazla girdi türü (metin, görseller, ses, video) sağlayabilirsiniz.", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "gövde_çiz" + }, + "draw_face": { + "name": "yüzü_çiz" + }, + "draw_feet": { + "name": "ayakları_çiz" + }, + "draw_hands": { + "name": "elleri_çiz" + }, + "face_point_size": { + "name": "yüz_nokta_boyutu" + }, + "keypoints": { + "name": "anahtar_noktalar" + }, + "score_threshold": { + "name": "puan_eşiği" + }, + "stick_width": { + "name": "çizgi_genişliği" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "kare_zorla", + "tooltip": "Kırpma bölgesinin her zaman kare olması için kısa olan kutu eksenini genişlet." + }, + "keypoints": { + "name": "anahtar_noktalar" + }, + "scale": { + "name": "ölçek", + "tooltip": "Her tespit edilen yüzün etrafındaki sınırlayıcı kutu alanı için çarpan." + } + }, + "outputs": { + "0": { + "name": "sınırlayıcı_kutular", + "tooltip": "Her kare için yüz sınırlayıcı kutuları, SDPoseKeypointExtractor bboxes girişiyle uyumlu." + } + } + }, + "SDPoseKeypointExtractor": { + "description": "SDPose modeli ile görüntülerden poz anahtar noktalarını çıkar: https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "toplu_boyut" + }, + "bboxes": { + "name": "sınırlayıcı_kutular", + "tooltip": "Daha doğru tespitler için isteğe bağlı sınırlayıcı kutular. Çoklu kişi tespiti için gereklidir." + }, + "image": { + "name": "görüntü" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "anahtar_noktalar", + "tooltip": "OpenPose çerçeve formatında anahtar noktalar (canvas_genişliği, canvas_yüksekliği, kişiler)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboZamanlayıcı", "inputs": { diff --git a/src/locales/zh-TW/main.json b/src/locales/zh-TW/main.json index faf4e6300b..4d7bc2eaff 100644 --- a/src/locales/zh-TW/main.json +++ b/src/locales/zh-TW/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "OpenAI輸入檔案", "PHOTOMAKER": "PhotoMaker", "PIXVERSE_TEMPLATE": "PIXVERSE 範本", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "RECRAFT 顏色", "RECRAFT_CONTROLS": "RECRAFT 控制", "RECRAFT_V3_STYLE": "RECRAFT V3 風格", @@ -958,6 +959,7 @@ "imageUrl": "圖片網址", "import": "匯入", "inProgress": "進行中", + "inSubgraph": "於子圖「{name}」中", "increment": "增加", "info": "節點資訊", "input": "輸入", @@ -1115,6 +1117,7 @@ "updated": "已更新", "updating": "更新中", "upload": "上傳", + "uploadAlreadyInProgress": "上傳已在進行中", "usageHint": "使用提示", "use": "使用", "user": "使用者", @@ -1354,8 +1357,13 @@ }, "downloadAll": "全部下載", "dragAndDropImage": "拖曳圖片到此", + "giveFeedback": "提供回饋", "graphMode": "圖形模式", "linearMode": "App 模式", + "queue": { + "clear": "清除佇列", + "clickToClear": "點擊以清除佇列" + }, "rerun": "重新執行", "reuseParameters": "重用參數", "runCount": "執行次數:", @@ -1575,6 +1583,9 @@ "nodePack": "節點包", "nodePackInfo": "節點包資訊", "notAvailable": "不可用", + "packInstall": { + "nodeIdRequired": "安裝需要節點 ID" + }, "packsSelected": "已選擇套件", "repository": "儲存庫", "restartToApplyChanges": "請重新啟動 ComfyUI 以套用變更", @@ -2072,7 +2083,10 @@ "openNodeManager": "開啟節點管理器", "quickFixAvailable": "可用快速修復", "redHighlight": "紅色", + "replaceAll": "全部替換", + "replaceAllWarning": "將替換此群組中所有可用的節點。", "replaceFailed": "替換節點失敗", + "replaceNode": "替換節點", "replaceSelected": "替換所選 ({count})", "replaceWarning": "這將永久修改工作流程。如有疑慮,請先儲存副本。", "replaceable": "可替換", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "已替換 {count} 種節點類型", "replacedNode": "已替換節點:{nodeType}", "selectAll": "全選", - "skipForNow": "暫時略過" + "skipForNow": "暫時略過", + "swapNodesGuide": "以下節點可以自動替換為相容的替代品。", + "swapNodesTitle": "交換節點", + "unknownNode": "未知", + "willBeReplacedBy": "此節點將被替換為:" }, "nodeTemplates": { "enterName": "輸入名稱", @@ -2099,6 +2117,19 @@ }, "title": "您的裝置不受支援" }, + "painter": { + "background": "背景", + "brush": "畫筆", + "clear": "清除", + "color": "顏色選擇器", + "eraser": "橡皮擦", + "hardness": "硬度", + "height": "高度", + "size": "游標大小", + "tool": "工具", + "uploadError": "上傳繪圖圖像失敗:{status} - {statusText}", + "width": "寬度" + }, "progressToast": { "allDownloadsCompleted": "所有下載已完成", "downloadingModel": "正在下載模型...", @@ -2219,6 +2250,22 @@ "inputsNone": "無輸入", "inputsNoneTooltip": "此節點沒有輸入", "locateNode": "在畫布上定位節點", + "missingNodePacks": { + "applyChanges": "套用變更", + "cloudMessage": "此工作流程需要 Comfy Cloud 尚未提供的自訂節點。", + "collapse": "收合", + "expand": "展開", + "installAll": "全部安裝", + "installNodePack": "安裝節點包", + "installed": "已安裝", + "installing": "安裝中⋯⋯", + "ossMessage": "此工作流程使用了你尚未安裝的自訂節點。", + "searchInManager": "在節點管理器中搜尋", + "title": "缺少節點包", + "unknownPack": "未知的節點包", + "unsupportedTitle": "不支援的節點包", + "viewInManager": "在管理器中檢視" + }, "mute": "靜音", "noErrors": "沒有錯誤", "noSelection": "請選擇節點以檢視其屬性與資訊。", diff --git a/src/locales/zh-TW/nodeDefs.json b/src/locales/zh-TW/nodeDefs.json index 316f4b1ccc..64cbb61576 100644 --- a/src/locales/zh-TW/nodeDefs.json +++ b/src/locales/zh-TW/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "根據提供的邊界框,從輸入影像批次中裁切並調整區域大小。", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "bboxes" + }, + "image": { + "name": "image" + }, + "output_height": { + "name": "output_height", + "tooltip": "每個裁切區域調整後的高度。" + }, + "output_width": { + "name": "output_width", + "tooltip": "每個裁切區域調整後的寬度。" + }, + "padding": { + "name": "padding", + "tooltip": "在裁切前,於邊界框每側額外增加的像素邊距。" + } + }, + "outputs": { + "0": { + "tooltip": "所有裁切區域堆疊為單一影像批次。" + } + } + }, "CropMask": { "display_name": "裁剪遮罩", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "透過 Google Vertex API 同步產生或編輯影像。", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "aspect_ratio", + "tooltip": "若設為「auto」,則會配合輸入影像的長寬比;若未提供影像,通常會產生 16:9 的正方形。" + }, + "control_after_generate": { + "name": "control after generate" + }, + "files": { + "name": "files", + "tooltip": "可選的檔案,作為模型的參考內容。可接受來自 Gemini Generate Content Input Files 節點的輸入。" + }, + "images": { + "name": "images", + "tooltip": "可選的參考影像。若要加入多張影像,請使用 Batch Images 節點(最多 14 張)。" + }, + "model": { + "name": "model" + }, + "prompt": { + "name": "prompt", + "tooltip": "描述要產生影像或要套用編輯的文字提示。請包含模型應遵循的任何限制、風格或細節。" + }, + "resolution": { + "name": "resolution", + "tooltip": "目標輸出解析度。若選擇 2K/4K,將使用原生 Gemini 放大器。" + }, + "response_modalities": { + "name": "response_modalities" + }, + "seed": { + "name": "seed", + "tooltip": "當 seed 設定為特定值時,模型會盡力在重複請求時提供相同的回應,但不保證完全一致。更改模型或參數(如 temperature)即使使用相同 seed 也可能導致回應不同。預設會使用隨機 seed 值。" + }, + "system_prompt": { + "name": "system_prompt", + "tooltip": "決定 AI 行為的基礎指令。" + }, + "thinking_level": { + "name": "thinking_level" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "使用 Google 的 Gemini AI 模型生成文字回應。您可以提供多種類型的輸入(文字、圖片、音訊、影片)作為上下文,以生成更相關且有意義的回應。", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "draw_body" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "draw_hands": { + "name": "draw_hands" + }, + "face_point_size": { + "name": "face_point_size" + }, + "keypoints": { + "name": "keypoints" + }, + "score_threshold": { + "name": "score_threshold" + }, + "stick_width": { + "name": "stick_width" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "force_square", + "tooltip": "將較短的邊界框軸向擴展,使裁切區域始終為正方形。" + }, + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "每個偵測到的臉部邊界框區域的倍率。" + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "每幀的臉部邊界框,與 SDPoseKeypointExtractor 的 bboxes 輸入相容。" + } + } + }, + "SDPoseKeypointExtractor": { + "description": "使用 SDPose 模型從影像中提取姿勢關鍵點:https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "可選的邊界框以提升偵測準確度。多人偵測時必須提供。" + }, + "image": { + "name": "image" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "以 OpenPose 幀格式(canvas_width, canvas_height, people)表示的關鍵點" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurboScheduler", "inputs": { diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index 627d10b67e..a9628a6be7 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -699,6 +699,7 @@ "OPENAI_INPUT_FILES": "OpenAI输入文件", "PHOTOMAKER": "PhotoMaker", "PIXVERSE_TEMPLATE": "Pixverse 模板", + "POSE_KEYPOINT": "POSE_KEYPOINT", "RECRAFT_COLOR": "Recraft 颜色", "RECRAFT_CONTROLS": "Recraft 控件", "RECRAFT_V3_STYLE": "Recraft V3 风格", @@ -958,6 +959,7 @@ "imageUrl": "图片网址", "import": "导入", "inProgress": "进行中", + "inSubgraph": "在子图 '{name}' 中", "increment": "增加", "info": "节点信息", "input": "输入", @@ -1115,6 +1117,7 @@ "updated": "已更新", "updating": "更新中", "upload": "上传", + "uploadAlreadyInProgress": "上传已在进行中", "usageHint": "使用提示", "use": "使用", "user": "用户", @@ -1354,8 +1357,13 @@ }, "downloadAll": "全部下载", "dragAndDropImage": "拖拽图片到此处", + "giveFeedback": "提供反馈", "graphMode": "图形模式", "linearMode": "App 模式", + "queue": { + "clear": "清空队列", + "clickToClear": "点击清空队列" + }, "rerun": "重新运行", "reuseParameters": "复用参数", "runCount": "运行次数:", @@ -1575,6 +1583,9 @@ "nodePack": "节点包", "nodePackInfo": "节点包信息", "notAvailable": "不可用", + "packInstall": { + "nodeIdRequired": "安装需要节点 ID" + }, "packsSelected": "选定的包", "repository": "仓库", "restartToApplyChanges": "要应用更改,请重新启动ComfyUI", @@ -2072,7 +2083,10 @@ "openNodeManager": "打开节点管理器", "quickFixAvailable": "可用快速修复", "redHighlight": "红色", + "replaceAll": "全部替换", + "replaceAllWarning": "将替换此组中所有可用节点。", "replaceFailed": "替换节点失败", + "replaceNode": "替换节点", "replaceSelected": "替换已选({count})", "replaceWarning": "此操作将永久修改工作流。如不确定,请先保存副本。", "replaceable": "可替换", @@ -2080,7 +2094,11 @@ "replacedAllNodes": "已替换 {count} 种节点类型", "replacedNode": "已替换节点:{nodeType}", "selectAll": "全选", - "skipForNow": "暂时跳过" + "skipForNow": "暂时跳过", + "swapNodesGuide": "以下节点可以自动替换为兼容的替代项。", + "swapNodesTitle": "交换节点", + "unknownNode": "未知", + "willBeReplacedBy": "此节点将被替换为:" }, "nodeTemplates": { "enterName": "输入名称", @@ -2099,6 +2117,19 @@ }, "title": "您的设备不受支持" }, + "painter": { + "background": "背景", + "brush": "画笔", + "clear": "清除", + "color": "取色器", + "eraser": "橡皮擦", + "hardness": "硬度", + "height": "高度", + "size": "光标大小", + "tool": "工具", + "uploadError": "上传绘图图像失败:{status} - {statusText}", + "width": "宽度" + }, "progressToast": { "allDownloadsCompleted": "所有下载已完成", "downloadingModel": "正在下载模型...", @@ -2219,6 +2250,22 @@ "inputsNone": "无输入", "inputsNoneTooltip": "节点没有输入", "locateNode": "在画布上定位节点", + "missingNodePacks": { + "applyChanges": "应用更改", + "cloudMessage": "此工作流需要 Comfy Cloud 上尚未提供的自定义节点。", + "collapse": "收起", + "expand": "展开", + "installAll": "全部安装", + "installNodePack": "安装节点包", + "installed": "已安装", + "installing": "正在安装...", + "ossMessage": "此工作流使用了你尚未安装的自定义节点。", + "searchInManager": "在节点管理器中搜索", + "title": "缺失节点包", + "unknownPack": "未知包", + "unsupportedTitle": "不支持的节点包", + "viewInManager": "在管理器中查看" + }, "mute": "禁用", "noErrors": "无错误", "noSelection": "选择一个节点查看其属性信息。", diff --git a/src/locales/zh/nodeDefs.json b/src/locales/zh/nodeDefs.json index f2d6dfe32b..626b9c5451 100644 --- a/src/locales/zh/nodeDefs.json +++ b/src/locales/zh/nodeDefs.json @@ -2137,6 +2137,35 @@ } } }, + "CropByBBoxes": { + "description": "根据提供的边界框,从输入图像批量中裁剪并调整区域大小。", + "display_name": "CropByBBoxes", + "inputs": { + "bboxes": { + "name": "bboxes" + }, + "image": { + "name": "image" + }, + "output_height": { + "name": "output_height", + "tooltip": "每个裁剪区域调整后的高度。" + }, + "output_width": { + "name": "output_width", + "tooltip": "每个裁剪区域调整后的宽度。" + }, + "padding": { + "name": "padding", + "tooltip": "在裁剪前,每个边界框四周额外添加的像素填充。" + } + }, + "outputs": { + "0": { + "tooltip": "所有裁剪区域堆叠为一个图像批量。" + } + } + }, "CropMask": { "display_name": "裁剪遮罩", "inputs": { @@ -3701,6 +3730,57 @@ } } }, + "GeminiNanoBanana2": { + "description": "通过 Google Vertex API 同步生成或编辑图像。", + "display_name": "Nano Banana 2", + "inputs": { + "aspect_ratio": { + "name": "宽高比", + "tooltip": "如果设置为“自动”,则匹配输入图像的宽高比;如果未提供图像,通常会生成 16:9 的正方形。" + }, + "control_after_generate": { + "name": "生成后控制" + }, + "files": { + "name": "文件", + "tooltip": "可选的文件,作为模型的上下文使用。可接受来自 Gemini 生成内容输入文件节点的输入。" + }, + "images": { + "name": "图像", + "tooltip": "可选的参考图像。要包含多张图片,请使用批量图像节点(最多 14 张)。" + }, + "model": { + "name": "模型" + }, + "prompt": { + "name": "提示词", + "tooltip": "描述要生成图像或要应用编辑的文本提示。请包含模型应遵循的任何约束、风格或细节。" + }, + "resolution": { + "name": "分辨率", + "tooltip": "目标输出分辨率。对于 2K/4K,使用原生 Gemini 超分辨率算法。" + }, + "response_modalities": { + "name": "响应模式" + }, + "seed": { + "name": "种子", + "tooltip": "当种子值固定时,模型会尽力为重复请求提供相同的响应,但不能保证输出完全一致。此外,更改模型或参数设置(如温度)即使使用相同的种子值,也可能导致响应不同。默认情况下使用随机种子值。" + }, + "system_prompt": { + "name": "系统提示词", + "tooltip": "决定 AI 行为的基础性指令。" + }, + "thinking_level": { + "name": "思考层级" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, "GeminiNode": { "description": "使用 Google 的 Gemini AI 模型生成文本响应。您可以提供多种类型的输入(文本、图像、音频、视频)作为上下文,以生成更相关和有意义的响应。", "display_name": "Google Gemini", @@ -12978,6 +13058,90 @@ } } }, + "SDPoseDrawKeypoints": { + "display_name": "SDPoseDrawKeypoints", + "inputs": { + "draw_body": { + "name": "draw_body" + }, + "draw_face": { + "name": "draw_face" + }, + "draw_feet": { + "name": "draw_feet" + }, + "draw_hands": { + "name": "draw_hands" + }, + "face_point_size": { + "name": "face_point_size" + }, + "keypoints": { + "name": "keypoints" + }, + "score_threshold": { + "name": "score_threshold" + }, + "stick_width": { + "name": "stick_width" + } + }, + "outputs": { + "0": { + "tooltip": null + } + } + }, + "SDPoseFaceBBoxes": { + "display_name": "SDPoseFaceBBoxes", + "inputs": { + "force_square": { + "name": "force_square", + "tooltip": "扩展较短的边界框轴,使裁剪区域始终为正方形。" + }, + "keypoints": { + "name": "keypoints" + }, + "scale": { + "name": "scale", + "tooltip": "每个检测到的人脸边界框区域的缩放倍数。" + } + }, + "outputs": { + "0": { + "name": "bboxes", + "tooltip": "每帧的人脸边界框,可与SDPoseKeypointExtractor的bboxes输入兼容。" + } + } + }, + "SDPoseKeypointExtractor": { + "description": "使用SDPose模型从图像中提取姿态关键点:https://huggingface.co/Comfy-Org/SDPose/tree/main/checkpoints", + "display_name": "SDPoseKeypointExtractor", + "inputs": { + "batch_size": { + "name": "batch_size" + }, + "bboxes": { + "name": "bboxes", + "tooltip": "可选的边界框,用于更精确的检测。多人检测时必需。" + }, + "image": { + "name": "image" + }, + "model": { + "name": "model" + }, + "vae": { + "name": "vae" + } + }, + "outputs": { + "0": { + "name": "keypoints", + "tooltip": "OpenPose帧格式的关键点(canvas_width, canvas_height, people)" + } + } + }, "SDTurboScheduler": { "display_name": "SDTurbo调度器", "inputs": {