Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
·
e2a89a3
1
Parent(s):
c2d3ff1
disable frenzi
Browse files
ui/src/app/dashboard/page.tsx
CHANGED
|
@@ -75,8 +75,8 @@ export default function Dashboard() {
|
|
| 75 |
<MainContent>
|
| 76 |
<div className="mb-6">
|
| 77 |
<img
|
| 78 |
-
src="https://huggingface.co/spaces/multimodalart/ai-toolkit/resolve/main/
|
| 79 |
-
alt="
|
| 80 |
className="w-full rounded-lg border border-gray-800"
|
| 81 |
/>
|
| 82 |
</div>
|
|
@@ -87,56 +87,25 @@ export default function Dashboard() {
|
|
| 87 |
</h2>
|
| 88 |
<p className="text-sm text-gray-400 mt-2">
|
| 89 |
{isAuthenticated
|
| 90 |
-
? 'You are signed in with Hugging Face and can manage jobs, datasets, and submissions.'
|
| 91 |
-
: 'Authenticate with Hugging Face or add a personal access token to create jobs, upload datasets, and launch training.'}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
</p>
|
| 93 |
</div>
|
| 94 |
{isAuthenticated ? (
|
| 95 |
<div className="flex flex-col gap-4 text-sm">
|
| 96 |
-
{orgStatus === 'checking' && (
|
| 97 |
-
<div className="text-xs text-gray-400">Checking your LoRA Frenzi membership…</div>
|
| 98 |
-
)}
|
| 99 |
-
{orgStatus === 'missing' && (
|
| 100 |
-
<div className="border border-yellow-700 bg-yellow-900/20 text-yellow-100 rounded-lg p-4 space-y-2">
|
| 101 |
-
<p className="font-semibold">LoRA Frenzi reminder</p>
|
| 102 |
-
<p>
|
| 103 |
-
Your didn't authorize the <code className="bg-yellow-800/50 px-1 rounded">lora-training-frenzi</code> organization in your login.
|
| 104 |
-
To participate:
|
| 105 |
-
</p>
|
| 106 |
-
<ol className="list-decimal list-inside space-y-1 text-sm">
|
| 107 |
-
<li>
|
| 108 |
-
Join the{' '}
|
| 109 |
-
<a
|
| 110 |
-
href="https://huggingface.co/organizations/lora-training-frenzi/share/kEyyVNQXBPWqmARdwHFVdIiFqqONHZPOtz"
|
| 111 |
-
target="_blank"
|
| 112 |
-
rel="noopener noreferrer"
|
| 113 |
-
className="text-blue-200 underline"
|
| 114 |
-
>
|
| 115 |
-
LoRA Frenzi organization
|
| 116 |
-
</a>
|
| 117 |
-
. (if you haven't already)
|
| 118 |
-
</li>
|
| 119 |
-
<li>
|
| 120 |
-
Remove the “Ostris AI Toolkit” app from{' '}
|
| 121 |
-
<a
|
| 122 |
-
href="https://huggingface.co/settings/connected-applications"
|
| 123 |
-
target="_blank"
|
| 124 |
-
rel="noopener noreferrer"
|
| 125 |
-
className="text-blue-200 underline"
|
| 126 |
-
>
|
| 127 |
-
Hugging Face > Connected Applications
|
| 128 |
-
</a>
|
| 129 |
-
.
|
| 130 |
-
</li>
|
| 131 |
-
<li>Come back here and sign in again authorizing the lora-training-frenzi organization so we can refresh your permissions.</li>
|
| 132 |
-
</ol>
|
| 133 |
-
</div>
|
| 134 |
-
)}
|
| 135 |
-
{orgStatus === 'error' && (
|
| 136 |
-
<div className="border border-red-700 bg-red-900/20 text-red-100 rounded-lg p-4 text-sm">
|
| 137 |
-
We couldn't verify your organization membership right now. You can retry later or ensure your token is valid.
|
| 138 |
-
</div>
|
| 139 |
-
)}
|
| 140 |
<div className="flex flex-wrap items-center gap-3">
|
| 141 |
<Link
|
| 142 |
href="/jobs/new"
|
|
@@ -160,28 +129,9 @@ export default function Dashboard() {
|
|
| 160 |
</div>
|
| 161 |
) : (
|
| 162 |
<div className="flex flex-col gap-4 text-sm text-gray-300">
|
| 163 |
-
<
|
| 164 |
-
<
|
| 165 |
-
|
| 166 |
-
<a
|
| 167 |
-
href="https://huggingface.co/organizations/lora-training-frenzi/share/kEyyVNQXBPWqmARdwHFVdIiFqqONHZPOtz"
|
| 168 |
-
target="_blank"
|
| 169 |
-
rel="noopener noreferrer"
|
| 170 |
-
className="text-blue-400 underline"
|
| 171 |
-
>
|
| 172 |
-
LoRA Frenzi organization
|
| 173 |
-
</a>{' '}
|
| 174 |
-
first, then authorize the <code className="bg-gray-800 px-1 rounded">lorafrenzi</code> org when prompted.
|
| 175 |
-
<img
|
| 176 |
-
src="https://huggingface.co/spaces/multimodalart/ai-toolkit/resolve/main/add_org_to_oauth.png"
|
| 177 |
-
alt="Authorize lorafrenzi organization"
|
| 178 |
-
className="mt-3 max-w-sm rounded border border-gray-800"
|
| 179 |
-
/>
|
| 180 |
-
</li>
|
| 181 |
-
<li>
|
| 182 |
-
<HFLoginButton size="md" />
|
| 183 |
-
</li>
|
| 184 |
-
</ol>
|
| 185 |
<Link
|
| 186 |
href="/settings"
|
| 187 |
className="text-xs text-blue-400 hover:text-blue-300"
|
|
|
|
| 75 |
<MainContent>
|
| 76 |
<div className="mb-6">
|
| 77 |
<img
|
| 78 |
+
src="https://huggingface.co/spaces/multimodalart/ai-toolkit/resolve/main/frenzi_thanks.png"
|
| 79 |
+
alt="AI Toolkit Banner"
|
| 80 |
className="w-full rounded-lg border border-gray-800"
|
| 81 |
/>
|
| 82 |
</div>
|
|
|
|
| 87 |
</h2>
|
| 88 |
<p className="text-sm text-gray-400 mt-2">
|
| 89 |
{isAuthenticated
|
| 90 |
+
? 'You are signed in with Hugging Face and can manage jobs, datasets, and submissions. Train LoRAs at $0.042/minute if you are a PRO user.'
|
| 91 |
+
: 'Authenticate with Hugging Face or add a personal access token to create jobs, upload datasets, and launch training. Train LoRAs at $0.042/minute if you are a PRO user.'}
|
| 92 |
+
{!isAuthenticated && (
|
| 93 |
+
<>
|
| 94 |
+
{' '}
|
| 95 |
+
<a
|
| 96 |
+
href="https://huggingface.co/subscribe/pro"
|
| 97 |
+
target="_blank"
|
| 98 |
+
rel="noopener noreferrer"
|
| 99 |
+
className="text-blue-400 underline hover:text-blue-300"
|
| 100 |
+
>
|
| 101 |
+
Subscribe to PRO
|
| 102 |
+
</a>
|
| 103 |
+
</>
|
| 104 |
+
)}
|
| 105 |
</p>
|
| 106 |
</div>
|
| 107 |
{isAuthenticated ? (
|
| 108 |
<div className="flex flex-col gap-4 text-sm">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
<div className="flex flex-wrap items-center gap-3">
|
| 110 |
<Link
|
| 111 |
href="/jobs/new"
|
|
|
|
| 129 |
</div>
|
| 130 |
) : (
|
| 131 |
<div className="flex flex-col gap-4 text-sm text-gray-300">
|
| 132 |
+
<div>
|
| 133 |
+
<HFLoginButton size="md" />
|
| 134 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
<Link
|
| 136 |
href="/settings"
|
| 137 |
className="text-xs text-blue-400 hover:text-blue-300"
|
ui/src/app/jobs/new/SimpleJob.tsx
CHANGED
|
@@ -125,6 +125,9 @@ export default function SimpleJob({
|
|
| 125 |
return newQuantizationOptions;
|
| 126 |
}, [modelArch]);
|
| 127 |
|
|
|
|
|
|
|
|
|
|
| 128 |
const isLoRAFrenziEligible = useMemo(() => {
|
| 129 |
try {
|
| 130 |
const steps = jobConfig?.config?.process?.[0]?.train?.steps;
|
|
@@ -137,6 +140,7 @@ export default function SimpleJob({
|
|
| 137 |
return false;
|
| 138 |
}
|
| 139 |
}, [jobConfig]);
|
|
|
|
| 140 |
|
| 141 |
return (
|
| 142 |
<>
|
|
|
|
| 125 |
return newQuantizationOptions;
|
| 126 |
}, [modelArch]);
|
| 127 |
|
| 128 |
+
// LoRA Frenzi event ended - hackathon eligibility disabled
|
| 129 |
+
const isLoRAFrenziEligible = false;
|
| 130 |
+
/*
|
| 131 |
const isLoRAFrenziEligible = useMemo(() => {
|
| 132 |
try {
|
| 133 |
const steps = jobConfig?.config?.process?.[0]?.train?.steps;
|
|
|
|
| 140 |
return false;
|
| 141 |
}
|
| 142 |
}, [jobConfig]);
|
| 143 |
+
*/
|
| 144 |
|
| 145 |
return (
|
| 146 |
<>
|
ui/src/app/jobs/new/SimplifiedJob.tsx
CHANGED
|
@@ -171,6 +171,9 @@ export default function SimplifiedJob({
|
|
| 171 |
|
| 172 |
const requiresControlDataset = !!modelArch?.additionalSections?.includes('datasets.control_path');
|
| 173 |
|
|
|
|
|
|
|
|
|
|
| 174 |
const isLoRAFrenziEligible = useMemo(() => {
|
| 175 |
try {
|
| 176 |
const steps = process?.train?.steps;
|
|
@@ -183,6 +186,7 @@ export default function SimplifiedJob({
|
|
| 183 |
return false;
|
| 184 |
}
|
| 185 |
}, [process]);
|
|
|
|
| 186 |
|
| 187 |
const handleModelChange = (newModel: string) => {
|
| 188 |
const currentArch = modelArchs.find(a => a.name === process.model.arch);
|
|
|
|
| 171 |
|
| 172 |
const requiresControlDataset = !!modelArch?.additionalSections?.includes('datasets.control_path');
|
| 173 |
|
| 174 |
+
// LoRA Frenzi event ended - hackathon eligibility disabled
|
| 175 |
+
const isLoRAFrenziEligible = false;
|
| 176 |
+
/*
|
| 177 |
const isLoRAFrenziEligible = useMemo(() => {
|
| 178 |
try {
|
| 179 |
const steps = process?.train?.steps;
|
|
|
|
| 186 |
return false;
|
| 187 |
}
|
| 188 |
}, [process]);
|
| 189 |
+
*/
|
| 190 |
|
| 191 |
const handleModelChange = (newModel: string) => {
|
| 192 |
const currentArch = modelArchs.find(a => a.name === process.model.arch);
|
ui/src/components/HFJobsWorkflow.tsx
CHANGED
|
@@ -520,7 +520,7 @@ export default function HFJobsWorkflow({ jobConfig, onComplete, hackathonEligibl
|
|
| 520 |
<p className="text-sm text-gray-400">
|
| 521 |
{hackathonEligible && participateHackathon
|
| 522 |
? "To continue, accept the rules above and we'll validate your Hugging Face token."
|
| 523 |
-
: "Click below to validate your Hugging Face token and start training."}
|
| 524 |
</p>
|
| 525 |
|
| 526 |
{validationResult && (
|
|
|
|
| 520 |
<p className="text-sm text-gray-400">
|
| 521 |
{hackathonEligible && participateHackathon
|
| 522 |
? "To continue, accept the rules above and we'll validate your Hugging Face token."
|
| 523 |
+
: "Click below to validate your Hugging Face token and start training. Train LoRAs at $0.042/minute if you are a PRO user."}
|
| 524 |
</p>
|
| 525 |
|
| 526 |
{validationResult && (
|
ui/src/docs.tsx
CHANGED
|
@@ -55,8 +55,8 @@ const docs: { [key: string]: ConfigDoc } = {
|
|
| 55 |
title: 'Training Steps',
|
| 56 |
description: (
|
| 57 |
<>
|
| 58 |
-
Total number of optimization steps to run.
|
| 59 |
-
|
| 60 |
</>
|
| 61 |
),
|
| 62 |
},
|
|
|
|
| 55 |
title: 'Training Steps',
|
| 56 |
description: (
|
| 57 |
<>
|
| 58 |
+
Total number of optimization steps to run. If you adjust batch size or gradient accumulation, the effective
|
| 59 |
+
number of image updates scales accordingly.
|
| 60 |
</>
|
| 61 |
),
|
| 62 |
},
|