update: content

This commit is contained in:
Yourz
2026-04-23 22:12:18 +08:00
parent c6551430ce
commit f0eac7e019
9 changed files with 191 additions and 95 deletions

View File

@@ -0,0 +1,22 @@
<script setup lang="ts">
import type { Locale } from '../../i18n/translations'
import { t } from '../../i18n/translations'
const { locale = 'en' } = defineProps<{ locale?: Locale }>()
</script>
<template>
<section
class="flex flex-col items-center px-4 pt-16 pb-24 text-center lg:px-20 lg:pt-10 lg:pb-40"
>
<span
class="text-primary-comfy-yellow text-sm font-bold tracking-widest uppercase"
>
{{ t('customers.contact.label', locale) }}
</span>
<h2
class="text-primary-comfy-canvas mt-4 max-w-2xl text-3xl font-light whitespace-pre-line"
v-html="t('customers.contact.heading', locale)"
/>
</section>
</template>

View File

@@ -1,7 +1,6 @@
<script setup lang="ts">
import type { Locale } from '../../i18n/translations'
import { t } from '../../i18n/translations'
import BrandButton from '../common/BrandButton.vue'
const { locale = 'en' } = defineProps<{ locale?: Locale }>()
</script>
@@ -16,12 +15,8 @@ const { locale = 'en' } = defineProps<{ locale?: Locale }>()
{{ t('gallery.contact.label', locale) }}
</span>
<h2
class="text-primary-comfy-canvas mt-4 text-3xl font-light whitespace-pre-line"
>
{{ t('gallery.contact.heading', locale) }}
</h2>
<BrandButton href="/contact" variant="outline-dark" size="sm" class="mt-8">
{{ t('gallery.contact.cta', locale) }}
</BrandButton>
class="text-primary-comfy-canvas mt-4 max-w-2xl text-2xl font-light whitespace-pre-line"
v-html="t('gallery.contact.heading', locale)"
/>
</section>
</template>

View File

