Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.
pytorch, tensores y torch.Tensor
Todo el procesamiento numérico central en Comfy lo hace pytorch. Si tus nodos personalizados van a meterse en las entrañas de Stable Diffusion, necesitarás familiarizarte con esta librería, algo que queda muy fuera del alcance de esta introducción.Sin embargo, muchos nodos personalizados tendrán que manipular imágenes, latents y máscaras, y cada uno de ellos se representa internamente como torch.Tensor, así que te conviene guardar en marcadores la
documentación de torch.Tensor.
¿Qué es un tensor?
torch.Tensor representa un tensor, que es la generalización matemática de un vector o una matriz a cualquier número de dimensiones.
El rango de un tensor es el número de dimensiones que tiene (así, un vector tiene rango 1 y una matriz rango 2); su forma describe el
tamaño de cada dimensión.Así, una imagen RGB (de alto H y ancho W) podría concebirse como tres arreglos (uno por cada canal de color), cada uno de H x W,
que se podría representar como un tensor con forma[H,W,3]. En Comfy las imágenes casi siempre vienen en un lote (aunque el lote
solo contenga una imagen). torch siempre coloca la dimensión del lote primero, así que las imágenes de Comfy tienen forma[B,H,W,3], generalmente
escrita como [B,H,W,C], donde C significa Canales.
squeeze, unsqueeze y reshape
Si un tensor tiene una dimensión de tamaño 1 (conocida como dimensión colapsada), equivale al mismo tensor con esa dimensión eliminada
(un lote con 1 imagen es simplemente una imagen). Eliminar esa dimensión colapsada se conoce como squeeze, e
insertar una se conoce como unsqueeze.
Parte del código de torch, y algunos autores de nodos personalizados, devolverán un tensor con la dimensión comprimida cuando una dimensión está colapsada,
como cuando un lote tiene un solo miembro. ¡Esta es una causa común de errores!
Representar los mismos datos con una forma diferente se conoce como reshape. A menudo esto requiere que conozcas
la estructura de datos subyacente, así que ¡manipúlalo con cuidado!
Notación importante
torch.Tensor admite la mayor parte de la notación de slicing de Python, la iteración y otras operaciones comunes similares a listas. Un tensor
también tiene un atributo .shape que devuelve su tamaño como un torch.Size (que es una subclase de tuple y se puede
tratar como tal).Hay otras piezas de notación importantes que verás a menudo (varias son notación estándar de Python menos común,
que se ve mucho más cuando se trabaja con tensores)
torch.Tensor admite el uso de None en la notación de slicing
para indicar la inserción de una dimensión de tamaño 1.
: se usa con frecuencia al hacer slicing de un tensor; simplemente significa “mantener toda la dimensión”.
Es como usar a[start:end] en Python, pero omitiendo el punto inicial y el punto final.
... representa “la totalidad de un número no especificado de dimensiones”. Así, a[0, ...] extraería el primer
elemento de un lote sin importar el número de dimensiones.
en los métodos que requieren que se pase una forma, esta suele pasarse como una tuple de las dimensiones, en
la cual a una sola dimensión se le puede dar el tamaño -1, lo que indica que el tamaño de esa dimensión debe
calcularse a partir del tamaño total de los datos.
>>> a = torch.Tensor((1,2))>>> a.shapetorch.Size([2])>>> a[:,None].shape torch.Size([2, 1])>>> a.reshape((1,-1)).shapetorch.Size([1, 2])
Operaciones elemento a elemento
Muchas operaciones binarias en torch.Tensor (incluidos ’+’, ’-’, ’*’, ’/’ y ’==’) se aplican elemento a elemento (se aplican de forma independiente a cada elemento).
Los operandos deben ser o bien dos tensores de la misma forma, o bien un tensor y un escalar. Así:
>>> import torch>>> a = torch.Tensor((1,2))>>> b = torch.Tensor((3,2))>>> a*btensor([3., 4.])>>> a/btensor([0.3333, 1.0000])>>> a==btensor([False, True])>>> a==1tensor([ True, False])>>> c = torch.Tensor((3,2,1)) >>> a==cTraceback (most recent call last): File "<stdin>", line 1, in <module>RuntimeError: The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 0
Veracidad de un tensor
El valor de “veracidad” de un tensor no es el mismo que el de las listas de Python.
Quizá conozcas el valor de verdad de una lista de Python: True para cualquier lista no vacía y False para None o [].
En cambio, un torch.Tensor (con más de un elemento) no tiene un valor de verdad definido. En su lugar necesitas usar
.all() o .any() para combinar los valores de verdad elemento a elemento:
>>> a = torch.Tensor((1,2))>>> print("yes" if a else "no")Traceback (most recent call last): File "<stdin>", line 1, in <module>RuntimeError: Boolean value of Tensor with more than one value is ambiguous>>> a.all()tensor(False)>>> a.any()tensor(True)
Esto también significa que debes usar if a is not None: y no if a: para determinar si una variable de tensor ha sido asignada.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ComfyUI","colors":{"primary":"#49378B","light":"#F2FF59","dark":"#F2FF59"},"logo":{"light":"https://mintcdn.com/dripart/WCFdTagRdhtvk9-o/logo/light.svg?fit=max\u0026auto=format\u0026n=WCFdTagRdhtvk9-o\u0026q=85\u0026s=ec112de87239058f5a931a7e4b594965","dark":"https://mintcdn.com/dripart/QzWbjSCBG7w61rR3/logo/dark.svg?fit=max\u0026auto=format\u0026n=QzWbjSCBG7w61rR3\u0026q=85\u0026s=62b4d879fb3aadbd7a468d1539032d6f","href":"/"},"favicon":"https://mintcdn.com/dripart/maKDA164-rrTfyxY/favicon.ico?fit=max\u0026auto=format\u0026n=maKDA164-rrTfyxY\u0026q=85\u0026s=94f3a697cf4c9a1ee3961b69219d0942","appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://blog.comfy.org/?utm_source=docs","label":"Blog"},{"href":"/tutorials/partner-nodes/pricing","label":"Pricing"},{"href":"https://platform.comfy.org/?utm_source=docs","label":"Platform"},{"href":"https://comfy.org/download?utm_source=docs","label":"Download"}],"primary":{"type":"button","label":"Comfy Cloud","href":"https://comfy.org/cloud?utm_source=docs"}},"footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"Resources","items":[{"label":"installation","href":"/installation/system_requirements"},{"label":"Tutorials","href":"/tutorials/basic/text-to-image"},{"label":"Development","href":"/development/overview"}]},{"header":"Products","items":[{"label":"Features","href":"https://www.comfy.org/?utm_source=docs"},{"label":"Gallery","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"Download","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"Company","items":[{"label":"About","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"Careers","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"Terms of Service","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"Privacy Policy","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"search":{"prompt":"Search Comfy documentation..."},"seo":{"metatags":{"googlebot":"max-video-preview:0"}},"icons":{"library":"fontawesome"},"integrations":{"ga4":{"measurementId":"G-MXC01ZDDHQ"},"posthog":{"apiKey":"phc_iKfK86id4xVYws9LybMje0h44eGtfwFgRPIBehmy8rO"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"zh","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"资源","items":[{"label":"安装","href":"/zh/installation/system_requirements"},{"label":"教程","href":"/zh/tutorials/basic/text-to-image"},{"label":"开发","href":"/zh/development/overview"}]},{"header":"产品","items":[{"label":"功能","href":"https://www.comfy.org/?utm_source=docs"},{"label":"画廊","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"下载","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"公司","items":[{"label":"关于","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"招聘","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"服务条款","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"隐私政策","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"href":"zh"},{"language":"ja","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"リソース","items":[{"label":"インストール","href":"/ja/installation/system_requirements"},{"label":"チュートリアル","href":"/ja/tutorials/basic/text-to-image"},{"label":"開発","href":"/ja/development/overview"}]},{"header":"プロダクト","items":[{"label":"機能","href":"https://www.comfy.org/?utm_source=docs"},{"label":"ギャラリー","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"ダウンロード","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"会社情報","items":[{"label":"概要","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"採用情報","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"利用規約","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"プライバシーポリシー","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"navbar":{"links":[{"href":"/ja/tutorials/partner-nodes/pricing","label":"料金"},{"href":"https://comfy.org/download?utm_source=docs","label":"ダウンロード"}],"primary":{"type":"button","label":"Comfy Cloud","href":"https://comfy.org/cloud?utm_source=docs"}},"href":"ja"},{"language":"ko","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"리소스","items":[{"label":"설치","href":"/ko/installation/system_requirements"},{"label":"튜토리얼","href":"/ko/tutorials/basic/text-to-image"},{"label":"개발","href":"/ko/development/overview"}]},{"header":"제품","items":[{"label":"기능","href":"https://www.comfy.org/?utm_source=docs"},{"label":"갤러리","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"다운로드","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"회사 정보","items":[{"label":"소개","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"채용","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"이용약관","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"개인정보 처리방침","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"navbar":{"links":[{"href":"/ko/tutorials/partner-nodes/pricing","label":"가격 정책"},{"href":"https://comfy.org/download?utm_source=docs","label":"다운로드"}],"primary":{"type":"button","label":"Comfy Cloud","href":"https://comfy.org/cloud?utm_source=docs"}},"href":"ko"},{"language":"es","href":"es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dripart","hasAudioNarration":false,"actualSubdomain":"dripart","customDomains":["docs.comfy.org"],"gitSource":{"type":"github","owner":"comfy-org","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af95d4e59fc4106fcc4b62b","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"en","tag":"Built-in Nodes","count":1183},{"language":"ja","tag":"組み込みノード","count":1183},{"language":"zh","tag":"内置节点","count":1183},{"language":"en","tag":"Nodes","count":1182},{"language":"ja","tag":"ノード","count":1182},{"language":"zh","tag":"节点","count":1182},{"language":"ko","tag":"내장 노드 (Built-in Nodes)","count":1141},{"language":"ko","tag":"노드","count":1140},{"language":"es","tag":"Nodos integrados","count":1075},{"language":"es","tag":"Nodos","count":1074},{"language":"en","tag":"Tutorials","count":427},{"language":"es","tag":"Tutoriales","count":427},{"language":"en","tag":"Model","count":382},{"language":"ja","tag":"Model","count":382},{"language":"ko","tag":"Model","count":382},{"language":"zh","tag":"Model","count":382},{"language":"es","tag":"Modelo","count":378},{"language":"en","tag":"Image","count":360},{"language":"en","tag":"Partner","count":359},{"language":"ja","tag":"Partner","count":359},{"language":"ko","tag":"Partner","count":359},{"language":"zh","tag":"Partner","count":359},{"language":"es","tag":"Partner","count":357},{"language":"es","tag":"Imagen","count":329},{"language":"ja","tag":"API 開発","count":327},{"language":"ko","tag":"API 개발","count":327},{"language":"zh","tag":"API 开发","count":327},{"language":"ja","tag":"はじめに","count":318},{"language":"ko","tag":"시작하기","count":318},{"language":"zh","tag":"开始使用","count":318},{"language":"en","tag":"Comfy Router","count":303},{"language":"en","tag":"Video","count":297},{"language":"ja","tag":"Comfy Router","count":289},{"language":"ko","tag":"Comfy Router","count":289},{"language":"zh","tag":"Comfy Router","count":289},{"language":"en","tag":"Models","count":273},{"language":"es","tag":"Video","count":272},{"language":"en","tag":"All Models","count":270},{"language":"es","tag":"Comfy Router","count":266},{"language":"ja","tag":"Models","count":259},{"language":"ko","tag":"Models","count":259},{"language":"zh","tag":"Models","count":259},{"language":"es","tag":"Models","count":227},{"language":"es","tag":"All Models","count":224},{"language":"ja","tag":"画像","count":211},{"language":"ko","tag":"이미지","count":211},{"language":"zh","tag":"图像","count":211},{"language":"ja","tag":"Video","count":197},{"language":"zh","tag":"Video","count":197},{"language":"ko","tag":"Video","count":180}],"searchSettings":{"maxResults":10}},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":":root{--ink-900: #151417;--hub-shell-light: #f7f6f9;--accent-purple: #49378b;--accent-yellow: #f2ff59;--primary: 73 55 139 !important;--primary-light: 242 255 89 !important;--primary-dark: 242 255 89 !important}html.dark{--primary: 242 255 89 !important;--background-dark: 14 14 13 !important}html.dark body{background-color:#0e0e0d!important}html.dark #navbar,html.dark #navbar-transition{background-color:var(--ink-900)!important}html.dark #sidebar,html.dark #sidebar-content{background-color:rgb(var(--background-dark))!important}html.dark #navbar,html.dark #navbar-transition{box-shadow:none!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html.dark #navbar-transition{border-bottom:1px solid rgba(255, 255, 255, 0.08)!important;opacity:1!important}html.dark img.nav-logo{filter:none}html.dark #sidebar-content a:not([aria-current=\"page\"]){color:rgba(255, 255, 255, 0.72)!important}html.dark #sidebar-content a:not([aria-current=\"page\"]) *{color:inherit!important}html.dark #sidebar-content a[aria-current=\"page\"]{color:var(--accent-yellow)!important;background-color:rgba(242, 255, 89, 0.10)!important}html.dark #sidebar-content a[aria-current=\"page\"] *{color:inherit!important}html.dark .nav-tabs-item[data-active],html.dark mobile-nav-tabs-item[data-active]{color:var(--accent-yellow)!important}html.dark #navbar a[href*=\"comfy.org/cloud\"] span.absolute{background-color:var(--accent-yellow)!important}html.dark #navbar a[href*=\"comfy.org/cloud\"] span.text-white{color:#151417!important}html:not(.dark) #background-color,html:not(.dark) #navbar,html:not(.dark) #navbar-transition,html:not(.dark) #sidebar,html:not(.dark) #sidebar-content{background-color:var(--hub-shell-light)!important}html:not(.dark) .nav-tabs-item[data-active],html:not(.dark) mobile-nav-tabs-item[data-active],html:not(.dark) nav-dropdown-item[data-active]{background-color:transparent!important;box-shadow:none!important;color:var(--accent-purple)!important;font-weight:600!important}html:not(.dark) .nav-tabs-item[data-active] *,html:not(.dark) mobile-nav-tabs-item[data-active] *,html:not(.dark) nav-dropdown-item[data-active] *{color:inherit!important}html:not(.dark) #sidebar-content li:has(>a[aria-current=\"page\"]){background-color:transparent!important;box-shadow:none!important}html:not(.dark) #sidebar-content a[aria-current=\"page\"]{color:var(--accent-purple)!important;background-color:rgba(73, 55, 139, 0.1)!important;font-weight:600!important}html:not(.dark) #sidebar-content a[aria-current=\"page\"] *{color:inherit!important}html:not(.dark) toc-item[data-active],html:not(.dark) toc-item[data-active-deepest],html:not(.dark) toc-item[data-active] a,html:not(.dark) toc-item[data-active-deepest] a{background-color:transparent!important;color:var(--accent-purple)!important;font-weight:600!important}html:not(.dark) #header :where(h1,h2,h3,h4,h5,h6),html:not(.dark) #content-area :where(h1,h2,h3,h4,h5,h6){color:#151417!important}html:not(.dark) #navbar a[href*=\"comfy.org/cloud\"]{background-color:transparent!important;color:var(--accent-purple)!important;border-radius:0.75rem;box-shadow:inset 0 0 0 1px var(--accent-purple)!important}html:not(.dark) #navbar a[href*=\"comfy.org/cloud\"] span.absolute{background-color:transparent!important}html:not(.dark) #navbar a[href*=\"comfy.org/cloud\"] *{color:inherit!important}#sidebar .sticky.top-0.pointer-events-none.bg-linear-to-b{background-image:none!important}@media (min-width: 1024px){#navbar.is-not-custom.is-not-center+div:has(>#sidebar),.max-w-8xl.mx-auto.relative,.max-w-8xl.mx-auto{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}#navbar [class*=\"px-12\"],#navbar [class*=\"mx-4\"]{padding-left:0!important;padding-right:1.5rem!important;margin-left:0!important;margin-right:0!important}#navbar a.select-none,#navbar .nav-logo{margin-left:1rem!important}#navbar .nav-tabs{padding-left:2rem!important}#sidebar{left:0!important;margin-left:0!important;box-shadow:none!important}#sidebar-content{margin-left:0!important;padding-left:1rem!important;box-sizing:border-box!important}#navbar,#navbar-transition{left:0!important;right:0!important;width:100%!important;max-width:none!important}#content-area{margin-left:0!important;max-width:none!important;width:100%!important;padding-left:18rem!important}#sidebar.sticky~#content-container #content-area{padding-left:2rem!important;padding-right:2rem!important}#content-container,#body-content{max-width:none!important;width:100%!important}:root{--content-width: 100%;--sidebar-width: 18rem}}@media (min-width: 1024px){nav#sidebar,#sidebar[style]{left:0!important;right:auto!important;margin-left:0!important;transform:none!important}#navbar li.navbar-link:has(a[href*=\"comfy.org/download\"]){margin-right:0!important}#navbar a[href*=\"comfy.org/download\"]{box-sizing:border-box;border:1px solid rgb(255 255 255 / 0.22);border-radius:0.75rem;padding:7px 0.875rem!important;color:#fff!important;font-size:0.875rem;line-height:1.25rem}html:not(.dark) #navbar a[href*=\"comfy.org/download\"]{border-color:rgb(0 0 0 / 0.16);color:#151417!important}#navbar a[href*=\"comfy.org/download\"]:hover{background:rgb(255 255 255 / 0.06)}html:not(.dark) #navbar a[href*=\"comfy.org/download\"]:hover{background:rgb(0 0 0 / 0.04)}#navbar li.navbar-link:has(a[href*=\"comfy.org/download\"])+.whitespace-nowrap,#navbar .flex.space-x-6>.whitespace-nowrap.hidden{margin-left:0.5rem!important}}body:has(.router-api-reference-marker) #content,body:has(.router-api-reference-marker) #header{max-width:48rem}body:has(.router-api-reference-marker) #content-area table{width:100%;table-layout:auto}body:has(.router-api-reference-marker) #content-area th,body:has(.router-api-reference-marker) #content-area td{min-width:4rem!important;overflow-wrap:anywhere}body:has(.router-api-reference-marker) #content-area table:has(th:nth-child(6)) th:nth-child(3),body:has(.router-api-reference-marker) #content-area table:has(th:nth-child(6)) td:nth-child(3){min-width:5rem!important}@media (max-width: 1535px){body:has(.router-api-reference-marker) #content-side-layout{display:none!important}}body:has(.router-provider-coverage-marker) #content,body:has(.router-provider-coverage-marker) #header{max-width:64rem}body:has(.router-provider-coverage-marker) #content-area table{width:100%;table-layout:auto}body:has(.router-provider-coverage-marker) #content-area th,body:has(.router-provider-coverage-marker) #content-area td{min-width:5rem!important;overflow-wrap:anywhere}body:has(.router-provider-coverage-marker) #content-area th:first-child,body:has(.router-provider-coverage-marker) #content-area td:first-child{min-width:12rem!important}body:has(.router-quickstart-marker) [data-component-part=\"card-content\"] [data-component-part=\"code-block-root\"][style*=\"height:190px\"],body:has(.router-quickstart-marker) [data-component-part=\"card-content\"] [data-component-part=\"code-block-root\"][style*=\"height: 190px\"]{height:86px!important}"},{"filePath":"samples-cards.css","content":".sample-card-grid{display:grid;gap:20px;grid-template-columns:repeat(2, minmax(0, 1fr));margin-top:28px}.sample-card{min-width:0;perspective:1200px}.sample-card-inner{height:565px;position:relative;transform-style:preserve-3d;transition:transform 560ms cubic-bezier(.2, .75, .3, 1)}.sample-card[data-flipped=\"true\"] .sample-card-inner{transform:rotateY(180deg)}.sample-card-face{backface-visibility:hidden;background:#fff;border:1px solid #e5e1eb;border-radius:12px;box-sizing:border-box;height:100%;inset:0;overflow:hidden;position:absolute;width:100%}.sample-card-front{display:flex;flex-direction:column}.sample-card-back{opacity:0;pointer-events:none;transform:rotateY(180deg);visibility:hidden}.sample-card[data-flipped=\"true\"] .sample-card-front{pointer-events:none;transition:visibility 0s linear 280ms;visibility:hidden}.sample-card[data-flipped=\"true\"][data-active-path=\"api\"] .sample-card-back[data-sample-path=\"api\"],.sample-card[data-flipped=\"true\"][data-active-path=\"endpoint\"] .sample-card-back[data-sample-path=\"endpoint\"]{opacity:1;pointer-events:auto;visibility:visible}.sample-card-preview{border-bottom:1px solid #e5e1eb;cursor:pointer;display:block;width:100%}.sample-card-body{display:flex;flex:1;flex-direction:column;padding:20px}.sample-card-body h2,.sample-path-body h2{color:#49378b;font-size:18px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px}.sample-path-body h2{text-align:center}.sample-card-body>p{color:#5f5966;font-size:14px;line-height:1.55;margin:0;min-height:66px}.sample-card-actions{display:flex;gap:8px;margin-top:20px}.sample-card-actions button{background:#fff;border:1px solid #cfc8de;border-radius:6px;color:#49378b;cursor:pointer;flex:1;font-size:13px;font-weight:700;padding:10px 12px}.sample-card-links{border-top:1px solid #eeeaf1;display:flex;gap:8px;margin-top:16px;padding-top:12px}.sample-card-links a{color:#625b6c;font-size:12px;font-weight:650;text-decoration:none}.sample-card-links span{color:#b3adba}.sample-path-body{padding:20px}.sample-path-body>button{background:transparent;border:0;color:#625b6c;cursor:pointer;font-size:12px;font-weight:700;padding:0}.sample-path-eyebrow{color:#857a9e;font-size:10px;font-weight:700;letter-spacing:.08em;margin:19px 0 5px;text-align:center;text-transform:uppercase}.sample-path-body>p:not(.sample-path-eyebrow){color:#5f5966;font-size:12px;line-height:1.5;margin:0 0 15px}.sample-path-steps{display:grid;gap:8px}.sample-path-step{align-items:center;background:#faf9fc;border:1px solid #e5e1ea;border-radius:8px;display:flex;gap:10px;padding:10px 11px}.sample-path-number{align-items:center;background:#49378b;border-radius:999px;color:#fff;display:inline-flex;flex:0 0 21px;font-size:11px;font-weight:700;height:21px;justify-content:center}.sample-path-copy{flex:1;min-width:0}.sample-path-copy strong{color:#312c36;display:block;font-size:12px}.sample-path-copy span{color:#706a75;display:block;font-size:11px;line-height:1.35;margin-top:2px}.sample-path-step a{color:#49378b;flex:0 0 auto;font-size:11px;font-weight:700;text-decoration:none}@media (max-width: 768px){.sample-card-grid{grid-template-columns:1fr}.sample-card-inner{height:clamp(620px, 180vw, 760px)}}"}],"page":{"pagePath":"es/custom-nodes/backend/tensors","slug":"/es/custom-nodes/backend/tensors","pageMetadata":{"title":"Trabajar con torch.Tensor","sidebarTitle":"Tensores","description":"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.","translationSourceHash":"56247ba0","translationFrom":"custom-nodes/backend/tensors.mdx","href":"/es/custom-nodes/backend/tensors"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`pytorch-tensores-y-torch-tensor`,children:`pytorch, tensores y torch.Tensor`}),`\n`,_jsxs(_components.p,{children:[`Todo el procesamiento numérico central en Comfy lo hace `,_jsx(_components.a,{href:`https://pytorch.org/`,children:`pytorch`}),`. Si tus nodos personalizados van a meterse en las entrañas de Stable Diffusion, necesitarás familiarizarte con esta librería, algo que queda muy fuera del alcance de esta introducción.`]}),`\n`,_jsxs(_components.p,{children:[`Sin embargo, muchos nodos personalizados tendrán que manipular imágenes, latents y máscaras, y cada uno de ellos se representa internamente como `,_jsx(_components.code,{children:`torch.Tensor`}),`, así que te conviene guardar en marcadores la\n`,_jsx(_components.a,{href:`https://pytorch.org/docs/stable/tensors.html`,children:`documentación de torch.Tensor`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`¿qué-es-un-tensor`,children:`¿Qué es un tensor?`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`torch.Tensor`}),` representa un tensor, que es la generalización matemática de un vector o una matriz a cualquier número de dimensiones.\nEl `,_jsx(_components.em,{children:`rango`}),` de un tensor es el número de dimensiones que tiene (así, un vector tiene `,_jsx(_components.em,{children:`rango`}),` 1 y una matriz `,_jsx(_components.em,{children:`rango`}),` 2); su `,_jsx(_components.em,{children:`forma`}),` describe el\ntamaño de cada dimensión.`]}),`\n`,_jsxs(_components.p,{children:[`Así, una imagen RGB (de alto H y ancho W) podría concebirse como tres arreglos (uno por cada canal de color), cada uno de H x W,\nque se podría representar como un tensor con `,_jsx(_components.em,{children:`forma`}),` `,_jsx(_components.code,{children:`[H,W,3]`}),`. En Comfy las imágenes casi siempre vienen en un lote (aunque el lote\nsolo contenga una imagen). `,_jsx(_components.code,{children:`torch`}),` siempre coloca la dimensión del lote primero, así que las imágenes de Comfy tienen `,_jsx(_components.em,{children:`forma`}),` `,_jsx(_components.code,{children:`[B,H,W,3]`}),`, generalmente\nescrita como `,_jsx(_components.code,{children:`[B,H,W,C]`}),`, donde C significa Canales.`]}),`\n`,_jsx(Heading,{level:`3`,id:`squeeze-unsqueeze-y-reshape`,children:`squeeze, unsqueeze y reshape`}),`\n`,_jsx(_components.p,{children:`Si un tensor tiene una dimensión de tamaño 1 (conocida como dimensión colapsada), equivale al mismo tensor con esa dimensión eliminada\n(un lote con 1 imagen es simplemente una imagen). Eliminar esa dimensión colapsada se conoce como squeeze, e\ninsertar una se conoce como unsqueeze.`}),`\n`,_jsx(Warning,{children:`Parte del código de torch, y algunos autores de nodos personalizados, devolverán un tensor con la dimensión comprimida cuando una dimensión está colapsada,\ncomo cuando un lote tiene un solo miembro. ¡Esta es una causa común de errores!`}),`\n`,_jsx(_components.p,{children:`Representar los mismos datos con una forma diferente se conoce como reshape. A menudo esto requiere que conozcas\nla estructura de datos subyacente, así que ¡manipúlalo con cuidado!`}),`\n`,_jsx(Heading,{level:`3`,id:`notación-importante`,children:`Notación importante`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`torch.Tensor`}),` admite la mayor parte de la notación de slicing de Python, la iteración y otras operaciones comunes similares a listas. Un tensor\ntambién tiene un atributo `,_jsx(_components.code,{children:`.shape`}),` que devuelve su tamaño como un `,_jsx(_components.code,{children:`torch.Size`}),` (que es una subclase de `,_jsx(_components.code,{children:`tuple`}),` y se puede\ntratar como tal).`]}),`\n`,_jsx(_components.p,{children:`Hay otras piezas de notación importantes que verás a menudo (varias son notación estándar de Python menos común,\nque se ve mucho más cuando se trabaja con tensores)`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`torch.Tensor`}),` admite el uso de `,_jsx(_components.code,{children:`None`}),` en la notación de slicing\npara indicar la inserción de una dimensión de tamaño 1.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`:`}),` se usa con frecuencia al hacer slicing de un tensor; simplemente significa “mantener toda la dimensión”.\nEs como usar `,_jsx(_components.code,{children:`a[start:end]`}),` en Python, pero omitiendo el punto inicial y el punto final.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`...`}),` representa “la totalidad de un número no especificado de dimensiones”. Así, `,_jsx(_components.code,{children:`a[0, ...]`}),` extraería el primer\nelemento de un lote sin importar el número de dimensiones.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`en los métodos que requieren que se pase una forma, esta suele pasarse como una `,_jsx(_components.code,{children:`tuple`}),` de las dimensiones, en\nla cual a una sola dimensión se le puede dar el tamaño `,_jsx(_components.code,{children:`-1`}),`, lo que indica que el tamaño de esa dimensión debe\ncalcularse a partir del tamaño total de los datos.`]}),`\n`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch.Tensor((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a.shape`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`torch.Size([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a[:,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`None`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`].shape `})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`torch.Size([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a.reshape((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)).shape`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`torch.Size([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`operaciones-elemento-a-elemento`,children:`Operaciones elemento a elemento`}),`\n`,_jsxs(_components.p,{children:[`Muchas operaciones binarias en `,_jsx(_components.code,{children:`torch.Tensor`}),` (incluidos ’+’, ’-’, ’*’, ’/’ y ’==’) se aplican elemento a elemento (se aplican de forma independiente a cada elemento).\nLos operandos deben ser `,_jsx(_components.em,{children:`o bien`}),` dos tensores de la misma forma, `,_jsx(_components.em,{children:`o bien`}),` un tensor y un escalar. Así:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch.Tensor((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` b `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch.Tensor((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`b`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`., `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`4`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`b`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.3333`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1.0000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`b`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor([`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor([ `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` c `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch.Tensor((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)) `})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`c`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Traceback (most recent call last):`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` File `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cstdin>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, line `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`in`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`module`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`RuntimeError`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: The size of tensor a (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) must match the size of tensor b (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) at non`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`singleton dimension `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`veracidad-de-un-tensor`,children:`Veracidad de un tensor`}),`\n`,_jsx(Warning,{children:`El valor de “veracidad” de un tensor no es el mismo que el de las listas de Python.`}),`\n`,_jsxs(_components.p,{children:[`Quizá conozcas el valor de verdad de una lista de Python: `,_jsx(_components.code,{children:`True`}),` para cualquier lista no vacía y `,_jsx(_components.code,{children:`False`}),` para `,_jsx(_components.code,{children:`None`}),` o `,_jsx(_components.code,{children:`[]`}),`.\nEn cambio, un `,_jsx(_components.code,{children:`torch.Tensor`}),` (con más de un elemento) no tiene un valor de verdad definido. En su lugar necesitas usar\n`,_jsx(_components.code,{children:`.all()`}),` o `,_jsx(_components.code,{children:`.any()`}),` para combinar los valores de verdad elemento a elemento:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` torch.Tensor((`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"yes\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"no\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Traceback (most recent call last):`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` File `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cstdin>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, line `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`in`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`module`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`RuntimeError`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: Boolean value of Tensor `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` more than one value `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`is`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ambiguous`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a.all()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>>>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` a.any()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tensor(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`True`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Esto también significa que debes usar `,_jsx(_components.code,{children:`if a is not None:`}),` y no `,_jsx(_components.code,{children:`if a:`}),` para determinar si una variable de tensor ha sido asignada.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Trabajar con torch.Tensor","sidebarTitle":"Tensores","description":"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.","translationSourceHash":"56247ba0","translationFrom":"custom-nodes/backend/tensors.mdx","href":"/es/custom-nodes/backend/tensors"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"pytorch, tensores y torch.Tensor","slug":"pytorch-tensores-y-torch-tensor","depth":2,"children":[{"title":"¿Qué es un tensor?","slug":"¿qué-es-un-tensor","depth":3,"children":[]},{"title":"squeeze, unsqueeze y reshape","slug":"squeeze-unsqueeze-y-reshape","depth":3,"children":[]},{"title":"Notación importante","slug":"notación-importante","depth":3,"children":[]},{"title":"Operaciones elemento a elemento","slug":"operaciones-elemento-a-elemento","depth":3,"children":[]},{"title":"Veracidad de un tensor","slug":"veracidad-de-un-tensor","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/dripart/9d6bf2b2531e904c/giscus-comments.js","/_mintlify/custom/dripart/bd0341946f3c75a6/syft.js","/_mintlify/custom/dripart/042392a43b5e681e/samples-cards.js"],"dynamicCss":".\\[start\\:end\\] {\n start: end\n}","subdomain":"dripart","siteName":"ComfyUI","title":"Trabajar con torch.Tensor - ComfyUI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/custom-nodes/backend/tensors","matchLevel":1},"zh":{"href":"/zh/custom-nodes/backend/tensors","matchLevel":1},"ja":{"href":"/ja/custom-nodes/backend/tensors","matchLevel":1},"ko":{"href":"/ko/custom-nodes/backend/tensors","matchLevel":1},"es":{"href":"/es/custom-nodes/backend/tensors","matchLevel":0}}},"lastModified":"2026-10-26T03:59:06.032Z","originalFileLocation":"es/custom-nodes/backend/tensors.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ComfyUI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Trabajar con torch.Tensor - ComfyUI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ComfyUI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.comfy.org/es/custom-nodes/backend/tensors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dripart.mintlify.site/_mintlify/api/og/v2?division=Python+%28backend%29\u0026amp;title=Trabajar+con+torch.Tensor\u0026amp;description=Aprende+los+b%C3%A1sicos+de+torch.Tensor+para+nodos+personalizados+de+ComfyUI%3A+formas%2C+squeeze%2Funsqueeze%2C+notaci%C3%B3n+y+operaciones+elemento+a+elemento.\u0026amp;theme=b252c39adf72ba65053766a0\u0026amp;signature=24d6a396132b397bfa265243251ed637a85f3a61e928ebb94059b3ebdb03250b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Trabajar con torch.Tensor - ComfyUI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dripart.mintlify.site/_mintlify/api/og/v2?division=Python+%28backend%29\u0026amp;title=Trabajar+con+torch.Tensor\u0026amp;description=Aprende+los+b%C3%A1sicos+de+torch.Tensor+para+nodos+personalizados+de+ComfyUI%3A+formas%2C+squeeze%2Funsqueeze%2C+notaci%C3%B3n+y+operaciones+elemento+a+elemento.\u0026amp;theme=b252c39adf72ba65053766a0\u0026amp;signature=24d6a396132b397bfa265243251ed637a85f3a61e928ebb94059b3ebdb03250b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/dripart/lS3H5I41bE6LSXEf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ComfyUI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#49378B\">\u003cmeta data-mint-head name=\"googlebot\" content=\"max-video-preview:0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.comfy.org/es/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/custom-nodes/backend/tensors.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.comfy.org/es/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.comfy.org/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.comfy.org/zh/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.comfy.org/ja/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.comfy.org/ko/custom-nodes/backend/tensors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.comfy.org/custom-nodes/backend/tensors\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.comfy.org/#organization\",\"name\":\"ComfyUI\",\"url\":\"https://docs.comfy.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dripart/WCFdTagRdhtvk9-o/logo/light.svg?fit=max\u0026auto=format\u0026n=WCFdTagRdhtvk9-o\u0026q=85\u0026s=ec112de87239058f5a931a7e4b594965\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.comfy.org#website\",\"name\":\"ComfyUI\",\"url\":\"https://docs.comfy.org\",\"publisher\":{\"@id\":\"https://docs.comfy.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors#webpage\",\"url\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors\",\"name\":\"Trabajar con torch.Tensor\",\"description\":\"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\",\"dateModified\":\"2026-10-26T03:59:06.032Z\",\"isPartOf\":{\"@id\":\"https://docs.comfy.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Nodos personalizados\",\"item\":\"https://docs.comfy.org/es/custom-nodes/intro\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Crear nodos personalizados\",\"item\":\"https://docs.comfy.org/es/custom-nodes/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Python (backend)\",\"item\":\"https://docs.comfy.org/es/custom-nodes/backend/server_overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Trabajar con torch.Tensor\",\"item\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors#article\",\"headline\":\"Trabajar con torch.Tensor\",\"name\":\"Trabajar con torch.Tensor\",\"description\":\"Aprende los básicos de torch.Tensor para nodos personalizados de ComfyUI: formas, squeeze/unsqueeze, notación y operaciones elemento a elemento.\",\"url\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors\",\"mainEntityOfPage\":{\"@id\":\"https://docs.comfy.org/es/custom-nodes/backend/tensors#webpage\"},\"dateModified\":\"2026-10-26T03:59:06.032Z\",\"publisher\":{\"@id\":\"https://docs.comfy.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.comfy.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ComfyUI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ComfyUI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/es/custom-nodes/backend/tensors.md","siteName":"ComfyUI","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/custom-nodes/backend/tensors"}]},{"language":"zh","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"资源","items":[{"label":"安装","href":"/zh/installation/system_requirements"},{"label":"教程","href":"/zh/tutorials/basic/text-to-image"},{"label":"开发","href":"/zh/development/overview"}]},{"header":"产品","items":[{"label":"功能","href":"https://www.comfy.org/?utm_source=docs"},{"label":"画廊","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"下载","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"公司","items":[{"label":"关于","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"招聘","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"服务条款","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"隐私政策","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"pages":[{"title":"zh","href":"/zh/custom-nodes/backend/tensors"}]},{"language":"ja","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"リソース","items":[{"label":"インストール","href":"/ja/installation/system_requirements"},{"label":"チュートリアル","href":"/ja/tutorials/basic/text-to-image"},{"label":"開発","href":"/ja/development/overview"}]},{"header":"プロダクト","items":[{"label":"機能","href":"https://www.comfy.org/?utm_source=docs"},{"label":"ギャラリー","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"ダウンロード","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"会社情報","items":[{"label":"概要","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"採用情報","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"利用規約","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"プライバシーポリシー","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"navbar":{"links":[{"href":"/ja/tutorials/partner-nodes/pricing","label":"料金"},{"href":"https://comfy.org/download?utm_source=docs","label":"ダウンロード"}],"primary":{"type":"button","label":"Comfy Cloud","href":"https://comfy.org/cloud?utm_source=docs"}},"pages":[{"title":"ja","href":"/ja/custom-nodes/backend/tensors"}]},{"language":"ko","footer":{"socials":{"github":"https://github.com/Comfy-Org/ComfyUI","x":"https://x.com/ComfyUI","discord":"https://discord.com/invite/comfyorg","youtube":"https://www.youtube.com/@comfyorg"},"links":[{"header":"리소스","items":[{"label":"설치","href":"/ko/installation/system_requirements"},{"label":"튜토리얼","href":"/ko/tutorials/basic/text-to-image"},{"label":"개발","href":"/ko/development/overview"}]},{"header":"제품","items":[{"label":"기능","href":"https://www.comfy.org/?utm_source=docs"},{"label":"갤러리","href":"https://www.comfy.org/gallery?utm_source=docs"},{"label":"다운로드","href":"https://www.comfy.org/download?utm_source=docs"}]},{"header":"회사 정보","items":[{"label":"소개","href":"https://www.comfy.org/about?utm_source=docs"},{"label":"채용","href":"https://www.comfy.org/careers?utm_source=docs"},{"label":"이용약관","href":"https://www.comfy.org/terms-of-service?utm_source=docs"},{"label":"개인정보 처리방침","href":"https://www.comfy.org/privacy-policy?utm_source=docs"}]}]},"navbar":{"links":[{"href":"/ko/tutorials/partner-nodes/pricing","label":"가격 정책"},{"href":"https://comfy.org/download?utm_source=docs","label":"다운로드"}],"primary":{"type":"button","label":"Comfy Cloud","href":"https://comfy.org/cloud?utm_source=docs"}},"pages":[{"title":"ko","href":"/ko/custom-nodes/backend/tensors"}]},{"language":"es","tabs":[{"tab":"Empezar","pages":[{"title":"Empezar","href":"/es"}]},{"tab":"Tutoriales","pages":[{"title":"Tutoriales","href":"/es/basic-concepts/workflow"}]},{"tab":"Comfy Router","pages":[{"title":"Comfy Router","href":"/es/development/comfy-router/quickstart"}]},{"tab":"Herramientas para agentes","pages":[{"title":"Herramientas para agentes","href":"/es/agent-tools"}]},{"tab":"Nodos integrados","pages":[{"title":"Nodos integrados","href":"/es/built-in-nodes/overview"}]},{"tab":"Desarrollo","pages":[{"group":"Desarrollar con Comfy","pages":[{"title":"ComfyUI para desarrolladores: SDK, API de servidor y nube","sidebarTitle":"Descripción general para desarrolladores","href":"/es/development/overview"},{"title":"Obtener una clave API","sidebarTitle":"Claves API","icon":"key","href":"/es/development/api-development/getting-an-api-key"},{"title":"Ejemplos de Comfy API: llamadas a Router, despliegues y aplicaciones","sidebarTitle":"Ejemplos","icon":"code","mode":"wide","href":"/es/development/examples"}]},{"group":"Desplegar ComfyUI","pages":[{"title":"Implementar ComfyUI","sidebarTitle":"Descripción general","icon":"map","href":"/es/development/deploy/overview"},{"group":"API de Comfy","pages":[{"title":"Inicio rápido de Comfy API","sidebarTitle":"Inicio rápido","icon":"cloud-arrow-up","href":"/es/development/serverless/quickstart"},{"title":"Otras formas de crear un Build de Comfy API","sidebarTitle":"Fuentes del Build","icon":"layer-group","href":"/es/development/serverless/build-sources"},{"title":"Guía de despliegue de Comfy API","sidebarTitle":"Guía de despliegue","icon":"cloud-arrow-up","href":"/es/development/serverless/overview"}]},{"group":"Comfy Cloud","pages":[{"title":"Inicio rápido de Comfy Cloud","sidebarTitle":"Inicio rápido","icon":"cloud","href":"/es/development/deploy/cloud"},{"title":"Uso y límites","sidebarTitle":"Uso y límites","icon":"gauge","href":"/es/development/deploy/cloud-usage"},{"title":"Agregar Builds personalizados a Comfy Cloud","sidebarTitle":"Builds personalizados","icon":"puzzle-piece","href":"/es/development/deploy/cloud-custom-builds"}]},{"group":"Opciones de autoalojamiento","pages":[{"title":"Opciones de autoalojamiento","sidebarTitle":"Opciones de alojamiento","icon":"server","href":"/es/development/deploy/self-hosting"},{"group":"Self-Hosted Server API","pages":[{"title":"Servidor de ComfyUI: APIs REST y WebSocket","sidebarTitle":"Descripción general del servidor","href":"/es/development/comfyui-server/comms_overview"},{"title":"Ejemplos de la API de ComfyUI Server: HTTP, WebSocket e historial","sidebarTitle":"Ejemplos de API","href":"/es/development/comfyui-server/api-examples"},{"title":"Rutas del servidor de ComfyUI (API HTTP y WebSocket)","sidebarTitle":"Rutas HTTP y WebSocket","icon":"route","href":"/es/development/comfyui-server/comms_routes"},{"title":"Mensajes del servidor de ComfyUI (API WebSocket)","sidebarTitle":"Mensajes de WebSocket","icon":"comment","href":"/es/development/comfyui-server/comms_messages"},{"title":"Flags de inicio de ComfyUI: referencia de línea de comandos","sidebarTitle":"Flags de inicio","icon":"terminal","href":"/es/development/comfyui-server/startup-flags"},{"title":"Integración de la clave API de la cuenta de ComfyUI","sidebarTitle":"Integración de clave API","icon":"puzzle-piece","href":"/es/development/comfyui-server/api-key-integration"}]}]},{"group":"Ejecutar flujos de trabajo","pages":[{"title":"Ejecutar flujos de trabajo","sidebarTitle":"Descripción general","icon":"play","href":"/es/development/run-workflows/overview"},{"title":"Ejecuta tu primer flujo de trabajo","sidebarTitle":"Primer flujo de trabajo","href":"/es/development/api-development/quickstart"},{"title":"SDK de Comfy: clientes de Python y TypeScript para ComfyUI","sidebarTitle":"SDK","icon":"code","href":"/es/development/api-development/sdks"},{"title":"Proxy de API para ComfyUI autoalojado","sidebarTitle":"Proxy de API","icon":"plug","href":"/es/development/comfyui-server/api-proxy"},{"title":"Formato de API de flujos de trabajo","icon":"file-code","href":"/es/development/api-development/workflow-api-format"},{"title":"Metadatos de flujos de trabajo en archivos de salida de ComfyUI","sidebarTitle":"Metadatos de flujos","icon":"file-code","href":"/es/development/api-development/workflow-metadata"},{"group":"Comfy API Reference","boost":10,"pages":[{"title":"Versiones de Comfy API: v2 y la API v1 de Cloud obsoleta","sidebarTitle":"Descripción general","href":"/es/development/comfy-api/overview"},{"group":"v2","pages":[{"title":"Descripción general de Comfy API v2","sidebarTitle":"Descripción general","href":"/es/api-reference/v2/overview"},{"title":"Notas de diseño","sidebarTitle":"Notas de diseño","icon":"compass","href":"/es/development/api-development/sdks-design"},{"group":"Referencia de la API","pages":[{"group":"assets","pages":[{"title":"Upload an asset (single-call multipart)","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml post /api/v2/assets","href":"/es/api-reference/v2/assets/upload-an-asset-single-call-multipart"},{"title":"Create or reuse an asset over existing bytes","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml post /api/v2/assets/from-hash","href":"/es/api-reference/v2/assets/create-or-reuse-an-asset-over-existing-bytes"},{"title":"Existence check for a blob by blake3 hash","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml head /api/v2/assets/by-hash/{hash}","href":"/es/api-reference/v2/assets/existence-check-for-a-blob-by-blake3-hash"},{"title":"Asset metadata","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/assets/{id}","href":"/es/api-reference/v2/assets/asset-metadata"},{"title":"Delete an asset record","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml delete /api/v2/assets/{id}","href":"/es/api-reference/v2/assets/delete-an-asset-record"},{"title":"Asset bytes","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/assets/{id}/content","href":"/es/api-reference/v2/assets/asset-bytes"}]},{"group":"jobs","pages":[{"title":"List jobs, newest first","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/jobs","href":"/es/api-reference/v2/jobs/list-jobs-newest-first"},{"title":"Submit a workflow for execution","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml post /api/v2/jobs","href":"/es/api-reference/v2/jobs/submit-a-workflow-for-execution"},{"title":"Job status (the polling workhorse)","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/jobs/{id}","href":"/es/api-reference/v2/jobs/job-status-the-polling-workhorse"},{"title":"The workflow behind a job — authoring version if pinned, executed graph otherwise","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/jobs/{id}/workflow","href":"/es/api-reference/v2/jobs/the-workflow-behind-a-job-—-authoring-version-if-pinned-executed-graph-otherwise"},{"title":"What the run printed","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/jobs/{id}/logs","href":"/es/api-reference/v2/jobs/what-the-run-printed"},{"title":"Live event stream (SSE)","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml get /api/v2/jobs/{id}/events","href":"/es/api-reference/v2/jobs/live-event-stream-sse"},{"title":"Request cancellation","deprecated":null,"version":null,"openapi":"/openapi-v2.yaml post /api/v2/jobs/{id}/cancel","href":"/es/api-reference/v2/jobs/request-cancellation"}]}]}]},{"group":"v1 Cloud API (deprecated)","pages":[{"title":"Descripción general de la API de Cloud v1","sidebarTitle":"Descripción general","href":"/es/development/cloud/overview"},{"title":"Referencia de la API de Cloud","sidebarTitle":"Ejemplos de código","icon":"book-open","href":"/es/development/cloud/api-reference"},{"title":"Especificación OpenAPI","icon":"file-lines","openapi":"/openapi-cloud.yaml","href":"/es/development/cloud/openapi"},{"group":"Referencia de la API de Cloud","pages":[{"group":"workflow","pages":[{"title":"Get information about current prompt executions","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/prompt","href":"/es/api-reference/cloud/workflow/get-information-about-current-prompt-executions"},{"title":"Submit a workflow for execution","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/prompt","href":"/es/api-reference/cloud/workflow/submit-a-workflow-for-execution"},{"title":"Get available workflow templates","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/workflow_templates","href":"/es/api-reference/cloud/workflow/get-available-workflow-templates"},{"title":"Get available subgraph blueprints","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/global_subgraphs","href":"/es/api-reference/cloud/workflow/get-available-subgraph-blueprints"},{"title":"Get a specific subgraph blueprint","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/global_subgraphs/{id}","href":"/es/api-reference/cloud/workflow/get-a-specific-subgraph-blueprint"}]},{"group":"node","pages":[{"title":"Get all node information","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/object_info","href":"/es/api-reference/cloud/node/get-all-node-information"},{"title":"Get server feature flags","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/features","href":"/es/api-reference/cloud/node/get-server-feature-flags"}]},{"group":"model","pages":[{"title":"Get available model folders","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/experiment/models","href":"/es/api-reference/cloud/model/get-available-model-folders"},{"title":"Get models in a specific folder","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/experiment/models/{folder}","href":"/es/api-reference/cloud/model/get-models-in-a-specific-folder"},{"title":"Get model preview image","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/experiment/models/preview/{folder}/{path_index}/{filename}","href":"/es/api-reference/cloud/model/get-model-preview-image"}]},{"group":"job","pages":[{"title":"Manage execution history","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/history","href":"/es/api-reference/cloud/job/manage-execution-history"},{"title":"Get execution history (v2)","deprecated":true,"version":null,"openapi":"/openapi-cloud.yaml get /api/history_v2","href":"/es/api-reference/cloud/job/get-execution-history-v2"},{"title":"Get history for specific prompt","deprecated":true,"version":null,"openapi":"/openapi-cloud.yaml get /api/history_v2/{prompt_id}","href":"/es/api-reference/cloud/job/get-history-for-specific-prompt"},{"title":"List jobs with pagination and filtering","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/jobs","href":"/es/api-reference/cloud/job/list-jobs-with-pagination-and-filtering"},{"title":"Get full job details","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/jobs/{job_id}","href":"/es/api-reference/cloud/job/get-full-job-details"},{"title":"Get queue information","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/queue","href":"/es/api-reference/cloud/job/get-queue-information"},{"title":"Manage queue operations","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/queue","href":"/es/api-reference/cloud/job/manage-queue-operations"},{"title":"Interrupt currently running jobs","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/interrupt","href":"/es/api-reference/cloud/job/interrupt-currently-running-jobs"},{"title":"Get job status","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/job/{job_id}/status","href":"/es/api-reference/cloud/job/get-job-status"}]},{"group":"file","pages":[{"title":"View a file","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/view","href":"/es/api-reference/cloud/file/view-a-file"},{"title":"Get related mask layer files","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/files/mask-layers","href":"/es/api-reference/cloud/file/get-related-mask-layer-files"},{"title":"Upload an image file","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/upload/image","href":"/es/api-reference/cloud/file/upload-an-image-file"},{"title":"Upload a mask image","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/upload/mask","href":"/es/api-reference/cloud/file/upload-a-mask-image"}]},{"group":"asset","pages":[{"title":"List user assets","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/assets","href":"/es/api-reference/cloud/asset/list-user-assets"},{"title":"Upload a new asset","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/assets","href":"/es/api-reference/cloud/asset/upload-a-new-asset"},{"title":"Create asset reference from existing hash","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/assets/from-hash","href":"/es/api-reference/cloud/asset/create-asset-reference-from-existing-hash"},{"title":"Get asset metadata from remote URL","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/assets/remote-metadata","href":"/es/api-reference/cloud/asset/get-asset-metadata-from-remote-url"},{"title":"Initiate background download for large files","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/assets/download","href":"/es/api-reference/cloud/asset/initiate-background-download-for-large-files"},{"title":"Get asset details","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/assets/{id}","href":"/es/api-reference/cloud/asset/get-asset-details"},{"title":"Update asset metadata","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml put /api/assets/{id}","href":"/es/api-reference/cloud/asset/update-asset-metadata"},{"title":"Delete asset","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml delete /api/assets/{id}","href":"/es/api-reference/cloud/asset/delete-asset"},{"title":"Add tags to asset","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/assets/{id}/tags","href":"/es/api-reference/cloud/asset/add-tags-to-asset"},{"title":"Remove tags from asset","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml delete /api/assets/{id}/tags","href":"/es/api-reference/cloud/asset/remove-tags-from-asset"},{"title":"List all tags","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/tags","href":"/es/api-reference/cloud/asset/list-all-tags"},{"title":"Get tag histogram for filtered assets","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/assets/tags/refine","href":"/es/api-reference/cloud/asset/get-tag-histogram-for-filtered-assets"},{"title":"Check if asset exists by hash","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml head /api/assets/hash/{hash}","href":"/es/api-reference/cloud/asset/check-if-asset-exists-by-hash"}]},{"group":"user","pages":[{"title":"List user data files","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/userdata","href":"/es/api-reference/cloud/user/list-user-data-files"},{"title":"Get user data file","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/userdata/{file}","href":"/es/api-reference/cloud/user/get-user-data-file"},{"title":"Upload or update a user data file","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml post /api/userdata/{file}","href":"/es/api-reference/cloud/user/upload-or-update-a-user-data-file"},{"title":"Delete a user data file","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml delete /api/userdata/{file}","href":"/es/api-reference/cloud/user/delete-a-user-data-file"},{"title":"Get current user information","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/user","href":"/es/api-reference/cloud/user/get-current-user-information"}]},{"group":"system","pages":[{"title":"Get system statistics","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/system_stats","href":"/es/api-reference/cloud/system/get-system-statistics"}]},{"group":"billing","pages":[{"title":"Get workspace usage over time","deprecated":null,"version":null,"openapi":"/openapi-cloud.yaml get /api/billing/usage/timeseries","href":"/es/api-reference/cloud/billing/get-workspace-usage-over-time"}]}]}]}]}]}]},{"group":"Comfy CLI","pages":[{"title":"Empezar con Comfy CLI","sidebarTitle":"Empezar","href":"/es/comfy-cli/getting-started"},{"title":"Referencia de comandos de Comfy CLI","sidebarTitle":"Referencia de comandos","href":"/es/comfy-cli/reference"},{"title":"Solución de problemas de Comfy CLI: instalación y entorno","sidebarTitle":"Solución de problemas","href":"/es/comfy-cli/troubleshooting"}]},{"group":"Specifications","pages":[{"group":"Workflow JSON","pages":[{"title":"Workflow JSON","href":"/es/specs/workflow_json"},{"title":"Workflow JSON 0.4","href":"/es/specs/workflow_json_0.4"}]},{"group":"Node Definitions","pages":[{"title":"JSON de definición de nodo","href":"/es/specs/nodedef_json"},{"title":"JSON de definición de nodo 1.0","href":"/es/specs/nodedef_json_1_0"}]}]},{"group":"Nodos personalizados","pages":[{"title":"Nodos personalizados","sidebarTitle":"Descripción general","href":"/es/custom-nodes/intro"},{"group":"Crear nodos personalizados","pages":[{"title":"Tipos y arquitectura de nodos personalizados de ComfyUI","sidebarTitle":"Tipos de nodos","href":"/es/custom-nodes/overview"},{"title":"Crear nodos personalizados en ComfyUI","sidebarTitle":"Crea tu primer nodo","href":"/es/custom-nodes/walkthrough"},{"group":"Python (backend)","pages":[{"title":"Propiedades de un nodo personalizado","sidebarTitle":"Propiedades del nodo","href":"/es/custom-nodes/backend/server_overview"},{"title":"Ciclo de vida de los nodos personalizados de ComfyUI","sidebarTitle":"Ciclo de vida del nodo","href":"/es/custom-nodes/backend/lifecycle"},{"title":"Tipos de datos de nodos personalizados de ComfyUI","sidebarTitle":"Tipos de datos","href":"/es/custom-nodes/backend/datatypes"},{"title":"Imágenes, latentes y máscaras","sidebarTitle":"Imágenes, latentes y máscaras","href":"/es/custom-nodes/backend/images_and_masks"},{"title":"Entradas ocultas y flexibles","sidebarTitle":"Entradas ocultas y flexibles","href":"/es/custom-nodes/backend/more_on_inputs"},{"title":"Evaluación diferida en nodos personalizados de ComfyUI","sidebarTitle":"Evaluación diferida","href":"/es/custom-nodes/backend/lazy_evaluation"},{"title":"Expansión de nodos","href":"/es/custom-nodes/backend/expansion"},{"title":"Listas de datos y procesamiento de listas en ComfyUI","sidebarTitle":"Listas y procesamiento de listas","description":"Cómo ComfyUI pasa datos entre nodos personalizados como listas de Python: envoltura de longitud uno, procesamiento de listas para lotes y INPUT_IS_LIST y OUTPUT_IS_LIST.","href":"/es/custom-nodes/backend/lists"},{"title":"Trabajar con torch.Tensor","sidebarTitle":"Tensores","href":"/es/custom-nodes/backend/tensors"},{"title":"Fragmentos de Python para nodos de ComfyUI","description":"Ejemplos de código para nodos personalizados de ComfyUI: cargar y guardar imágenes, invertir máscaras, convertir formas de máscara y crear ruido.","sidebarTitle":"Fragmentos Python","href":"/es/custom-nodes/backend/snippets"},{"title":"Guía de inversión del modelo de ejecución","sidebarTitle":"Modelo de ejecución","icon":"code-branch","href":"/es/development/comfyui-server/execution_model_inversion_guide"}]},{"group":"JavaScript (UI)","pages":[{"title":"Extensiones de JavaScript","sidebarTitle":"Extensiones de JavaScript","href":"/es/custom-nodes/js/javascript_overview"},{"title":"Ganchos de JavaScript de ComfyUI","sidebarTitle":"Ganchos","href":"/es/custom-nodes/js/javascript_hooks"},{"title":"Objetos de Comfy","href":"/es/custom-nodes/js/javascript_objects_and_hijacking"},{"title":"API de configuraciones","href":"/es/custom-nodes/js/javascript_settings"},{"title":"API de diálogos de ComfyUI","sidebarTitle":"API de diálogos","href":"/es/custom-nodes/js/javascript_dialog"},{"title":"API de Toast de ComfyUI","sidebarTitle":"API de Toast","href":"/es/custom-nodes/js/javascript_toast"},{"title":"Insignias del panel Acerca de","href":"/es/custom-nodes/js/javascript_about_panel_badges"},{"title":"Pestañas del panel inferior","href":"/es/custom-nodes/js/javascript_bottom_panel_tabs"},{"title":"Pestañas de la barra lateral","href":"/es/custom-nodes/js/javascript_sidebar_tabs"},{"title":"Cuadro de herramientas de selección","href":"/es/custom-nodes/js/javascript_selection_toolbox"},{"title":"Comandos y atajos de teclado","href":"/es/custom-nodes/js/javascript_commands_keybindings"},{"title":"API del menú de la barra superior de ComfyUI","sidebarTitle":"API del menú de la barra superior","href":"/es/custom-nodes/js/javascript_topbar_menu"},{"title":"Subgrafos de ComfyUI","sidebarTitle":"Subgrafos","href":"/es/custom-nodes/js/subgraphs"},{"title":"API de puntero del lienzo para widgets y cursores","sidebarTitle":"API de puntero del lienzo","href":"/es/custom-nodes/js/canvas-pointer-api"},{"title":"Ejemplos de extensiones JavaScript de ComfyUI","sidebarTitle":"Ejemplos JavaScript","href":"/es/custom-nodes/js/javascript_examples"}]},{"title":"i18n de nodos personalizados de ComfyUI: traducir definiciones","sidebarTitle":"Soporte i18n","href":"/es/custom-nodes/i18n"},{"group":"Migration Guides","pages":[{"title":"Migración a V3","href":"/es/custom-nodes/v3_migration"},{"title":"Migrar a la API del menú contextual en ComfyUI: lienzo y nodos","sidebarTitle":"Migración del menú contextual","href":"/es/custom-nodes/js/context-menu-migration"},{"title":"Migración de ID de nodo para extensiones del frontend","sidebarTitle":"Migración de ID de nodo","href":"/es/custom-nodes/js/node-id-migration"},{"title":"Migración del registro de enlaces para extensiones del frontend","sidebarTitle":"Registro de enlaces","href":"/es/custom-nodes/js/link-registration-migration"},{"title":"Migración del sistema de widgets para extensiones del frontend","sidebarTitle":"Migración del sistema de widgets","href":"/es/custom-nodes/js/widgets-migration"},{"title":"Migración de callbacks de conexión para extensiones del frontend","sidebarTitle":"Callbacks de conexión","href":"/es/custom-nodes/js/connection-callbacks-migration"},{"title":"Migración de callbacks de serialización para extensiones del frontend","sidebarTitle":"Callbacks de serialización","href":"/es/custom-nodes/js/serialization-callbacks-migration"},{"title":"Migración de geometría de nodos para extensiones del frontend","sidebarTitle":"Migración de geometría de nodos","href":"/es/custom-nodes/js/node-geometry-migration"},{"title":"Migración tras eliminar PrimeVue en extensiones del frontend","sidebarTitle":"Eliminación de PrimeVue","href":"/es/custom-nodes/js/primevue-removal-migration"},{"title":"Reemplazo de nodos","href":"/es/custom-nodes/backend/node-replacement"}]}]},{"group":"Package \u0026 Publish","pages":[{"title":"Añadir documentación de nodos para tu nodo personalizado de ComfyUI","sidebarTitle":"Documentación de nodos","href":"/es/custom-nodes/help_page"},{"title":"Plantillas de flujos de trabajo","href":"/es/custom-nodes/workflow_templates"},{"title":"Planos de subgrafos","href":"/es/custom-nodes/subgraph_blueprints"},{"title":"Comfy Registry: publica y versiona nodos personalizados","sidebarTitle":"Descripción general del Registry","href":"/es/registry/overview"},{"title":"Publicar nodos personalizados en Comfy Registry","sidebarTitle":"Publicar nodos","href":"/es/registry/publishing"},{"title":"Publicar en ComfyUI Manager","sidebarTitle":"Publicar en Manager","href":"/es/custom-nodes/backend/manager"},{"title":"Reclamar un nodo personalizado en el Comfy Registry","sidebarTitle":"Reclamar nodo","href":"/es/registry/claim-my-node"},{"title":"Estándares de calidad y seguridad de nodos del Registro de Comfy","sidebarTitle":"Calidad y seguridad","href":"/es/registry/standards"},{"title":"CI/CD de nodos personalizados","sidebarTitle":"CI/CD","href":"/es/registry/cicd"},{"title":"pyproject.toml","href":"/es/registry/specifications"},{"title":"Descripción general de la API","href":"/es/registry/api-reference/overview"},{"group":"Registry API Reference","pages":[{"group":"Admin","pages":[{"title":"Generate a short-lived JWT admin token","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /admin/generate-token","href":"/es/registry/api-reference/admin/generate-a-short-lived-jwt-admin-token"}]},{"group":"Registry","pages":[{"title":"Retrieve multiple node versions in a single request","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /bulk/nodes/versions","href":"/es/registry/api-reference/registry/retrieve-multiple-node-versions-in-a-single-request"},{"title":"list all comfy-nodes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /comfy-nodes","href":"/es/registry/api-reference/registry/list-all-comfy-nodes"},{"title":"Retrieve a node by ComfyUI node name","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /comfy-nodes/{comfyNodeName}/node","href":"/es/registry/api-reference/registry/retrieve-a-node-by-comfyui-node-name"},{"title":"Get server feature flags","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /features","href":"/es/registry/api-reference/registry/get-server-feature-flags"},{"title":"Retrieves a list of nodes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes","href":"/es/registry/api-reference/registry/retrieves-a-list-of-nodes"},{"title":"Retrieves a list of nodes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/search","href":"/es/registry/api-reference/registry/retrieves-a-list-of-nodes-1"},{"title":"Retrieve a specific node by ID","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}","href":"/es/registry/api-reference/registry/retrieve-a-specific-node-by-id"},{"title":"Returns a node version to be installed.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}/install","href":"/es/registry/api-reference/registry/returns-a-node-version-to-be-installed"},{"title":"Add review to a specific version of a node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /nodes/{nodeId}/reviews","href":"/es/registry/api-reference/registry/add-review-to-a-specific-version-of-a-node"},{"title":"Create Node Translations","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /nodes/{nodeId}/translations","href":"/es/registry/api-reference/registry/create-node-translations"},{"title":"List all versions of a node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}/versions","href":"/es/registry/api-reference/registry/list-all-versions-of-a-node"},{"title":"Retrieve a specific version of a node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}/versions/{versionId}","href":"/es/registry/api-reference/registry/retrieve-a-specific-version-of-a-node"},{"title":"list comfy-nodes for node version","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}/versions/{version}/comfy-nodes","href":"/es/registry/api-reference/registry/list-comfy-nodes-for-node-version"},{"title":"create comfy-nodes for certain node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /nodes/{nodeId}/versions/{version}/comfy-nodes","href":"/es/registry/api-reference/registry/create-comfy-nodes-for-certain-node"},{"title":"get specify comfy-node based on its id","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /nodes/{nodeId}/versions/{version}/comfy-nodes/{comfyNodeName}","href":"/es/registry/api-reference/registry/get-specify-comfy-node-based-on-its-id"},{"title":"Update a specific comfy-node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi put /nodes/{nodeId}/versions/{version}/comfy-nodes/{comfyNodeName}","href":"/es/registry/api-reference/registry/update-a-specific-comfy-node"},{"title":"Retrieve all publishers","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers","href":"/es/registry/api-reference/registry/retrieve-all-publishers"},{"title":"Create a new publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /publishers","href":"/es/registry/api-reference/registry/create-a-new-publisher"},{"title":"Validate if a publisher username is available","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/validate","href":"/es/registry/api-reference/registry/validate-if-a-publisher-username-is-available"},{"title":"Retrieve a publisher by ID","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/{publisherId}","href":"/es/registry/api-reference/registry/retrieve-a-publisher-by-id"},{"title":"Update a publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi put /publishers/{publisherId}","href":"/es/registry/api-reference/registry/update-a-publisher"},{"title":"Delete a publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi delete /publishers/{publisherId}","href":"/es/registry/api-reference/registry/delete-a-publisher"},{"title":"Retrieve all nodes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/{publisherId}/nodes","href":"/es/registry/api-reference/registry/retrieve-all-nodes"},{"title":"Create a new custom node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /publishers/{publisherId}/nodes","href":"/es/registry/api-reference/registry/create-a-new-custom-node"},{"title":"Retrieve all nodes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/{publisherId}/nodes/v2","href":"/es/registry/api-reference/registry/retrieve-all-nodes-1"},{"title":"Update a specific node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi put /publishers/{publisherId}/nodes/{nodeId}","href":"/es/registry/api-reference/registry/update-a-specific-node"},{"title":"Delete a specific node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi delete /publishers/{publisherId}/nodes/{nodeId}","href":"/es/registry/api-reference/registry/delete-a-specific-node"},{"title":"Claim nodeId into publisherId for the authenticated publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /publishers/{publisherId}/nodes/{nodeId}/claim-my-node","href":"/es/registry/api-reference/registry/claim-nodeid-into-publisherid-for-the-authenticated-publisher"},{"title":"Retrieve permissions the user has for a given publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/{publisherId}/nodes/{nodeId}/permissions","href":"/es/registry/api-reference/registry/retrieve-permissions-the-user-has-for-a-given-publisher"},{"title":"Publish a new version of a node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /publishers/{publisherId}/nodes/{nodeId}/versions","href":"/es/registry/api-reference/registry/publish-a-new-version-of-a-node"},{"title":"Update changelog and deprecation status of a node version","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi put /publishers/{publisherId}/nodes/{nodeId}/versions/{versionId}","href":"/es/registry/api-reference/registry/update-changelog-and-deprecation-status-of-a-node-version"},{"title":"Unpublish (delete) a specific version of a node","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi delete /publishers/{publisherId}/nodes/{nodeId}/versions/{versionId}","href":"/es/registry/api-reference/registry/unpublish-delete-a-specific-version-of-a-node"},{"title":"Retrieve permissions the user has for a given publisher","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /publishers/{publisherId}/permissions","href":"/es/registry/api-reference/registry/retrieve-permissions-the-user-has-for-a-given-publisher-1"},{"title":"Create a new personal access token","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /publishers/{publisherId}/tokens","href":"/es/registry/api-reference/registry/create-a-new-personal-access-token"},{"title":"Delete a specific personal access token","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi delete /publishers/{publisherId}/tokens/{tokenId}","href":"/es/registry/api-reference/registry/delete-a-specific-personal-access-token"},{"title":"Get information about the calling user.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /users","href":"/es/registry/api-reference/registry/get-information-about-the-calling-user"},{"title":"Retrieve all publishers for a given user","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /users/publishers/","href":"/es/registry/api-reference/registry/retrieve-all-publishers-for-a-given-user"},{"title":"List all node versions given some filters.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /versions","href":"/es/registry/api-reference/registry/list-all-node-versions-given-some-filters"}]},{"group":"Freepik","pages":[{"title":"Relight an image","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/image-relight","href":"/es/registry/api-reference/freepik/relight-an-image"},{"title":"Get the status of the relight task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/freepik/v1/ai/image-relight/{task_id}","href":"/es/registry/api-reference/freepik/get-the-status-of-the-relight-task"},{"title":"Style transfer an image","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/image-style-transfer","href":"/es/registry/api-reference/freepik/style-transfer-an-image"},{"title":"Get the status of the style transfer task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/freepik/v1/ai/image-style-transfer/{task_id}","href":"/es/registry/api-reference/freepik/get-the-status-of-the-style-transfer-task"},{"title":"Upscale an image with Magnific","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/image-upscaler","href":"/es/registry/api-reference/freepik/upscale-an-image-with-magnific"},{"title":"Upscale an image with Precision V2","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/image-upscaler-precision-v2","href":"/es/registry/api-reference/freepik/upscale-an-image-with-precision-v2"},{"title":"Get the status of the Precision V2 upscaling task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/freepik/v1/ai/image-upscaler-precision-v2/{task_id}","href":"/es/registry/api-reference/freepik/get-the-status-of-the-precision-v2-upscaling-task"},{"title":"Get the status of the upscaling task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/freepik/v1/ai/image-upscaler/{task_id}","href":"/es/registry/api-reference/freepik/get-the-status-of-the-upscaling-task"},{"title":"Skin enhancer using AI (Creative)","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/skin-enhancer/creative","href":"/es/registry/api-reference/freepik/skin-enhancer-using-ai-creative"},{"title":"Skin enhancer using AI (Faithful)","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/skin-enhancer/faithful","href":"/es/registry/api-reference/freepik/skin-enhancer-using-ai-faithful"},{"title":"Skin enhancer using AI (Flexible)","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/freepik/v1/ai/skin-enhancer/flexible","href":"/es/registry/api-reference/freepik/skin-enhancer-using-ai-flexible"},{"title":"Get the status of one skin enhancer task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/freepik/v1/ai/skin-enhancer/{task_id}","href":"/es/registry/api-reference/freepik/get-the-status-of-one-skin-enhancer-task"}]},{"group":"Sonilo","pages":[{"title":"Generate music from text prompt","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/sonilo/t2m/generate","href":"/es/registry/api-reference/sonilo/generate-music-from-text-prompt"},{"title":"Get a Sonilo task","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/sonilo/v1/tasks/{task_id}","href":"/es/registry/api-reference/sonilo/get-a-sonilo-task"},{"title":"Generate a song with lyrics from a text prompt","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/sonilo/v1/text-to-music-l","href":"/es/registry/api-reference/sonilo/generate-a-song-with-lyrics-from-a-text-prompt"},{"title":"Generate music from video","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/sonilo/v2m/generate","href":"/es/registry/api-reference/sonilo/generate-music-from-video"}]},{"group":"API Nodes","pages":[{"title":"Post proxyviduextend","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/extend","href":"/es/registry/api-reference/api-nodes/post-proxyviduextend"},{"title":"Post proxyviduimg2video","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/img2video","href":"/es/registry/api-reference/api-nodes/post-proxyviduimg2video"},{"title":"Post proxyvidumultiframe","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/multiframe","href":"/es/registry/api-reference/api-nodes/post-proxyvidumultiframe"},{"title":"Post proxyvidureference2video","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/reference2video","href":"/es/registry/api-reference/api-nodes/post-proxyvidureference2video"},{"title":"Post proxyvidustart end2video","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/start-end2video","href":"/es/registry/api-reference/api-nodes/post-proxyvidustart-end2video"},{"title":"Get proxyvidutasks creations","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /proxy/vidu/tasks/{id}/creations","href":"/es/registry/api-reference/api-nodes/get-proxyvidutasks-creations"},{"title":"Post proxyvidutext2video","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /proxy/vidu/text2video","href":"/es/registry/api-reference/api-nodes/post-proxyvidutext2video"}]},{"group":"Releases","pages":[{"title":"Get release notes","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /releases","href":"/es/registry/api-reference/releases/get-release-notes"}]},{"group":"Comfy Router","pages":[{"title":"List the models Comfy Router can run.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /v2/models","href":"/es/registry/api-reference/comfy-router/list-the-models-comfy-router-can-run"},{"title":"Read one partner model's catalog entry by canonical model ID.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /v2/models/{provider}/{model}","href":"/es/registry/api-reference/comfy-router/read-one-partner-models-catalog-entry-by-canonical-model-id"},{"title":"Run a partner model synchronously by canonical model ID.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /v2/models/{provider}/{model}","href":"/es/registry/api-reference/comfy-router/run-a-partner-model-synchronously-by-canonical-model-id"},{"title":"Price a model call before running it, without running it.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /v2/models/{provider}/{model}/estimate","href":"/es/registry/api-reference/comfy-router/price-a-model-call-before-running-it-without-running-it"},{"title":"Read one partner model's input and output schemas as an OpenAPI document.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /v2/models/{provider}/{model}/openapi.json","href":"/es/registry/api-reference/comfy-router/read-one-partner-models-input-and-output-schemas-as-an-openapi-document"},{"title":"Submit a partner model run to the queue and return immediately.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi post /v2/models/{provider}/{model}/requests","href":"/es/registry/api-reference/comfy-router/submit-a-partner-model-run-to-the-queue-and-return-immediately"},{"title":"Collect the result of one submitted request.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /v2/models/{provider}/{model}/requests/{request_id}","href":"/es/registry/api-reference/comfy-router/collect-the-result-of-one-submitted-request"},{"title":"Ask for one submitted request to be cancelled.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi put /v2/models/{provider}/{model}/requests/{request_id}/cancel","href":"/es/registry/api-reference/comfy-router/ask-for-one-submitted-request-to-be-cancelled"},{"title":"Read the queue state of one submitted request.","deprecated":null,"version":null,"openapi":"https://api.comfy.org/openapi get /v2/models/{provider}/{model}/requests/{request_id}/status","href":"/es/registry/api-reference/comfy-router/read-the-queue-state-of-one-submitted-request"}]}]}]}]}]},{"tab":"Soporte","pages":[{"title":"Soporte","href":"/es/support/contact-support"}]}]}]},"basePath":"","title":"Trabajar con torch.Tensor - ComfyUI","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}