@@ -1,67 +1,59 @@
<script setup lang="ts">
import type { Locale } from '../../i18n/translations'
import type { Locale, TranslationKey } from '../../i18n/translations'
import { t } from '../../i18n/translations'
const { locale = 'en' } = defineProps<{ locale?: Locale }>()
interface IncludedFeature {
title: string
description: string
titleKey: TranslationKey
descriptionKey: TranslationKey
isComingSoon?: boolean
}
const features: IncludedFeature[] = [
{
title: 'Machine Setup',
description: 'Comfy Cloud runs on Blackwell RTX 6000 Pro 96GB VRAM'
titleKey: 'pricing.included.feature1.title',
descriptionKey: 'pricing.included.feature1.description'
},
{
title: 'Time limit per job',
description:
'Each workflow run has a maximum duration of 30 minutes. On the Pro plan, the time limit is increased to 1 hour. Jobs exceeding that limit are automatically cancelled to ensure fair usage and system stability.'
titleKey: 'pricing.included.feature2.title',
descriptionKey: 'pricing.included.feature2.description'
},
{
title: 'Usage',
description:
"You're only charged for <strong>active GPU</strong> time while a workflow is running. Idle time (e.g. time spent building workflows) does not consume GPU hours."
titleKey: 'pricing.included.feature3.title',
descriptionKey: 'pricing.included.feature3.description'
},
{
title: 'Credit balance',
description:
'All plans will include a monthly pool of credits that are spent on active workflow runtime and <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">Partner Nodes</a> like Nano Banana Pro.'
titleKey: 'pricing.included.feature4.title',
descriptionKey: 'pricing.included.feature4.description'
},
{
title: 'Add more credits anytime',
description:
'Purchase additional credits at any time. Unused top-ups roll over to the next month automatically for up to 1 year.'
titleKey: 'pricing.included.feature5.title',
descriptionKey: 'pricing.included.feature5.description'
},
{
title: 'Pre-installed models',
description: 'Access a library of 900+ pre-installed models.'
titleKey: 'pricing.included.feature6.title',
descriptionKey: 'pricing.included.feature6.description'
},
{
title: 'Custom nodes support',
description:
"Comfy Cloud currently supports a variety of the most-used custom nodes from the ComfyUI community. We're expanding support regularly based on demand and compatibility."
titleKey: 'pricing.included.feature7.title',
descriptionKey: 'pricing.included.feature7.description'
},
{
title: 'Partner Nodes',
description:
'Run <strong>proprietary models</strong> through Comfy\'s <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">Partner Nodes</a>, such as Nano Banana. The amount of credits each node uses depends on the model and parameters you set in the node, but these credits are the same ones that your monthly subscription comes with. These credits can also be used across Comfy Cloud and local ComfyUI. Read more about Partner nodes <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">here</a>.'
titleKey: 'pricing.included.feature8.title',
descriptionKey: 'pricing.included.feature8.description'
},
{
title: 'Job queue',
description: 'Queue up to 100 workflows at once.'
titleKey: 'pricing.included.feature9.title',
descriptionKey: 'pricing.included.feature9.description'
},
{
title: 'Custom LoRA importing',
description:
'For those on the Creator or Pro plans, you can bring in your own models & LoRAs from CivitAI or Huggingface to perfect your own style.'
titleKey: 'pricing.included.feature10.title',
descriptionKey: 'pricing.included.feature10.description'
},
{
title: 'Parallel job execution',
description:
'Run multiple workflows in parallel to speed up your pipeline.',
titleKey: 'pricing.included.feature11.title',
descriptionKey: 'pricing.included.feature11.description',
isComingSoon: true
}
]
@@ -85,7 +77,7 @@ const features: IncludedFeature[] = [
<div>
<div
v-for="(feature, index) in features"
:key="feature.title"
:key="feature.titleKey"
:class="
index < features.length - 1
? 'border-primary-comfy-canvas/15 border-b border-solid'
@@ -111,13 +103,13 @@ const features: IncludedFeature[] = [
/>
<div>
<p class="text-primary-comfy-canvas text-sm font-medium">
{{ feature.title }}
{{ t(feature.titleKey, locale) }}
</p>
<span
v-if="feature.isComingSoon"
class="text-primary-comfy-yellow mt-1 inline-block text-xs"
>
coming soon
{{ t('pricing.included.comingSoon', locale) }}
</span>
</div>
</div>
@@ -125,7 +117,7 @@ const features: IncludedFeature[] = [
<!-- Description -->
<p
class="text-primary-comfy-canvas/55 mt-3 text-sm/relaxed lg:mt-0"
v-html="feature.description"
v-html="t(feature.descriptionKey, locale)"
/>
</div>
</div>

View File

@@ -21,17 +21,12 @@ const features = computed(() => [
{
title: t('enterprise.team.feature2.title', locale),
description: t('enterprise.team.feature2.description', locale),
image: 'https://media.comfy.org/website/enterprise/dark-fluid-texture.webp',
ctaText: t('enterprise.team.feature2.cta', locale),
ctaHref: routes.value.cloud
image: 'https://media.comfy.org/website/enterprise/dark-fluid-texture.webp'
},
{
title: t('enterprise.team.feature3.title', locale),
description: t('enterprise.team.feature3.description', locale),
image:
'https://media.comfy.org/website/enterprise/isometric-interface.webp',
ctaText: t('enterprise.hero.contactSales', locale),
ctaHref: routes.value.contact
image: 'https://media.comfy.org/website/enterprise/isometric-interface.webp'
}
])
</script>

View File

@@ -951,9 +951,9 @@ const translations = {
'zh-CN': '我可以运行长时间或多个工作流吗?'
},
'cloud.faq.9.a': {
en: "Each workflow can run for up to 30 minutes, with one active job at a time. We're adding higher tiers and parallel runs soon for even more flexibility.",
en: "Each workflow can run for up to 60 minutes, with one active job at a time. We're adding higher tiers and parallel runs soon for even more flexibility.",
'zh-CN':
'每个工作流最长可运行 30 分钟,同时运行一个活跃任务。我们即将推出更高层级和并行运行,提供更大灵活性。'
'每个工作流最长可运行 60 分钟,同时运行一个活跃任务。我们即将推出更高层级和并行运行,提供更大灵活性。'
},
'cloud.faq.10.q': {
en: 'How is my user data stored and secured in Comfy Cloud?',
@@ -1070,8 +1070,8 @@ const translations = {
'zh-CN': '包含免费版全部能力,另加:'
},
'pricing.plan.standard.feature1': {
en: '30-minute max runtime per workflow',
'zh-CN': '单个工作流最长运行 30 分钟'
en: '60-minute max runtime per workflow',
'zh-CN': '单个工作流最长运行 60 分钟'
},
'pricing.plan.standard.feature2': {
en: 'Add more credits anytime',
@@ -1081,7 +1081,7 @@ const translations = {
'pricing.plan.creator.label': { en: 'CREATOR', 'zh-CN': '创作者版' },
'pricing.plan.creator.summary': {
en: 'Small teams building fine-tuned, repeatable workflows',
'zh-CN': '面向专业人士与小团队构建可复用、精细调优的工作流'
'zh-CN': '小团队构建精细调优、可复用的工作流'
},
'pricing.plan.creator.price': { en: '$35', 'zh-CN': '$35' },
'pricing.plan.creator.credits': {
@@ -1146,7 +1146,7 @@ const translations = {
en: 'For teams running Comfy in production, and at scale.',
'zh-CN': '面向在生产环境和规模化场景中运行 Comfy 的团队。'
},
'pricing.enterprise.cta': { en: 'LEARN MORE', 'zh-CN': '联系我们' },
'pricing.enterprise.cta': { en: 'LEARN MORE', 'zh-CN': '了解更多' },
'pricing.enterprise.featureIntro': {
en: 'Everything in Pro, plus:',
'zh-CN': '包含专业版全部能力,另加:'
@@ -1178,6 +1178,105 @@ const translations = {
en: "What's included\nin the Comfy plan",
'zh-CN': 'Comfy 计划\n包含哪些内容'
},
'pricing.included.feature1.title': {
en: 'Machine Setup',
'zh-CN': '机器配置'
},
'pricing.included.feature1.description': {
en: 'Comfy Cloud runs on Blackwell RTX 6000 Pro 96GB VRAM',
'zh-CN': 'Comfy Cloud 运行在 Blackwell RTX 6000 Pro 上,配备 96GB 显存'
},
'pricing.included.feature2.title': {
en: 'Time limit per job',
'zh-CN': '单个任务时限'
},
'pricing.included.feature2.description': {
en: 'Each workflow run has a maximum duration of 60 minutes. On the Pro plan, the time limit is increased to 1 hour. Jobs exceeding that limit are automatically cancelled to ensure fair usage and system stability.',
'zh-CN':
'每个工作流运行最长为 60 分钟。Pro 计划的时限可延长至 1 小时。超时任务将自动取消,以确保公平使用和系统稳定。'
},
'pricing.included.feature3.title': {
en: 'Usage',
'zh-CN': '用量计费'
},
'pricing.included.feature3.description': {
en: "You're only charged for <strong>active GPU</strong> time while a workflow is running. Idle time (e.g. time spent building workflows) does not consume GPU hours.",
'zh-CN':
'仅在工作流运行期间按<strong>实际 GPU</strong> 使用时长计费。空闲时间(如构建工作流)不消耗 GPU 时长。'
},
'pricing.included.feature4.title': {
en: 'Credit balance',
'zh-CN': '积分余额'
},
'pricing.included.feature4.description': {
en: 'All plans will include a monthly pool of credits that are spent on active workflow runtime and <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">Partner Nodes</a> like Nano Banana Pro.',
'zh-CN':
'所有计划均包含每月积分池,可用于工作流运行和<a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">合作节点</a>(如 Nano Banana Pro。'
},
'pricing.included.feature5.title': {
en: 'Add more credits anytime',
'zh-CN': '随时加购积分'
},
'pricing.included.feature5.description': {
en: 'Purchase additional credits at any time. Unused top-ups roll over to the next month automatically for up to 1 year.',
'zh-CN':
'可随时购买额外积分。未使用的充值积分自动结转至下月,最长保留 1 年。'
},
'pricing.included.feature6.title': {
en: 'Pre-installed models',
'zh-CN': '预装模型'
},
'pricing.included.feature6.description': {
en: 'Access a library of 900+ pre-installed models.',
'zh-CN': '可访问 900+ 预装模型库。'
},
'pricing.included.feature7.title': {
en: 'Custom nodes support',
'zh-CN': '自定义节点支持'
},
'pricing.included.feature7.description': {
en: "Comfy Cloud currently supports a variety of the most-used custom nodes from the ComfyUI community. We're expanding support regularly based on demand and compatibility.",
'zh-CN':
'Comfy Cloud 目前支持 ComfyUI 社区中最常用的多种自定义节点,并根据需求和兼容性持续扩展支持范围。'
},
'pricing.included.feature8.title': {
en: 'Partner Nodes',
'zh-CN': '合作节点'
},
'pricing.included.feature8.description': {
en: 'Run <strong>proprietary models</strong> through Comfy\'s <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">Partner Nodes</a>, such as Nano Banana. The amount of credits each node uses depends on the model and parameters you set in the node, but these credits are the same ones that your monthly subscription comes with. These credits can also be used across Comfy Cloud and local ComfyUI. Read more about Partner nodes <a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">here</a>.',
'zh-CN':
'通过 Comfy 的<a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">合作节点</a>运行<strong>专有模型</strong>,如 Nano Banana。每个节点消耗的积分取决于所用模型和参数设置且与月度订阅积分通用。积分可在 Comfy Cloud 和本地 ComfyUI 间通用。了解更多关于合作节点的信息请点击<a href="https://docs.comfy.org/tutorials/partner-nodes/overview" class="text-primary-comfy-yellow underline">此处</a>。'
},
'pricing.included.feature9.title': {
en: 'Job queue',
'zh-CN': '任务队列'
},
'pricing.included.feature9.description': {
en: 'Queue up to 100 workflows at once.',
'zh-CN': '可同时排队最多 100 个工作流。'
},
'pricing.included.feature10.title': {
en: 'Custom LoRA importing',
'zh-CN': '自定义 LoRA 导入'
},
'pricing.included.feature10.description': {
en: 'For those on the Creator or Pro plans, you can bring in your own models & LoRAs from CivitAI or Huggingface to perfect your own style.',
'zh-CN':
'Creator 或 Pro 计划用户可从 CivitAI 或 Huggingface 导入自己的模型和 LoRA打造专属风格。'
},
'pricing.included.feature11.title': {
en: 'Parallel job execution',
'zh-CN': '并行任务执行'
},
'pricing.included.feature11.description': {
en: 'Run multiple workflows in parallel to speed up your pipeline.',
'zh-CN': '并行运行多个工作流,加速你的流程。'
},
'pricing.included.comingSoon': {
en: 'coming soon',
'zh-CN': '即将推出'
},
// VideoPlayer
'player.play': { en: 'Play', 'zh-CN': '播放' },
@@ -1212,8 +1311,9 @@ const translations = {
// ContactSection
'gallery.contact.label': { en: 'CONTACT', 'zh-CN': '联系' },
'gallery.contact.heading': {
en: 'Questions? Reach out!',
'zh-CN': '有精彩作品想要分享?\n联系我们。'
en: 'Built something cool with ComfyUI? <a href="https://docs.google.com/forms/d/1B6_RPQfhTyKvqHk9OO2bUn8z1Qgh6QIZsF3GNMiCXDw/preview" target="_blank" class="text-primary-comfy-yellow underline">Submit</a> your work to be featured on our website and socials and get seen by the global ComfyUI community.',
'zh-CN':
'用 ComfyUI 创作了很酷的作品?<a href="https://docs.google.com/forms/d/1B6_RPQfhTyKvqHk9OO2bUn8z1Qgh6QIZsF3GNMiCXDw/preview" target="_blank" class="text-primary-comfy-yellow underline">提交</a>你的作品,展示在我们的网站和社交媒体上,让全球 ComfyUI 社区看到。'
},
'gallery.contact.cta': { en: 'Contact us', 'zh-CN': '联系我们' },
@@ -1353,7 +1453,7 @@ const translations = {
},
// CareersHeroSection
'careers.hero.label': { en: 'CAREERS', 'zh-CN': 'CAREERS' },
'careers.hero.label': { en: 'CAREERS', 'zh-CN': '招聘' },
'careers.hero.heading': {
en: 'Building an operating\nsystem for Gen AI',
'zh-CN': '构建生成式 AI 的\n\u201C操作系统\u201D'
@@ -1361,7 +1461,7 @@ const translations = {
'careers.hero.body1': {
en: "We're building the world's leading visual AI platform \u2014 open, modular, and designed for those who want control, quality and scale in their creative process.",
'zh-CN':
'我们全球领先的视觉 AI 平台\u2014\u2014一个开放、模块化的系统任何人都可以精确地构建、定制和自动化 AI 工作流,并拥有完全的控制权。'
'我们正在构建全球领先的视觉 AI 平台——开放、模块化,专为追求创作过程中的控制力、品质和规模化的人而设计。'
},
'careers.hero.body2': {
en: 'From solo creators to enterprise teams, millions of people rely on ComfyUI to push the boundaries of what creative AI can do.',
@@ -2078,6 +2178,13 @@ const translations = {
'zh-CN':
'从独立艺术家到全球工作室——构建视觉媒体未来的团队都在使用 ComfyUI。'
},
'customers.contact.label': { en: 'CONTACT', 'zh-CN': '联系' },
'customers.contact.heading': {
en: 'Interested in a case study with ComfyUI? Reach out <a href="https://docs.google.com/forms/d/e/1FAIpQLSd-Keeq1VIePeanQIsdHq9eYeDE82MHJTdvwdgpxCoEzo_CUg/viewform" target="_blank" class="text-primary-comfy-yellow underline">here</a>',
'zh-CN':
'有兴趣与 ComfyUI 合作案例研究?点击<a href="https://docs.google.com/forms/d/e/1FAIpQLSd-Keeq1VIePeanQIsdHq9eYeDE82MHJTdvwdgpxCoEzo_CUg/viewform" target="_blank" class="text-primary-comfy-yellow underline">此处</a>联系我们'
},
'customers.story.series-entertainment.category': {
en: 'GAME & VIDEO PRODUCTION',
'zh-CN': '游戏与视频制作'

View File

@@ -4,6 +4,7 @@ import HeroSection from '../components/customers/HeroSection.vue'
import StorySection from '../components/customers/StorySection.vue'
import FeedbackSection from '../components/customers/FeedbackSection.vue'
import VideoSection from '../components/customers/VideoSection.vue'
import ContactSection from '../components/customers/ContactSection.vue'
---
<BaseLayout title="Customer Stories — Comfy">
@@ -11,4 +12,5 @@ import VideoSection from '../components/customers/VideoSection.vue'
<StorySection />
<FeedbackSection client:load />
<VideoSection client:load />
<ContactSection />
</BaseLayout>

View File

@@ -5,6 +5,10 @@ import HeroSection from '../../../components/product/enterprise/HeroSection.vue'
import SocialProofBarSection from '../../../components/common/SocialProofBarSection.vue'
import ReasonSection from '../../../components/product/enterprise/ReasonSection.vue'
import TeamSection from '../../../components/product/enterprise/TeamSection.vue'
import DataOwnershipSection from '../../../components/product/enterprise/DataOwnershipSection.vue'
import BYOKeySection from '../../../components/product/enterprise/BYOKeySection.vue'
import OrchestrationSection from '../../../components/product/enterprise/OrchestrationSection.vue'
import ProductCardsSection from '../../../components/common/ProductCardsSection.vue'
---
<BaseLayout title="Comfy Enterprise">
@@ -13,4 +17,8 @@ import TeamSection from '../../../components/product/enterprise/TeamSection.vue'
<SocialProofBarSection />
<ReasonSection locale="zh-CN" />
<TeamSection locale="zh-CN" />
<DataOwnershipSection locale="zh-CN" client:visible />
<BYOKeySection locale="zh-CN" />
<OrchestrationSection locale="zh-CN" client:visible />
<ProductCardsSection locale="zh-CN" exclude-product="enterprise" label-key="products.labelProducts" />
</BaseLayout>

View File

@@ -4,6 +4,7 @@ import HeroSection from '../../components/customers/HeroSection.vue'
import StorySection from '../../components/customers/StorySection.vue'
import FeedbackSection from '../../components/customers/FeedbackSection.vue'
import VideoSection from '../../components/customers/VideoSection.vue'
import ContactSection from '../../components/customers/ContactSection.vue'
---
<BaseLayout title="客户故事 — Comfy">
@@ -11,4 +12,5 @@ import VideoSection from '../../components/customers/VideoSection.vue'
<StorySection locale="zh-CN" />
<FeedbackSection locale="zh-CN" client:load />
<VideoSection locale="zh-CN" client:load />
<ContactSection locale="zh-CN" />
</BaseLayout>

View File

@@ -1,39 +1,12 @@
---
import BaseLayout from '../../layouts/BaseLayout.astro'
import HeroSection from '../../components/gallery/HeroSection.vue'
import GallerySection from '../../components/gallery/GallerySection.vue'
import ContactSection from '../../components/gallery/ContactSection.vue'
---
<BaseLayout title="作品集 — Comfy">
<div class="bg-black text-white">
<!-- Hero -->
<section class="mx-auto max-w-5xl px-6 pb-16 pt-32 text-center">
<h1 class="text-4xl font-bold tracking-tight sm:text-5xl">
在 ComfyUI 中<span class="text-brand-yellow">构建、调整与梦想</span>
</h1>
<p class="mx-auto mt-4 max-w-2xl text-lg text-smoke-700">
社区使用 ComfyUI 创作的精彩作品一瞥。
</p>
</section>
<!-- Placeholder Grid -->
<section class="mx-auto max-w-6xl px-6 pb-24">
<div class="grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3">
{Array.from({ length: 6 }).map(() => (
<div class="flex aspect-video items-center justify-center rounded-xl border border-white/10 bg-charcoal-600">
<p class="text-sm text-smoke-700">社区展示即将上线</p>
</div>
))}
</div>
</section>
<!-- CTA -->
<section class="mx-auto max-w-3xl px-6 pb-32 text-center">
<h2 class="text-2xl font-semibold">有很酷的作品想分享?</h2>
<a
href="https://support.comfy.org/"
class="mt-6 inline-block rounded-full bg-brand-yellow px-8 py-3 font-medium text-black transition hover:opacity-90"
>
联系我们
</a>
</section>
</div>
<HeroSection locale="zh-CN" />
<GallerySection locale="zh-CN" client:load />
<ContactSection locale="zh-CN" />
</BaseLayout>